我可以使用下面的代码在owlready2中迭代一个类的所有实例,它工作得很好:
>>> for i in Drug.instances(): print(i)但是我需要遍历本体的所有实例(通过owl:Thing)。我尝试了以下方法,但不起作用:
>>> for i in Thing.instances(): print(i)
>>> for i in onto.Thing.instances(): print(i)
>>> for i in Thing.subclasses.instances(): print(i)发布于 2021-10-14 15:52:43
这对我来说很有效:
from owlready2 import *
onto = get_ontology("http://test.org/onto.owl")
with onto:
class Person(Thing):
pass
class Building(Thing):
pass
Person("Anna")
Person("Bella")
Person("Cercei")
Person("Dora")
Building("Eiffel_Tower")
print(list(Thing.instances()))发布于 2021-11-07 01:47:35
我认为你应该只引用你的本体,而不是你的类。
onto = get_ontology("test.owl")
for i in onto.instances():
print(i)您所做的是获取类并迭代特定于类的实例。
https://stackoverflow.com/questions/69506424
复制相似问题