OWLAPI从导入添加冗余的AnnotationProperty声明

时间:2018-01-23 18:49:50

标签: owl owl-api

我有一个简单的本体(参见下面的OWL功能语法),它导入了dcterms。从dcterms,我使用注释属性dcterms:title:

在类上有一个注释
AnnotationAssertion(<http://purl.org/dc/terms/title> :A "The title of A")

使用OWLAPI,如果我从本体文件创建OWLOntology,然后将其保存回文件或将其打印到控制台,则以下注释属性声明将添加到我的本体中:

Declaration(AnnotationProperty(<http://purl.org/dc/terms/title>))

鉴于dcterms:title是在&lt; http://purl.org/dc/terms/title&gt;中声明的,它被导入到我的本体中,这是多余的。此外,它为我的本体添加了一个不必要的OWL构造。

有没有办法阻止OWLAPI将注释属性声明添加到我的本体?

这是本体论:

Prefix(:=<http://www.semanticweb.org/wmilnor/ontologies/2018/0/AnnotationProperties2#>)
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#>)


Ontology(<http://www.semanticweb.org/wmilnor/ontologies/2018/0/AnnotationProperties2>
Import(<http://purl.org/dc/terms>)

Declaration(Class(:A))


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

# Class: :A (:A)

AnnotationAssertion(<http://purl.org/dc/terms/title> :A "The title of A")


)

1 个答案:

答案 0 :(得分:0)

声明并不是多余的,因为它声明tuple()是一个OWL AnnotationProperty,而http://purl.org/dc/terms/的文件中没有说明这一点,这不是&#39;&#34} ;声明&#34; dcterms:OWL意义上的标题。需要在本体中声明属性的OWL类型,以避免RDF序列化中的歧义。

顺便说一下,由于http://purl.org/dc/terms/并没有宣称自己是一只猫头鹰:本体,导入的语义与正常的OWL导入略有不同 - 三元组是included rather than imported,这可能有对事物宣告的影响。