Closed valeriosantarelli closed 1 year ago
Oggi con @MariaRosariaFraraccio abbiamo investigato un pò sul problema della specifica di IRI come valore di annotazioni, in particolare per quanto riguarda lo stato attuale del file graphol ed è venuto fuori che di fatto si tratta di un bug, quindi possiamo risolvere questa mancanza in breve tempo prima della release v4.0 con il nuovo formato graphol.
Riporto di seguito il problema riscontrato per riferimento.
In sostanza allo stato attuale (v3) graphol supporta già la specifica delle IRI come valori di annotazioni, la quale mancanza infatti appariva molto insolita (ma solleva il problema della mancanza di un documento di specifica del file graphol che appena risolto vorrei creare come pagina wiki per riferimenti futuri), in particolare sia parser che serializzatore del formato possono gestirli. Ciò si può vedere ad esempio considerando il seguente progetto graphol:
<?xml version="1.0" encoding="UTF-8"?>
<graphol version="3">
<project name="TestProject" version="1.0">
<ontology iri="https://example.org/test/">
<imports/>
<prefixes/>
<datatypes/>
<languages/>
<facets/>
<annotationProperties>
<annotationProperty>https://example.org/test/wikiURL</annotationProperty>
</annotationProperties>
<iris>
<iri>
<value>https://example.org/test/C</value>
<annotations>
<annotation>
<subject>http://example.com/annotation/C</subject>
<property>https://example.org/test/wikiURL</property>
<object>
<iri>https://example.org/test/wiki/C</iri>
</object>
</annotation>
</annotations>
</iri>
</iris>
</ontology>
<diagrams>
<diagram name="d" width="5000" height="5000">
<node id="n2" type="concept" color="#fcfcfc">
<geometry width="110" y="30" height="50" x="400"/>
<iri>https://example.org/test/C</iri>
<label width="110" y="30" customSize="0" height="23" x="400" size="12"/>
</node>
</diagram>
</diagrams>
</project>
</graphol>
dove il concetto C
ha come valore dell'annotazione wikiURL
una IRI. Se si apre questo progetto con la v3.4 l'annotazione viene riconosciuta correttamente, e il salvataggio dopo modifiche la preserva.
Il bug si riscontra se si tenta di modificare l'annotazione con IRI, in quanto l'interfaccia la trasforma silenziosamente in un letterale.
L'altro aspetto che riguarda l'enhancement è invece l'impossibilità di specificare le IRI come oggetto di annotazioni, il che richiede l'implementazione nell'interfaccia grafica.
Ok, ottimo. Allora l'intervento si riduce sensibilmente, e possiamo procedere con la versione 3.5. In effetti questo è l'unico task che ha un carattere di relativa urgenza.
Al momento non sembra possibile da Eddy definire una annotazione il cui valore sia non un letterale, ma una IRI.
Ad esempio, definire un assioma come l'ultimo visualizzato in questo screenshot,![assioma 18](https://user-images.githubusercontent.com/8250758/165535640-0b69df86-8765-4757-83cb-3964a0b3f7de.png)
dove
prov:wasAssociatedWith
è una AnnotationProperty.Da Protégé questo è possibile farlo dalla maschera delle annotazioni, andando sul tab EntityIRI o IRIEditor: