2016-09-05 8 views
0

필자는 Protégé와 OWL로 시작하고 있습니다. 나는 그것이 A와 B의 모든 서브 클래스가 발생하지 않는 것, 서브 클래스는 것을 추론 할 내가 기대 펠릿 추론을 시작하면Pellet 추론자가 하위 클래스 관계를 유추하지 않는 이유는 무엇입니까?

:A rdf:type owl:Class ; 
    rdfs:subClassOf owl:Thing ; 
    owl:disjointWith :B . 

:B rdf:type owl:Class ; 
    rdfs:subClassOf owl:Thing . 

:C rdf:type owl:Class ; 
    rdfs:subClassOf :A ; 
    owl:disjointWith :D . 

:D rdf:type owl:Class ; 
    rdfs:subClassOf :A . 

:E rdf:type owl:Class ; 
    rdfs:subClassOf :B . 

: 난 그냥 같은 Protege는에서 클래스의 관계의 계층을 만들었습니다. 또한 나는 SPARQL 쿼리 SELECT ?subject WHERE { ?subject rdfs:subClassOf owl:Thing}이 모든 클래스 A에서 B까지를 가져올 것이라고 예상했다. 그러나 쿼리는 A와 B만을 반환 할 것이라고 예상했다.

나는 잘못된 것을하고 있는가?

+0

추론자를 선택하고 시작 했습니까? Protégé의 두 가지 메뉴 옵션이 있습니다. – Ignazio

+0

SPARQL 쿼리가 추론자를 사용하지 않을 수 있습니다. 나는 체크 할 필요가있는 옵션이 있는지를 기억할 수 없다. – Ignazio

+0

@Ignazio 예, Pellet을 선택하고 시작 논리를 클릭했습니다. – joseCM

답변

1

Protege에는 여러 개의 SPARQL 플러그인이 있습니다. 추론을 사용하려는 경우 Snap SPARQL Query 플러그인이 사용 방법입니다. 이것은 이 아니고 Protege 배포판에 포함 된 기본 SPARQL 플러그인이 아니라 명시 적으로 설치해야한다는 점에 유의하십시오 (이것은 플러그인 관리자를 통해 매우 간단합니다).

+0

고마워요! 그랬어! – joseCM