我无法查看OWL类的实例

2024-06-16 09:36:45 发布

您现在位置:Python中文网/ 问答频道 /正文

from owlready2 import *
onto = get_ontology("https://test.org/onto.owl")
with onto:
    class Drug(Thing):
        pass

my_drug1 = Drug("my_drug1")
my_drug2 = Drug("my_drug2")
my_drug3 = Drug("my_drug3")
my_drug4 = Drug("my_drug4")
    
for i in Drug.instances(): 
    print(i)

但是在为Drug创建实例之后,当我试图使用上面代码段中的for循环打印Drug下的所有可用实例时,我遇到了这个错误

sqlite3.OperationalError: circular reference: prelim1_objs


Tags: 实例fromhttpsimportforgetmyontology
2条回答

我终于找到了这个问题的原因。SQLite3的某些版本在支持递归查询方面存在缺陷。版本3.33受影响,而版本3.36不受影响

我在开发版本的Owlready(在BitBucket上)中添加了一个变通方法。我将很快发布一个新版本

我无法重现你的问题。你能告诉我Python、Owlready和SQLite3的版本号吗?您可以在Python中获得它们,如下所示:

import sys, owlready2, sqlite3
print("Python", sys.version)
print("Owlready2", owlready2.VERSION)
print("SQLite3", sqlite3.sqlite_version)

吉巴

相关问题 更多 >