Ich habe eine OWL-Datei mit einer Unterklasse von owl:Thing "Objects"
.Wie schreibe ich eine SPARQL-Abfrage, um die Werte aus einer OWL-Datei zu nehmen
<rdf:RDF xmlns="http://www.semanticweb.org/PredefinedOntology#"
xml:base="http://www.semanticweb.org/PredefinedOntology"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:swrlb="http://www.w3.org/2003/11/swrlb#"
xmlns:swrl="http://www.w3.org/2003/11/swrl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://www.semanticweb.org/PredefinedOntology"/>
Diese Unterklasse besteht aus drei Personen (Door1
, Coridor1
, Window1
) mit DataProperty
Behauptungen (X
und Y
mit den Werten Koordinaten). Einer der Menschen sieht wie folgt aus:
<!-- http://www.semanticweb.org/PredefinedOntology#Door1 -->
<owl:NamedIndividual rdf:about="http://www.semanticweb.org/PredefinedOntology#Door1">
<rdf:type rdf:resource="http://www.semanticweb.org/PredefinedOntology#Objects"/>
<X rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</X>
<Y rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">20</Y>
</owl:NamedIndividual>
ich die Werte des Individuums erhalten müssen (wir Door1
sagen). Wie kann ich das mit SPARQL machen? Ich habe versucht:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?X ?datatype
WHERE {?X rdf:datatype ?datatype}
Aber es scheint wie meine Abfrage ist völlig falsch. Könnte mir bitte jemand erklären, wie man diese Abfrage schreibt (oder sogar wichtiger liest oder denkt), um die Werte X=2
und Y=20
aus der Ontologie zu finden?
Danke
danke sehr! Diese Version hat mir am Anfang einige Fehler beschert, aber dann habe ich sie ein bisschen wie folgt eingestellt: PREFIX my: SELECT? Objekte? X? Y \t WHERE { ? Objekte rdf: Typ Eule: NamedIndividual ; mein: X? X ; mein: Y? Y } und es funktionierte –
Fabi
Tut mir leid für eine dumme Frage, aber: in diesem Fall, wenn ich ein bisschen den Code geändert habe, den Sie mir zur Verfügung gestellt haben, aber Ihre Antwort ist immer noch die richtige, sollte Ich drücke auch auf "Beantworte deine Frage" und füge die Änderungen hinzu? Sorry, ich bin nicht wirklich erfahren in stackoverflow Website) – Fabi
Ich denke, das wäre durchaus akzeptabel. Ein Ziel von SO ist zu erziehen, also wenn Sie etwas zu bieten haben, von dem andere lernen, dann wird es als ein guter Beitrag betrachtet. – scotthenninger