2015-08-03 18 views
5

Wie definieren Sie einige Eigenschaften als "optional" im JSON-LD-Kontext?JSON-LD Framing mit optionalen Eigenschaften?

Ich habe ein einfaches Beispiel für das Problem erstellt. Hier ist das gleiche example in JSON-LD Playground. Dies ist das Beispiel Daten:

{ 
    "@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" 
     } 
     ] 
    } 
    ] 
} 

Ich möchte die Organisation die Hauptknoten, wie zum Beispiel sein:

foaf: Organisation

  • Mitglied: [{Person}, {Person}

    ]
  • Fonds: [{Projekt}, {Projekt}]

Um solche stucture zu erstellen i erstellt Rahmen:

{ 
"@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": {} 
} 

Das Problem ist jetzt, dass foaf: member „null“ zu sein, stellt sich heraus, und wenn Sie in der Person Instanzen diese Projekt Beziehungen Projekte eingebettet entfernen lassen. stattdessen

Antwort

4

es mit diesem Rahmen versuchen:

{ 
    "@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

Sein im JSON-LD Spielplatz zu arbeiten, aber nicht mit der JSON-LD-Java-Bibliothek aus irgendeinem Grunde. – amiika

+0

Aber DANKE trotzdem, ich denke es sollte auch mit JSONLD-JAVA funktionieren. – amiika