如何在OWL本体中使用注释属性创建已定义的类?
目前,我已使用对象属性 hasSubject 创建了一个已定义的类。
定义的类:
我更喜欢通过重复使用DC-Terms集中的注释“Subject”而不是自定义对象属性来创建此类。
是否可以使用注释属性创建定义的类? 我怎么能在Protégé做到这一点?
答案 0 :(得分:4)
您不能在OWL类限制中使用注释属性。您可以使用对象属性和数据类型属性,但不能使用注释属性。特别是,存在性限制的抽象语法,如
isSubjectOf some 电影
来自8.2.1 Existenial Quantification:
ObjectSomeValuesFrom
:= 'ObjectSomeValuesFrom'
'('
ObjectPropertyExpression ClassExpression')'
使用注释属性时,您将不会拥有 ObjectPropertyExpression 。
根据{{3}},IRI http://purl.org/dc/terms/subject 。您可以像在任何其他对象属性中一样在Protege中声明:
然后你可以在类表达式中使用它:
请注意 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