2014-12-15 3 views
-2

나는 이런 식으로 쿼리 할 때 :SPARQL - 개인별 선택 방법?

SELECT ?subject ?object WHERE { ?subject ont:has_author ?object} 

내가 결과를 얻을 수 있습니다

subject:harry potter,object:J.K. Rowling 

(참고 : JK 롤링이 클래스의 개별입니다.)

을하지만 이런 식으로 쿼리 할 때 나는 결과를 얻지 못한다.

SELECT ?subject WHERE { ?subject ont:has_author J. K. Rowling } 

왜 그런가?

+1

환경에 대한 자세한 정보를 제공하는 것이 좋습니다. 누구든지 당신의 문제를 재현 할 수 있습니다. 예 : 귀하의 온톨로지는 무엇입니까? 어디서 어떻게 보관합니까? 등등 ... –

답변

-1

은 개인 J. K. Rowling의 이름 공간을 지정하지 않았기 때문일 수 있습니다.

나는 것 두 가지 옵션이 있습니다 쿼리에

SELECT ?subject WHERE { ?subject ont:has_author ont:"J. K. Rowling"} 
+0

이 질의는 합법적 인 SPARQL 문법이 아니다 :'ont : "J.K. Rowling"은 URI 나 문자 그대로의 값에 대한 법적 표기법이 아니다. –

+0

예, 맞습니다. 고맙습니다! – tiger

0

이 될 것으로 기대합니다. 하나는 @ fopa-léon-constantin이 말합니다.

J. K. Rowling의 URI를 요청하거나 J. K. Rowling의 이름 (리터럴)을 검색 할 수 있습니다.

어떤 종류의 SPARQL 쿼리 엔진을 사용 하느냐에 따라 조금씩 다르지만 여기에는 두 가지 예가 나와 있습니다. 첫 번째 것은 J. K. Rowling에게 URI가있는 것에 달려 있습니다.

SELECT ?subject WHERE { ?subject ont:has_author ont:J_K_Rowling} 

두 번째는 이름으로 문자열을 검색하려는 경우에 수행됩니다.

SELECT ?subject 
WHERE { 
     ?subject ont:has_author ?author 
     FILTER (str(?author) = "J. K. Rowling") 
} 

사용중인 온톨로지를보고 어떤 접근법을 사용해야하는지 알고 있어야합니다. ont:has_author에 리터럴 또는 URI가있는 객체가 정의되어 있습니다.

+1

답변 해 주셔서 감사합니다. 나는이 문제를 해결했다. – tiger