[英]get subclasses of a class OwlApi
有一种方法可以在不使用for (OWLClass child : reasoner.getSubClasses(clazz, true).getFlattened() )
的推理器的情况下找到一个类的所有命名子类,而无需仅使用公理进行推理? 谢谢
使用 owl-api 可以查询本体以获取所有子类公理。 然后过滤结果以仅保留命名的类。
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());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.