2016-02-25 30 views
5

Sono consapevole che la conversione di RDF in JSON-LD ha alcune limitazioni, ma mi chiedo se ci sia un buon modo per evitare la conversione di nodi vuoti?Controllo della conversione di RDF in "più carino" JSON-LD

Ad esempio, in un grafico RDF:

@prefix ex: <http://example.org/ontology#> . 
<http://example.org/x123> ex:house [ 
             a ex:House ; 
             ex:houseNumber "1a" ; 
             ex:doorColour "blue" 
            ] ; 
          ex:house [ 
             a ex:House ; 
             ex:houseNumber "1b" ; 
             ex:doorColour "green" 
            ] . 

E 'possibile, usando (Java) JSON-LD per imporre la conversione in una rappresentazione basata su array dei bnodes:

{ 
    "id": "http://example.org/x123", 
    "house": [{ 
    "type": "House", 
    "houseNumber": "1a", 
    "doorColour": "blue" 
    }, { 
    "type": "House", 
    "houseNumber": "1b", 
    "doorColour": "green" 
    }], 
    "@context": { 
     "ex": "http://example.org/ontology#", 
     "house": "ex:house", 
     "houseNumber": "ex:houseNumber", 
     "doorColour": "ex:doorColour", 
     "House": "ex:House", 
     "id": "@id", 
     "type": "@type" 
    } 
} 

Piuttosto che qualcosa:

{ 
    "@graph": [ 
    { 
     "@id": "_:b0", 
     "@type": "http://example.org/ontology#House", 
     "http://example.org/ontology#doorColour": "blue", 
     "http://example.org/ontology#houseNumber": "1a" 
    }, 
    { 
     "@id": "_:b1", 
     "@type": "http://example.org/ontology#House", 
     "http://example.org/ontology#doorColour": "green", 
     "http://example.org/ontology#houseNumber": "1b" 
    }, 
    { 
     "@id": "http://example.org/x123", 
     "http://example.org/ontology#house": [ 
     { 
      "@id": "_:b0" 
     }, 
     { 
      "@id": "_:b1" 
     } 
     ] 
    } 
    ] 
} 

Al momento, sto iterando sulle affermazioni nel grafico e nel manu producendo il JSON, ma è possibile farlo usando librerie come java-jsonld o qualche altra tecnica JSON-LD?

risposta

4

È possibile utilizzare l'inquadratura per ottenere ciò. Dai un'occhiata all'esempio di libreria nel parco giochi JSON-LD. Sfortunatamente non è standardizzato, tuttavia varie implementazioni potrebbero non produrre esattamente lo stesso output e/o caratteristiche super diverse

+0

Eccellente! Ho fatto in modo che funzionasse nel modo che volevo con l'implementazione jsonld-java. Mi chiedo se sia possibile anche sopprimere @id e/o altri elementi con l'inquadratura? – brinxmat

+0

No, al momento non è possibile, ma puoi anche alias, ecc. Se preferisci che sia –

+0

Trova qui un [esempio java usando rdf4j e jsonldjava] (http://stackoverflow.com/questions/43638342). – jschnasse