Interdoc MeetingSeptember 24, 1981
Requirements and Exclusions
An interchange standard must:
Use a universal character set
(graphic subset of ISO 646/ASCII)
Provide an acceptably efficient encoding
Be open-ended
Preserve document structure
Preserve document form
Provide faithful transcriptions
Simplify limited-fidelity rendition
Enable regeneration of scripts after editing with unaffected portions faithfully transcribed
Interdoc is not:
A file format
A standard for editing
A mechanism for combining documents
A substitute for other corporate standards
Interdoc MeetingSeptember 24, 1981
Example 1.5.1: A simple document
The text of the main node of example 1.5.1
The text of the first subnode of example 1.5.1
0Interdoc/Interchange/1.0
1para=’PARAGRAPH$ leftMargin←3.25*inch rightMargin←6.0*inch’
2font = [ | family←Times size←10*pt
face←[ | weight←NORMAL style←ROMAN slant←NIL] ]
3{para rightMargin←5.0*inch
4<The text of the main node of example 1.5.1>
5{para leftMargin←+.5*inch
6<The text of the >
7font.face.slant←ITALIC <first> font.face.slant←NIL
8< subnode of example 1.5.1>
9}
10}
Interdoc MeetingSeptember 24, 1981
{pg.a7! Page
Sub←’Paragraph’
{<Many of these conclusions are based on prior experience>
{fn.n1!-- a unique label: fn! defined in Page --
Footnote <See the 1970 report . . . if you need them.>
}
< which has shown our techniques to . . . correction.>
}
{<The results of . . . in the analysis above.>
}
Sub←’Frame’
{Alignment.horizonally←FlushLeft Alignment.vertically←Floating
height←2.8*inch width←3.67*inch
edges.expandingRightEdge←T
border←dots1
Sub←’Rectangle lineType.width←2 lineType.style←solid’
rect@!-- declare label class to be used below --
{rect.a1! UpperLeft←(.0254 .07)shading←7 height←.01 width←.027{Title <Headquarters>} }
. . .
{rect.a6! UpperLeft←(.067 .055)height←.013 width←.016{Title <East Coast>} }
Sub←’Line lineType.width←2 lineType.style←solid’
ln@!
{ln.out1!rect.a1@ln.in34@}
. . .
{ln.in6!
ln.in56@rect.a6@}
}
-- end of Frame --
Sub←’Paragraph’
{<The process of . . . have significant impact.>}
{<Also, we feel strongly . . . contract with our firm.>}
}-- end of page --
Interdoc MeetingSeptember 24, 1981
Page = ’ PAGE$
fn@! -- declare label class for footnotes on this page --
fnCount:0-- declare count for footnotes on this page --
PageControl←NEWPAGE-- IN(CONTINUE NEWPAGE NEWLEFTPAGE
NEWRIGHTPAGE NEWCOLUMN) --
height←11*inch width←8.5*inch
margins←[ |
left←1*inchright←1*inchbinding←1*inch
top←1*inchbottom←1*inch
]
numberOfColumns←1
spaceBetweenColumns←.5*inch
Footnote = ’FOOTNOTE$ fnCount:=+1 font.size←8*pt FootnoteRef’
FootnoteRef ← ’{FOOTREF$ baseline←+5*ptfnCount}’-- raise 5 pts --
Interdoc MeetingSeptember 24, 1981
Tab = [ | position←0 type←LEFT-- IN (LEFT CENTERED RIGHT DECIMAL) --]
MakeTabs=’n←0 tabs←(RecursiveMakeTab[Value])’
RecursiveMakeTab=’(
EQ[Value 0] | NIL | n←+.25*inch [Tab | position←n ] RecursiveMakeTab[Value-1])’
Paragraph = ’PARAGRAPH$
Indent = [ | Left←0.0 Right←0.0]-- distance --
Alignment←FlushLeft-- IN (FlushLeft Centered FlushRight) --
Justified←F
leading←[leading | between←1*pt above←12*pt below←0]
fonts←[
Normal←’font←Default.font’
Emphasis1←’font←Default.font’ Italic’
Emphasis2←’font←Default.font’ Bold’
]
Hyphenation←F
KeepOn←Null-- IN (NIL, SamePageAsNextParagraph) --
MakeTabs[8]-- binds tabs to a sequence of 8 tabs (0, .25 inch, .50 inch, ...) --
Interdoc MeetingSeptember 24, 1981
Issues in Transcription
Fidelity: R(T(document)) = document
Process in left-to-right, depth-first order—to transmit without first storing
Standard external environment: units, definitions, abbreviations, . . .
T(R(T(document))) need not necessarily be the same as T(document) — extra hints are okay
Standard versus editor-specific transcription
Interdoc MeetingSeptember 24, 1981
Issues in Regeneration
S1 T1( D1) D2 ← R2(S1) S2 ← T2(D2)
S
1 = S2?D1 = R1(S2)?
S1 T1( D1) D’2 ← Edit(R2(S1)) S’2 ← T2(D’2)
What relation is there between S
1 and S’2?
Determining which nodes have been altered directly or indirectly
Regenerating structure when relevant parts of the environment and contents have not changed since rendering
Can it be done as simply as normal transcription?