필자는 Protege를 사용하여 작은 온톨로지를 만들었습니다.SPARQL을 사용하는 개인에게 특정 클래스를 표시하려면 어떻게합니까?
클래스 A, 클래스 B 및 클래스 C로 시작합니다. 클래스 C에는 서브 클래스 x, y 및 z가 포함되어 있습니다. 이 온톨로지를 사용하는 개인은 두 클래스에 속합니다. 첫 번째 클래스는 A 또는 B이고 두 번째 클래스는 C의 하위 클래스 중 하나입니다.
속성 H가있는 모든 개체를 검색하려고합니다. x 또는 y 클래스의 일부이지만 z는 포함하지 않습니다. 나는 다음과 같은 쿼리 것을 할 수 있었다 :
SELECT ?individual
WHERE {?individual ont:hasH ?individual.
FILTER(NOT EXISTS { ?individual rdf:type ont:z })}
이 쿼리는 내가 원하는 것을 (ONT 내 온톨로지의 접두사입니다). 그러나이 개인들에게 그들이 x 또는 y 클래스의 일부인지 여부를 알고 싶습니다. X 이후
SELECT ?individual ?class
WHERE {?individual ont:hasH ?individual.
FILTER(NOT EXISTS { ?individual rdf:type ont:z }) ?class rdf:type ont:C}
와 y 내가 선택한 개인의 클래스 C가 무엇인지 알아야 할 사항, 클래스 C에 속하는 : 나는 아무 소용이 다음에 내 쿼리를 변경 시도했습니다. 내가 어떻게 할 수 있니?
가 (. 내가 SPARQL에 완전히 새로운 해요 명심하시기 바랍니다)
이 세부적인 설명에 감사드립니다! '값'키워드는 내가 찾고있는 키워드입니다. – kormak
[SPARQL 1.1 사양] (http://www.w3.org/TR/sparql11-query/)에서 자세한 내용을 볼 수 있습니다. 일반적으로 사용중인 도구의 사양이나 설명서는 최소한으로 훑어 보는 것이 좋습니다. 당신은 그것에 대해 모든 것을 암기 할 필요가 없지만, 문제가 생겼을 때 "나는 내가 여기 * 유용 할 수도있는 것을 보았다고 생각한다"고 말하면서 씨앗을 심는 것이 매우 도움이된다. –