使用 Java 在生成的 ontology 中获取兄弟 类 的名称和数量
Take name and count number of sibling classes in generated ontology using Java
我首先生成了ontology。它是成功的。然后,我想为每个 class 取同级 classes 名称,并计算生成的 ontology.As 中每个 class 的同级 classes 的数量,
Main super class- A
Two sub classes of A - B , C
Three sub classes of B- D, E
我尝试使用以下代码。我使用 getSuperClass 获取超级 class,然后使用 getSubClass 获取子 classes。我使用 arraylist 首先取每个兄弟 classes 的名字。所以,在上面的例子中输出应该是这样的,
[C] [B] [E] [D]
在上面的输出中,第一个用于 B 的兄弟,第二个用于 C 的兄弟......我使用 Jena 生成 ontology。 (我听说过 SPARQL 查询,但我对它还很陌生。)
以下代码仅用于获取兄弟 class 名称。它给出了空指针错误。但似乎输出是完整的 link 是正确的。如何分离最后一部分?
public ArrayList<String> countSiblingClasses(String ontoClass) {
ontologyCreation();
this. m.read("http://localhost/new/onto1.owl");
ExtendedIterator<OntClass> classes = ((OntModel) m).listClasses();
ArrayList<String> siblingsName = new ArrayList<String>();
while (classes.hasNext()) {
OntClass all= (OntClass) classes.next();
String cls = all.getSuperClass().listSubClasses().toSet().toString();
System.out.println("class names="+cls);
siblingsName.add(cls);
}
return siblingsName;
}
放出来了,
Exception in thread "main" class names=[http://localhost/new/E, http://localhost/new/D]
class names=[http://localhost/new/E, http://localhost/new/D]
class names=[http://localhost/new/C, http://localhost/new/B]
class names=[http://localhost/new/C, http://localhost/new/B]
java.lang.NullPointerException
at Final_Cal.OntologyCreation2.countSiblingClasses(OntologyCreation2.java:235)
at Final_Cal.OntologyCreation2.main(OntologyCreation2.java:34)
OntClass.getSuperClass()
的 javadoc 说:
A super-class of this class or null
A
不会有超类。
我首先生成了ontology。它是成功的。然后,我想为每个 class 取同级 classes 名称,并计算生成的 ontology.As 中每个 class 的同级 classes 的数量,
Main super class- A
Two sub classes of A - B , C
Three sub classes of B- D, E
我尝试使用以下代码。我使用 getSuperClass 获取超级 class,然后使用 getSubClass 获取子 classes。我使用 arraylist 首先取每个兄弟 classes 的名字。所以,在上面的例子中输出应该是这样的,
[C] [B] [E] [D]
在上面的输出中,第一个用于 B 的兄弟,第二个用于 C 的兄弟......我使用 Jena 生成 ontology。 (我听说过 SPARQL 查询,但我对它还很陌生。)
以下代码仅用于获取兄弟 class 名称。它给出了空指针错误。但似乎输出是完整的 link 是正确的。如何分离最后一部分?
public ArrayList<String> countSiblingClasses(String ontoClass) {
ontologyCreation();
this. m.read("http://localhost/new/onto1.owl");
ExtendedIterator<OntClass> classes = ((OntModel) m).listClasses();
ArrayList<String> siblingsName = new ArrayList<String>();
while (classes.hasNext()) {
OntClass all= (OntClass) classes.next();
String cls = all.getSuperClass().listSubClasses().toSet().toString();
System.out.println("class names="+cls);
siblingsName.add(cls);
}
return siblingsName;
}
放出来了,
Exception in thread "main" class names=[http://localhost/new/E, http://localhost/new/D]
class names=[http://localhost/new/E, http://localhost/new/D]
class names=[http://localhost/new/C, http://localhost/new/B]
class names=[http://localhost/new/C, http://localhost/new/B]
java.lang.NullPointerException
at Final_Cal.OntologyCreation2.countSiblingClasses(OntologyCreation2.java:235)
at Final_Cal.OntologyCreation2.main(OntologyCreation2.java:34)
OntClass.getSuperClass()
的 javadoc 说:
A super-class of this class or null
A
不会有超类。