我们假设我们有以下规则:
课程(?x),teacherOf(?y,?x),worksFor(?y,?z)=> coursePresentedInUniversity(ΔX,z)的
pellet或java中是否有任何库将上述规则转换为SWRL代码?例如,以下内容:
<swrl:Imp rdf:about="#CoursePresentedInUniversityRule">
<swrl:head rdf:parseType="Collection">
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="#coursePresentedInUniversity" />
<swrl:argument1 rdf:resource="#x" />
<swrl:argument2 rdf:resource="#z" />
</swrl:IndividualPropertyAtom>
</swrl:head>
<swrl:body rdf:parseType="Collection">
<swrl:ClassAtom>
<swrl:classPredicate rdf:resource="#Course" />
<swrl:argument1 rdf:resource="#x" />
</swrl:ClassAtom>
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="#teacherOf" />
<swrl:argument1 rdf:resource="#y" />
<swrl:argument2 rdf:resource="#x" />
</swrl:IndividualPropertyAtom>
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="#worksFor" />
<swrl:argument1 rdf:resource="#y" />
<swrl:argument2 rdf:resource="#z" />
</swrl:IndividualPropertyAtom>
</swrl:body>
</swrl:Imp>
我知道pellet可以反过来(使用reasoner.getKB().getRules()
),但我不知道是否有任何东西可以将表示转换为SWRL XML代码。
谢谢!
答案 0 :(得分:2)
为了在本体中将字符串转换为SWRL规则,根据this document,应该执行以下步骤:1)应该对字符串进行解析和标记化。 2)应使用SWRLRule和SWRLObjectProperties创建SWRL规则。 3)应用并保存本体的变化,
例如,对于teacherOf(?y,?x)
,我们可以编写以下代码:
OWLObjectProperty teacherP= factory.getOWLObjectProperty(IRI
.create(ontologyIRI + "#teacherOf"));
SWRLVariable var1 = factory.getSWRLVariable(IRI.create(ontologyIRI
+ "#y"));
SWRLVariable var2 = factory.getSWRLVariable(IRI.create(ontologyIRI
+ "#x"));
SWRLObjectPropertyAtom teacherAtom = factory.getSWRLObjectPropertyAtom(
teacherP, var1, var2);
Set<SWRLAtom> SWRLatomList= new HashSet<SWRLAtom>();
SWRLatomList.add(teacherAtom);
...
SWRLRule teacherRule = factory.getSWRLRule(SWRLatomList,
Collections.singleton(headAtom));
ontologyManager.applyChange(new AddAxiom(testOntology, teacherRule ));
ontologyManager.saveOntology(testOntology);
答案 1 :(得分:1)
您可以在Protégé编辑器中以演示文稿语法输入SWRL规则,然后以RDF / XML格式保存本体。如果您想在代码中执行相同操作,则需要使用OWLAPI中的ManchesterOWLSyntaxParserImpl类来解析规则。然后,您可以使用OWLAPI以RDF / XML格式保存规则。