Skip to topic | Skip to bottom
Home

Tesi
Tesi.TestEARMARKAPIr1.14 - 16 Apr 2011 - 11:36 - FrancescoPoggitopic end

Start of topic | Skip to actions
-- FrancescoPoggi - 15 Mar 2011

Test EARMARK API

Ritorna al diario di bordo.

NoteTrucchi

Test

  • Caricamento documento EARMARK: problemi nel caricare il documento di prova basato sull'esempio presentato al paragrafo 5 nell'articolo "Handling markup overlaps using OWL". Caricando il documento originale viene sollevata un'eccezione sull'elemento :paragraph_1. In particolare il problema è dovuto al frammento di documento:

   <owl:Thing rdf:about="http://fpoggi.web.cs.unibo.it/odexample.owl#paragraph1_i1">
      <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#NamedIndividual" /> 
      <collections:nextItem rdf:resource="http://fpoggi.web.cs.unibo.it/odexample.owl#paragraph1_i2" /> 
      <collections:itemContent rdf:resource="http://fpoggi.web.cs.unibo.it/odexample.owl#r1" /> 
   </owl:Thing>

:paragraph_1 collections:itemContent :r1 fa sollevare un'eccezione durante il caricamento; sostituendo r1 con qualsiasi altro elemento il problema non si verifica. NB: l'elemento :r1 viene caricato correttamente.

Domande

EARMARK API:

1) A seguito del caricamento di un'ontologia in un EARMARKDocument, tutti gli individui che sono istanze di classi di EARMARK (Docuverse, MarkupItem e Range) mantengono il proprio ID, mentre a tutti gli altri viene assegnato un ID casuale (ad esempio agli Item).

URI abbreviati in qname = namespace(richiesta definizione):identifier

2) Perchè il metodo getEntityById di EARMARKDocument si chiama così? Id vs URI vs GeneralIdentifier di un elemento di markup (proprietà earmark:hasGeneralIdentifier)

Ontologia:

1) differenza rdfs:subclassOf e rdfs:equivalentClass:

  • rdfs:subclassOf:

      IF
      ?A rdfs:subClassOf ?B
      AND ?x rdf:type ?A
      THEN
      ?x rdf:type ?B

  • rdfs:equivalentClass: le due classi hanno gli stessi membri.

   a) IF
      ?A owl:equivalentClass ?B
      AND
      ?x rdf:type ?A
      THEN
      ?x rdf:type ?B

   b) IF
      ?A owl:equivalentClass ?B
      AND
      ?x rdf:type ?B
      THEN
      ?x rdf:type ?A

ossia owl:equivalentClass rdf:type owl:SymmetricProperty

Quando si utilizza l'una piuttosto che l'altra modellando un'ontologia (x es. MarkupItem perchè non owl:equivalentClass)?

2) Problema cardinalità:

  • Può essere definito un solo trucco per ogni MarkupItem (Fragmentation, Milestone, StandOff, Dominanza, OpenOfficeChangeTracking). L'unica eccezione riguarda le copie (CopyOf e SameAs). Quindi Trick and (concerns only (hasTrick max 1 Trick)). Se definissi Trick and (concerns max 1 Trick) potrebbe andare bene lo stesso? Credo di no perchè potrei avere più trucchi per lo stesso elemento. La prima soluzione esprime che un elemento può avere associato un solo trucco. La seconda che un trucco può essere relativo a un solo elemento, ma l'elemento potrebbe avere più trucchi associati.
  • Possono esistere più copie di un MarkupItem o di un Range (possono essere specificate più CopyOf e SameAs dello stesso MarkupItem o Range).

3) I trucchi sono utilizzati principalmente per esprimere le relazioni di contenimento che non possono essere espresse all'interno di una struttura ad albero (tipicamente per le situazioni di overlap). E' ragionevole quindi specificare che il trucco riguarda il nodo padre (= "questo specifico trucco esprime un nodo e quello che contiene").

Per il trucco dominanza va aggiunta un'altra informazione, che specifichi anche il nodo che andrà a dominare il MarkupItem oggetto del trucco.

Il caso dei trucchi SameAs e CopyOf è differente: il trucco a cosa si riferisce? L'elemento da ripetere è presente solo una volta, e le copie non sono presenti nel documento ma devono essere generate ex novo. Ci sono due casi possibili:

  • contenuto ripetuto all'interno dello stesso nodo (MarkupItem o Range originale e ripetuto contenuto nello stesso elemento)
  • contenuto ripetuto in due nodi diversi (MarkupItem o Range originale contenuto da un elemento, e copia ripetuta contenuta in un altro elemento).

Tre soluzioni possibili:

  • il trucco si riferisce al nodo padre: non è corretto concettualmente. Nell'ipotesi può funzionare nel secondo caso ma non nel primo, per cui si dovrebbe fare riferimento anche all'item (Item o ListItem) contenente la copia (o indifferentemente l'elemento originale) per disambiguire la situazione.
  • il trucco si riferisce all'item (Item o ListItem): in questo caso non sono necessarie ulteriori informazioni.
  • il trucco si riferisce al MarkupItem da copiare. E' la soluzione più ragionevole. Anche in questo caso può funzionare nel secondo caso ma non nel primo, per cui va specificato l'item (Item o ListItem). Il nodo padre non è necessario.

4) Id per trucchi CopyOf, SameAs, StandOff e OpenOfficeChangeTracking: generato automaticamente dall'applicazione o indicato opzionalmente (o obbligatoriamente) nell'ontologia?

