Protégé中带有注释属性的已定义类

时间:2015-03-28 12:57:48

标签: owl ontology protege protege4

如何在OWL本体中使用注释属性创建已定义的类?

目前,我已使用对象属性 hasSubject 创建了一个已定义的类。

enter image description here

定义的类:

enter image description here

我更喜欢通过重复使用DC-Terms集中的注释“Subject”而不是自定义对象属性来创建此类。

是否可以使用注释属性创建定义的类? 我怎么能在Protégé做到这一点?

1 个答案:

答案 0 :(得分:4)

您不能在OWL类限制中使用注释属性。您可以使用对象属性和数据类型属性,但不能使用注释属性。特别是,存在性限制的抽象语法,如

isSubjectOf some 电影

来自8.2.1 Existenial Quantification

  

ObjectSomeValuesFrom := 'ObjectSomeValuesFrom' '(' ObjectPropertyExpression ClassExpression ')'

使用注释属性时,您将不会拥有 ObjectPropertyExpression

根据{{​​3}},IRI http://purl.org/dc/terms/subject 。您可以像在任何其他对象属性中一样在Protege中声明:

adding dcterms as a property

然后你可以在类表达式中使用它:

enter image description here

请注意 dcterms:subject 的文档说明:

  

注意:此术语旨在与非文字值一起使用   在DCMI抽象模型中定义   (the documentation on dcterms:subject)。截至12月   2007年,DCMI使用委员会正在寻求表达这一意图的方法   正式的范围声明。

这意味着你实际上说的是更具限制性的东西。通过将 dcterms:subject 声明为对象属性,您将能够推断出每当“X dcterms:subject Y”时,X和Y都是owl的实例:事情,以及您可能会对房产的范围和范围说些什么。由于其他人可能不会将 dcterms:subject 用作对象属性,因此他们可能不会期望这些推断。

以下是本体最终的结论:

@prefix : <http://stackoverflow.com/q/29317444/1281433/> .
@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://stackoverflow.com/q/29317444/1281433/> .

<http://stackoverflow.com/q/29317444/1281433/> rdf:type owl:Ontology .


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


###  http://purl.org/dc/terms/subject

<http://purl.org/dc/terms/subject> rdf:type owl:ObjectProperty .





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


###  http://stackoverflow.com/q/29317444/1281433/FilmSubjectComposer

:FilmSubjectComposer rdf:type owl:Class ;

                     owl:equivalentClass [ rdf:type owl:Class ;
                                           owl:intersectionOf ( <http://stackoverflow.com/q/29317444/1281433/#Composer>
                                                                [ rdf:type owl:Restriction ;
                                                                  owl:onProperty [ owl:inverseOf <http://purl.org/dc/terms/subject>
                                                                                 ] ;
                                                                  owl:someValuesFrom <http://stackoverflow.com/q/29317444/1281433/#Film>
                                                                ]
                                                              )
                                         ] .



###  http://stackoverflow.com/q/29317444/1281433/#Composer

<http://stackoverflow.com/q/29317444/1281433/#Composer> rdf:type owl:Class .



###  http://stackoverflow.com/q/29317444/1281433/#Film

<http://stackoverflow.com/q/29317444/1281433/#Film> rdf:type owl:Class .




###  Generated by the OWL API (version 3.5.0) http://owlapi.sourceforge.net