• No results found

Onderzoek naar de mapping van comments binnen een add-on voor FontoXML

In document Comment Mapping (pagina 104-112)

K.G.A. Ruis 15-03-2017 Rijswijk

.-. . .- .-..

- .. -- .

-.-. --- .-.. .-.. .- -... --- .-.

.- - .. --- -.

Voorwoord

Dit onderzoek is geschreven in opdracht van FontoXML en uitgevoerd door een student van De Haagse Hogeschool. Het biedt inzicht in mogelijke oplossingen voor een probleem binnen de XML tekstverwerker FontoXML.

De student heeft dit onderzoek uitgevoerd binnen zijn afstudeeropdracht. De kennis over FontoXML zelf was hierdoor ook minder dan de vaste werknemers van het bedrijf. Dit zou invloed kunnen hebben op de uitkomst van het onderzoek, doordat een buitenstaander het onderzoek heeft verricht.

Dit onderzoek is verricht op basis van een eerder verricht onderzoek. Het eerste onderzoek is gericht op een globaler niveau, waar de focus ligt op het onderzoeken van verschillende technieken waarop opmerkingen verwerkt kunnen worden. Uit het eerste onderzoek blijkt dat het gebruik van een externe service het best voor FontoXML lijkt.

Inhoudsopgave

1. Inleiding 42 2. Samenvatting 43 3. Onderzoeksopzet 44 3.1 G Suite 44 3.2 Gesprekken 44 4. Resultaten 45

4.1 Hoe kan de locatie van een comment gewaarborgd blijven? 45 4.1.1 Wat moet er gebeuren als een gebruiker (een deel van) het ophangpunt aanpast?

46 4.1.2 Wat gebeurt als de plaats van het ophangpunt veranderd? 47 4.1.3 Wat gebeurt als delen van het ophangpunt wordt verplaatst? 48 4.1.4 Wat gebeurt als een andere editor het document aanpast? 49

4.1.5 Wat gebeurt als een rollback plaatsvindt? 50

4.1.6 Hoe wordt een comment gearchiveerd als de originele selectie niet meer bestaat? 51 4.2 Welke technieken zijn beschikbaar om comments op de juiste plaats op te slaan? 52

4.2.1 Welke techniek past het beste? 54

4.2.2 Wat zijn de risico’s van de gekozen technieken? 55

5. Conclusie 56

6. Discussie 57

Referentielijst 58

1. Inleiding

Binnen dit onderzoek wordt gekeken naar verschillende situaties waar opmerkingen mee te maken krijgen. Hierin wordt besproken hoe moet worden gehandeld rondom deze situaties. Dit vormt een basis voor verdere implementatie van de oplossing die is voorgesteld binnen het eerste onderzoek.

Het eerste onderzoek (Real-time concurrent comments) wees een externe service aan als beste oplossing voor FontoXML om opmerkingen te verwerken en op te slaan. Met het kiezen van deze oplossing ontstonden nieuwe vragen die beantwoord moeten worden, daarvoor dient dit onderzoek.

Dit onderzoek heeft een hoofdvraag die beantwoord zal worden in de conclusie van dit document. De hoofdvraag luidt: “Hoe kunnen opmerkingen de juiste positie behouden bij wijzigende XML documenten?” Deze hoofdvraag wordt beantwoord door middel van een aantal deelvragen.

De volgende deelvragen met bijbehorende subvragen komen binnen dit onderzoek aan bod: ● Hoe kan de locatie van een comment gewaarborgd blijven?

○ Wat moet er gebeuren als een gebruiker (een deel van) het ophangpunt aanpast?

○ Wat gebeurt als de plaats van het ophangpunt veranderd? ○ Wat gebeurt als delen van het ophangpunt wordt verplaatst? ○ Wat gebeurt als een andere editor het document aanpast? ○ Wat gebeurt als er een rollback plaatsvind?

○ Hoe wordt een comment gearchiveerd als het originele ophangpunt niet meer bestaat?

● Welke technieken zijn beschikbaar om comments op de juiste plaats op te slaan? ○ Welke techniek past het beste?

○ Wat zijn de risico’s van de gekozen technieken?

Binnen dit onderzoek wordt er veel gesproken over het ophangpunt, dit is de locatie van de selectie waar een opmerking aanhangt. Als een gebruiker een opmerking wil toevoegen, maakt hij een selectie waarover de opmerking gaat. Deze selectie wordt het ophangpunt genoemd. Dit ophangpunt zal opgeslagen worden, maar moet updaten zodra het document gewijzigd wordt.