5) Mi pare di aver capito che property overriding non sia consentito in OWL (vedi per esempio qui).

Ontologia Change Tracking

Appunti vari:

  • generali:
    • imporre 1 solo trucco per ogni MarkupItem o Range, tranne nel caso di CopyOf o SameAs.
    • hasGeneralId: va specificato un identificatore per CopyOf, SameAs e StandOff. Per gli altri non è necessario.
  • trucco dominanza:
    • viene ereditata dai discendanti del nodo se non hanno altro trucco specificato? io direi di no (per costo computazionale).
    • si potrebbe controllare che nodo padre specificato domini tutte le foglie dominate dal nodo oggetto del trucco (farlo in OWL a livello di ontologia + ragionatore => costo computazionale).
  • trucco sameAs e copyOf:
    • non si puo' fare riferimento a un nodo. O si fanno riferire all'Item (nel caso si usino collections:Bag) o al ListItem (nel casi di collections:List). Per i collections:Set il problema non si pone, in quanto non possono contenere elementi ripetuti (GIUSTO?), vedi definizione collections.
    • si potrebbe definire la classe VirtualCopy o Repetition che è sottoclasse di Trick e ha come sottoclassi CopyOf e SameAs. Nel caso vanno cambiati i domini e range delle proprieta hasCopyTrick e concernsItem (ed eventualmente anche i loro nomi).
  • change tracking OpenOffice:
    • la regola generale è: standoff per metadati della modifica sempre, più contenuto testuale del documento solo per la cancellazione. 1 Milestone per cancellazione, 2 per inserimento. Il caso di inserimento seguito da cancellazione vedi in seguito. Nello specificoç
    • inserimento: nel testo contenuto testuale inserito, contenuto in tag che segnalano inizio e fine dell'inserimento (2 milestone), solo metadati sull'inserimento in standoff.
  <text:changed-region text:id="ct164245024">
    <text:insertion>
      <office:change-info>
        <dc:creator>administrator</dc:creator> 
        <dc:date>2011-04-29T11:37:00</dc:date> 
      </office:change-info>
    </text:insertion>
  </text:changed-region>

[...]

  <text:change-start text:change-id="ct164245024" /> 
    ;actually, it WAS one! 
  <text:change-end text:change-id="ct164245024" /> 
    • cancellazione: nel testo tag vuoto che segnala punto della cancellazione (1 milestone), metadati e contenuto testuale cancellato in standoff.
  <text:changed-region text:id="ct160342792">
    <text:deletion>
      <office:change-info>
        <dc:creator>Francesco Poggi</dc:creator> 
        <dc:date>2011-03-31T12:15:00</dc:date> 
      </office:change-info>
      <text:p text:style-name="Standard">
        <text:s /> 
        that will be s 
      </text:p>
    </text:deletion>
  </text:changed-region>

[...]

  <text:change text:change-id="ct160342792" />

    • inserimento seguito da cancellazione: nel testo tag vuoto che segnala punto della cancellazione (1 milestone), metadati su inserimento in standoff, insieme a metadati su cancellazione e contenuto testuale cancellato in standoff.
  <text:changed-region text:id="ct162262016">
    <text:deletion>
      <office:change-info>
        <dc:creator>administrator</dc:creator> 
        <dc:date>2011-04-29T11:37:00</dc:date> 
      </office:change-info>
      <text:p text:style-name="Standard">.</text:p> 
      <text:p text:style-name="Standard" /> 
    </text:deletion>
    <text:insertion>
      <office:change-info office:chg-author="Francesco Poggi" office:chg-date-time="2011-03-31T12:15:00" /> 
    </text:insertion>
  </text:changed-region>

[...]

  <text:change text:change-id="ct162262016" /> 

    • cancellazione seguita da inserimento: non riguardano lo stesso contenuto ma solo la stessa posizione all'interno del testo. Viene realizzata eseguendo uno di seguito all'altra le due singole operazioni.

  • La soluzione piu' ragionevole per il change tracking di OpenOffice è:
    • indicare un trucco di openoffice change tracking per ogni operazione di change tracking (sia inserimento che eliminazione). Il trucco viene indicato per ogni elemento che richieda contenuti in standoff, indipendentemente che siano solo i metadati (inserimento) o metadati e contenuto testuale (cancellazione).

  • TODO: vanno indicati i nodi del documento da non convertire. Per EARMARK si può indicare di non convertire specifici MarkupItem e Range. Per quanto riguarda il change tracking di openoffice bisogna specificare di non convertire tutti gli elementi che appartengono alle versioni precedenti del documento da convertire (nel solito esempio preso in considerazione, le prime due versioni dell'elemento "text" e le versioni ). Va pensato come gestire versioni precedenti degli elementi (tipo p e text).

Prima versione dell'ontologia e EARMARK di esempio:


to top

I Attachment sort Action Size Date Who Comment
changeTracking.owl manage 13.2 K 16 Mar 2011 - 20:13 FrancescoPoggi prima versione ontologia per trucchi
changeTrackingExample.owl manage 4.4 K 16 Mar 2011 - 20:14 FrancescoPoggi primo esempio EARMARK che usa ontologia trucchi

You are here: Tesi > EarmarkFretta > EarmarkFrettaDiarioDiBordo > TestEARMARKAPI

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Fabio's Wiki? Send feedback