我可以获取OWLClass并访问该信息。班级和个人都有前缀
有没有办法摆脱前缀?
例如:
OWLClass cls = factory.getOWLClass(":Person", pm);
for (OWLIndividual indiv : cls.getIndividuals(onto)) {
System.out.println(indiv.toString());
}
打印:
<http://www.co-ode.org/ontologies/ont.owl#Mon>
<http://www.co-ode.org/ontologies/ont.owl#Dad>
我想要的只是Mon
Dad
更新
谢谢Ignazio
我发现密钥是getIRI()
方法。
for (OWLIndividual indiv : owlclass.getIndividuals(onto)) {
System.out.println(indiv.asOWLNamedIndividual().getIRI().getFragment());
}
for (OWLClassExpression expre : owlclass.getSubClasses(onto)) {
System.out.println(expre.asOWLClass().getIRI().getFragment());
}
答案 0 :(得分:3)
对于实体,您可以使用OWLEntity.getIRI()。getFragment()执行此操作。
但请注意,并非所有实体都有此类名称,因为Iri可以合法地以/或#
结尾答案 1 :(得分:2)
稍微更新:getFragment()现已弃用。我改用getShortForm()。
答案 2 :(得分:0)
我按如下方式将类名称检索到列表中
从磁盘获取本体并分配给变量o Type;
眼科学o;
并在创建列表中添加类如下
列表listofClass = new ArrayList();
然后添加以下代码
Collection<OWLClass> classes = o.getClassesInSignature();
//getting class names in the ontology
for (OWLClass owlClass : classes) {
System.out.println(owlClass.getIRI().getShortForm());
listofClass.add(owlClass.getIRI().getShortForm());
}
return listofClass;
}