2015-08-03 11 views
5

Come definire alcune proprietà come "facoltativo" nel contesto JSON-LD?Framing JSON-LD con proprietà opzionali?

Ho creato un semplice esempio del problema. Ecco lo stesso example in JSON-LD Playground. Questi sono i dati esempio:

{ 
    "@context": { 
    "ex": "http://example.org/ex#", 
    "foaf": "http://xmlns.com/foaf/0.1/", 
    "frapo": "http://purl.org/cerif/frapo/", 
    "owl": "http://www.w3.org/2002/07/owl#", 
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", 
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#", 
    "xsd": "http://www.w3.org/2001/XMLSchema#" 
    }, 
    "@graph": [ 
    { 
     "@id": "ex:Organization_1", 
     "@type": "foaf:Organisation", 
     "foaf:member": [ 
     { 
      "@id": "ex:Person_1" 
     }, 
     { 
      "@id": "ex:Person_2" 
     } 
     ], 
     "frapo:funds": [ 
     { 
      "@id": "ex:Project_1" 
     }, 
     { 
      "@id": "ex:Project_2" 
     } 
     ] 
    }, 
    { 
     "@id": "ex:Person_2", 
     "@type": "foaf:Person", 
     "foaf:currentProject": { 
     "@id": "ex:Project_2" 
     }, 
     "foaf:name": "Jack" 
    }, 
    { 
     "@id": "ex:Project_2", 
     "@type": "foaf:Project", 
     "foaf:name": "Small project 2" 
    }, 
    { 
     "@id": "ex:Project_1", 
     "@type": "foaf:Project", 
     "foaf:name": "Big project 1" 
    }, 
    { 
     "@id": "ex:Person_1", 
     "@type": "foaf:Person", 
     "foaf:name": "Bill", 
     "foaf:pastProject": [ 
     { 
      "@id": "ex:Project_1" 
     }, 
     { 
      "@id": "ex:Project_2" 
     } 
     ] 
    } 
    ] 
} 

Voglio l'Organizzazione per essere il nodo principale, come ad esempio:

foaf: Organizzazione

  • membro: [{persona}, {persona} ]

  • fondi: [{progetto}, {progetto}]

Al fine di creare tale stucture ho creato telaio:

{ 
"@context": { 
    "ex": "http://example.org/ex#", 
    "foaf": "http://xmlns.com/foaf/0.1/", 
    "owl": "http://www.w3.org/2002/07/owl#", 
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", 
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#", 
    "xsd": "http://www.w3.org/2001/XMLSchema#", 
    "frapo": "http://purl.org/cerif/frapo/" 
}, 
"@type": "foaf:Organisation", 
"foaf:member": { 
"foaf:currentProject": { 
    "@embed": false 
}, 
"foaf:pastProject": { 
    "@embed": false 
} 
}, 
"frapo:funds": {} 
} 

Ora il problema è che foaf: membro risulta essere "nulla", e se si rimuove quei rapporti di progetto progetti ottenere incorporato nei casi Person.

risposta

4

provare con questo telaio, invece:

{ 
    "@context": { 
     "ex": "http://example.org/ex#", 
     "foaf": "http://xmlns.com/foaf/0.1/", 
     "owl": "http://www.w3.org/2002/07/owl#", 
     "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", 
     "rdfs": "http://www.w3.org/2000/01/rdf-schema#", 
     "xsd": "http://www.w3.org/2001/XMLSchema#", 
     "frapo": "http://purl.org/cerif/frapo/" 
    }, 
    "@type": "foaf:Organisation", 
    "foaf:member": { 
     "foaf:currentProject": { 
      "@default": [], 
      "@embed": false 
     }, 
     "foaf:pastProject": { 
      "@default": [], 
      "@embed": false 
     } 
    }, 
    "frapo:funds": {} 
} 
+0

Il suo lavoro nel parco giochi JSON-LD, ma non con la libreria JSON-LD-JAVA per qualche ragione. – amiika

+0

Ma GRAZIE comunque, credo che dovrebbe funzionare anche con JSONLD-JAVA. – amiika