【问题标题】:Defining cardinality of data property in OWL在 OWL 中定义数据属性的基数
【发布时间】:2014-08-03 00:40:31
【问题描述】:

是否可以在 OWL 中定义数据属性的基数? 例如考虑具有数据属性“Age”的类“Person”,有没有办法声明数据属性“Age”必须有一个值?

【问题讨论】:

    标签: rdf owl ontology


    【解决方案1】:

    您可以像使用对象属性一样使用公理(DL 和曼彻斯特语法):

    人 ⊑ =1.hasAge
    subClassOf hasAge 正好 1

    这是一个包含这些公理的小型本体:

    @prefix :      <http://stackoverflow.com/q/24188632/1281433/people-have-exactly-one-age#> .
    @prefix owl:   <http://www.w3.org/2002/07/owl#> .
    @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    @prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
    @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
    
    :Person  a               owl:Class ;
            rdfs:subClassOf  [ a                owl:Restriction ;
                               owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                               owl:onProperty   :hasAge
                             ] .
    
    <http://stackoverflow.com/q/24188632/1281433/people-have-exactly-one-age>
            a       owl:Ontology .
    
    :hasAge  a      owl:DatatypeProperty .
    

    在某些情况下,对数据类型属性使用精确基数限制实际上比对对象属性更方便一些,因为推理器(应该能够)识别文字之间的不等式(例如,2 ≠ 3 和“foo”≠ "bar") 自动,而个人可以有多个名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 2016-11-07
      • 1970-01-01
      • 2014-02-25
      • 2023-03-12
      • 1970-01-01
      • 2017-06-23
      相关资源
      最近更新 更多