在 OWL 中的同一属性中定义多个域/范围

2024-03-12

在 OWL 中设置数据/对象属性的域/范围的正确方法是什么?

如果我有两节课A, B和数据属性hasName:

<Declaration><Class IRI="#A"/></Declaration>
<Declaration><Class IRI="#B"/></Declaration>
<Declaration><DataProperty IRI="#hasName"/></Declaration>
<FunctionalDataProperty>
    <DataProperty IRI="#hasName"/>
</FunctionalDataProperty>
<DataPropertyRange>
    <DataProperty IRI="#hasName"/>
    <Datatype abbreviatedIRI="xsd:string"/>
</DataPropertyRange>

我要设置班级A和班级B作为单独的域名hasName。我尝试了三种方法,以下哪种方法是正确的?

  • 选项 1 - 推断域结果:A, B and owl:Thing

    <DataPropertyDomain>
        <DataProperty IRI="#hasName"/>
        <Class IRI="#A"/>
    </DataPropertyDomain>
    <DataPropertyDomain>
        <DataProperty IRI="#hasName"/>
        <Class IRI="#B"/>
    </DataPropertyDomain>
    
  • 选项 2 - 推断域结果:owl:Thing

    <DataPropertyDomain>
        <DataProperty IRI="#hasName"/>
        <ObjectUnionOf>
            <Class IRI="#A"/>
            <Class IRI="#B"/>
        </ObjectUnionOf>
    </DataPropertyDomain>
    
  • 选项 3 - 推断域结果:owl:Thing

    <EquivalentClasses>
        <Class IRI="#A"/>
        <DataExactCardinality cardinality="1">
            <DataProperty IRI="#hasName"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataExactCardinality>
    </EquivalentClasses>
    <EquivalentClasses>
        <Class IRI="#B"/>
        <DataExactCardinality cardinality="1">
            <DataProperty IRI="#hasName"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataExactCardinality>
    </EquivalentClasses>
    

从选项 1 中,我从 HermiT Reasoner 得到了 3 个结果:A, B, and owl:Thing,但是当我读到这个帖子 https://stackoverflow.com/questions/23724182/rdfs-same-property-for-multiple-domains他说我写了错误的语义,应该使用owl:unionOf.

然后我尝试像选项2那样表达类,但是当我再次推断时,我只得到了类owl:Thing, not A or B.

使用选项 3,我将类设置为等效类公理中的域。它可以工作,但我无法使用强大的推理工具来推断:

Set<OWLClass> classes = reasoner.getDataPropertyDomains(hasNameProperty, false).getFlattened();

第一点也是最重要的一点:属性的域和范围hasNameOWL 语义是not限制hasName!相反,这些公理用于推断通过属性相关的个体类型hasName.

Option 1

关于您的示例,它为该属性声明了多个域hasName,这意味着这些类的交集,即A and B.

Option 2

这确实是最常见的方式。

Option 3

我不明白你在这里做什么。但在 OWL 中,开放世界假设 (OWA) 成立,这意味着未知信息不被认为是错误的。这只是未知的。因此,如果您有个人a只与个人有关x通过财产hasName标准的 OWL 推理机不能(也不能)得出这样的结论:a属于班级A.

注意,OWL 中域公理的语义等价 subClassOf 公理是(伪曼彻斯特语法)

hasName Domain: A

