143
tweenlooselycollaboratingindividuals.Thearchitectureproposedhereallowsthepatternof
communicationtobeabstractedawayandmanagedseparatelyfrommanydetailsofcommu-
nicationmediumandprotocol.
7.2 Theapplicationinterface
ThemostbasicinterfacebetweenanapplicationandaPalimpsestdatastorewouldbethe
setofmethodspresentedinFigure7.2.Thatinterfacenotonlyprovidesalotofdetail,butit
assumesthattheapplicationisbuildingitsdisplaysdirectlyfromthePalimpsestdatastruc-
tures.Whilethatisavalidoption,inmanysituationsitisnotthemostconvenientoption.
Norisitnecessarilythemostefficientoption.Thereasonisthatmostuserinterfacetoolkits
alreadyhavehighlydevelopedinteractivetext-editingmodules.Thesemodulesarenotal-
waysthemostfull-featuredinteractiveeditorsavailableonaplatform;generallyspecialized
toolslikeprogrammingeditorsandwordprocessingpackagesoccupythisniche.Theiruse
usuallyprovidesasignificantsavingsinapplicationdevelopmenttime(becauseevenbad
text-editorstakealotofworktowrite),andtheyoftenincludespecializedperformancefea-
turesthatmaybehardtoduplicate.
Finally,itisoftendesirabletointegratecollaborationfeaturesintoexistingprograms
thatalreadyhaveeditinginterfacesclearlydefined.Thecaseforextendingexistingapplica-
tionsratherthanbuildingnewoneshasbeenstronglyadvocatedintheOpenHypermedia
systemscommunity(Nürnberg,Leggettetal.1998;GrønbækandTrigg1999(forthcoming)).
Therelatednotionofcollaborationtransparency(LauwersandLantz1990)alsohasalong
history.Thearchitecturepresentedhereisnottryingtosolvetheproblemofproviding
usefulcollaborationusingunmodifiedapplications.Indeed,collaborationsupportthatallows
fordivergenceandprovidesmethodstorepairdivergentstatesisprobablyincompatiblewith
theuseofunmodifiedapplicationsthatarenotalsopowerfulprogrammingenvironments
(liketheEmacseditor).
tweenlooselycollaboratingindividuals.Thearchitectureproposedhereallowsthepatternof
communicationtobeabstractedawayandmanagedseparatelyfrommanydetailsofcommu-
nicationmediumandprotocol.
7.2 Theapplicationinterface
ThemostbasicinterfacebetweenanapplicationandaPalimpsestdatastorewouldbethe
setofmethodspresentedinFigure7.2.Thatinterfacenotonlyprovidesalotofdetail,butit
assumesthattheapplicationisbuildingitsdisplaysdirectlyfromthePalimpsestdatastruc-
tures.Whilethatisavalidoption,inmanysituationsitisnotthemostconvenientoption.
Norisitnecessarilythemostefficientoption.Thereasonisthatmostuserinterfacetoolkits
alreadyhavehighlydevelopedinteractivetext-editingmodules.Thesemodulesarenotal-
waysthemostfull-featuredinteractiveeditorsavailableonaplatform;generallyspecialized
toolslikeprogrammingeditorsandwordprocessingpackagesoccupythisniche.Theiruse
usuallyprovidesasignificantsavingsinapplicationdevelopmenttime(becauseevenbad
text-editorstakealotofworktowrite),andtheyoftenincludespecializedperformancefea-
turesthatmaybehardtoduplicate.
Finally,itisoftendesirabletointegratecollaborationfeaturesintoexistingprograms
thatalreadyhaveeditinginterfacesclearlydefined.Thecaseforextendingexistingapplica-
tionsratherthanbuildingnewoneshasbeenstronglyadvocatedintheOpenHypermedia
systemscommunity(Nürnberg,Leggettetal.1998;GrønbækandTrigg1999(forthcoming)).
Therelatednotionofcollaborationtransparency(LauwersandLantz1990)alsohasalong
history.Thearchitecturepresentedhereisnottryingtosolvetheproblemofproviding
usefulcollaborationusingunmodifiedapplications.Indeed,collaborationsupportthatallows
fordivergenceandprovidesmethodstorepairdivergentstatesisprobablyincompatiblewith
theuseofunmodifiedapplicationsthatarenotalsopowerfulprogrammingenvironments
(liketheEmacseditor).