2016-09-10 2 views
0

입력 N + 1 항목에 N이 역할/OWLObjectProperty이고 마지막 항목이 개념/OWLClass입니다. 문제는 내가 입력 (A, B, C)을 고려,이 같은 OWLClassExpression을 생산해야한다는 것입니다 : 만 2 개 역할이 있기 때문에OWLAPI 재귀 적 공리

OWLClassExpression axiom = factory.getOWLObjectSomeValuesFrom( factory.getOWLObjectProperty("#a") , factory.getOWLObjectSomeValuesFrom(factory.getOWLObjectProperty("#b", C)); 

이 쉽게,하지만 나는 일반 필요 나는 사용자의 입력을 예측할 수 없으므로 N 개의 역할에 대한 솔루션을 제공합니다. 공리는 중첩 될 것입니다. 그러나 그런 구조를 구축 할 수있는 가능성이 있는지는 잘 모릅니다.

답변

0

가능합니다 - C를 식을 재귀 적으로 작성하는 메서드 호출로 바꿀 수 있습니다. 또는이를 목록으로 줄일 수도 있습니다. 예를 들어, 공리 레버 (C)에서 시작하여 이전에 생성 된 객체를 새 클래스 표현식에 래핑하여 역순으로 탐색하는 속성 목록입니다.

그러나 owl API에는 유틸리티 클래스가 없으므로 코드를 처음부터 다시 작성해야합니다.