问题标签 [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 - TypeError:owlready 库中的预期字符串或类似字节的对象
我正在尝试使用 owlready 库创建的 owl 文件中的 python 查询数据。但我收到以下错误。原因是什么?
代码结构和接收到的错误如下。
错误:
python - AttributeError:'NoneType' 对象在 owlready 库中没有属性 'some'
我正在尝试使用 owlready 库在 Pizza_onto 的本体中创建一个名为 Pizza 的类。但我收到以下错误。原因是什么?
Owlready 代码:(pizza.py)
错误:
python - 使用 python 从分层 OWL 文件中提取终端子名称(或将 OWL 转换为 JSON 以使任务更容易)
在此页面上,我想单击树的每个子节点,并打印出所有终端子节点(即所有可用套件/系统的列表)(例如,在下面的情况下,我将单击分析bioassay 组件 -> 检测试剂盒 -> 打印出所有作为试剂盒列表的子节点):
我写了这段代码:
但它不会打印出名称,而是将其他信息打印到 json,例如:
我也尝试过:
我理想的输出是这棵树中所有终端子节点的列表;或者如果不可能,只是一个如何将这些数据提取到 .json 的清晰示例,这样我就可以使用 XML 解析器,但特别要确保套件的实际名称在 json 文件中,而不仅仅是代码为我得到了上面,如果有人可以帮助我将不胜感激。
python - 使用 OWLReady 库运行 Hermit resoner 时出现 OwlReadyInconsistentOntologyError
我有一个使用 python 和 OWLReady 创建的简单本体文件,当我尝试使用以下代码进行响应时,它显示
这是我试过的本体文件
这是python代码
我使用相同的代码打开了我使用 Jena API 创建的另一个文件(不是同一个本体),没有错误 What is OwlReadyInconsistentOntologyError ?我怎么解决这个问题 ?
python - 类继承和实例化 - 对 __init__() 和 __new__() 方法的内部调用之间的混淆
这是我之前发布的问题的后续问题,该问题已通过我收到的答案部分解决。
- 场景是我有 1 个在运行时定义的类,它继承自基于以下类型定义的类:MasterData 或 Transaction,而后者又从 BusinessDocument 继承。
- BusinessDocument 类需要从可通过外部模块获得的类Thing继承。
已实现以下代码以创建链中的所有类:
在运行时,当我得到 doc_name 并得到一个新类,但是当我尝试实例化时。
调用 invoice_cls 的 type() 和mro () 方法可以得到以下信息:
但后来我得到一个与该方法相关的异常__new__()
:
然后,如果我尝试在没有参数的情况下进行实例化调用,我会得到一个与该__init__()
方法相关的不同异常,这里是完整的:
这只发生在我从“事物”类继承时。如果我删除继承,代码运行得很好。看起来我弄乱了类层次结构中的实例化序列。
python - 有没有办法使用owlready访问本体中特定节点的特定概念?
我正在执行基于本体的文本分类。我的本体是一个简单的概念层次结构,其中每个子概念都是上层概念的结果。在文本分类方法中,我正在计算测试文本样本与本体的每个节点之间的余弦相似度,其中相似度最高的节点被分配为文档的标签。每个节点的相似度是本体中该特定节点之下的所有节点的相似度的归一化平均值。我在访问本体的节点(概念/类)以计算相似度时遇到困难。我阅读了 Owlready2 文档,但找不到解决方案。我已经以 .owl 格式加载了本体。由于我是这个话题的新手,
另一个问题我已经使用此代码加载了本体。
当我使用以下代码打印类/概念时。
它打印以下内容。
但是,我只想得到“Scouring”作为结果,以便我可以计算它与文本样本的余弦相似度。此外,有没有办法打印概念的层次结构,因为 list(onto.classes()) 只打印本体中的完整概念并忽略层次结构。
提前致谢。
python - 如何访问本体中节点的层次信息,为不同层次的类分配不同的权重?
我想获取特定本体类的子类,但不是以随机方式,我正在寻找一种通过其层次级别获取它们的方法:我的意思是为每个本体类显示其子类及其层次信息(例如本体的层次或深度);知道我正在使用 owlready2,是否有可能在 python 中使用。到目前为止,我能够使用 owlready2 获取特定类的子类列表,但它返回一个列表并忽略子类在本体中的位置,但我也想访问这些子类的层次信息,以便我可以为本体中较高级别的子类分配较高的权重,而为本体中较低级别(更深度)的子类分配较低的权重。是否有任何可用的方法、包或工具可供我在 python 中使用。
sparql - Protégé:DL Query 和 SPARQL Query 的结果不同
这是一个名为的小型本体wildlife.owl
,由 Protégé 创建,其中我有类animal
、carnivore
、herbivore
、lion
、giraffe
和个体Léo
(a lion
)、Gigi
(a giraffe
) 和Giginou
(also a giraffe
)。在本体中我只声明lion ⊏ carnivore ⊏ animal
.
animal
当我在 Protégé 的 DL Query 选项卡中询问 的实例时,我得到除其他外Léo
(这是 a lion
,因此是 a ,因此是carnivore
an animal
)。
但是当我编写以下 SPARQ 查询时:
我没有得到任何实例。当我替换me:animal
为时,结果相同me:carnivore
。只有当我替换它时,me:lion
我才能得到想要的结果Léo
。
为什么 DL Query 进行推理(允许我Léo
作为类的实例获取animal
)而不是 SPARQL Query?
如何在 SPARQL 查询中获得相同的结果?
感谢@UninformedUser 的回答,我现在知道我必须使用 Snap SPARQL 查询而不是 SPARQL 查询。
我的下一个问题与 Python 有关:当我使用 Owlready2 和 RDFlib 发送 SPARQL 查询时,我再次没有得到任何结果:
如何使用 OWL Reasoner 获取此查询?
python - 使用来自 rake 和 owlready2 的关键字的本体的 DataProperty
我正在尝试提取 dataProperty 的值:如果我对此进行测试---->它可以工作!
但是当我尝试这个时:
出现此错误: Traceback(最近一次调用最后一次):
文件“”,第 8 行,打印中(国家 [1].recovered,国家 [1].cases)
文件“C:\Users\stef info\Anaconda3\lib\site-packages\owlready2\prop.py”,第 243 行,在getattr raise AttributeError("Property can only have annotation property values!")
AttributeError: 属性只能有注解属性值!
我该如何解决!