Определенный класс со свойством аннотации в Protégé
Как создать определенный класс, используя свойство аннотации в онтологии OWL?
В настоящее время я создал определенный класс, используя свойство объекта hasSubject.
Определенный класс:
Я бы предпочел создать этот класс, повторно используя аннотацию "Subject" из набора DC-Terms вместо пользовательского свойства объекта.
Можно ли создать определенный класс со свойством аннотации? Как бы я сделал это в Protégé?
1 ответ
Вы не можете использовать свойства аннотации в ограничениях класса OWL. Вы можете использовать свойства объекта и свойства типа данных, но не свойства аннотации. В частности, абстрактный синтаксис для экзистенциального ограничения типа
isubject of некоторый фильм
есть, из 8.2.1 Экзистенциальная количественная оценка:
ObjectSomeValuesFrom
:= 'ObjectSomeValuesFrom'
'('
ObjectPropertyExpression ClassExpression')'
У вас не будет ObjectPropertyExpression, когда вы работаете со свойством аннотации.
Однако вы можете объявить dcterms: subject как свойство объекта в вашей онтологии, и тогда вы сможете его использовать. В соответствии с документацией по dcterms: subject, IRI является http://purl.org/dc/terms/subject. Вы бы объявили это в Protege как любое другое свойство объекта:
Затем вы можете использовать его в выражениях классов:
Обратите внимание, что документация для dcterms: subject говорит:
Примечание. Этот термин предназначен для использования с не буквальными значениями, как определено в абстрактной модели DCMI ( http://dublincore.org/documents/abstract-model/). С декабря 2007 года Совет по использованию DCMI ищет способ выразить это намерение с помощью официальной декларации диапазона.
Это означает, что вы на самом деле говорите что-то более ограничительное. Объявляя dcterms: subject как свойство объекта, вы сможете сделать вывод, что всякий раз, когда "X dcterms: subject Y", X и Y являются экземплярами owl:Thing, а также всего, что вы можете сказать о домене и Диапазон собственности. Поскольку другие люди могут не использовать dcterms: subject как свойство объекта, они могут не ожидать таких выводов.
Вот что в итоге дает онтология:
@prefix : <http://stackru.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://stackru.com/q/29317444/1281433/> .
<http://stackru.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://stackru.com/q/29317444/1281433/FilmSubjectComposer
:FilmSubjectComposer rdf:type owl:Class ;
owl:equivalentClass [ rdf:type owl:Class ;
owl:intersectionOf ( <http://stackru.com/q/29317444/1281433/#Composer>
[ rdf:type owl:Restriction ;
owl:onProperty [ owl:inverseOf <http://purl.org/dc/terms/subject>
] ;
owl:someValuesFrom <http://stackru.com/q/29317444/1281433/#Film>
]
)
] .
### http://stackru.com/q/29317444/1281433/#Composer
<http://stackru.com/q/29317444/1281433/#Composer> rdf:type owl:Class .
### http://stackru.com/q/29317444/1281433/#Film
<http://stackru.com/q/29317444/1281433/#Film> rdf:type owl:Class .
### Generated by the OWL API (version 3.5.0) http://owlapi.sourceforge.net