gpt4 book ai didi

java - 使用 Java 获取生成本体中同级类的名称并计算其数量

转载 作者:行者123 更新时间:2023-12-01 10:19:43 24 4
gpt4 key购买 nike

我首先生成了本体。成功了。然后,我想获取每个类的兄弟类名称,并计算生成的本体中每个类的兄弟类的数量。例如,

    Main super class- A
Two sub classes of A - B , C
Three sub classes of B- D, E

我尝试使用以下代码。我使用 getSuperClass 来获取父类(super class),然后使用 getSubClass 来获取其子类。我使用 arraylist 作为每个兄弟类的第一个名称。因此,在上面的示例中输出应该是这样的,

 [C] [B] [E] [D]

在上面的输出中,第一个为 B 的兄弟,第二个为 C 的兄弟......我使用 Jena 来生成本体。 (我听说过 SPARQL 查询,但我对此很陌生。)

以下代码仅用于获取同级类名称。它给出了空指针错误。但似乎完整链接的输出是正确的。如何分离最后一部分?

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 不会有父类(super class)。

关于java - 使用 Java 获取生成本体中同级类的名称并计算其数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35678156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com