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

reg*_*gie 3 owl ontology protege4 protege

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

\n\n

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

\n\n

在此输入图像描述

\n\n

定义的类:

\n\n

在此输入图像描述

\n\n

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

\n\n

是否可以创建一个带有注释属性的定义类?\n我如何在 Prot\xc3\xa9g\xc3\xa9 中做到这一点?

\n

Jos*_*lor 6

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

        是某部电影的主题

是,来自8.2.1 存在量化

ObjectSomeValuesFrom := 'ObjectSomeValuesFrom' '(' ObjectPropertyExpression 类表达式 ')'

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

但是,您可以做的是将dcterms:subject声明为本体中的对象属性,然后您就可以使用它。根据dcterms:subject 的文档,IRI 是http://purl.org/dc/terms/subject。您可以像任何其他对象属性一样在 Protege 中声明这一点:

添加 dcterms 作为属性

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

在此输入图像描述

请注意dcterms:subject的文档说:

注意:该术语旨在与 DCMI 抽象模型 ( http://dublincore.org/documents/abstract-model/ )中定义的非文字值一起使用。截至 2007 年 12 月,DCMI 使用委员会正在寻求一种通过正式范围声明来表达这一意图的方法。

这意味着您实际上说的是更具限制性的内容。通过将dcterms:subject声明为对象属性,您将能够推断每当“X dcterms:subject Y”时,X 和 Y 都是 owl:Thing 的实例,以及您可能所说的有关域和的任何其他内容财产范围。由于其他人可能不会使用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
Run Code Online (Sandbox Code Playgroud)