• No results found

Hoe wordt een comment gearchiveerd als de originele selectie niet meer bestaat?

In document Comment Mapping (pagina 116-119)

.docx en odt

4.1.6 Hoe wordt een comment gearchiveerd als de originele selectie niet meer bestaat?

Opmerkingen kunnen gearchiveerd worden en daarna kan het document uiteraard worden aangepast. Het kan voorkomen dat het originele ophangpunt niet meer bestaat, terwijl toch de opmerking weer opnieuw wordt geopend. Wat er dan moet gebeuren met een opmerking wordt in dit hoofdstuk besproken.

G Suite

Als een opmerking wordt gearchiveerd, wordt er binnen Google Docs wordt blijkbaar de positie en de selectie opgeslagen. Zodra een comment opnieuw geopend wordt en de selectie bestaat nog, verschijnt deze weer op de tekst. Als de tekst niet meer bestaat, wordt de comment wel opnieuw geopend, maar verschijnt deze niet in het document.

Implementatie

Zodra een opmerking wordt gearchiveerd, zal deze zijn selectie behouden. Deze selectie is ook te zien als de gearchiveerde opmerking wordt bekeken. Op deze manier heeft de gebruiker een idee waar de opmerking betrekking op heeft gehad.

Bij het terugplaatsen van een opmerking, zal deze selectie helpen bij het vinden van de positie. Deze selectie kan worden gezocht binnen het document, wordt deze gevonden dan kan de positie worden aangepast. Als de selectie niet terug wordt gevonden, zal deze opmerking zonder een ophangpunt te hebben worden geopend.

4.2 Welke technieken zijn beschikbaar om comments op de juiste plaats

op te slaan?

Binnen deze deelvraag wordt gekeken naar verschillende technieken voor het opslaan van het juiste ophangpunt van een opmerking. Deze technieken hebben elk voor- en nadelen, hierdoor kan er een afweging worden gemaakt welke het beste zou passen binnen dit project.

De eerste twee technieken zijn gefocust op het opslaan van de opmerkingen, terwijl de drie technieken die daarna worden behandeld gericht zijn op de juiste positie van een opmerking. Er zal een combinatie van deze technieken moeten worden toegepast om tot een oplossing te kunnen komen.

Diff algoritme

Een mogelijke techniek die gebruikt kan worden is het gebruik van een diff algoritme. Met dit algoritme kan het verschil tussen twee versies van een document worden bepaald. GNU Diff is het bekendste diff algoritme (Cobéna et al., 2004). Echter is dit algoritme gebaseerd op het gebruik van tekst. XML is meer dan alleen tekst, dit heeft een boomstructuur en maakt het mogelijk semantische waarden toe te voegen aan tekst.

Voor een boomstructuur is een ander algoritme nodig om de verschillen bepalen. Cobéna et al. (2004) hebben hier een paper voor geschreven om de verschillende algoritmes te

vergelijken. Binnen deze paper worden ruim vijftien verschillende algoritmes met elkaar vergeleken. Aan de hand van bepaalde eisen, geven zij algoritmes die daar op aansluiten. Binnen FontoXML wordt er ook gewerkt met een diff algoritme, dit wordt gebruikt voor een add-on. Deze add-on, Advanced Track Changes, is op dit moment nog in ontwikkeling, maar zal gebruikt gaan worden voor het vaststellen van wijzigingen in het document. Hierbij wordt gebruik gemaakt van DeltaXML.

Voor dit project is echter geen gedetailleerd algoritme nodig. Het belangrijkste deel is het herkennen van elementen die zijn toegevoegd of verwijderd. Verder hoeft er niet gekeken te worden naar wijzigingen in alle nodes, maar alleen binnen de node(s) waar de selectie van de opmerking op staat.

Serialize - Deserialize

Bij dit idee worden alle posities op een centrale plaats opgeslagen. Zodra een gebruiker in FontoXML het document begint te wijzigen, worden alle posities opgevraagd van de server en worden deze tijdelijk opgeslagen in het geheugen. Zodra posities veranderen in het document, worden deze direct aangepast in het geheugen. Als het document wordt

Het probleem van deze oplossing is dat het alleen werkt binnen FontoXML. Zodra het document wordt gewijzigd buiten FontoXML om, werkt deze methode niet meer. Hiervoor zou hiernaast nog een fallback bedacht moeten worden, om wijzigingen vanuite een andere editor op te kunnen vangen.

Absolute tekstpositie

Een manier om de positie van een selectie te kunnen bewaren kan gedaan worden door het opslaan van de absolute tekstposities van de selectie. Hierbij moet gedacht worden aan de positie van het begin van de selectie en van het einde van deze selectie.

Het nadeel van het gebruik van deze techniek is dat de positie van de selectie veel zal moeten worden aangepast. Naast dat er tekst wordt toegevoegd zal er ook rekening moeten worden gehouden met alle andere nodes die worden toegevoegd. Dit geldt ook als een woord wordt vetgedrukt, hierbij worden namelijk elementen toegevoegd.

Een combinatie met een van de oplossingen die hieronder beschreven staan zou dit probleem al drastisch verminderen. Met deze oplossingen zou er niet meer naar het hele document gekeken te hoeven worden voor de absolute tekstpositie, maar alleen naar het element waarbinnen de opmerking staat.

Element id’s

Bepaalde schema’s hebben id’s binnen elementen. Door aan te nemen dat ieder element een uniek id heeft binnen het document, kunnen id’s gebruikt worden voor het bepalen van een positie. Het gebruiken van id’s is een gemakkelijke manier om de positie vast te leggen, maar heeft ook enkele nadelen.

Het eerste nadeel van deze oplossing is het probleem dat niet ieder schema gebruik maakt van id’s. Hierdoor zou deze oplossing niet schema onafhankelijk zijn, terwijl dit wel een van de requirements is vanuit FontoXML. Ook is het onzeker of binnen de schema’s die wel gebruik maken van een id elk id uniek is. Zodra er binnen een document meerdere

elementen met hetzelfde id voorkomen, zal deze methode niet functioneren zoals vooraf is bedoeld.

Tevens is het niet mogelijk om alleen deze manier te gebruiken, tenzij het hele element geselecteerd wordt. Zodra er een selectie wordt gemaakt binnen een element, zal er een combinatie met een andere techniek moeten worden toegepast. Een goede combinatie zou de bovengenoemde techniek zijn, het gebruik van de absolute tekstpositie.

XPath

In tegenstelling tot het gebruik van element id’s, is het gebruik van XPath wel schema onafhankelijk. XPath kan echter ook niet alleen worden gebruikt en heeft op dit vlak

hetzelfde probleem als het gebruik van id’s. Ook hier zou een combinatie met absolute tekst posities tot een goede oplossing leiden.

Met XPath kan specifieke informatie worden opgehaald uit een XML document. Voor FontoXML zal het element worden opgehaald dat staat opgeslagen en vervolgens zal verdere posities bepaald kunnen worden met de hulp van de absolute tekstposities.

In document Comment Mapping (pagina 116-119)