2017-04-19 6 views
0

OWL 및 SWRL API가있는 Maven 프로젝트를 빌드 중입니다. 나는 아래의 코드를 사용하여 .owl 파일에 저장된 모든 규칙을 검색 할 :SWRL API 오류 : SWRL 규칙 엔진이 등록되어 있지 않습니다.

import org.semanticweb.owlapi.apibinding.OWLManager; 
import org.semanticweb.owlapi.model.OWLOntology; 
import org.semanticweb.owlapi.model.OWLOntologyCreationException; 
import org.semanticweb.owlapi.model.OWLOntologyManager; 
import org.swrlapi.core.SWRLAPIRule; 
import org.swrlapi.core.SWRLRuleEngine; 
import org.swrlapi.factory.SWRLAPIFactory; 

import java.io.*; 
import java.util.Set; 

public class ManagingRules { 

    public static void main(String[] args) throws OWLOntologyCreationException { 

     OWLOntologyManager m = OWLManager.createOWLOntologyManager(); 
     OWLOntology ontology = m.loadOntologyFromOntologyDocument(new File("pwidasFinale.owl")); 

     //taking SWRLs list 
     SWRLRuleEngine ruleEngine = SWRLAPIFactory.createSWRLRuleEngine(ontology); 

     // Get SWRL rules 
     Set<SWRLAPIRule> sets = ruleEngine.getSWRLRules(); 

     for(SWRLAPIRule item : sets){ 
      System.out.println(item.toString()); 
     } 
    } 
} 

에는 컴파일 오류가 없습니다. 하지만이 클래스를 실행할 때이 알림이 나타납니다.

Exception in thread "main" org.swrlapi.exceptions.NoRegisteredSWRLRuleEnginesException: no registered SWRL rule engines 
    at org.swrlapi.factory.DefaultSWRLRuleAndQueryEngineFactory.createSWRLRuleEngine(DefaultSWRLRuleAndQueryEngineFactory.java:47) 
    at org.swrlapi.factory.SWRLAPIFactory.createSWRLRuleEngine(SWRLAPIFactory.java:39) 
    at ManagingRules.main(ManagingRules.java:20) 

실제로 .owl 파일에는 15 개의 규칙이 저장되어 있습니다.

친절하게 제 위치를 알려주십시오.

this을 비롯한 편리한 SWRL API 자습서 또는 FAQ를 검색해 왔습니다. 그러나 그것은 그렇게 많이 도움이되지 않는 것 같습니다.

P. 코딩 기술이 좋지 않음

답변

0

문제는 입력 파일에 없지만 사용 가능한 등록 된 SWRL 규칙 엔진이 없다는 점에서 중요합니다. 이 설정은 SWRLAPIFactory가 사용되기 전에 Protege에서 수행 될 가능성이 큽니다.

이 요구 사항은 여기에 설명되어 있습니다 : https://github.com/protegeproject/swrlapi/

If you'd like to be able to execute SWRL rules or SQWRL queries you will need a SWRLAPI-based rule engine implementation. Currently, a Drools-based SWRL rule engine implementation is provided. This implementation is also hosted on Maven Central.

나는 당신이 당신의 프로젝트에 해당 페이지에 설명 된 종속성을 추가해야합니다 생각합니다.

+0

안녕하세요 @ignazio, 내가 의존성을 추가하고 오류가 지금 변경, 나는 다른 게시물에 물어볼 것입니다. 고마워 –