2014-11-25 9 views
0

OWL API 및 추론 자 작업에 관한 한 가지 기본적인 질문이 있습니다.유추 및 명시 적 공리를 구분하는 방법은 무엇입니까?

나는 JFact Reasoner를 성공적으로 실행하고 많은 공리 (그 중 일부는 원래의 온톨로지에서 명시 적으로 추론 된 것 중 일부)를 얻었다.

나는 그것들을 구별 할 필요가 있지만 그것을하기위한 어떠한 방법도 찾을 수 없다.

OWLClass에 다른 방법이 있습니까?

답변

1

어설 션 된 공리는 온톨로지에 명시 적으로 존재하기 때문에 추론과 다릅니다.

공리는 온톨로지에 이런 식으로 존재하는 경우가 확인할 수 있습니다

OWLOntology o = ... 
OWLAxiom ax = ... 
boolean asserted = o.containsAxiom(ax); 

참고 : 의미있는 공리 : 공리는 주석이있는 경우, THEIS 방법으로 일치되지 않을 수 있습니다 동일한 주석을 가지고 있지만 서로 다른 주석을 사용하는 경우는 equals()이 아닙니다 (이는 OWL API 결정이 아닌 W3C 사양입니다). 이 경우, 공리가 o.containsAxiomIgnoreAnnotations(ax)으로 주장되는지를 알 수 있습니다.

+0

그게 내가 원했던 것이지만, 더 나은 해결책 (일부 표시 플래그와 같은)을 기대했지만 ...하지만 대부분은 트리플을 확인해야합니다. 이런 식으로 할 수 있습니까? – Hawk

+0

OWL API에서 직접 노출되지는 않으므로 3 단계에서 쉽게 수행 할 수 있습니다. 온톨로지와 공리를 세배로 렌더링하고 포함을 확인해야하며, 서로 다른 ID를 가진 빈 노드를 고려해야합니다. 렌더러 패키지에서 트리플을 스트리밍하는 코드가 있지만 나머지에는 많은 코딩이 필요합니다. – Ignazio