2017-11-15 1 views
0

내 자신의 온톨로지에서 SPARQL로 쿼리되는 모든 것에 큰 접두어가 붙은 이유가 궁금합니다.SPARQL RDF 접두어

나는이 모든 아주 새로운, 그래서 아마 뭔가 잘못하고 있지만,

base <http://kasperrt/interests.ttl#> 
prefix interests: <http://kasperrt.no/interests.ttl> 

SELECT DISTINCT ?class ?s ?a 
WHERE { 
    ?s a ?class . 
} 
LIMIT 25 
OFFSET 0 

왜 모든이 http://www.semanticweb.org/kasperrt/ontologies/2017/10/untitled-ontology-7 같은 것들로 시작되는이 쿼리를 실행하는거야?

왜이 쿼리가 아무것도 반환하지 않습니까?

base <http://kasperrt/interests.ttl#> 
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
prefix interests: <http://kasperrt.no/interests.ttl> 

SELECT DISTINCT ?interest1 ?interest2 ?name1 ?name2 
WHERE { 
    ?interest1 
     rdfs:label ?name1; 
     interests:Location ?location1. 

    ?interest2 
     rdfs:label ?name2; 
     interests:Location ?location2. 


    filter(?location1 != ?location2) 

} 
+1

흠,이 네임 스페이스로 온톨로지를 작성했기 때문에? 온톨로지에이 네임 스페이스가있는 클래스가 포함되어있는 경우 쿼리의 결과로 얻을 것으로 예상되는 것은 무엇입니까? 속성의 클래스, 속성 및 개인 같은 엔터티는 URI로 식별된다는 것을 알고있을 것입니다. – AKSW

+0

첫 번째 쿼리에서'? a'는 무엇입니까? 변수 만 선택할 수 있으며, 트리플 패턴에서'a'는'rdf : type'의 바로 가기이므로 변수가 아닙니다. – AKSW

+0

두 번째 쿼리는 우리가 모르는 데이터와 일치하지 않기 때문에 아무 것도 반환하지 않습니다. 그리고 접두사 선언은 틀린 것입니다. 당신은 네임 스페이스가'http : // www.semanticweb.org/kasperrt/ontologies/2017/10/untitled-ontology-7'라고 말했습니까? 그렇다면 왜 다른 네임 스페이스를 사용합니까? 온톨로지가 첫 번째 쿼리에서 이미 인식 한 다른 접두사를 사용하는 경우 네임 스페이스는 파일 이름이 아닙니다. – AKSW

답변

0

AKSW에서 말한 것처럼 접두사 선언이 잘못 정의되어 쿼리에 결과가 반환되지 않는 문제가있었습니다.

onotology IRI가 쿼리에 지정되지 않았습니다. Protégé를 올바르게 사용할 때 리팩토링하는 것을 기억하십시오 (Stanislav Kralin이 말했듯이).

관련 문제