2017-01-23 9 views
0

LUBM 벤치 마크를 실행하려고하지만 추론 후 분류에 문제가 있습니다. 내가 사용하고하위 클래스의 멤버가 LUBM 벤치 마크에서 수퍼 클래스의 멤버로 분류되지 않았습니다.

파일은 다음과 같습니다

The main ontology

The output of the LUBM generator 1.7

문제는 GraduateStudentUndergraduateStudent의 회원이 슈퍼 클래스 Student의 구성원으로 분류되지 않는 것입니다.

Protege 5.0에서 Pellet, Hermit 및 Fact reason을 시도했지만 모두 실패했습니다. 따라서 벤치 마크 SPARQL 쿼리 번호 10도 실패했습니다.

#-- Query10 
#-- This query differs from Query 6, 7, 8 and 9 in that it only requires the 
#-- (implicit) subClassOf relationship between GraduateStudent and Student, i.e., 
#-- subClassOf rela-tionship between UndergraduateStudent and Student does not add 
#-- to the results. 

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#> 

SELECT ?X WHERE { 
    ?X rdf:type ub:Student . 
    ?X ub:takesCourse <http://www.Department0.University0.edu/GraduateCourse0> 
} 

당신은 여기 내 제자 분류의 스크린 샷을 찾을 수는 (미안 해요 직접 사진을 게시 할 수있는 충분한 명성을 가지고).

Protege는에

screenshot

4.3 분류는 펠렛과 은둔과 함께 작동하지만 SPARQL 쿼리는 여전히 실패합니다.

추론 된 모든 지식을 표시하도록 추론 설정을 이미 수정했기 때문에 추론 설정이 숨겨져있는 것이 아닙니다.

이 동작은 매우 혼란 스럽습니다. 특히 검증 된 벤치 마크가 있어야합니다. 나는 거기에 아주 사소한 해결책이 있다고 생각하지만, 그것을 찾을 수 없다, 그래서 어떤 도움을 많이 주시면 감사하겠습니다!

편집 : 벤치 마크를 실행하는 데 성공했습니다. 나는 수동으로 TBox 안에있는 ABox (내가 생성기에서 얻은 것)의 xml 코드를 복사했다. 이런 식으로 분류는 Protege 4와 API를 통해 작동합니다. 또한 SPARQL 쿼리는 여기에 제안 된대로 SPARQL 스냅을 사용하여 작동합니다. 분류는 여전히 Protege 5에서 작동하지 않습니다. 나는 이것이 무엇을 일으켰는지 궁금합니다.

+0

Protege와 함께 제공되는 Snap SPARQL 플러그인이 아니라 Snap SPARQL 플러그인을 사용해야합니다. – AKSW

답변

1

생성자만으로는 쿼리의 하위 집합 (쿼리 1-3 및 14)에 응답하기에 충분한 데이터 만 생성합니다. SPARQL 시스템이 모든 쿼리에 응답하기 위해서는 유추를 적용해야합니다. 이것이 어떻게 구현되는 것입니까? 또한 많은 시스템에서 유추는 기본적으로 해제되어 있으므로 활성화해야합니다.

사용중인 시스템에 따라 시스템에 연결된 주요 온톨로지를 제공하고 필요한 적절한 설정을 활성화해야 할 수 있습니다.

Protege에서 SPARQL 쿼리가 유추 된 지식을 고려하지 않았지만 protege를 사용한 적이 없기 때문에 특정 도구에 대해서는 언급 할 수 없습니다.

+0

동의합니다. 당신이 지적했듯이, Query 10은 'GraduateStudent'와 그 구성원을 '학생'으로 분류해야하기 때문에 추론 후에 만 ​​수행 할 수 있습니다. 대신에 GraduateStudent 클래스가 정확하게 분류되었지만 그 멤버는 no이므로 SPARQL 쿼리가 실패합니다. 문제는 추론 할 때 발생하며 일부 IRI 문제로 인한 것일 수 있습니다. 또한 펠렛을 사용하여 올빼미 API에서 동일한 작업을 시도했지만 비슷한 결과가 나타납니다. 아마 Protegé의 문제는 아닙니다. 벤치 마크를 해본 적이 있다면 어떻게로드 했습니까? –

+0

Protege와 함께 제공되는 스냅 SPARQL 플러그인이 아니라 스냅 SPARQL 플러그인을 사용해야합니다. – AKSW