【问题标题】:How to distinguish in OWL properties describing the represented object from properties describing the representation?如何区分描述表示对象的 OWL 属性和描述表示的属性?
【发布时间】:2016-08-04 08:01:54
【问题描述】:

如何在 OWL 中区分描述表示对象的属性和描述表示的属性。这是一个小例子:

:fgst1425 rdf:type :Building ,
                   owl:NamedIndividual ;

          rdfs:label "B28"@en ;

          :isWorkLocationOf :hugr9807 ; #this is a property of the building

          :hasURItype :ihuy8965 . #this is a property of the URI representing the building


:hugr9807 rdf:type :Person ,
                   owl:NamedIndividual ;

          rdfs:label "Ivo"@en .

:ihuy8965 rdf:type owl:NamedIndividual ,
                   owl:Thing ;

          rdfs:label "OpaqueURI"@en .

以类似的方式,描述访问权限的属性可以表示对建筑物的访问权和对表示建筑物的 URI 的读取访问权。

目的是对所表示的对象和表示都使用推理。例如,如果我有一个被爆炸杀死的人,并且这个爆炸是用一个 URI 注册的,我想说只有满足特定条件的人才能访问这个 URI,并通过推理找出谁是非法访问,但是避免 URI 杀死人的那种推论。

我想到的一个可能的解决方案是将所有元数据属性放在:metaDataProperty 下,然后使用 SPARQL 查询可以区分两种不同类型的语句。

建议的另一种方法是对元数据使用单独的本体。

你有什么建议?

【问题讨论】:

    标签: rdf owl ontology


    【解决方案1】:

    如何在 OWL 中区分描述表示对象的属性和描述表示的属性。

    这是 OWL 没有的独特之处。制作这个本体的人做了一些可能被认为有些不寻常的事情。而

    :hasURItype :ihuy8965 . #this is a property of the URI representing the 
    

    建筑

    可能是“关于表示”,就 OWL 而言,它只是建筑物的另一个属性。毕竟,根据

    :ihuy8965 rdf:type owl:NamedIndividual , owl:Thing ;
    

    该值只是另一个命名的个体。

    然而,有一件事情可能是可能的,这取决于本体设计者做了什么。 OWL 允许您定义三种类型的属性:

    • 对象属性
    • 数据类型属性
    • 注解属性

    前两个,对象和数据类型属性,是 OWL 推理器使用的,应该代表数据的实际含义。第三种类型,注释属性是一种“额外”数据。本体设计者可能已将 :hasURItype 定义为 注解属性,以表明推理并不真正需要其值;也就是说,它们是“真实”数据的注释。如果是这种情况,那么您可以执行以下操作:

    construct { ?s ?p ?o }
    where {
      values ?s { :fgst1425 }
      ?s ?p ?o .
      filter not exists {
        ?p rdf:type owl:AnnotationProperty
      }
    }
    

    排除已声明为注释属性的属性。不过,我们没有足够的数据来了解这种方法是否适用于此。

    更新

    根据对问题的更新,我认为您可能希望创建一个新的注释属性来区分属性是否是“表示属性”。例如,

    :isRepresentationProperty a owl:AnnotationProperty
    

    那么您的属性定义可以考虑到这一点:

    :isWorkLocationOf a owl:ObjectProperty .
    
    :hasURItype a owl:ObjectProperty ;
                :isRepresentationProperty true .
    

    然后您可以将您的 SPARQL 查询更新为:

    construct { ?s ?p ?o }
    where {
      values ?s { :fgst1425 }
      ?s ?p ?o .
      filter not exists {
        ?p :isRepresentationProperty true 
      }
    }
    

    【讨论】:

    • 这两种属性都需要推理。我试图进一步澄清这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多