gpt4 book ai didi

ontology - 推断 Protege 中的逆属性

转载 作者:行者123 更新时间:2023-12-04 08:57:17 29 4
gpt4 key购买 nike

我已经创建了关系 A 'is functional parent of' B并定义 'has functional parent'作为 'is functional parent of' 的倒数. 'A''B'都是 'chemical entity' 的子类.
我想让 Protege 推断 B 'has functional parent' A .查询'has functional parent' some A失败。
错误 #1:不理解开放世界
我意识到some意味着并非所有 B有关系'has functional parent''A' . 然而,查询'chemical entity' and 'has functional parent'仍然失败。
我的本体没有实例。我希望查询伤口找到子类。
海龟文件

@prefix : <http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10> .

<http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10> rdf:type owl:Ontology .

#################################################################
# Object Properties
#################################################################

### http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#hasFunctionalParent
:hasFunctionalParent rdf:type owl:ObjectProperty ;
owl:inverseOf :isFunctionalParentOf .


### http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#isFunctionalParentOf
:isFunctionalParentOf rdf:type owl:ObjectProperty .


#################################################################
# Classes
#################################################################

### http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#A
:A rdf:type owl:Class ;
rdfs:subClassOf :Z ,
[ rdf:type owl:Restriction ;
owl:onProperty :isFunctionalParentOf ;
owl:someValuesFrom :B
] .


### http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#B
:B rdf:type owl:Class ;
rdfs:subClassOf :Z .


### http://www.semanticweb.org/michaelchary/ontologies/2020/8/untitled-ontology-10#Z
:Z rdf:type owl:Class .


### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi

最佳答案

根据您在本体论中陈述的公理,推理者绝对无法从中推导出 B hasFunctionalParent A .
要理解为什么会这样,即使您的本体不包括任何明确的个人,从个人的角度思考也是有帮助的。当推理器​​运行时,它会尝试根据本体中的公理生成模型。模型由遵循本体公理的生成个体组成。
出于说明目的,让我们假设个人的整体由以下数字组成:
域 = {0, 1, 2, 3, 4, 5, 6, 7} ,Z = {1, 2, 3, 5, 6, 7} ,A = {5, 7}B = {2, 3, 6}然后你有一个对象属性 hasFunctionalParent与其逆。简而言之我会引用hasFunctionalParentR和它的倒数 invR .什么RinvR意思?它基本上表明,当我们域中的 2 个人通过 R 相关时,它们也通过 invR 相关.也就是说,如果我们有 R(1, 2) ,然后 invR(2, 1)还抱。
声明 A subClassOf invR some B意味着 A 的每个个体相关通过 invR至少 1 个人 B .因此,如果我们有 invR(5, 2)invR(7, 3) ,我们也会有R(2, 5)R(3, 7) .然而,这并没有说明类 B一般来说。 R(6, 0)完全有可能持有。因此推理者不能推断出B hasFunctionalParent A .
获取BZ对于查询“查找 hasFunctionalParent some B 的父类(super class)”(这意味着在进行查询时必须在 Protege 中勾选“父类(super class)”)您必须声明 isFunctionalParentOf有域名A和范围 B .这表明每当 2 个人 xy相关通过 isFunctionalParentOf ,我们可以假设 xA 的一个实例和 yB 的一个实例.
最后,您会注意到您需要使用 Protege 中的 DL 查询选项卡来进行此推理。尤其是在推理之后,它不会作为推论的一部分显示出来。这是为什么?这是因为 Protege 只显示命名类的推断。 hasFunctionalParent some B是匿名类,因此未显示此推论。在 Protege 中制作这个节目的一个技巧是添加一个任意的概念,比如 X您设置为等效于 hasFunctionalParent some B .如果您现在运行推理器,Protege 将推断出 X subClassOf B .

关于ontology - 推断 Protege 中的逆属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63747637/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com