2016-08-08 7 views
1

に私はSPARQLに新たなんです。は、SPARQLクエリ

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
SELECT * FROM <http://purl.obolibrary.org/obo/merged/DOID> WHERE { 
    ?nodeID owl:annotatedSource <http://purl.obolibrary.org/obo/DOID_11330>. 
    #?nodeID rdf:type owl:Annotation. 
    ?nodeID owl:annotatedProperty ?annotatedProperty. 
    ?nodeID owl:annotatedTarget ?annotatedTarget. 
    ?nodeID ?aaProperty ?aaPropertyTarget. 
    OPTIONAL {?annotatedProperty rdfs:label ?annotatedPropertyLabel}. 
    OPTIONAL {?aaProperty rdfs:label ?aaPropertyLabel}. 
    FILTER (isLiteral(?annotatedTarget)). 
    FILTER (not exists {?aaProperty in(owl:annotatedSource, rdf:type, owl:annotatedProperty, owl:annotatedTarget) 
    })} 

- - 私はこのクエリを実行しようとしているが、私はこのエラーを持って、私が何をするか分かりません。私を助けてください。ありがとう。

Encountered " "in" "in "" at line 13, column 41. 
Was expecting one of: 
    <IRIref> ... 
    <PNAME_NS> ... 
    <PNAME_LN> ... 
    <VAR1> ... 
    <VAR2> ... 
    "a" ... 
    "distinct" ... 
    "multi" ... 
    "shortest" ... 
    "(" ... 
    "!" ... 
    "^" ... 
+1

何が存在しないのですか?あなたの価値はあなたが言及したリストの一つではないことを言おうとしていますか? – Artemis

答えて

4

、NOT EXISTSは、グラフのパターンを期待しています。あなたが望むのはおそらく(ちょうど推測されている)

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

SELECT * 
FROM <http://purl.obolibrary.org/obo/merged/DOID> 
WHERE 
    { ?nodeID owl:annotatedSource <http://purl.obolibrary.org/obo/DOID_11330> . 
    ?nodeID owl:annotatedProperty ?annotatedProperty . 
    ?nodeID owl:annotatedTarget ?annotatedTarget . 
    ?nodeID ?aaProperty ?aaPropertyTarget 
    OPTIONAL 
     { ?annotatedProperty rdfs:label ?annotatedPropertyLabel} 
    OPTIONAL 
     { ?aaProperty rdfs:label ?aaPropertyLabel} 
    FILTER isLiteral(?annotatedTarget) 
    FILTER (?aaProperty NOT IN (owl:annotatedSource, rdf:type, owl:annotatedProperty, owl:annotatedTarget)) 
    }