2. Samenvatting

Twee onderwerpen staan centraal binnen dit onderzoek. Hoe verschillende situaties behandeld moeten worden binnen de oplossing en welke techniek hiervoor gebruikt kan worden. Deze onderwerpen zijn tevens de uitgangspunten voor de deelvragen die samen de hoofdvraag kunnen beantwoorden. De resultaten van de deelvragen zullen in de conclusie worden samengevoegd tot een antwoord op de hoofdvraag.

De eerste deelvraag gaat over het waarborgen van opmerkingen. De situaties beschrijven wat er gebeuren moet als er wijzigingen rond een opmerking worden verricht of op een andere plaats in het document. Ook wordt er rekening gehouden met een rollback van het document. Tevens wordt behandeld wat er moet gebeuren als een andere editor de XML aan zou passen.

De tweede deelvraag gaat over de verschillende technieken die gebruikt kunnen worden bij een implementatie van de oplossing. Deze technieken zijn te verdelen in twee categorieën, waarbij een zich focust op het verwerken van de opmerkingen en de andere op het

aangeven van het juiste ophangpunt van een opmerking.

Uiteindelijk wordt hier gekozen voor twee oplossingen, welke gebruikt zullen worden afhankelijk van de situatie. Allereerst zal er gebruik worden gemaakt van een zogenaamd diff algoritme, dit is een algoritme wat twee XML documenten met elkaar kan vergelijken en de verschillen kan aanwijzen. Dit diff algoritme zal gebruikt worden als het document is gewijzigd door een andere applicatie dan FontoXML.

Binnen FontoXML zal er geen gebruik worden gemaakt van een diff algoritme, maar worden de opmerking tijdelijk in het geheugen opgeslagen. Alle ophangpunten kunnen op deze manier makkelijker worden gewijzigd. Op verder te bepalen intervallen zullen deze wijzigingen worden opgeslagen in de externe service.

De ophangpunten zullen opgeslagen worden met een combinatie van XPath en de absolute tekstposities. Eerst wordt de positie opgeslagen met XPath, maar dit is niet precies genoeg, waardoor een ondersteuning van de absolute tekstpositie nodig is. Deze tekstpositie wordt gebruikt om de exacte positie vast te kunnen leggen.

3. Onderzoeksopzet

In dit hoofdstuk wordt de onderzoeksopzet beschreven. Bepaalde delen van het onderzoek worden beschreven om zo inzicht te geven in wat er gedaan is. Dit is ook om later herhaling of uitbreiding van het onderzoek mogelijk te maken.

3.1 G Suite

Binnen dit onderzoek wordt voor iedere subvraag van de eerste deelvraag gekeken naar de oplossing die Google toepast in haar G Suite applicaties. De belangrijkste applicatie hiervan is Google Docs, waar comments het meeste zullen voorkomen.

Dit onderzoek zal kijken naar de manier waarop Google antwoord geeft op de subvragen die gesteld worden binnen dit onderzoek. De antwoorden vanuit de G Suite hoeven niet de oplossingen te zijn waarvoor gekozen wordt. De wensen en technische beperkingen binnen FontoXML verschillen van de keuzes die Google heeft gemaakt bij de ontwikkeling van de applicaties binnen de G Suite. Zo heeft FontoXML te maken met restricties die opgelegd worden door de schema’s waarmee gewerkt wordt. Aangezien dit soort restricties niet voorkomen binnen Google, is de situatie binnen FontoXML complexer.

De bevindingen uit de G Suite worden per subvraag behandeld. Dit zal gebeuren in een eigen kopje binnen deze paragrafen. De voornaamste applicatie uit de G Suite die gebruikt zal worden binnen dit onderzoek is Google Docs.

3.2 Gesprekken

Tevens wordt er binnen dit onderzoek gesprekken gevoerd met werknemers. Deze gesprekken zijn bedoeld om meer inzicht te krijgen in de ideeën voor het plaatsen van opmerkingen. Ook kunnen deze gesprekken worden gebruikt om meer kennis te vergaren over mogelijke technieken die gebruikt kunnen worden.

Een van de gesprekken zal gevoerd worden met Martin Middel, hij kan op globaal niveau antwoord geven op vragen met betrekking tot het plaatsen van opmerkingen. Tevens is Martin een goed persoon om overleg rondom de mapping van de opmerkingen te hebben. Hij heeft voor het bedrijf al eerder zich gefocust op mapping, dan wel niet in de vorm van opmerkingen, maar hij zal zich hier wel in kunnen verplaatsen.

