2017-02-17 10 views
0

Jena API를 사용하여 Protege에서 작성한 것과 비슷한 OWL 온톨로지 계층 구조를 만들려고합니다. 나는 올빼미의 서브 클래스 얻을 수있는 두 가지 방법을 시도 : 것을 다음 listHierarchyRootClasses() Jena를 사용한 OWL 온톨로지 계층 (복합 클래스 사용)

를 사용하여 (참) listSubClasses

  • 을 사용하여 다음 단계 :

    1. 에 대한 재발 그들은 모두 owl : Thing과 같이 rdfs : subClassOf를 가진 OWL 클래스에서 작업했습니다. 그러나 OWL 복합 클래스 (owl : unionOf, owl : intersectionOf 및 owl : complementOf)의 경우 첫 번째 메서드는 아무 것도 나열하지 않았습니다. 두 번째 방법의 결과가 Protege만큼 정확하지는 않지만. Protege보다 Owl : Thing의 하위 클래스가 더 자주 포함됩니다.

      누군가가 Jena API의 제한 사항이라고 말했습니다. 사실입니까? Jena 대신 OWL API를 사용해야합니까? 당신의 충고를하고 싶습니다.

  • 답변

    0

    누락 된 부분은 추론 자입니다. 추론자를 사용하여 하위 클래스 관계를 추론하지 않으면 완전한 결과를 얻을 수 없습니다. 이것은 Jena와 OWL API 모두에 해당됩니다.

    +0

    감사합니다. Igazio! 나는 Jena의 내장 추론을 시도했다. 결과가 더 좋습니다. 그러나 Protege의 결과와는 다릅니다. 누군가는 Protege가 가벼운 추론자를 사용하여 온톨로지의 계층 구조를 보여줍니다 (단언 모드에서). 내 질문은 : Protege와 같은 계층 구조를 사용하려면 어떤 추론자가 필요합니까? – becksloc

    +0

    Protégé는 표시 모드에서 표시기를 사용하지 않으므로 몇 가지 하드 코드 된 규칙을 사용합니다. 복제하는 유일한 방법은 해당 코드를 찾아 복사하는 것입니다 ... – Ignazio

    +0

    Protege do의 일부 플러그인으로 Protege-OWL API를 사용해야합니다. 다시 한 번 감사드립니다! – becksloc