获取 class 个 OwlApi 的子 class 个
get subclasses of a class OwlApi
有一种方法可以找到 class 的所有命名子 class,而无需使用推理器 for (OWLClass child : reasoner.getSubClasses(clazz, true).getFlattened() )
,并且无需仅使用公理进行推理?谢谢
使用owl-api可以查询ontology得到所有子类公理。
然后过滤结果以仅保留命名的 类.
for (final OWLSubClassOfAxiom subClasse : ontology.getAxioms(AxiomType.SUBCLASS_OF))
{
if (subClasse.getSuperClass() instanceof OWLClass
&& subClasse.getSubClass() instanceof OWLClass)
{
System.out.println(subClasse.getSubClass()
+ " extends " + subClasse.getSuperClass());
}
}
使用 Jena,您可以列出语句,添加查找 "subClassOf" 谓词,然后在 owl-api 中过滤以仅获取非烦人的对象。
final StmtIterator it = model.listStatements();
while (it.hasNext())
{
final Statement s = it.next();
if (s.getPredicate().equals(RDFS.subClassOf) && !s.getObject().isAnon())
System.out.println(s.getSubject() + " extends " + s.getObject());
}
有一种方法可以找到 class 的所有命名子 class,而无需使用推理器 for (OWLClass child : reasoner.getSubClasses(clazz, true).getFlattened() )
,并且无需仅使用公理进行推理?谢谢
使用owl-api可以查询ontology得到所有子类公理。 然后过滤结果以仅保留命名的 类.
for (final OWLSubClassOfAxiom subClasse : ontology.getAxioms(AxiomType.SUBCLASS_OF))
{
if (subClasse.getSuperClass() instanceof OWLClass
&& subClasse.getSubClass() instanceof OWLClass)
{
System.out.println(subClasse.getSubClass()
+ " extends " + subClasse.getSuperClass());
}
}
使用 Jena,您可以列出语句,添加查找 "subClassOf" 谓词,然后在 owl-api 中过滤以仅获取非烦人的对象。
final StmtIterator it = model.listStatements();
while (it.hasNext())
{
final Statement s = it.next();
if (s.getPredicate().equals(RDFS.subClassOf) && !s.getObject().isAnon())
System.out.println(s.getSubject() + " extends " + s.getObject());
}