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. 코딩 기술이 좋지 않음
안녕하세요 @ignazio, 내가 의존성을 추가하고 오류가 지금 변경, 나는 다른 게시물에 물어볼 것입니다. 고마워 –