2016-05-23 15 views
0

Ich habe ein Diagramm, und in diesem Diagramm habe ich eine Liste wie folgt aus:, wie eine Liste in rdf einfügen

:Michelangelo  :representativeFor :Italy; 
       rdfs:label "Michelangelo di Ludovico Buonarroti Simoni"; 
       :birthInfo [:date "1475-03-10"^^xsd:date; :place :Florence]; 
       :sculptorOf [a rdf:List; rdf:first :Pieta; rdf:rest [a rdf:List; rdf:first :David; rdf:rest [a rdf:List; rdf:first :TheLastJudgement; rdf:rest rdf:nil]]]; 
:sculptorOf rdfs:domain :Sculptor; rdfs:range :Sculpture. 

Wenn ich diese Abfrage

select * 
where {:David a ?z} 

ich resourse zu erhalten erwarten setzen und Skulptur. Ich verstehe nicht, warum nicht funktioniert, was soll ich tun?

+1

Ihr Datenbeispiel ist ungültig (speziell die Liste, wie Sie es geschrieben haben, ist nicht legal RDF), Sie könnten dies nie zu einem Sesam-Laden ohne einen Fehler hinzugefügt haben. Dies macht es sehr unklar, was Sie versuchen oder wo genau das Problem ist. Bitte korrigieren Sie Ihr Beispiel, um die Daten anzuzeigen, die Sie _actually_ einfügen, die genaue Abfrage, die Sie verwenden, das erwartete Ergebnis und das tatsächliche Ergebnis. –

+2

habe ich bearbeitet und genau was ich in Sesame hinzugefügt habe. Was ich vorher gepostet habe war, dass ich versuche das Problem zu beheben @JeenBroekstra –

Antwort

2

Ihr Titel ist wie Sie eine Liste in RDF einfügen, aber es sieht aus wie Sie versuchen, abzufragen, wo Ihre Werte in der Abfrage in der Liste in den Daten sind.

Wenn ich Sie richtig verstehe, wollen Sie Davids Typen auf Basis von finden:

:Michelangelo :sculptorOf [a rdf:List; 
          rdf:first :Pieta; 
          rdf:rest [a rdf:List; 
            rdf:first :David; 
            rdf:rest [a rdf:List; 
               rdf:first :TheLastJudgement; 
               rdf:rest rdf:nil]]]; 

und die Domäne und Bereich Axiome:

:sculptorOf rdfs:domain :Sculptor; rdfs:range :Sculpture. 

Dies ist nicht, wie RDF und OWL Arbeit. Michaelangelo hat keine Liste von Dingen gestaltet, er hat verschiedene Dinge geformt. In RDF, würde repräsentieren Sie dies als:

:Michelangelo :sculptorOf :Pieta, :David, :TheLastJudgement . 

Das Kurzschrift ist für drei Tripel:

:Michelangelo :sculptorOf :Pieta . 
:Michelangelo :sculptorOf :David . 
:Michelangelo :sculptorOf :TheLastJudgement . 

Nun, wenn Sie OWL-Inferenz aktiviert haben, werden Sie in der Lage sein, das zu schließen, da David ist das Objekt sculptorOf Assertion, David muss den Typ Skulptur haben. Wenn RDF (S) -Inferenz verfügbar ist, können Sie auch daraus schließen, dass David ein rdfs: Ressource ist.

+0

Eigentlich habe ich diese Liste für Skulpturen benutzt, weil ich an ihrer Position interessiert bin. Die Skulpturen werden in der Reihenfolge ihrer Entstehung in die Liste aufgenommen. Es besteht die Möglichkeit, eine Liste zu verwenden und trotzdem ihren Bereich einzurichten. @ Joshua –