Ich habe Probleme herauszufinden, wie Ressourcen disambiguiert werden, die das gleiche Prädikat im Voraus verwenden. Ich bin ein RDF-Neuling, also bitte entschuldigen Sie meine Terminologie: Ich werde versuchen zu erklären, was ich mit Beispielen meine.Ressourcen mit dem gleichen Prädikat in JSON-LD disqualifizieren
Ich habe eine Interview
Ressource/Modell mit einer (vereinfachten) Kontext wie folgt aus:
{
"id": {
"@id": "http://purl.org/dc/terms/identifier"
},
"interviewers": {
"@id": "http://purl.org/dc/terms/contributor",
"@type": "@id",
"@container": "@set"
},
"title": {
"@id": "http://purl.org/dc/terms/title"
},
"interviewees": {
"@id": "http://purl.org/dc/terms/contributor",
"@type": "@id",
"@container": "@set"
}
}
Mein Interviewer
und Interviewee
Ressourcen haben Kontexten wie folgt aus:
{
"id": {
"@id": "http://purl.org/dc/terms/identifier"
},
"name": {
"@id": "info:repository/ive/name"
}
}
ich eine Ressource dann erstellen, die sieht so aus:
{
"id": "06bad25f-83c1-4ee5-b055-0cb87d4c06be",
"interviewers": [
{
"id": "b0c262ce-7eb3-47f2-b212-a0e71cca0c92",
"name": "Somebody",
"@context": {
...
},
"@id": "urn:uuid:b0c262ce-7eb3-47f2-b212-a0e71cca0c92",
"@type": [
"http://id.loc.gov/vocabulary/relators/ivr"
]
}
],
"title": "Interview with So and So",
"interviewees": [
{
"id": "bd6bb9ec-f417-4f81-af69-e3d191e3f73b",
"name": "A third person",
"gender": "male",
"@context": {
...
},
"@id": "urn:uuid:bd6bb9ec-f417-4f81-af69-e3d191e3f73b",
"@type": [
"http://id.loc.gov/vocabulary/relators/ive"
]
}
],
"@context": {
...
},
"@id": "urn:uuid:06bad25f-83c1-4ee5-b055-0cb87d4c06be",
"@type": [
"info:repository/interview"
]
}
Alles ist gut, und ich kann dieses "Objekt" in meinem Repository speichern (ich verwende RDF.rb-Bibliotheken). Es treten jedoch Probleme auf, wenn ich dann versuche, das Objekt zu extrahieren und es "neu zu serialisieren". Zum Beispiel (den Ruby-Code entschuldigen),
query = repository.query(:subject => RDF::URI(uri))
JSON.parse(query.dump(:jsonld, :context => Interview.context))
extrahieren Diese Zeilen relevante Aussagen aus dem Repository, und sie dann Maische in eine JSON-LD „Ressource“ mit dem entsprechenden Kontext. Sowohl Befragte als auch Interviewer werden jedoch in das Attribut interviewees
verschoben.
Natürlich macht dies durchaus Sinn, da beide interviewers
und interviewees
zur interview
Ressource mit dem dc:contributor
Prädikat verwendet sind (sie von ihren einzelnen Typen nur auszeichnen).
Ich muss den dump
Prozess der zugehörigen Ressourcentypen bewusst machen, aber ich weiß keine Möglichkeit, diese Informationen dem Kontext des Interviews hinzuzufügen.
Ich weiß nicht, ob dies gemäß den aktuellen JSON-LS-Spezifikationen überhaupt möglich ist. This issue scheint, dass es relevant sein könnte, aber ich weiß nicht wirklich genug über RDF/JSON-LD, um sicher zu wissen.
Ich könnte verschiedene Prädikate für interviewers
und interviewees
verwenden, aber es scheint nicht wie ich es tun sollte. Irgendwelche Vorschläge?
Hinweis: Ich habe diese Frage auch unter answers.semanticweb.com gestellt.
WEITERE INFORMATIONEN
Ich habe auf diese Weise meine contributor
Beziehungen modelliert (wo ein interviewer
ist ein contributor
mit einem Typ http://id.loc.gov/vocabulary/relators/ivr
), basierend auf einer der empfohlenen Wege für Eigenschaften DC qualifizieren. Zum Beispiel kann man ein MESH Thema auf einer Ressource wie ausdrücken:
<rdf:Description>
<dc:subject>
<dcterms:MESH>
<rdf:value>D08.586.682.075.400</rdf:value>
<rdfs:label>Formate Dehydrogenase</rdfs:label>
</dcterms:MESH>
</dc:subject>
</rdf:Description>
glaube, ich hatte:
<rdf:Description>
<dc:subject>
<dcterms:MESH>
<rdf:value>D08.586.682.075.400</rdf:value>
<rdfs:label>Formate Dehydrogenase</rdfs:label>
</dcterms:MESH>
</dc:subject>
<dc:subject>
<dcterms:LCSH>
<rdf:value>Formate Dehydrogenase</rdf:value>
</dcterms:LCSH>
</dc:subject>
</rdf:Description>
Ich möchte in der Lage sein, ein lcsh_subjects
„Eigentum“ zu verweisen, wo lcsh_subjects
diejenigen darstellen, Knoten, die mit dc:subject
UND mit dem Typ dcterms:LCSH
zu der Ressource verwandt sind. Ich stelle jedoch fest, dass ich wahrscheinlich über das JSON-LD-Modell falsch nachdenke.
AFAIK der '„@type“:„@id“' bedeutet im Zusammenhang, dass die Eigenschaft einen String-Typ hat, und sein Wert sollte als interpretiert werden IRI. Der "http: // purl.org/dc/terms/contributor" scheint ein Typ (Objekt) und kein Eigenschaftsname (Prädikat) zu sein. Also ich denke dein Kontext ist fehlerhaft. Aber ich bin auch neu in JSON-LD ... – inf3rno
Ich denke, der '@ type' ist das Äquivalent von' rdf: type' und die '@ id' ist äquivalent zum eigentlichen Betreff zumindest durch die Eigenschaftsdefinitionen, aber es ist schwer, etwas darüber zu finden ...: S – inf3rno