创建OWL本体时,声明的后果是什么:
ex:myHasPart a owl:ObjectProperty .
ex:myHasPart owl:subPropertyOf <http://purl.org/dc/terms/hasPart> .
答案 0 :(得分:2)
从您编写的两个三元组中,我们可以说,如果您有三个<x> ex:myHasPart <y>
,那么我们可以推断<x> dc:hasPart <y>
(在OWL 1和OWL 2中,使用{{3} }或direct semantics)。
但只有通过了解你的本体论中的其他内容,才能完全估计公理的完整后果。如果你只有这两个三元组,你的本体不是OWL(1/2)DL。但是,reasoners不会关心,他们通常会认为dc:hasPart
也是一个对象属性,事情就好了。此外,如果您有另外的声明说:
dc:hasPart a owl:AnnotationProperty .
那么本体无效OWL DL,也不是OWL 2 DL,无论你有什么其他内容(IRI最多只能表示一种属性,注释,数据类型或对象)。它仍可用于许多不关心的OWL工具(例如Protégé)。只要你不以奇怪的方式使用这些属性,例如同时使用文字和非文字,反义者可能也不在乎。
专门回答您的问题:
在OWL 1中:我从RDF-based semantics读到它暗示ex:myHasPart将是一个AnnotationProperty。它可以是ObjectProperty和AnnotationProperty吗?
不,两个三元组暗示ex:myHasPart
是owl:ObjectProperty
。在http://bloody-byte.net/rdf/dc_owl2dl/中,属性不能同时是对象和注释。在OWL 2 ontology中,它们可以(OWL 2 Full本体只是一个RDF图)。在OWL 1中,OWL 2 Full ontology本体不能同时具有作为注释属性的对象属性,而OWL DL本体可以。
在OWL 2中:后果/蕴涵会是什么?
与OWL 1完全相同,但它取决于您使用的语义:直接语义还是基于RDF的语义?直接语义仅适用于OWL 2本体,而不适用于OWL 2 Full本体,因此您必须至少声明本体<yourOnto> a owl:Ontology
并将术语dc:hasPart
声明为owl:objectProperty
。 Reasoners可以更宽容。在任何情况下,都不会发生任何不好的事情,除非你搞砸了本体的其余部分。
如何在Protégé中选择在OWL1或OWL2中工作?
您可以选择不支持OWL 2的Protégé版本(如果您仍然可以设法找到一个)。否则,4.0之后的任何版本都使用OWL 2.但是从语法的角度来看,没有理由限制为OWL 1.推理是独立于Protégé中的编辑器完成的,所以无论你是否有OWL 1或OWL 2推理取决于你有哪个插件。但是,不支持OWL 2的OWL reasoners已经过时,没有太多合理的理由继续使用它们。
另外,OWL-DL与OWL-Full的后果是什么?我的本体论仍然处于OWL-DL级别吗?
我想我已经解释了这一点。
声明像这样的dcterms的subProperties是一个好习惯吗?我想我需要对此进行一般性解释。
我认为没有任何理由将其视为良好做法,但我认为没有理由积极阻止人们这样做。
什么可以替代链接ex:myHasPart与dcterms:hasPart? rdfs:seeAlso? skos:broadMatch?
您的建议似乎对我有效。但是真的是否需要明确指明该链接?