Scribe (markup language)
Encyclopedia
Scribe is a markup language and word processing system which pioneered the use of descriptive markup
. Scribe was revolutionary when it was proposed, because it involved for the first time a clean separation of structure and format.
. It formed the subject of his 1980 doctoral dissertation, for which he received the Association for Computing Machinery
's Grace Murray Hopper Award
in 1982..
Reid presented a paper describing Scribe in the same conference session in 1981 in which Charles Goldfarb
presented GML, the immediate predecessor of SGML.
, another Carnegie Mellon computer scientist, to market the program. Reid said he simply was looking for a way to unload the program on developers that would keep it from going into the public domain.
Michael Shamos was embroiled in a dispute with Carnegie Mellon administrators over the intellectual-property rights to Scribe. The dispute with the administration was settled out of court, and the university conceded it had no claim to Scribe.
") that would deactivate freely copied versions of the program after a 90-day expiration date. To avoid deactivation, users paid the software company, which then issued a code that defused the internal time-bomb feature.
Richard Stallman
saw this as a betrayal of the programmer ethos. Instead of honoring the notion of share-and-share alike, Reid had inserted a way for companies to compel programmers to pay for information access.
The Scribe markup language defined the words, lines, pages, spacing, headings, footings, footnotes, numbering, tables of contents, etc, in a way similar to HTML
. The Scribe compiler used a database of Styles (containing document format definitions), which defined the rules for formatting a document in a particular style.
Because of the separation between the content (structure) of the document, and its style (format), writers did not need to concern themselves with the details of formatting. In this, there are similarities to the TeX
formatting system by Donald Knuth
.
In Scribe, markup was introduced with an @ sign, followed either by a Begin-End block or by a direct token invocation:
@Heading(The Beginning)
@Begin(Quotation)
Let's start at the very beginning, a very good place to start
@End(Quotation)
It was also possible to pass parameters:
@MakeSection(tag=beginning, title="The Beginning")
Typically, large documents were composed of Chapters, with each chapter in a separate file. These files were then referenced by a master document file, thereby concatenating numerous components into a single large source document. The master file typically also defined styles (such as fonts and margins) and declared macros like MakeSection shown above; macros had limited programmatic features. From that single concatenated source, Scribe computed chapter numbers, page numbers, and cross-references.
These processes replicate features in later markup languages like HTML
. Placing styles in a separate file gave some advantages like Cascading Style Sheets
, and programmed macros presaged the document manipulation aspects of JavaScript
.
, which became Borland
's Sprint
, featured a markup language which resembled a simplified version of Scribe. Final Word's text processor, in turn, resembled Mark of the Unicorn's CP/M
based MINCE ("MINCE Is Not Complete Emacs
").
Markup language
A markup language is a modern system for annotating a text in a way that is syntactically distinguishable from that text. The idea and terminology evolved from the "marking up" of manuscripts, i.e. the revision instructions by editors, traditionally written with a blue pencil on authors' manuscripts...
. Scribe was revolutionary when it was proposed, because it involved for the first time a clean separation of structure and format.
Beginnings
Scribe was designed and developed by Brian Reid of Carnegie Mellon UniversityCarnegie Mellon University
Carnegie Mellon University is a private research university in Pittsburgh, Pennsylvania, United States....
. It formed the subject of his 1980 doctoral dissertation, for which he received the Association for Computing Machinery
Association for Computing Machinery
The Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...
's Grace Murray Hopper Award
Grace Murray Hopper Award
The original Grace Murray Hopper Awards have been awarded by the Association for Computing Machinery since 1971. The award goes to a young computer professional who makes a single, significant technical or service contribution.-Recipients:* 1971 Donald E. Knuth* 1972 Paul H. Dirksen* 1972 Paul H...
in 1982..
Reid presented a paper describing Scribe in the same conference session in 1981 in which Charles Goldfarb
Charles Goldfarb
Charles F. Goldfarb is known as the father of SGML and is a co-inventor of the concept of markup languages. In 1969 Charles Goldfarb, leading a small team at IBM, developed the first markup language, called Generalized Markup Language, or GML. In an , Dr...
presented GML, the immediate predecessor of SGML.
Scribe sold to Unilogic
In 1979, at the end of his graduate-student career, Reid sold Scribe to a Pittsburgh-area software company called Unilogic, founded by Michael ShamosMichael Ian Shamos
Michael Ian Shamos is an American mathematician, attorney, book author, journal editor, consultant and company director. He is Michael Ian Shamos (born April 21, 1947, and often referred to as Mike Shamos) is an American mathematician, attorney, book author, journal editor, consultant and company...
, another Carnegie Mellon computer scientist, to market the program. Reid said he simply was looking for a way to unload the program on developers that would keep it from going into the public domain.
Michael Shamos was embroiled in a dispute with Carnegie Mellon administrators over the intellectual-property rights to Scribe. The dispute with the administration was settled out of court, and the university conceded it had no claim to Scribe.
Time-bomb
Reid agreed to insert a set of time-dependent functions (called "time bombsTime bomb (Software)
In computer software, a time bomb refers to a computer program that has been written so that it will stop functioning after a predetermined date or time is reached. The term "time bomb" does not refer to a program that stops functioning a specific number of days after it is installed; instead, the...
") that would deactivate freely copied versions of the program after a 90-day expiration date. To avoid deactivation, users paid the software company, which then issued a code that defused the internal time-bomb feature.
Richard Stallman
Richard Stallman
Richard Matthew Stallman , often shortened to rms,"'Richard Stallman' is just my mundane name; you can call me 'rms'"|last= Stallman|first= Richard|date= N.D.|work=Richard Stallman's homepage...
saw this as a betrayal of the programmer ethos. Instead of honoring the notion of share-and-share alike, Reid had inserted a way for companies to compel programmers to pay for information access.
Using Scribe Word Processor
Using Scribe involved a two phase process:- Typing a manuscript file using any text editor, conforming to the Scribe markup.
- Processing this file through the Scribe compiler to generate an associated document file, which can be printed.
The Scribe markup language defined the words, lines, pages, spacing, headings, footings, footnotes, numbering, tables of contents, etc, in a way similar to HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
. The Scribe compiler used a database of Styles (containing document format definitions), which defined the rules for formatting a document in a particular style.
Because of the separation between the content (structure) of the document, and its style (format), writers did not need to concern themselves with the details of formatting. In this, there are similarities to the TeX
TeX
TeX is a typesetting system designed and mostly written by Donald Knuth and released in 1978. Within the typesetting system, its name is formatted as ....
formatting system by Donald Knuth
Donald Knuth
Donald Ervin Knuth is a computer scientist and Professor Emeritus at Stanford University.He is the author of the seminal multi-volume work The Art of Computer Programming. Knuth has been called the "father" of the analysis of algorithms...
.
The Markup Language
The idea of using markup language, in which meta-information about the document and its formatting were contained within the document itself, first saw widespread use in a program called RUNOFF; Scribe contained the first robust implementation of declarative markup language.In Scribe, markup was introduced with an @ sign, followed either by a Begin-End block or by a direct token invocation:
@Heading(The Beginning)
@Begin(Quotation)
Let's start at the very beginning, a very good place to start
@End(Quotation)
It was also possible to pass parameters:
@MakeSection(tag=beginning, title="The Beginning")
Typically, large documents were composed of Chapters, with each chapter in a separate file. These files were then referenced by a master document file, thereby concatenating numerous components into a single large source document. The master file typically also defined styles (such as fonts and margins) and declared macros like MakeSection shown above; macros had limited programmatic features. From that single concatenated source, Scribe computed chapter numbers, page numbers, and cross-references.
These processes replicate features in later markup languages like HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
. Placing styles in a separate file gave some advantages like Cascading Style Sheets
Cascading Style Sheets
Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...
, and programmed macros presaged the document manipulation aspects of JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
.
Related Software
The Final Word word processor from Mark of the UnicornMark of the Unicorn
Mark of the Unicorn is a music-related computer software and hardware supplier. It is based in Cambridge, Massachusetts and has created music software since 1984.Products by MOTU include:*Digital Performer*AudioDesk*BPM*MachFive*MX4*Unisyn...
, which became Borland
Borland
Borland Software Corporation is a software company first headquartered in Scotts Valley, California, Cupertino, California and finally Austin, Texas. It is now a Micro Focus subsidiary. It was founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn.-The 1980s:...
's Sprint
Sprint (word processor)
Sprint was a powerful and programmable text-based word processor for DOS, first published by Borland in 1987.__FORCETOC__- History :Sprint originally appeared as the "FinalWord" application, developed by Jason Linhart, Craig Finseth, Scott Layson Burson, Brian Hess, and Bill Spitzak at Mark of the...
, featured a markup language which resembled a simplified version of Scribe. Final Word's text processor, in turn, resembled Mark of the Unicorn's CP/M
CP/M
CP/M was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc...
based MINCE ("MINCE Is Not Complete Emacs
Emacs
Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...
").