Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
ioggstream opened this issue Nov 17, 2021 · 8 comments
Milestone

Comments

@ioggstream
Copy link
Contributor

ioggstream commented Nov 17, 2021

Mi aspetto

  • che per le ontologie, il processo di build degli RDF e dei JSONLD sia automatico e definito
  • che tutti gli altri file vengano generati a partire dai TTL

Note

  • va verificato che i file assemblati funzionin ancora con w3id.org
  • si potrebbe sperimentare a partire da una sola ontologia e testare su quella
  • modifiche sintattiche o di formattazione/serializzazione di JSONLD e RDF non fanno variare la versione dell'ontologia
  • va valutata la possibilità di avere dei linter per il formato turtle in modo da minimizzare i diff
@ioggstream
Copy link
Contributor Author

@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
Copy link
Collaborator

giorgialodi commented Nov 19, 2021

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
Copy link
Contributor Author

ioggstream commented Nov 19, 2021

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

@giorgialodi
Copy link
Collaborator

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
Copy link
Collaborator

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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 ioggstream added this to the ndc-mvp milestone Dec 14, 2021
@ioggstream
Copy link
Contributor Author

ioggstream commented Dec 14, 2021

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 essepuntato/LODE#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
        }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants