问题标签 [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.
python - 如何使用 owlready (python) 获取 wikidata 以生成本体?
在它的帮助下wikidata_query(...)
,从 python 对 wikidata 执行查询很简单:
例如
检索Q125977(向量空间)的所有子类。但是,结果是一个普通的 json 结构。相反,我想要一个owlready2 -ontology(更准确地说只有subclassOf
-relations)。
是否有可用代码(部分)执行此任务,还是我必须自己编写代码?在后一种情况下:最聪明的方法是什么(例如使用一些可定制的深度,处理多重继承)?
rdf - owlready2 rdfs:subClassOf 推理不起作用
我创建了一个 rdflib 图形并将其序列化为 XML 格式的 owl 文件。我明确写A RDF.type RDFS.Class
和B RDFS.subClassOf A
. 在我这样做之后。
但是当我打开的时候test2.owl
,没有B RDF.type RDFS.Class
。因此,B
没有推断出 's 的类型。owlready2
推理机是否有效?
python - 通过 owlready 加载本体会产生错误
我想使用本体“dbnary”并且我正在使用 owlready 尝试从网站加载本体时,我收到此错误:
也许我使用了错误的库,是否有一个库可以使用海龟格式的本体。我想通过该库提取单词的同义词。
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_tablets和price被添加为 Annotations,而不是 Data Properties。我认为这就是为什么当我删除 sync_reasoner 行时,我的SWRL 规则(已正确导出)没有得出此人的price_per_tablet属性的原因。
请对您发现的任何错误发表评论,我是本体编程和两种工具的初学者,非常感谢您的帮助!
owl - 如何在 OWL 本体中查询对象属性
我正在使用FoodOn本体,需要确定某个类是否与另一个类有某种关联。典型用例:素食者可以吃蜂蜜吗?不,因为蜂蜜是“无脊椎动物食品”的一个子类!
我正在使用 python owlready2 库,它允许我运行 SPARQL 查询和查询子类关系,如下所示:
这段代码为我提供了蜂蜜和动物食品之间的完整子类路径——太好了。
我的问题是,这种关系并不总是子类的关系。让我们看看使用 Protege 编辑器的“素食产品”:
我们可以看到,“素食食品”是“有机食品”的一个子类,但同时它也等价于“食品”和(而不是(“派生自”一些(“无脊椎动物”或“脊椎动物”动物')))。
如果我使用 SPARQL 查看所有三元组,我会得到子类关系,但等价类只是一个 bnode:
- 为什么 SPARQL 不返回所有关系?
- 如何查询属于“素食食品”子类或与其他对象属性相关的所有类?
- 另外,如何查询上例中的“AND”和“OR”组件?
我确实接受非 python 解决方案,只要它可以自动化。Protege 有一个 DL 查询选项卡,但我认为我无法使用 UI 导出结果...
谢谢!
owl - SWRL:表示类的变量(获取父类或子类实例的规则)
我有以下设置:
- 一个猫头鹰本体(通过owlready使用此类层次结构访问:
- 每个类的一个实例,例如
A1
,B1
等。 prop1
与相关A1
的财产B4
:prop1(A1, B4)
我想要一个给定的 SWRL 规则,它与prop1(A1, B4)
和via相关。A1
B3
B2
prop1
我想一定有这样的东西(部分发明的语法):
但是,我没有在 SWRL 中找到任何关于“表示类的变量”(参见direct_subclass(?c, ?d)
或rdfs:type(?i2, ?d)
)。
如何制定我的规则?
owl - owlready2 推理器不会使用 SWRL 规则生成推断的对象属性断言
假设一个 OWL 本体包含以下 SWRL 规则:
和以下对象属性断言:
当我在 Protege 中运行 Hermit 推理器时,我得到以下推断的对象属性断言:
但是,当我使用 owlready2 加载相同的本体并运行其 Hermit 推理器时,我没有得到任何推断的对象属性断言。例如:
不返回任何属性。
我确实以 RDFXML 格式保存了本体,并且可以使用 owlready2 检索 SWRL 规则。
owlready2 推理器不支持这种推理吗?
python - owlready2 AttributeError:模块“子进程”没有属性“CREATE_NO_WINDOW”
系统:Windows 10
IDE:带有 conda 环境的 PyCharm
当我尝试导入owlready2
返回此错误:
我该如何解决这个问题?谢谢你。
python - 无法导入owlready2模块:得到'sqlite3.OperationalError:没有这样的表:sqlite_schema'错误,'from owlready2 import *'
运行此行时出现以下错误,from owlready2 import *
python 3.8.3版有什么解决办法吗?先感谢您
python - 无法在 colab 中导入 owlready2 模块得到 'AttributeError: module 'owlready2' has no attribute 'triplelite'
!pip install owlready2 <- 成功
从 owlready2 导入 * <- 出错