0

我可以使用以下工作正常的代码来遍历 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)
4

2 回答 2

0

我认为您只会参考您的本体而不是您的课程。

onto = get_ontology("test.owl")
for i in onto.instances():
    print(i)

您正在做的是获取类并迭代特定于类的实例。

于 2021-11-07T01:47:34.937 回答
0

这对我有用:

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-10-14T15:52:42.537 回答