4. Resultaten

In dit hoofdstuk worden de resultaten besproken, dit gebeurd per deelvraag. De resultaten geven gezamenlijk de basis voor het antwoord op de hoofdvraag, wat beschreven staat in de conclusie van dit rapport.

4.1 Hoe kan de locatie van een comment gewaarborgd blijven?

Binnen deze deelvraag staat de locatie van een opmerking centraal. Een opmerking kan gemaakt worden op een selectie van een stuk tekst. Deze selectie kan een (deel van een) woord bevatten, een zin of zelfs een hele paragraaf. De selectie vormt een ophangpunt voor een opmerking. Doordat er veranderingen plaatsvinden binnen een document kan het voorkomen dat dit ophangpunt van positie veranderd in het document. Met behulp van de subvragen wordt antwoord gegeven op verschillende situaties die plaats kunnen vinden als het document wijzigt.

De situaties die binnen deze deelvraag beschreven worden hebben allemaal te maken met het ophangpunt van een opmerking. Dit ophangpunt kan door verschillende factoren worden aangepast. Met dit onderzoek wordt hier vooraf over nagedacht, zodat het ontwerp en de implementatie vloeiend kan verlopen.

4.1.1 Wat moet er gebeuren als een gebruiker (een deel van) het ophangpunt

aanpast?

Het kan voorkomen dat na het maken van een ophangpunt hierbinnen wijzigingen plaatsvinden. Binnen het ophangpunt zouden meer tekens bij kunnen komen, maar er zouden ook tekens af kunnen gaan. Binnen deze deelvraag wordt beantwoord hoe hier mee omgegaan moet worden binnen FontoXML.

G Suite

Binnen Google Docs past de selectie zich aan wanneer iemand een selectie waar een comment aanhangt veranderd. Als er binnen de selectie meer tekst bijkomt, zal deze selectie groeien. De selectie krimpt wanneer er tekst uit de selectie wordt verwijderd. Zodra er tekst voor of achter de selectie wordt toegevoegd, verandert deze niet.

Bij Google Sheets maakt dit niets uit. Een comment staat vast aan een bepaalde cel, zodra er iets verandert binnen de cel, blijft de comment gewoon staan. Het is ook niet mogelijk om een comment aan een selectie binnen een cel te hangen, alleen aan de cel zelf.

Google Slides werkt op een soortgelijke manier als Google Sheets, een comment hangt aan een element en niet aan de tekst zelf. Dit kan een nadeel zijn binnen presentaties, maar bij goede presentaties is ook weer niet heel veel tekst aanwezig waar commentaar op geleverd kan worden.

Implementatie

De oplossing voor deze subvraag is vrij simpel, zodra er een aanpassing wordt verricht binnen het ophangpunt, zal deze zich aanpassen. Er zijn echter wel een aantal edge cases te behandelen bij het geven van deze oplossing.

Zo moet er nagedacht worden over wat er gebeurt als er op de rand van een ophangpunt iets wordt geplaatst. Alles wat buiten het ophangpunt gebeurt, wordt hier niet in opgenomen. Zodra de cursor naast het ophangpunt staat, zal er dus niets worden toegevoegd aan het ophangpunt van de opmerking. Niet aan de voorkant en niet aan de achterkant. Dit gebeurt ook niet als de toevoeging deel uitmaakt van het woord wat binnen het ophangpunt valt.

4.1.2 Wat gebeurt als de plaats van het ophangpunt veranderd?

Zodra een selectie is gemaakt, waar een comment aanhangt, kunnen er wijzigingen plaatsvinden in het document voor het ophangpunt. Door het toevoegen van tekens of het verwijderen hiervan, kan de tekst van het ophangpunt op een andere plaats komen te staan. Binnen dit hoofdstuk wordt behandeld hoe er binnen FontoXML omgegaan moet worden met dit probleem.

G Suite

Zodra tekst wordt toegevoegd of verwijderd, verandert de positie van de selectie. Verder verandert er binnen Google Docs helemaal niets. Het ophangpunt verandert mee met de aanpassingen die gemaakt worden in het document.

Bij Google Spreadsheets kan de plaats van een comment niet gewijzigd worden door het toevoegen van meer content. Een comment hangt bij deze applicatie vast aan een bepaalde cel. Deze cel kan wel handmatig worden verplaatst, maar niet door het toevoegen van meer content.

In document Comment Mapping (pagina 104-112)