112
InL-shapednumbering,aversion’snumberisobtainedbycountingthesequenceof
downwardstepsandofrightwardsteps(L-shapedpaths)necessarytogetfromtherootto
theselectednode.Asinreverseoutlinenumbering,leftmostchildrenarecompactlyrepre-
sented,butunlikereverseoutlinenumbering,multiplealternativesarealsocompactlyrepre-
sented.
6.1.2 TheVTMLdataformat
TheformatofaVTMLdocumentisbasedonasimpletaggingscheme,conceptuallysimilar
tothatoftagginglanguageslikeXMLorSGML.
7
TheparsergeneratorinputfilefortheVTML
grammarusedinthe2.0implementationappearsinAppendixB,editedforclarity.VTMLin-
formationisrepresentedbytagswithattributes.Theattributeswithspecialsignificanceto
VTMLaresyntacticallyandsemanticallydistinguishedfrom“user”attributes,whichapplica-
tionscanusetostoreadditionalinformationneededtodescribethechangesinadocument.
Userattributesaresyntacticallydistinguishedbyaleadingunderscore,allowingforexten-
sionsofVTMLtodefinenewattributes.AVTMLfilestartswithaheaderidentifyingthefor-
mat,declaringoptions,andcontainstwoparts(bothofwhichareoptional,thoughatleast
onemustbepresent).
VTMLchangesareeitherinsertionsordeletions.Eachisassociatedwithitsinitialversion,
representedasamandatoryunlabelledattribute.EachchangealsohasachangeID,aunique

7
XMLsyntaxwould,insomeways,beidealbutcannotbeusedbecauseofitsinternationalization
features.SinceXMLrequiresadeclaredcharactersetencoding,itisunsuitableforrepresentingbinary
data,ordatawithmixedcharacterencodings.Forversionrepresentation,changingcharacterencod-
ingsisnotpossible.AsecondaryfactorinthedesignoftheVTML2.0syntaxistheconfusionresult-
ingfromshareddelimitersbetweentheVTMLlanguageanditsmostlikelycontentformats.VTMLre-
quirestheescapingofsyntacticallysignificantdatacharacters,soVTML2.0avoidstheuseofXMLand
HTMLdelimiters.
113
stringthatidentifiesthatchangewithrespecttoitsversion.ChangeIDsareappendedtothe
versionnumberfollowinga“#”character.Versionspecificationscanalsobeaddedtothe
header,andcanexplicitlyexcludeorincludeparticularchangesintotheirparticularversion.
ThisdifferssomewhatfromPalimpsestbecauseoperationsarealwaysspecifiedwithrespect
toabaseversion,directlysupportingthecommontree-structuredversioningstyle(and
makingotherstylessomewhathardertoimplement).
ItispossibletosimulatePalimpsestsemanticsforinsertionanddeletionbyusingVTML
inawaythatdoesnottakeadvantageofthebuilt-inversioningfacilitiesofVTML.Each
Palimpsestinsertionintoaparticularcontext(anotherinsertion)isaddedasasuccessorof
theversionofthatcontext.Thiscreatesaversiongraphwhoseinheritancerelationshipsdu-
plicatethecausalorderingofinsertionchanges.Successiveinsertionsintothesamecontext
createmultiplealternativesuccessorstotheversionofthatcontext(withonechangein
eachsuccessorversion).Nestedinsertionscreatechainsofrelatedversions.Palimpsestmove
andcopycannotproperlyberepresentedinVTML,becauseinsertionanddeletionoperations
canimplementonlyfrozenoperations,notdynamicones.
6.1.3 ExternalandInternalchanges
ThefirstportionofaVTMLfileconsistsofexternalchanges,whicharestoredseparately
fromthedatarepresentingallversions.Theexternalchangeformatisusefulinthedesignof
protocolsandsupportfordisconnectedworkforthesamereasonthatPalimpsestchangesare
useful.Theywrapupalltheinformationneededtodescribetheupdatesinaversioninone
place.Externalchangesneedtolocatethepointsonwhichoperationsshouldact,andfor
thisreasontheyneedtobelocationandtimeinvariant,likePalimpsestaddresses.VTMLad-
dressesareacombinationofaversionnumberandcharacteroffset.Versionsmustbeimmu-
table,andVTMLsemanticsrequiresomeexternalprotocolorservertosecureagreementasto
whichversionnumbersareactuallyselectedforanyversion.VTMLisdesigned,likemuchof
theWWW,toworkwithadocumentserverthatiscapableofhandlingalloperationsper-
Previous Page Next Page