问题标签 [owlready]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
154 浏览

python - 如何使用 owlready (python) 获取 wikidata 以生成本体?

在它的帮助下wikidata_query(...),从 python 对 wikidata 执行查询很简单:

例如

检索Q125977(向量空间)的所有子类。但是,结果是一个普通的 json 结构。相反,我想要一个owlready2 -ontology(更准确地说只有subclassOf-relations)。

是否有可用代码(部分)执行此任务,还是我必须自己编写代码?在后一种情况下:最聪明的方法是什么(例如使用一些可定制的深度,处理多重继承)?

0 投票
0 回答
186 浏览

rdf - owlready2 rdfs:subClassOf 推理不起作用

我创建了一个 rdflib 图形并将其序列化为 XML 格式的 owl 文件。我明确写A RDF.type RDFS.ClassB RDFS.subClassOf A. 在我这样做之后。

但是当我打开的时候test2.owl,没有B RDF.type RDFS.Class。因此,B没有推断出 's 的类型。owlready2推理机是否有效?

0 投票
1 回答
551 浏览

python - 通过 owlready 加载本体会产生错误

我想使用本体“dbnary”并且我正在使用 owlready 尝试从网站加载本体时,我收到此错误:

也许我使用了错误的库,是否有一个库可以使用海龟格式的本体。我想通过该库提取单词的同义词。

0 投票
1 回答
731 浏览

python - 在 OWLready2 中创建实例会创建一个全新的类,而不是将其分配给现有的类

我正在尝试按照官方网站上的教程创建一个简单的本体。代码运行顺利,运行此代码时一切似乎都很好:

问题:当我在 Protégé 中打开生成的文件“test”时,我的实例“drug1”不是先前定义的类 Drug 的一部分,而是一个同名的新类Drug(我总是用斜体表示这个,所以它不会让人感到困惑)。有趣的是,这个新类Drug甚至不是 owl:Thing 类的子类。

我不确定有什么问题。根据 Protégé 的说法,定义的类 Drug 具有 IRI: file:/C:/.../new#Drug,而另一个类Drug具有 IRI: new#Drug

当我检查 Python 中所有描述对象的 IRI 时,它们都是同步的。

我对这里发生的事情感到非常困惑。

我检查了“测试”文件,关于这个实例的部分是:

这很令人困惑,因为当我从著名的 Pizza 教程中打开文件 PizzaTutorial.owl 时,一个实例定义如下:

发生了什么?!

另一个问题:当我检查 Protégé 中的个人时,我注意到属性number_of_tabletsprice被添加为 Annotations,而不是 Data Properties。我认为这就是为什么当我删除 sync_reasoner 行时,我的SWRL 规则(已正确导出)没有得出此人的price_per_tablet属性的原因。

请对您发现的任何错误发表评论,我是本体编程和两种工具的初学者,非常感谢您的帮助!

0 投票
0 回答
147 浏览

owl - 如何在 OWL 本体中查询对象属性

我正在使用FoodOn本体,需要确定某个类是否与另一个类有某种关联。典型用例:素食者可以吃蜂蜜吗?不,因为蜂蜜是“无脊椎动物食品”的一个子类!

我正在使用 python owlready2 库,它允许我运行 SPARQL 查询和查询子类关系,如下所示:

这段代码为我提供了蜂蜜和动物食品之间的完整子类路径——太好了。

我的问题是,这种关系并不总是子类的关系。让我们看看使用 Protege 编辑器的“素食产品”:

门生截图

我们可以看到,“素食食品”是“有机食品”的一个子类,但同时它也等价于“食品”和(而不是(“派生自”一些(“无脊椎动物”或“脊椎动物”动物')))

如果我使用 SPARQL 查看所有三元组,我会得到子类关系,但等价类只是一个 bnode:

  1. 为什么 SPARQL 不返回所有关系?
  2. 如何查询属于“素食食品”子类或与其他对象属性相关的所有类?
  3. 另外,如何查询上例中的“AND”“OR”组件?

我确实接受非 python 解决方案,只要它可以自动化。Protege 有一个 DL 查询选项卡,但我认为我无法使用 UI 导出结果...

谢谢!

0 投票
0 回答
142 浏览

owl - SWRL:表示类的变量(获取父类或子类实例的规则)

我有以下设置:

  1. 一个猫头鹰本体(通过owlready使用此类层次结构访问:
  1. 每个类的一个实例,例如A1,B1等。
  2. prop1与相关A1的财产B4prop1(A1, B4)

我想要一个给定的 SWRL 规则,它与prop1(A1, B4)和via相关。A1B3B2prop1

我想一定有这样的东西(部分发明的语法):

但是,我没有在 SWRL 中找到任何关于“表示类的变量”(参见direct_subclass(?c, ?d)rdfs:type(?i2, ?d))。

如何制定我的规则?

0 投票
1 回答
180 浏览

owl - owlready2 推理器不会使用 SWRL 规则生成推断的对象属性断言

假设一个 OWL 本体包含以下 SWRL 规则:

和以下对象属性断言:

当我在 Protege 中运行 Hermit 推理器时,我得到以下推断的对象属性断言:

但是,当我使用 owlready2 加载相同的本体并运行其 Hermit 推理器时,我没有得到任何推断的对象属性断言。例如:

不返回任何属性。

我确实以 RDFXML 格式保存了本体,并且可以使用 owlready2 检索 SWRL 规则。

owlready2 推理器不支持这种推理吗?

0 投票
0 回答
77 浏览

python - owlready2 AttributeError:模块“子进程”没有属性“CREATE_NO_WINDOW”

系统:Windows 10

IDE:带有 conda 环境的 PyCharm

当我尝试导入owlready2

返回此错误:

我该如何解决这个问题?谢谢你。

0 投票
1 回答
103 浏览

python - 无法导入owlready2模块:得到'sqlite3.OperationalError:没有这样的表:sqlite_schema'错误,'from owlready2 import *'

运行此行时出现以下错误,from owlready2 import *

python 3.8.3版有什么解决办法吗?先感谢您

0 投票
0 回答
93 浏览

python - 无法在 colab 中导入 owlready2 模块得到 'AttributeError: module 'owlready2' has no attribute 'triplelite'

!pip install owlready2 <- 成功

从 owlready2 导入 * <- 出错