本体中的<owl:ontology rdf:about =“xml:base”>是什么意思?</owl:ontology>

时间:2015-01-01 02:11:57

标签: xml owl ontology

当我们看到像

这样的陈述时
<owl:Ontology rdf:about="xml:base"/>

在本体的开头(标题)附近,究竟是什么意思?

如果我们尝试用简单的英语阅读,那么这应该是xml:baseOntology之类的内容。但我的理解并没有超越这一点。我特别想念了 xml:base部分。在本体论的情况下,xml:base扮演什么角色?

(参考:A 语义 卷筒纸 底漆, 第二版, Grigoris Antoniou 和 Frank van Harmelen,第135页。)

2 个答案:

答案 0 :(得分:3)

<owl:Ontology>表示您正在Ontology命名空间中定义的owl

rdf:about,来自about命名空间的rdf属性,应该提供一个URI,该URI将给出XML正在讨论的内容的定义。但是,在这种情况下,值为xml:base。这表示此XML模式的主题由位于URI 的资源表示,其中检索了此xml

如果本体要包含另一个<xml:base>元素,则会覆盖URI;而不是查看我们刚刚检索到包含Ontology的XML文件的位置,而是查看<xml:base>元素中定义的URI。

ETA:正如Ignazio在下面的评论中指出的那样,rdf:about="xml:base"并没有真正起作用。即使我已经正确地解释了Owl的人实际上想要的内容,代码实际上的是about属性是字符串{{ 1}},这并不意味着什么。

答案 1 :(得分:1)

我正在学术研究中阅读同一本书(《语义网入门》第二版,Grigorris Antoniou和Frank van Harmelen),我认为最初出现在同一本书中的描述是必要的回答这个问题,以及一些额外的解释,包括编码案例和对Apache Jena的文档引用,documented是一种开放源代码本体应用程序构建器,可以由更广泛的用户关联,这些用户不必是语义网或本体工程中的计算机科学专家

  • ch3.2.4语句的三个视图p66 中,rdf:about属性为

    引用现有资源

  • 就像Apache Jena中的Apache Jena's document一样,类owl:Ontology的个人的URI按照惯例是

    本体文档本身的URL或网址。

因此

  • xml:base中声明的rdf:about绝对是分配给类型为owl:ontology的资源的URI。
  • 以下本体中的URI以相同的方式工作:
    <owl:Ontology rdf:about="xml:base"/>
    <owl:Ontology rdf:about="http://examples/base#"/>
    

但是还有另一种情况:

<owl:Ontology rdf:about=""/>

空的Ontology URI完全以不同的方式工作,这可能导致其他异常的URI形式,例如xml:base令人困惑,如本文所质疑。 an experimental repository

构造rdf:about=""不会表示没有URI的资源;实际上,这是引用包含本体的文档的基本URI 的简便方法。

一些已发布的RDFS / OWL推理机产品可以帮助我们更详细地检查本体URI。在这里,我们可以通过https://github.com/chigix/jena_stories/blob/master/src/test/resources/african-wildlife.owl来解释上述关于本体URI的两种情况如何在Apache Jena中工作:

// https://github.com/chigix/jena_stories/blob/b9af78e7c128a3e31f41bbfbafd06199099eb7f7/src/test/java/com/chigix/jena_stories/ontology/MetaHeaderTest.java#L52
Ontology baseOntology = model.getOntology("xml:base");
assertThat(baseOntology, notNullValue(Ontology.class));
assertThat(baseOntology.getURI(), equalTo("xml:base"));

从上面的单元测试代码段中,可以通过给定的URI xml:base来查询分配给xml:base的本体。这意味着xml:base只是代表基础本体资源URI的简单字符串。

更多:

// https://github.com/chigix/jena_stories/blob/b9af78e7c128a3e31f41bbfbafd06199099eb7f7/src/test/java/com/chigix/jena_stories/ontology/MetaHeaderTest.java#L56
model.read(RDFDataMgr.open("african-wildlife.owl"), "http://ontology.chigix.com/some#", "RDF/XML");
assertThat(model.getOntology("xml:base"), notNullValue(Ontology.class));
assertThat(model.getOntology("xml:base").getURI(), equalTo("xml:base"));
assertThat(model.getOntology("http://ontology.chigix.com/some"), nullValue());

因此,即使文档中包含一个本体,该文档的URL与在基础本体资源上分配的URI也不相同,我们仍然使用本体的URI(此处表示为xml:base)来查询目标本体。

但是如果文档中的本体URI被声明为空,该怎么办:

// https://github.com/chigix/jena_stories/blob/b9af78e7c128a3e31f41bbfbafd06199099eb7f7/src/test/java/com/chigix/jena_stories/ontology/MetaHeaderTest.java#L69
model.read(RDFDataMgr.open("printer-ontology.owl"), "http://ontology.chigix.com/some#", "RDF/XML");
assertThat(model.getOntology("xml:base"), nullValue());
assertThat(model.getOntology("http://ontology.chigix.com/some"), notNullValue(Ontology.class));

我们可以看到:

  • 可以使用与文档的URL相同的给定URI查询本体。
  • 被质疑的xml:base不能帮助参考文档中的本体资源

结论是,本体中的xml:base仅仅是一个普通的URI字符串,无法发挥任何特殊的魔术功能。 本体文档中的<owl:Ontology rdf:about="xml:base"/>语句是为了整理工作而对类似元的声明进行分组,包括

评论,版本控制和其他本体的包含

,如 ch4.2.2标头p116 中的示例所示:

<owl:Ontology rdf:about="">
    <rdfs:comment> This is an ontology </rdfs:comment>
    <owl:priorVersion rdf:resource="http://..." />
    <owl:imports rdf:resource="http://..." />
    <rdfs:label>Ultraman Tiga</rdfs:label>
</owl:Ontology>

以上示例中使用的owl文档最初来自本书的 ch4.3示例pp.129-138 中的示例,也可以从实验存储库中访问它们: / p>