2017-02-18 14 views
0

난 이미 SWRLAPI의 SWRLBuiltInBridge 구성 요소와이를 달성했습니다 https://github.com/protegeproject/swrlapi/wiki/SWRLBuiltInBridge커스텀 SWRL 빌트인을 사용하여 Pellet 2.4.0을 확장하는 방법은 무엇입니까?

하지만, 내 자바 코드 나는 또한 OWLAPI으로 펠렛 리즈를 사용합니다. 추론자를 사용할 때마다 알 수없는 기본 제공 SWRL 규칙을 발견하면 경고가 생성됩니다. 추론기에서 규칙 검사를 사용하지 못하게하고 규칙을 실행할 때마다 SWRLAPI를 사용할 수 있음을 알고 있습니다.

하지만 그건 비현실적 인 것처럼 보입니다 ... 추론을 사용하기 전에 모든 온톨로지 수정 후에 규칙을 실행해야하기 때문에.

는이 질문에 탐구 블로그 페이지를 본 적이 있지만 오래된 될 수 있습니다 https://semwebguy.wordpress.com/2011/01/04/how-to-extend-pellet2-2-2s-swrl-built-in-support-with-your-custom-built-in/

또한, 만드는 방법 A (그에 따라 블로그)에-내장과 비교했을 때 다른 SWRLAPI (Abox 객체는 예를 들어 인수입니다).

다른 방법이 있습니까? 또는 Pellet과 SWRLBuiltInBridge를 연결할 수 있습니까?

+0

내가 아는 한, 해당 기능에 대한 단위 테스트 사례는 없습니다. 코드입니다. 작업 코드를 얻는다면 그 코드에서 테스트를 유도하는 것이 좋을 수도 있고 functionnality가 오랫동안 지원하지 않을 수도 있습니다. – Galigator

답변

0

펠렛 추론 기는 SwrlApi를 사용하지 않습니다. Pellet이 내장/구현하는 방법은 SwrlApi와는 아주 거리가 있습니다. 각 내장 함수는 추론 자 (ABox)의 내부 데이터 구조와 상호 작용해야하며 ATerm의 객체를 사용하여 수행해야합니다.

하지만해야 할 일은 항상 가능한 해킹입니다. 예를 들어 on the method testSpecialBuitIn()을 수행 할 수 있습니다.

그들은 키는이 방법을 사용 buildIn 사용자 정의를 추가하는 것입니다 : 당신의 내장이 올바른지 BuiltInRegistry.instance.registerBuiltIn.

경우 더 필요 아무것도 없다.

이 솔루션은 .core를 사용하지 마십시오. 인터페이스가없는 Pellet 모듈; 따라서 경고없이 하나의 버전에서 다른 버전으로 양식/동작이 변경 될 수 있습니다.