首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用.instances()方法遍历owlready2中owl:Thing的所有实例?

如何使用.instances()方法遍历owlready2中owl:Thing的所有实例?
EN

Stack Overflow用户
提问于 2021-10-09 11:44:47
回答 2查看 84关注 0票数 0

我可以使用下面的代码在owlready2中迭代一个类的所有实例,它工作得很好:

代码语言:javascript
复制
>>> for i in Drug.instances(): print(i)

但是我需要遍历本体的所有实例(通过owl:Thing)。我尝试了以下方法,但不起作用:

代码语言:javascript
复制
>>> for i in Thing.instances(): print(i)
>>> for i in onto.Thing.instances(): print(i)
>>> for i in Thing.subclasses.instances(): print(i)
EN

回答 2

Stack Overflow用户

发布于 2021-10-14 15:52:43

这对我来说很有效:

代码语言:javascript
复制
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()))
票数 0
EN

Stack Overflow用户

发布于 2021-11-07 01:47:35

我认为你应该只引用你的本体,而不是你的类。

代码语言:javascript
复制
onto = get_ontology("test.owl")
for i in onto.instances():
    print(i)

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69506424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档