(hasName some owl:Thing) SubClassOf: A

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 OWL 中的同一属性中定义多个域/范围 的相关文章

  • Freebase 中所有标题/主题标题的文本文件

    我需要一个文本文件来包含 txt 文件中每个标题 每个主题的标题 每个项目的标题 每个标题都占一行 如果我已经下载了 freebase rdf 转储 我该如何执行此操作或进行此操作 如果可能 我还需要一个单独的文本文件 其中每个主题 项目的
  • 如何在 TDB TripleStore 中加载模型

    我有一个问题问你 我想在我的 Jena TDB TripleStore 上加载一个文件 我的文件很大 大约80Mb 大约700000个三倍RDF 当我尝试加载它时 执行停止工作或需要很长时间 我正在使用在 Web 服务上运行的代码 Stri
  • 如何从 Jena API Eclipse 项目启动 Fuseki 服务器?

    您好 我也是语义 Web 域和 Apache Jena 环境的新手 这就是我发布此问题的原因 我有一个使用 Jena API 的项目 当我运行它时 它会在控制台中显示输出 我确实从命令行运行了 Fuseki 服务器 它作为本地服务器运行 我
  • 投影中的变量“x”不存在于 GROUP BY 中

    我想计算城市和括号中的内容 但是 我也想获得另一个变量 但是当我将它添加到 SELECT 时 我得到 org openrdf query MalformedQueryException 投影中的变量 region name 不存在于 GRO
  • protege 中的自反属性

    This https ufile io rcv9m是我用 protege 5 创建的本体 如果我做cl1 and cl2不相交 那么本体是不一致的 但是如果我取消选中is friend of反身性的 本体论不再不一致 我的本体有什么问题吗
  • 在现实世界应用中使用语义网络技术的示例[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 您正在开发使用 RDF OWL SPARQL 技术的 可能是商业的 产品吗 如果是这样 您能描述一下您的产品吗 O Reilly 的
  • 查找两个非常大的列表之间重叠的最快算法?

    我正在尝试用 Python 构建一个算法来过滤大量 RDF 数据 我有一个包含大约 70 000 个项目的列表 格式如下 lt datum gt 然后我有大约 6GB 的项目 三元组 格式如下 lt A gt lt B gt lt C gt
  • 为 RDBMS(MySQL 数据库)创建 SPARQL 端点的最佳方法

    我正在 想做 一些链接开放数据集的实验 特别是政府推出的实验 我有一个 RDBMS 更具体地说是 MySQL 我设计它时考虑了语义网络的想法 即我将信息存储为对象 谓词和定义对象的类 反过来 所有对象通过主语 gt 谓词 gt 宾语形式的语
  • uml 与 RDF 和 OWL 的组合关系

    我是 RDF 和 OWL 本体的初学者 我正在尝试将此图转换为 OWL 语法
  • 通过计算属性来推断 OWL 中的知识

    我有一个包含 Person 和 City 类的本体 人们前往城市旅行 这种旅行在 TravelTo 对象属性中表示 我想添加一个 WorldTraveler 类 如果人们去过两个或更多城市 那么他们就是世界旅行者 我怎样才能在我的本体中做到
  • 三元组组合的递归 SPARQL 查询

    我使用onspy在Python中递归运行以下查询 SELECT c WHERE c rdfs subClassOf restriction restriction owl onProperty has part owl someValues
  • 从 RDF 节点拉出字符串

    在使用 Jena 的 SPARQL 查询时 我试图以更易读的格式获取数据 但是我不知道如何以正确的方式提取数据 就目前而言 输出是 http www w3 org TR 2003 PR owl guide 20031209 wine Sau
  • 在构建语义 Web 应用程序时,OWL 是如何实际使用的?

    我一直在阅读有关语义 Web 技术 例如 RDF 和 OWL 的内容 并且对在现有关系数据库之上构建 RDF 三重存储语义数据库的可能性很感兴趣 这只是一项研发活动 看看我能做什么 我喜欢的样子OWLIM http www ontotext
  • 两个本体之间的映射

    我如何使用 owl sameas 来链接两个本体 如果我有本体A c rdf type owl Class 和本体B d rdf type owl Class 我想将两个本体与共享概念 c 和 d 联系起来 我读过有关 owl sameas
  • RDF、RDFa、微格式和微数据之间有什么关系

    我已经做了很多研究 但我无法理解这 3 者之间的确切关系 另外 既然 W3C 已经正式认可 RDFa 考虑到它与 Microdata 的功能等相匹配 您会推荐它而不是 Microdata 吗 我无法想象你会发现什么如此令人困惑讽刺 gt 编
  • 如何使用 RDFLib 解析大数据集?

    我正在尝试使用 RDFLib 3 0 解析几个大图 显然它处理第一个图并在第二个图上死掉 MemoryError 看起来 MySQL 不再支持作为存储 您能建议一种以某种方式解析这些图的方法吗 Traceback most recent c
  • rdf:seeAlso 和 rdfs:seeAlso 之间的区别

    有什么区别rdf seeAlso and rdfs seeAlso 当我可以使用时rdf seeAlso当我可以使用时rdfs seeAlso 你能举出一些例子吗 首先 请注意rdf and rdfs分别是常用于引用 RDF 语法和 RDF
  • djangonic 处理 rdf 的方法?

    我正在寻找 django 的 RDF 项目 但找不到任何活动的项目 这似乎是一个不错的http code google com p django rdf http code google com p django rdf 但最后一次提交是在
  • 概念数据建模:RDF 是正确的工具吗?其他解决方案?

    我正在规划一个系统 该系统结合了各种数据源 并允许用户对这些数据源进行简单的查询 系统的一部分需要充当抽象层 了解所有连接的数据源 用户不应该 需要 了解底层数据 提供者 数据提供者可以是任何东西 关系 DBMS 错误跟踪系统 气象站 它们
  • 如何验证 SPARQL 中的日期时间对象? (Virtuoso 22007 错误 DT006)

    我收到以下错误 Virtuoso 22007 Error DT006 Cannot convert 0359 to datetime Incorrect month field length SPARQL query define sql

随机推荐