italia / daf-ontologie-vocabolari-controllati

Elenco di ontologie e vocabolari controllati. Per maggiori informazioni, si veda il readme principale e quello di singoli vocabolari/ontologie, ove presente, e la seguente documentazione
https://github.com/italia/daf-ontologie-vocabolari-controllati/wiki
Creative Commons Attribution 4.0 International
82 stars 52 forks source link

Ontologie: definire processo di build di RDF e jsonld a partire dal turtle #111

Open ioggstream opened 2 years ago

ioggstream commented 2 years ago

Mi aspetto

Note

ioggstream commented 2 years ago

@giorgialodi come mai in alcuni jsonld c'è direttamente il grafo, eg Ontologie/Project/latest/Project-AP_IT.jsonld

-[
-  {
-    "@id": "_:genid1",
-    "@type": [
-      "http://www.w3.org/2000/01/rdf-schema#Datatype"
-    ],
-    "http://www.w3.org/2002/07/owl#oneOf": [
-      {

ed in altre c'è anche il contesto?


{
  "@context": ...,
  "@graph": [...]
}

Possiamo standardizzare serializzando tutto con @context e @graph ?

giorgialodi commented 2 years ago

I json-ld di tutte le ontologie e i vocabolari controllati sono sempre stati generati attraverso convertitori automatici o usando il formato json-ld di editor come protégé, partendo dal turtle. I diversi modi quindi dipendono quasi sempre da questi strumenti.

ioggstream commented 2 years ago

Mi confermi che sono equivalenti? Nel caso rigeneriamo usando - quando possibile - algoritmi di canonicalizzazione, eg. https://www.w3.org/TR/xml-exc-c14n/

giorgialodi commented 2 years ago

Equivalenti tra loro dici quei due che citavi sopra? Se sì, dovremmo verificarlo con dei validatori json-ld, ma se i json-ld sono generati da convertitori disponibili allo stato dell'arte, qual è precisamente il problema? Altro punto è io personalmente preferisco la struttura context e graph perché più chiara.

giorgialodi commented 2 years ago

Tra l'altro @ioggstream, rileggendo questo:

_ogni modifica di questo tipo, aumenta la versione dell'ontologia, quindi si crea una nuova versione dove RDF e JSONLD sono generati__

Direi proprio di no perché la versione nuova dell'ontologia dipende solo dal suo contenuto non dalla serializzazione. Quindi se aggiungo elementi all'ontologia allora si crea nuova versione, se devo correggere typos, non c'è nuova versione, se devo produrre altre serializzazioni, la versione non c'entra

ioggstream commented 2 years ago

la versione nuova dell'ontologia dipende solo dal suo contenuto non dalla serializzazione se devo correggere typos, non c'è nuova versione

Ok, questo lo aggiungiamo alle policy!

ioggstream commented 2 years ago

In #113 i file rdf e jsonld sono ora validi e generati a partire dal turtle. Nessuna modifica all'ontologia, quindi la versione resta la stessa.

ioggstream commented 2 years ago

Nota: esistono diversi modi equivalenti di serializzare i file RDF, ma le applicazioni di rendering non li supportano tutti. In particolare LODE usa xslt per processare/visualizzare i dati, e non riesce quindi a processare correttamente le entry nidificate. Vedi https://github.com/essepuntato/LODE/issues/36

Per la serializzazione su Ontopia via rdflib va usato il parametro max_depth=1 col serializzatore pretty-xml.

from rdflib import Graph
g = Graph()
g.parse("file.ttl")
g.serialize(format="pretty-xml", max_depth=1, destination="file.rdf")

I parametri da passare per i json-ld sono

{
"format": MIME_JSONLD, 
        "auto_compact": True,
        "context_data": True
        }