2013-10-22 2 views
0

Java에서 OWL에 대해 배우기 시작 했으므로 OWL API, Apache Jena 및 Protege를 포함하여 일부 내용을 읽었습니다. 올빼미 클래스를 원하지만 OWL API에서는 입력 된 IRI를 반환합니다.Java에서 OWL 클래스 찾기

여기에 과정이 있습니다 : '경감'의 단어 인 '아름다움'을 찾고 계시고 '경위'는 '보호자'의 하위 클래스입니다. 현재 내 프로그램에서 출력은 뷰티 자체의 IRI입니다. Inspector IRI와 Guardian IRI를 얻고 싶었습니다. 어떤 도움/가이드는 이해할 수있을 것이다

, 감사합니다 :)

+0

"작성한 코드 관련 문제는 질문 자체에 특정 문제를 설명하고이를 재현 할 수있는 유효한 코드가 있어야합니다 (SSCCE.org 참조)." 코드를 보지 않고도 "코드가 틀렸음"이외의 다른 것을 말하기는 어렵지 만 매우 건설적인 것은 아닙니다. "현재 나의 프로그램에서 출력물은 뷰티 자체의 IRI입니다. IRI와 IRI의 Inspector를 얻고 싶었습니다." 네가 원하는 프로그램이 아닌 것 같다. :) –

+0

"올빼미에서 수업을 듣고 싶지만 OWL API에서는 입력 된 IRI를 반환합니다." Java는 정적으로 타입이 지정된 언어이므로 반환 유형이 OWLClass 인 메소드가 있으면 실제로 IRI를 반환하지는 않습니다. 코드가 컴파일되지 않습니다. OWLClass를 받아야한다고 생각하고 IRI를 즐기고 있다고 생각하는 결과를 _ 인쇄하고 있다는 것을 의미합니까? 아마도 toString이 OWLClass에 구현 된 방법 일 것입니다. 사용중인 코드, 실제로 생성되는 출력 및 예상 한 (또는 원하는) 출력을 표시하십시오. –

답변

2

당신이 OWLIndividual있는 경우에, 당신은 것 중 하나가이 유형의 집합을 얻을 수 getTypes를 호출 할 수 있어야한다 네가 묘사하고있는 수업. 기본 toString 메서드는 일부 OWL API 클래스에서 해당 개체의 IRI를 표시 할 수 있으므로 개체 또는 클래스를 인쇄하면 해당 IRI를 문자열로 인쇄하는 것처럼 보일 수 있습니다. getTypesOWLClassExpressions 집합을 반환하고 그 중 하나가 있다면 asOWLClass을 사용하여 해당 클래스를 얻은 다음 getSuperClasses을 사용하여 클래스 계층 구조를 살펴보십시오. Ignazio pointed out in the comments으로 클래스 표현식이 익명이 아닌 경우에만 asOWLClass을 호출해야합니다. 완료 될 수있는 수퍼 클래스 목록을 얻으려면 OWL API와 함께 내장 된 추론자가 아닌 OWL과 관련하여 완전한 추론자를 사용해야합니다.

+1

[asadLClass()'가 [javadoc] (http://owlapi.sourceforge.net/javadoc/org/)에서 언급 한 것처럼 isAnonymous()가 해당 객체에 대해 false를 반환하는 경우에만 호출 할 수있는 경고를 추가합니다. semanticweb/owlapi/model/OWLClassExpression.html). 또한, 'OWLReasoner'가 없다면 OWL API는 결과의 완전성을 보장하지 못할 것이다. 그러한 추론 자의 목록은 [여기] (https://github.com/owlcs/owlapi/wiki/Reasoners,-OWL-API-Support,-papers-about-the-OWL-API)입니다. – Ignazio

+0

좋은 지적, 좋은 캐치! 나는 OWL API 사용자가별로 아니다. Javadocs를 어디에서 찾을 지 알기 때문에 모든 경고를 항상 포착하지는 않습니다. –

+0

nice mr joshua, 단계 설명으로 단계를 주셔서 감사합니다, 지금은 내가 원하는 것을 찾을 수 있습니다 :) –