【问题标题】:I'm not able to view the instances of OWL class我无法查看 OWL 类的实例
【发布时间】:2021-09-16 09:33:55
【问题描述】:
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 创建实例之后,当我尝试使用上述 sn-p 中的 for 循环打印 Drug 下的所有可用实例时,我收到了这个错误。

sqlite3.OperationalError: circular reference: prelim1_objs

【问题讨论】:

    标签: python sqlite owl ontology


    【解决方案1】:

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

    我在 Owlready 的开发版本(在 BitBucket 上)中添加了一个解决方法。我很快就会发布一个新版本。

    【讨论】:

      【解决方案2】:

      我无法重现您的问题。可以给我 Python、Owlready 和 SQLite3 的版本号吗?您可以在 Python 中按如下方式获取它们:

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

      吉巴

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。
      • 我将 owl ready 包降级为 0.33,它对我有用。我认为 0.34 有一些 bug 需要修复
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 2017-06-22
      • 2015-04-28
      相关资源
      最近更新 更多