2017-11-26 42 views

답변

1

쿼리가 유효한 SPARQL 쿼리가 아닙니다. 가장 확실한 방법은 단순히 사용하는 것이 다른 가입 :

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbr: <http://dbpedia.org/resource/> 

SELECT ?singer ?wife 
WHERE { 
?x dbo:musicalArtist ?singer. 
?singer dbo:spouse ?wife. 
?wife a dbo:MusicalArtist 
} 

양자 택일로, 당신은 서면으로 트리플 패턴의 존재에 대한 필터를 사용할 수 있습니다

FILTER EXISTS {?wife a dbo:MusicalArtist}

+0

좋아. 이 질문에 대한 답이 나오면 "수락"하는 것을 잊지 마십시오. 이 질문은 완료된 것으로 표시됩니다. – AKSW

0

다음은 쿼리 재를 추구합니다. , 배우자가 음악가가 아니거나 그렇지 않은 음악가.

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbr: <http://dbpedia.org/resource/> 

    SELECT DISTINCT ?musicArtist ?musicArtistSpouse 
    WHERE { 
      ?x dbo:musicalArtist ?musicArtist. 
      ?musicArtist dbo:spouse ?musicArtistSpouse. 
      FILTER(! EXISTS {?musicArtistSpouse a dbo:MusicalArtist}) 
    } 

Live Query Solution Page Link