@skaterqiang/protege-js 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/LICENSE +48 -0
- package/README.md +287 -0
- package/docs/API.md +654 -0
- package/docs/design/OWL2-/347/274/272/345/217/243/345/210/206/346/236/220.md +140 -0
- package/docs/owl2-rl/OWL2-RL-/350/247/204/345/210/231/347/273/206/345/210/231.md +168 -0
- package/docs/owl2-rl/owl2-profiles-spec-zh.html +1914 -0
- package/docs/owl2-rl/owl2-profiles-spec.html +1916 -0
- package/docs/owl2-rl/rl_rules.json +392 -0
- package/main.js +46 -0
- package/package.json +76 -0
- package/sample/README.md +74 -0
- package/sample/case1-ecommerce-risk.js +170 -0
- package/sample/case10-ecommerce-customer-service.js +454 -0
- package/sample/case2-family-swrl.js +147 -0
- package/sample/case3-pharma-safety.js +132 -0
- package/sample/case4-knowledge-publishing.js +111 -0
- package/sample/case5-obda-profiles.js +153 -0
- package/sample/case6-medical-ontology.js +152 -0
- package/sample/case7-manufacturing-ppr.js +155 -0
- package/sample/case8-real-medical-bfo-ogms.js +353 -0
- package/sample/case9-real-manufacturing-iao.js +360 -0
- package/sample/ontologies/bfo.owl +1715 -0
- package/sample/ontologies/iao.owl +8532 -0
- package/sample/ontologies/ogms.owl +4320 -0
- package/sample/ontologies/ro-core.owl +1010 -0
- package/scripts/verify-api.js +53 -0
- package/src/index.js +176 -0
- package/src/inference/OWL2ProfileReasoners.js +67 -0
- package/src/inference/OWL2RLReasoner.js +65 -0
- package/src/inference/ReasonerQueries.js +111 -0
- package/src/inference/SWRLReasoner.js +409 -0
- package/src/inference/TripleStore.js +82 -0
- package/src/inference/rdf.js +83 -0
- package/src/inference/rules/owl2el.js +33 -0
- package/src/inference/rules/owl2ql.js +29 -0
- package/src/inference/rules/owl2rl.js +823 -0
- package/src/io/FunctionalSyntaxParser.js +399 -0
- package/src/io/FunctionalSyntaxWriter.js +180 -0
- package/src/io/ManchesterSyntaxParser.js +398 -0
- package/src/io/OWLXMLParser.js +356 -0
- package/src/io/OntologyLoader.js +125 -0
- package/src/io/RDFGraphToOntology.js +702 -0
- package/src/io/RDFXMLParser.js +319 -0
- package/src/io/RDFXMLWriter.js +196 -0
- package/src/io/SWRLParser.js +150 -0
- package/src/io/TurtleParser.js +363 -0
- package/src/io/TurtleWriter.js +393 -0
- package/src/model/IRI.js +62 -0
- package/src/model/OWLAxiom.js +507 -0
- package/src/model/OWLClassExpression.js +242 -0
- package/src/model/OWLEntity.js +142 -0
- package/src/model/OWLLiteral.js +30 -0
- package/src/model/OWLModelManager.js +106 -0
- package/src/model/OWLOntology.js +119 -0
- package/src/model/SWRL.js +152 -0
- package/src/model/event/OWLModelManagerEvent.js +33 -0
- package/src/model/hierarchy/HierarchyProvider.js +214 -0
- package/src/profiles/OWL2Profiles.js +185 -0
- package/src/server/public/app.js +97 -0
- package/src/server/public/index.html +49 -0
- package/src/server/webServer.js +138 -0
- package/src/validation/GlobalRestrictionsValidator.js +172 -0
- package/test/core.test.js +111 -0
- package/test/exports-map.test.js +165 -0
- package/test/owl2/axioms.test.js +160 -0
- package/test/owl2/classExpressions.test.js +99 -0
- package/test/owl2/functional-syntax-writer.test.js +65 -0
- package/test/owl2/functional.test.js +113 -0
- package/test/owl2/global-restrictions.test.js +76 -0
- package/test/owl2/longtail.test.js +74 -0
- package/test/owl2/manchester-syntax.test.js +100 -0
- package/test/owl2/ontology-loader-imports.test.js +62 -0
- package/test/owl2/owlxml-parser.test.js +112 -0
- package/test/owl2/profile-reasoners.test.js +108 -0
- package/test/owl2/profiles.test.js +66 -0
- package/test/owl2/rdf-graph-to-ontology.test.js +177 -0
- package/test/owl2/rdfxml-punning.test.js +25 -0
- package/test/owl2/rdfxml-writer.test.js +55 -0
- package/test/owl2/rdfxml.test.js +91 -0
- package/test/owl2/reasoner-queries.test.js +58 -0
- package/test/owl2/sample-e2e.test.js +195 -0
- package/test/owl2/swrl-parser.test.js +60 -0
- package/test/owl2/swrl.test.js +131 -0
- package/test/owl2/turtle-writer.test.js +84 -0
- package/test/owl2/turtle.test.js +124 -0
- package/test/owl2rl/cax.test.js +57 -0
- package/test/owl2rl/cls.test.js +210 -0
- package/test/owl2rl/dt.test.js +72 -0
- package/test/owl2rl/eq.test.js +95 -0
- package/test/owl2rl/prp.test.js +198 -0
- package/test/owl2rl/scm.test.js +203 -0
|
@@ -0,0 +1,1914 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
|
2
|
+
<head>
|
|
3
|
+
<title>OWL 2 Web Ontology Language Profiles (Second Edition)</title>
|
|
4
|
+
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
.editsection { display: none; }
|
|
7
|
+
</style>
|
|
8
|
+
<link href="owl.css" rel="stylesheet" type="text/css" />
|
|
9
|
+
<link href="https://www.w3.org/StyleSheets/TR/W3C-REC" rel="stylesheet" type="text/css" />
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
|
|
15
|
+
<div class="head">
|
|
16
|
+
<a href="https://www.w3.org/"><img alt="W3C" height="48" src="https://www.w3.org/Icons/w3c_home" width="72" /></a><h1 id="title" style="clear:both">OWL 2 Web 本体语言 <br /><span id="short-title">剖面(第二版)</span></h1>
|
|
17
|
+
|
|
18
|
+
<h2 id="W3C-doctype">W3C 推荐标准 2012年12月11日</h2>
|
|
19
|
+
|
|
20
|
+
<!-- no inplace warning -->
|
|
21
|
+
<dl>
|
|
22
|
+
<dt>This version:</dt>
|
|
23
|
+
<dd><a href="https://www.w3.org/TR/2012/REC-owl2-profiles-20121211/" id="this-version-url">http://www.w3.org/TR/2012/REC-owl2-profiles-20121211/</a></dd>
|
|
24
|
+
|
|
25
|
+
<dt>Latest version (series 2):</dt>
|
|
26
|
+
<dd><a href="https://www.w3.org/TR/owl2-profiles/">http://www.w3.org/TR/owl2-profiles/</a></dd>
|
|
27
|
+
|
|
28
|
+
<dt>Latest Recommendation:</dt>
|
|
29
|
+
<dd><a href="https://www.w3.org/TR/owl-profiles">http://www.w3.org/TR/owl-profiles</a></dd>
|
|
30
|
+
|
|
31
|
+
<dt>Previous version:</dt>
|
|
32
|
+
<dd><a href="https://www.w3.org/TR/2012/PER-owl2-profiles-20121018/">http://www.w3.org/TR/2012/PER-owl2-profiles-20121018/</a></dd>
|
|
33
|
+
</dl>
|
|
34
|
+
|
|
35
|
+
<dl><dt>Editors:</dt><dd><a href="http://www.cs.ox.ac.uk/people/boris.motik/">Boris Motik</a>, University of Oxford</dd>
|
|
36
|
+
<dd><a href="http://www.cs.ox.ac.uk/people/bernardo.cuencagrau/">Bernardo Cuenca Grau</a>, University of Oxford</dd>
|
|
37
|
+
<dd><a href="http://www.cs.ox.ac.uk/people/ian.horrocks/">Ian Horrocks</a>, University of Oxford</dd>
|
|
38
|
+
<dd><a href="https://www.w3.org/2007/OWL/wiki/Zhe_Wu">Zhe Wu</a>, Oracle</dd>
|
|
39
|
+
<dd><a href="http://domino.research.ibm.com/comm/research_people.nsf/pages/achille.index.html">Achille Fokoue</a>, IBM Corporation</dd>
|
|
40
|
+
<dd><a href="http://www.informatik.uni-bremen.de/~clu/">Carsten Lutz</a>, University of Bremen</dd>
|
|
41
|
+
<dt>Contributors: (in alphabetical order)</dt><dd><a href="http://www.inf.unibz.it/~calvanese/">Diego Calvanese</a>, Free University of Bozen-Bolzano</dd>
|
|
42
|
+
<dd><a href="http://semanticweb.org/wiki/Jeremy_J._Carroll">Jeremy Carroll</a>, HP (now at TopQuadrant)</dd>
|
|
43
|
+
<dd><a href="http://www.dis.uniroma1.it/~degiacom/">Giuseppe De Giacomo</a>, Sapienza Università di Roma</dd>
|
|
44
|
+
<dd><a href="http://tw.rpi.edu/wiki/James_A._Hendler">Jim Hendler</a>, Rensselaer Polytechnic Institute</dd>
|
|
45
|
+
<dd><a href="https://www.w3.org/People/Ivan/">Ivan Herman</a>, W3C/ERCIM</dd>
|
|
46
|
+
<dd><a href="http://www.cs.man.ac.uk/~bparsia/">Bijan Parsia</a>, University of Manchester</dd>
|
|
47
|
+
<dd>Peter F. Patel-Schneider, Nuance Communications</dd>
|
|
48
|
+
<dd><a href="http://sciencecommons.org/about/whoweare/ruttenberg/">Alan Ruttenberg</a>, Science Commons (Creative Commons)</dd>
|
|
49
|
+
<dd><a href="http://www.cs.man.ac.uk/~sattler/">Uli Sattler</a>, University of Manchester</dd>
|
|
50
|
+
<dd><a href="http://www.fzi.de/michael.schneider">Michael Schneider</a>, FZI Research Center for Information Technology</dd>
|
|
51
|
+
</dl>
|
|
52
|
+
|
|
53
|
+
<p>Please refer to the <a href="https://www.w3.org/2007/OWL/errata"><strong>errata</strong></a> for this document, which may include some normative corrections.</p>
|
|
54
|
+
|
|
55
|
+
<p>A <a href="https://www.w3.org/TR/2012/REC-owl2-profiles-20121211/diff-from-20121018">color-coded version of this document showing changes made since the previous version</a> is also available.</p><p>This document is also available in these non-normative formats: <a href="https://www.w3.org/2012/pdf/REC-owl2-profiles-20121211.pdf">PDF version</a>.</p>
|
|
56
|
+
|
|
57
|
+
<p>See also <a href="https://www.w3.org/2007/OWL/translation/owl2-profiles">translations</a>.</p>
|
|
58
|
+
|
|
59
|
+
<p class="copyright"><a href="https://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2012 <a href="https://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="https://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="https://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="https://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
|
|
60
|
+
|
|
61
|
+
</div>
|
|
62
|
+
<hr />
|
|
63
|
+
<h2><a id="abstract" name="abstract">摘要</a></h2>
|
|
64
|
+
|
|
65
|
+
<div>
|
|
66
|
+
<div><p>OWL 2 Web 本体语言(非正式称为 OWL 2)是一种用于语义万维网的本体语言,具有形式化定义的语义。OWL 2 本体提供类、属性、个体和数据值,并以语义万维网文档的形式存储。OWL 2 本体可以与用 RDF 书写的信息一起使用,而 OWL 2 本体本身也主要以 RDF 文档的形式进行交换。OWL 2 <a href="https://www.w3.org/TR/2012/REC-owl2-overview-20121211/" title="Document Overview">文档概述</a>描述了 OWL 2 的总体状况,应在阅读其他 OWL 2 文档之前先行阅读。</p><p>本文档给出了 OWL 2 若干剖面(profile)的规范,这些剖面可以被更简单和/或更高效地实现。在逻辑学中,剖面通常被称为片段。大多数剖面是通过对 OWL 2 本体的结构施加限制来定义的。这些限制通过修改函数式语法的产生式来规定。</p></div>
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
<h2 class="no-toc no-num">
|
|
70
|
+
<a id="w3c_status" name="w3c_status">本文档状态</a>
|
|
71
|
+
</h2>
|
|
72
|
+
|
|
73
|
+
<h4 class="no-toc no-num" id="may-be">可能被取代</h4>
|
|
74
|
+
|
|
75
|
+
<p><em>本节描述本文档发布时的状态。其他文档可能会取代本文档。当前的 W3C 出版物列表以及本技术报告的最新修订版,可在 http://www.w3.org/TR/ 的 <a href="https://www.w3.org/TR/">W3C 技术报告索引</a>中找到。</em></p>
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<!-- no eventStatusExtra -->
|
|
80
|
+
|
|
81
|
+
<!-- no statusExtra -->
|
|
82
|
+
|
|
83
|
+
<div></div>
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
<h4 class="no-toc no-num" id="status-changes">变更摘要</h4>
|
|
88
|
+
|
|
89
|
+
<div>自<a href="https://www.w3.org/TR/2012/PER-owl2-profiles-20121018/">上一版本</a>以来,没有任何<a href="https://www.w3.org/2005/10/Process-20051014/tr#substantive-change">实质性</a>变更。有关次要变更的详情,请参见<a href="#changelog">变更日志</a>和<a href="https://www.w3.org/TR/2012/REC-owl2-profiles-20121211/diff-from-20121018">彩色标注的差异对照</a>。</div>
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
<h4 class="no-toc no-num" id="please">请发送评论</h4><p>请将任何评论发送至 <a class="mailto" href="mailto:public-owl-comments@w3.org">public-owl-comments@w3.org</a>
|
|
94
|
+
(<a class="http" href="http://lists.w3.org/Archives/Public/public-owl-comments/">公开
|
|
95
|
+
存档</a>)。尽管 <a href="https://www.w3.org/2007/OWL/">OWL 工作组</a>对本文档的工作已经完成,评论仍可能在<a href="https://www.w3.org/2007/OWL/errata">勘误表</a>或未来的修订版中得到处理。欢迎开发者在 <a class="mailto" href="mailto:public-owl-dev@w3.org">public-owl-dev@w3.org</a>(<a class="http" href="http://lists.w3.org/Archives/Public/public-owl-dev/">公开存档</a>)开展公开讨论。</p>
|
|
96
|
+
|
|
97
|
+
<h4 class="no-toc no-num" id="endorsement">已获 W3C 认可</h4>
|
|
98
|
+
|
|
99
|
+
<p><em>本文档已经 W3C 会员、软件开发者以及其他 W3C 小组和利益相关方审阅,并已获理事长(Director)认可为 W3C 推荐标准。这是一份稳定的文档,可用作参考材料或被其他文档引用。W3C 在制定推荐标准过程中的作用是提请各方关注本规范并促进其广泛部署。这有助于增强万维网的功能与互操作性。</em></p>
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
<h4 class="no-toc no-num" id="patents">专利</h4>
|
|
103
|
+
|
|
104
|
+
<p><em>本文档由一个依据 <a href="https://www.w3.org/Consortium/Patent-Policy-20040205/">2004 年 2 月 5 日 W3C 专利政策</a>运作的小组制定。W3C 维护着一份与该小组成果相关的<a href="https://www.w3.org/2004/01/pp-impl/41712/status" rel="disclosure">专利披露公开列表</a>;该页面还包含披露专利的说明。</em></p>
|
|
105
|
+
|
|
106
|
+
<hr title="Separator After Status Section" />
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
<table class="toc" id="toc" summary="Contents"><tbody><tr><td><div id="toctitle"><h2>目录</h2></div>
|
|
110
|
+
<ul>
|
|
111
|
+
<li class="toclevel-1"><a href="#Introduction"><span class="tocnumber">1</span> <span class="toctext">引言</span></a></li>
|
|
112
|
+
<li class="toclevel-1"><a href="#OWL_2_EL"><span class="tocnumber">2</span> <span class="toctext">OWL 2 EL</span></a>
|
|
113
|
+
<ul>
|
|
114
|
+
<li class="toclevel-2"><a href="#Feature_Overview"><span class="tocnumber">2.1</span> <span class="toctext">特性概览</span></a></li>
|
|
115
|
+
<li class="toclevel-2"><a href="#Profile_Specification"><span class="tocnumber">2.2</span> <span class="toctext">剖面规范</span></a>
|
|
116
|
+
<ul>
|
|
117
|
+
<li class="toclevel-3"><a href="#Entities"><span class="tocnumber">2.2.1</span> <span class="toctext">实体</span></a></li>
|
|
118
|
+
<li class="toclevel-3"><a href="#Property_Expressions"><span class="tocnumber">2.2.2</span> <span class="toctext">属性表达式</span></a></li>
|
|
119
|
+
<li class="toclevel-3"><a href="#Class_Expressions"><span class="tocnumber">2.2.3</span> <span class="toctext">类表达式</span></a></li>
|
|
120
|
+
<li class="toclevel-3"><a href="#Data_Ranges"><span class="tocnumber">2.2.4</span> <span class="toctext">数据范围</span></a></li>
|
|
121
|
+
<li class="toclevel-3"><a href="#Axioms"><span class="tocnumber">2.2.5</span> <span class="toctext">公理</span></a></li>
|
|
122
|
+
<li class="toclevel-3"><a href="#Global_Restrictions"><span class="tocnumber">2.2.6</span> <span class="toctext">全局限制</span></a></li>
|
|
123
|
+
</ul>
|
|
124
|
+
</li>
|
|
125
|
+
</ul>
|
|
126
|
+
</li>
|
|
127
|
+
<li class="toclevel-1"><a href="#OWL_2_QL"><span class="tocnumber">3</span> <span class="toctext">OWL 2 QL</span></a>
|
|
128
|
+
<ul>
|
|
129
|
+
<li class="toclevel-2"><a href="#Feature_Overview_2"><span class="tocnumber">3.1</span> <span class="toctext">特性概览</span></a></li>
|
|
130
|
+
<li class="toclevel-2"><a href="#Profile_Specification_2"><span class="tocnumber">3.2</span> <span class="toctext">剖面规范</span></a>
|
|
131
|
+
<ul>
|
|
132
|
+
<li class="toclevel-3"><a href="#Entities_2"><span class="tocnumber">3.2.1</span> <span class="toctext">实体</span></a></li>
|
|
133
|
+
<li class="toclevel-3"><a href="#Property_Expressions_2"><span class="tocnumber">3.2.2</span> <span class="toctext">属性表达式</span></a></li>
|
|
134
|
+
<li class="toclevel-3"><a href="#Class_Expressions_2"><span class="tocnumber">3.2.3</span> <span class="toctext">类表达式</span></a></li>
|
|
135
|
+
<li class="toclevel-3"><a href="#Data_Ranges_2"><span class="tocnumber">3.2.4</span> <span class="toctext">数据范围</span></a></li>
|
|
136
|
+
<li class="toclevel-3"><a href="#Axioms_2"><span class="tocnumber">3.2.5</span> <span class="toctext">公理</span></a></li>
|
|
137
|
+
</ul>
|
|
138
|
+
</li>
|
|
139
|
+
</ul>
|
|
140
|
+
</li>
|
|
141
|
+
<li class="toclevel-1"><a href="#OWL_2_RL"><span class="tocnumber">4</span> <span class="toctext">OWL 2 RL</span></a>
|
|
142
|
+
<ul>
|
|
143
|
+
<li class="toclevel-2"><a href="#Feature_Overview_3"><span class="tocnumber">4.1</span> <span class="toctext">特性概览</span></a></li>
|
|
144
|
+
<li class="toclevel-2"><a href="#Profile_Specification_3"><span class="tocnumber">4.2</span> <span class="toctext">剖面规范</span></a>
|
|
145
|
+
<ul>
|
|
146
|
+
<li class="toclevel-3"><a href="#Entities_3"><span class="tocnumber">4.2.1</span> <span class="toctext">实体</span></a></li>
|
|
147
|
+
<li class="toclevel-3"><a href="#Property_Expressions_3"><span class="tocnumber">4.2.2</span> <span class="toctext">属性表达式</span></a></li>
|
|
148
|
+
<li class="toclevel-3"><a href="#Class_Expressions_3"><span class="tocnumber">4.2.3</span> <span class="toctext">类表达式</span></a></li>
|
|
149
|
+
<li class="toclevel-3"><a href="#Data_Ranges_3"><span class="tocnumber">4.2.4</span> <span class="toctext">数据范围</span></a></li>
|
|
150
|
+
<li class="toclevel-3"><a href="#Axioms_3"><span class="tocnumber">4.2.5</span> <span class="toctext">公理</span></a></li>
|
|
151
|
+
</ul>
|
|
152
|
+
</li>
|
|
153
|
+
<li class="toclevel-2"><a href="#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules"><span class="tocnumber">4.3</span> <span class="toctext">使用规则在 OWL 2 RL 与 RDF 图上进行推理</span></a></li>
|
|
154
|
+
</ul>
|
|
155
|
+
</li>
|
|
156
|
+
<li class="toclevel-1"><a href="#Computational_Properties"><span class="tocnumber">5</span> <span class="toctext">计算性质</span></a></li>
|
|
157
|
+
<li class="toclevel-1"><a href="#Appendix:_Complete_Grammars_for_Profiles"><span class="tocnumber">6</span> <span class="toctext">附录:各剖面的完整文法</span></a>
|
|
158
|
+
<ul>
|
|
159
|
+
<li class="toclevel-2"><a href="#OWL_2_EL_2"><span class="tocnumber">6.1</span> <span class="toctext">OWL 2 EL</span></a></li>
|
|
160
|
+
<li class="toclevel-2"><a href="#OWL_2_QL_2"><span class="tocnumber">6.2</span> <span class="toctext">OWL 2 QL</span></a></li>
|
|
161
|
+
<li class="toclevel-2"><a href="#OWL_2_RL_2"><span class="tocnumber">6.3</span> <span class="toctext">OWL 2 RL</span></a></li>
|
|
162
|
+
</ul>
|
|
163
|
+
</li>
|
|
164
|
+
<li class="toclevel-1"><a href="#Appendix:_Change_Log_.28Informative.29"><span class="tocnumber">7</span> <span class="toctext">附录:变更日志(非规范性)</span></a>
|
|
165
|
+
<ul>
|
|
166
|
+
<li class="toclevel-2"><a href="#Changes_Since_Recommendation"><span class="tocnumber">7.1</span> <span class="toctext">自推荐标准以来的变更</span></a></li>
|
|
167
|
+
<li class="toclevel-2"><a href="#Changes_Since_Proposed_Recommendation"><span class="tocnumber">7.2</span> <span class="toctext">自提案推荐标准以来的变更</span></a></li>
|
|
168
|
+
<li class="toclevel-2"><a href="#Changes_Since_Candidate_Recommendation"><span class="tocnumber">7.3</span> <span class="toctext">自候选推荐标准以来的变更</span></a></li>
|
|
169
|
+
<li class="toclevel-2"><a href="#Changes_Since_Last_Call"><span class="tocnumber">7.4</span> <span class="toctext">自最终征求意见以来的变更</span></a></li>
|
|
170
|
+
</ul>
|
|
171
|
+
</li>
|
|
172
|
+
<li class="toclevel-1"><a href="#Acknowledgments"><span class="tocnumber">8</span> <span class="toctext">致谢</span></a></li>
|
|
173
|
+
<li class="toclevel-1"><a href="#References"><span class="tocnumber">9</span> <span class="toctext">参考文献</span></a>
|
|
174
|
+
<ul>
|
|
175
|
+
<li class="toclevel-2"><a href="#Normative_References"><span class="tocnumber">9.1</span> <span class="toctext">规范性参考文献</span></a></li>
|
|
176
|
+
<li class="toclevel-2"><a href="#Nonnormative_References"><span class="tocnumber">9.2</span> <span class="toctext">非规范性参考文献</span></a></li>
|
|
177
|
+
</ul>
|
|
178
|
+
</li>
|
|
179
|
+
</ul>
|
|
180
|
+
</td></tr></tbody></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
|
|
181
|
+
<p><br />
|
|
182
|
+
</p>
|
|
183
|
+
<a id="Introduction" name="Introduction"></a><h2> <span class="mw-headline">1 引言 </span></h2>
|
|
184
|
+
<p>OWL 2 <i>剖面</i>(在计算逻辑中通常称为<i>片段</i>或<i>子语言</i>)是 OWL 2 的精简版本,它以牺牲部分表达能力为代价来换取推理效率。本文档描述 OWL 2 的三个剖面,每个剖面以不同的方式实现效率,并适用于不同的应用场景。各剖面彼此独立,因此(潜在)用户可以跳过他们不感兴趣的剖面描述。实践中选择使用哪个剖面,取决于手头本体的结构和推理任务(有关理解和选择剖面的更多帮助,请参见 OWL 2 入门 [<cite><a href="#ref-owl-2-primer" title="">OWL 2 Primer</a></cite>] 的<a href="https://www.w3.org/TR/2012/REC-owl2-primer-20121211/#OWL_2_Profiles" title="Primer">第 10 节</a>)。
|
|
185
|
+
</p>
|
|
186
|
+
<ul><li> <b>OWL 2 EL</b> 特别适用于那些所用本体包含大量属性和/或类的应用。该剖面捕获了许多此类本体所使用的表达能力,并且是 OWL 2 的一个子集,其基本推理问题可以在关于本体规模的多项式时间内完成 [<cite><a href="#ref-ELpp" title="">EL++</a></cite>](有关计算复杂度的更多信息,请参见<a href="#Computational_Properties" title="">第 5 节</a>)。已有针对该剖面的专用推理算法,且已被证明能够以高度可扩展的方式实现。EL 这一缩写反映了该剖面以 EL 描述逻辑族 [<cite><a href="#ref-ELpp" title="">EL++</a></cite>] 为基础,这类逻辑仅提供存在量化。
|
|
187
|
+
</li><li> <b>OWL 2 QL</b> 面向使用海量实例数据、且查询应答是最重要推理任务的应用。在 OWL 2 QL 中,合取查询应答可以使用传统的关系数据库系统来实现。采用合适的推理技术,关于数据(断言)的规模,可靠且完备的合取查询应答可以在 LOGSPACE 内完成。与 OWL 2 EL 一样,可以使用多项式时间算法来实现本体一致性和类表达式归约推理问题。该剖面的表达能力必然相当有限,尽管它确实包含了概念模型(如 UML 类图和 ER 图)的大多数主要特征。QL 这一缩写反映了这样一个事实:该剖面中的查询应答可以通过将查询重写为一种标准的关系查询语言(Query Language)来实现。
|
|
188
|
+
</li><li> <b>OWL 2 RL</b> 面向需要在不牺牲过多表达能力的情况下实现可扩展推理的应用。它旨在同时容纳以下两类应用:可以用语言的完整表达力换取效率的 OWL 2 应用,以及需要增加一些表达力的 RDF(S) 应用。OWL 2 RL 推理系统可以使用基于规则的推理引擎来实现。本体一致性、类表达式可满足性、类表达式归约、实例检查以及合取查询应答问题,都可以在关于本体规模的多项式时间内求解。RL 这一缩写反映了这样一个事实:该剖面中的推理可以使用一种标准的规则语言(Rule Language)来实现。
|
|
189
|
+
</li></ul>
|
|
190
|
+
<p>OWL 2 剖面是通过对 OWL 2 本体的结构施加限制来定义的。句法限制可以通过修改函数式语法 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 的文法并可能附加全局限制来规定。在本文档中,修改后的文法以两种方式给出。在每个剖面定义中,仅给出与完整文法不同的部分;也就是说,仅呈现与函数式语法不同的产生式,而与函数式语法相同的产生式不再重复。此外,每个剖面的完整文法在<a href="#Appendix:_Complete_Grammars_for_Profiles" title="">附录</a>中给出。请注意,任何一个剖面都不是另一个剖面的子集。
|
|
191
|
+
</p><p>任何剖面中的本体都可以使用 OWL 2 的任意一种语法写入本体文档。
|
|
192
|
+
</p><p>除了此处规定的剖面之外,还存在许多其他可能的 OWL 2 剖面——例如,有一整个扩展 OWL 2 QL 的剖面族。本文档未列出 OWL Lite [<cite><a href="#ref-owl-1-reference" title="">OWL 1 Reference</a></cite>];然而,所有 OWL Lite 本体都是 OWL 2 本体,因此 OWL Lite 可以被视为 OWL 2 的一个剖面。类似地,OWL 1 DL 也可以被视为 OWL 2 的一个剖面。
|
|
193
|
+
</p><p>斜体关键词 <em class="RFC2119" title="MUST in RFC 2119 context">必须</em>、<em class="RFC2119" title="MUST NOT in RFC 2119 context">不得</em>、<em class="RFC2119" title="SHOULD in RFC 2119 context">应当</em>、<em class="RFC2119" title="SHOULD NOT in RFC 2119 context">不应当</em>和 <em class="RFC2119" title="MAY in RFC 2119 context">可以</em>用于规定 OWL 2 文档和工具的规范性特征,其含义按照 RFC 2119 [<cite><a href="#ref-rfc-2119" title="">RFC 2119</a></cite>] 的规定解释。
|
|
194
|
+
</p>
|
|
195
|
+
<a id="OWL_2_EL" name="OWL_2_EL"></a><h2> <span class="mw-headline">2 OWL 2 EL </span></h2>
|
|
196
|
+
<p>OWL 2 EL 剖面 [<cite><a href="#ref-ELpp" title="">EL++</a></cite>,<cite><a href="#ref-ELppUpd" title="">EL++ Update</a></cite>] 被设计为 OWL 2 的一个子集,它
|
|
197
|
+
</p>
|
|
198
|
+
<ul><li> 特别适用于所用本体定义了大量类和/或属性的应用,
|
|
199
|
+
</li><li> 捕获了许多此类本体所使用的表达能力,并且
|
|
200
|
+
</li><li> 其本体一致性、类表达式归约和实例检查均可在多项式时间内判定。
|
|
201
|
+
</li></ul>
|
|
202
|
+
<p>例如,OWL 2 EL 提供的类构造子足以表达超大型生物医学本体 SNOMED CT [<cite><a href="#ref-snomed-ct" title="">SNOMED CT</a></cite>]。
|
|
203
|
+
</p>
|
|
204
|
+
<a id="Feature_Overview" name="Feature_Overview"></a><h3> <span class="mw-headline">2.1 特性概览 </span></h3>
|
|
205
|
+
<p>OWL 2 EL 对可在公理中使用的类约束的类型施加限制。具体而言,支持以下类型的类约束:
|
|
206
|
+
</p>
|
|
207
|
+
<ul><li> 对类表达式的存在量化(<span class="nonterminal">ObjectSomeValuesFrom</span>)或对数据范围的存在量化(<span class="nonterminal">DataSomeValuesFrom</span>)
|
|
208
|
+
</li><li> 对个体的存在量化(<span class="nonterminal">ObjectHasValue</span>)或对字面量的存在量化(<span class="nonterminal">DataHasValue</span>)
|
|
209
|
+
</li><li> 自身约束(<span class="nonterminal">ObjectHasSelf</span>)
|
|
210
|
+
</li><li> 仅涉及<i>单个</i>个体的枚举(<span class="nonterminal">ObjectOneOf</span>)或仅涉及<i>单个</i>字面量的枚举(<span class="nonterminal">DataOneOf</span>)
|
|
211
|
+
</li><li> 类的交(<span class="nonterminal">ObjectIntersectionOf</span>)与数据范围的交(<span class="nonterminal">DataIntersectionOf</span>)
|
|
212
|
+
</li></ul>
|
|
213
|
+
<p>OWL 2 EL 支持以下公理,所有这些公理都被限制在允许的类表达式集合之内:
|
|
214
|
+
</p>
|
|
215
|
+
<ul><li> 类包含(<span class="nonterminal">SubClassOf</span>)
|
|
216
|
+
</li><li> 类等价(<span class="nonterminal">EquivalentClasses</span>)
|
|
217
|
+
</li><li> 类互斥(<span class="nonterminal">DisjointClasses</span>)
|
|
218
|
+
</li><li> 对象属性包含(<span class="nonterminal">SubObjectPropertyOf</span>,含或不含属性链)与数据属性包含(<span class="nonterminal">SubDataPropertyOf</span>)
|
|
219
|
+
</li><li> 属性等价(<span class="nonterminal">EquivalentObjectProperties</span> 和 <span class="nonterminal">EquivalentDataProperties</span>),
|
|
220
|
+
</li><li> 传递对象属性(<span class="nonterminal">TransitiveObjectProperty</span>)
|
|
221
|
+
</li><li> 自反对象属性(<span class="nonterminal">ReflexiveObjectProperty</span>)
|
|
222
|
+
</li><li> 定义域限制(<span class="nonterminal">ObjectPropertyDomain</span> 和 <span class="nonterminal">DataPropertyDomain</span>)
|
|
223
|
+
</li><li> 值域限制(<span class="nonterminal">ObjectPropertyRange</span> 和 <span class="nonterminal">DataPropertyRange</span>)
|
|
224
|
+
</li><li> 断言(<span class="nonterminal">SameIndividual</span>、<span class="nonterminal">DifferentIndividuals</span>、<span class="nonterminal">ClassAssertion</span>、<span class="nonterminal">ObjectPropertyAssertion</span>、<span class="nonterminal">DataPropertyAssertion</span>、<span class="nonterminal">NegativeObjectPropertyAssertion</span> 和 <span class="nonterminal">NegativeDataPropertyAssertion</span>)
|
|
225
|
+
</li><li> 函数式数据属性(<span class="nonterminal">FunctionalDataProperty</span>)
|
|
226
|
+
</li><li> 键(<span class="nonterminal">HasKey</span>)
|
|
227
|
+
</li></ul>
|
|
228
|
+
<p>OWL 2 EL 不支持以下构造:
|
|
229
|
+
</p>
|
|
230
|
+
<ul><li> 对类表达式的全称量化(<span class="nonterminal">ObjectAllValuesFrom</span>)或对数据范围的全称量化(<span class="nonterminal">DataAllValuesFrom</span>)
|
|
231
|
+
</li><li> 基数约束(<span class="nonterminal">ObjectMaxCardinality</span>、<span class="nonterminal">ObjectMinCardinality</span>、<span class="nonterminal">ObjectExactCardinality</span>、<span class="nonterminal">DataMaxCardinality</span>、<span class="nonterminal">DataMinCardinality</span> 和 <span class="nonterminal">DataExactCardinality</span>)
|
|
232
|
+
</li><li> 析取(<span class="nonterminal">ObjectUnionOf</span>、<span class="nonterminal">DisjointUnion</span> 和 <span class="nonterminal">DataUnionOf</span>)
|
|
233
|
+
</li><li> 类取反(<span class="nonterminal">ObjectComplementOf</span>)
|
|
234
|
+
</li><li> 涉及多个个体的枚举(<span class="nonterminal">ObjectOneOf</span> 和 <span class="nonterminal">DataOneOf</span>)
|
|
235
|
+
</li><li> 互斥属性(<span class="nonterminal">DisjointObjectProperties</span> 和 <span class="nonterminal">DisjointDataProperties</span>)
|
|
236
|
+
</li><li> 非自反对象属性(<span class="nonterminal">IrreflexiveObjectProperty</span>)
|
|
237
|
+
</li><li> 逆对象属性(<span class="nonterminal">InverseObjectProperties</span>)
|
|
238
|
+
</li><li> 函数式及反函数式对象属性(<span class="nonterminal">FunctionalObjectProperty</span> 和 <span class="nonterminal">InverseFunctionalObjectProperty</span>)
|
|
239
|
+
</li><li> 对称对象属性(<span class="nonterminal">SymmetricObjectProperty</span>)
|
|
240
|
+
</li><li> 反对称对象属性(<span class="nonterminal">AsymmetricObjectProperty</span>)
|
|
241
|
+
</li></ul>
|
|
242
|
+
<a id="Profile_Specification" name="Profile_Specification"></a><h3> <span class="mw-headline">2.2 剖面规范 </span></h3>
|
|
243
|
+
<p>以下各节规定 OWL 2 EL 本体的结构。
|
|
244
|
+
</p>
|
|
245
|
+
<a id="Entities" name="Entities"></a><h4> <span class="mw-headline">2.2.1 实体 </span></h4>
|
|
246
|
+
<p>实体在 OWL 2 EL 中的定义方式与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同,且 OWL 2 EL 支持所有预定义类和属性。此外,OWL 2 EL 支持以下数据类型:
|
|
247
|
+
</p>
|
|
248
|
+
<ul><li> <i>rdf:PlainLiteral</i>
|
|
249
|
+
</li><li> <i>rdf:XMLLiteral</i>
|
|
250
|
+
</li><li> <i>rdfs:Literal</i>
|
|
251
|
+
</li><li> <i>owl:real</i>
|
|
252
|
+
</li><li> <i>owl:rational</i>
|
|
253
|
+
</li><li> <i>xsd:decimal</i>
|
|
254
|
+
</li><li> <i>xsd:integer</i>
|
|
255
|
+
</li><li> <i>xsd:nonNegativeInteger</i>
|
|
256
|
+
</li><li> <i>xsd:string</i>
|
|
257
|
+
</li><li> <i>xsd:normalizedString</i>
|
|
258
|
+
</li><li> <i>xsd:token</i>
|
|
259
|
+
</li><li> <i>xsd:Name</i>
|
|
260
|
+
</li><li> <i>xsd:NCName</i>
|
|
261
|
+
</li><li> <i>xsd:NMTOKEN</i>
|
|
262
|
+
</li><li> <i>xsd:hexBinary</i>
|
|
263
|
+
</li><li> <i>xsd:base64Binary</i>
|
|
264
|
+
</li><li> <i>xsd:anyURI</i>
|
|
265
|
+
</li><li> <i>xsd:dateTime</i>
|
|
266
|
+
</li><li> <i>xsd:dateTimeStamp</i>
|
|
267
|
+
</li></ul>
|
|
268
|
+
<p>所支持数据类型集合的设计使得:这些类型中任意一组的值空间之交要么为空、要么无限,这是获得所需计算性质 [<cite><a href="#ref-ELpp" title="">EL++</a></cite>] 所必需的。因此,以下数据类型<em class="RFC2119" title="MUST NOT in RFC 2119 context">不得</em>在 OWL 2 EL 中使用:<i>xsd:double</i>、<i>xsd:float</i>、<i>xsd:nonPositiveInteger</i>、<i>xsd:positiveInteger</i>、<i>xsd:negativeInteger</i>、<i>xsd:long</i>、<i>xsd:int</i>、<i>xsd:short</i>、<i>xsd:byte</i>、<i>xsd:unsignedLong</i>、<i>xsd:unsignedInt</i>、<i>xsd:unsignedShort</i>、<i>xsd:unsignedByte</i>、<i>xsd:language</i> 和 <i>xsd:boolean</i>。
|
|
269
|
+
</p><p>最后,OWL 2 EL 不支持匿名个体。
|
|
270
|
+
</p>
|
|
271
|
+
<div class="grammar">
|
|
272
|
+
<p><span class="nonterminal">Individual</span> := <span class="nonterminal">NamedIndividual</span>
|
|
273
|
+
</p>
|
|
274
|
+
</div>
|
|
275
|
+
<a id="Property_Expressions" name="Property_Expressions"></a><h4> <span class="mw-headline">2.2.2 属性表达式 </span></h4>
|
|
276
|
+
<p>OWL 2 EL 不支持逆属性,因此对象属性表达式被限制为具名属性。数据属性表达式的定义方式与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同。
|
|
277
|
+
</p>
|
|
278
|
+
<div class="grammar">
|
|
279
|
+
<p><span class="nonterminal">ObjectPropertyExpression</span> := <span class="nonterminal">ObjectProperty</span>
|
|
280
|
+
</p>
|
|
281
|
+
</div>
|
|
282
|
+
<a id="Class_Expressions" name="Class_Expressions"></a><h4> <span class="mw-headline">2.2.3 类表达式 </span></h4>
|
|
283
|
+
<p>为了支持高效推理,OWL 2 EL 将所支持的类表达式集合限制为 <span class="nonterminal">ObjectIntersectionOf</span>、<span class="nonterminal">ObjectSomeValuesFrom</span>、<span class="nonterminal">ObjectHasSelf</span>、<span class="nonterminal">ObjectHasValue</span>、<span class="nonterminal">DataSomeValuesFrom</span>、<span class="nonterminal">DataHasValue</span>,以及仅包含单个个体的 <span class="nonterminal">ObjectOneOf</span>。
|
|
284
|
+
</p>
|
|
285
|
+
<div class="grammar">
|
|
286
|
+
<p><span class="nonterminal">ClassExpression</span> :=<br />
|
|
287
|
+
<span class="nonterminal">Class</span> | <span class="nonterminal">ObjectIntersectionOf</span> | <span class="nonterminal">ObjectOneOf</span> |<br />
|
|
288
|
+
<span class="nonterminal">ObjectSomeValuesFrom</span> | <span class="nonterminal">ObjectHasValue</span> | <span class="nonterminal">ObjectHasSelf</span> |<br />
|
|
289
|
+
<span class="nonterminal">DataSomeValuesFrom</span> | <span class="nonterminal">DataHasValue</span><br />
|
|
290
|
+
<span class="nonterminal">ObjectOneOf</span> := 'ObjectOneOf' '(' <span class="nonterminal">Individual</span> ')'
|
|
291
|
+
</p>
|
|
292
|
+
</div>
|
|
293
|
+
<a id="Data_Ranges" name="Data_Ranges"></a><h4> <span class="mw-headline">2.2.4 数据范围 </span></h4>
|
|
294
|
+
<p>在 OWL 2 EL 中,数据范围表达式被限制为 OWL 2 EL 所承认的预定义数据类型、数据范围的交,以及仅由单个字面量构成的字面量枚举。
|
|
295
|
+
</p>
|
|
296
|
+
<div class="grammar">
|
|
297
|
+
<p><span class="nonterminal">DataRange</span> := <span class="nonterminal">Datatype</span> | <span class="nonterminal">DataIntersectionOf</span> | <span class="nonterminal">DataOneOf</span><br />
|
|
298
|
+
<span class="nonterminal">DataOneOf</span> := 'DataOneOf' '(' <span class="nonterminal">Literal</span> ')'
|
|
299
|
+
</p>
|
|
300
|
+
</div>
|
|
301
|
+
<a id="Axioms" name="Axioms"></a><h4> <span class="mw-headline">2.2.5 公理 </span></h4>
|
|
302
|
+
<p>OWL 2 EL 的类公理与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同,唯一的例外是不允许使用 <span class="nonterminal">DisjointUnion</span>。各类公理的定义方式与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同,不同之处在于它们使用 <span class="nonterminal">ClassExpression</span> 的新定义。
|
|
303
|
+
</p>
|
|
304
|
+
<div class="grammar">
|
|
305
|
+
<p><span class="nonterminal">ClassAxiom</span> := <span class="nonterminal">SubClassOf</span> | <span class="nonterminal">EquivalentClasses</span> | <span class="nonterminal">DisjointClasses</span>
|
|
306
|
+
</p>
|
|
307
|
+
</div>
|
|
308
|
+
<p>OWL 2 EL 支持以下对象属性公理,它们的定义方式与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同,不同之处在于它们使用 <span class="nonterminal">ObjectPropertyExpression</span> 的新定义。
|
|
309
|
+
</p>
|
|
310
|
+
<div class="grammar">
|
|
311
|
+
<p><span class="nonterminal">ObjectPropertyAxiom</span> :=<br />
|
|
312
|
+
<span class="nonterminal">EquivalentObjectProperties</span> | <span class="nonterminal">SubObjectPropertyOf</span> |<br />
|
|
313
|
+
<span class="nonterminal">ObjectPropertyDomain</span> | <span class="nonterminal">ObjectPropertyRange</span> |<br />
|
|
314
|
+
<span class="nonterminal">ReflexiveObjectProperty</span> | <span class="nonterminal">TransitiveObjectProperty</span>
|
|
315
|
+
</p>
|
|
316
|
+
</div>
|
|
317
|
+
<p>除 <span class="nonterminal">DisjointDataProperties</span> 外,OWL 2 EL 提供与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同的关于数据属性的公理。
|
|
318
|
+
</p>
|
|
319
|
+
<div class="grammar">
|
|
320
|
+
<p><span class="nonterminal">DataPropertyAxiom</span> :=<br />
|
|
321
|
+
<span class="nonterminal">SubDataPropertyOf</span> | <span class="nonterminal">EquivalentDataProperties</span> |<br />
|
|
322
|
+
<span class="nonterminal">DataPropertyDomain</span> | <span class="nonterminal">DataPropertyRange</span> | <span class="nonterminal">FunctionalDataProperty</span>
|
|
323
|
+
</p>
|
|
324
|
+
</div>
|
|
325
|
+
<p>OWL 2 EL 中的断言以及所有其他公理与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同,不同之处在于类表达式和对象属性表达式受到前面各节所定义的限制。
|
|
326
|
+
</p>
|
|
327
|
+
<a id="Global_Restrictions" name="Global_Restrictions"></a><h4> <span class="mw-headline">2.2.6 全局限制 </span></h4>
|
|
328
|
+
<p>OWL 2 EL 在结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 第 11 节关于公理的全局限制之上,增加了一个附加条件 [<cite><a href="#ref-ELppUpd" title="">EL++ Update</a></cite>]。为了定义该条件,使用以下概念。
|
|
329
|
+
</p><p>如果公理集合 <span class="name">Ax</span> 包含以下公理(其中 k ≥ 1 为整数,<span class="name">OP<sub>i</sub></span> 均为对象属性),则称 <span class="name">Ax</span> <i>对对象属性</i> <span class="name">OP<sub>1</sub></span> <i>施加了到类表达式</i> <span class="name">CE</span> <i>的值域限制</i>:
|
|
330
|
+
</p>
|
|
331
|
+
<div class="fss">
|
|
332
|
+
<p>SubObjectPropertyOf( OP<sub>1</sub> OP<sub>2</sub>)<br />
|
|
333
|
+
...<br />
|
|
334
|
+
SubObjectPropertyOf( OP<sub>k-1</sub> OP<sub>k</sub> )<br />
|
|
335
|
+
ObjectPropertyRange( OP<sub>k</sub> CE )
|
|
336
|
+
</p>
|
|
337
|
+
</div>
|
|
338
|
+
<p>OWL 2 EL 本体的公理闭包 <span class="name">Ax</span> <em class="RFC2119" title="MUST in RFC 2119 context">必须</em>遵守结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 第 11 节所述的限制,并且,如果
|
|
339
|
+
</p>
|
|
340
|
+
<ul><li> <span class="name">Ax</span> 包含 <span class="name">SubObjectPropertyOf( ObjectPropertyChain( OP<sub>1</sub> ... OP<sub>n</sub> ) OP )</span>,且
|
|
341
|
+
</li><li> <span class="name">Ax</span> 对 <span class="name">OP</span> 施加了到某个类表达式 <span class="name">CE</span> 的值域限制
|
|
342
|
+
</li></ul>
|
|
343
|
+
<p>那么 <span class="name">Ax</span> <em class="RFC2119" title="MUST in RFC 2119 context">必须</em>对 <span class="name">OP<sub>n</sub></span> 施加到 <span class="name">CE</span> 的值域限制。
|
|
344
|
+
</p><p>对于上一定义第一项中不包含属性链的每个 <span class="nonterminal">SubObjectPropertyOf</span> 公理,该附加限制都空真地成立。对于自反和传递角色上的值域限制没有附加限制——也就是说,只要满足前述限制,就可以在自反和/或传递角色上施加值域限制。
|
|
345
|
+
</p>
|
|
346
|
+
<a id="OWL_2_QL" name="OWL_2_QL"></a><h2> <span class="mw-headline">3 OWL 2 QL </span></h2>
|
|
347
|
+
<p>OWL 2 QL 剖面的设计目标是:相对于数据(断言)的规模,正确且完备的查询应答可在 LOGSPACE 内完成(更精确地说,是在 AC<sup>0</sup> 内),同时提供表达概念模型(如 UML 类图和 ER 图)所需的许多主要特性。特别地,本剖面包含了 RDFS 与 OWL 2 DL 的交集。其设计使得存储在标准关系数据库系统中的数据(断言)可以通过本体经由一种简单的重写机制进行查询,即把查询重写为一条 SQL 查询,然后由 RDBMS 系统应答,而无需对数据做任何改动。
|
|
348
|
+
</p><p>OWL 2 QL 基于 DL-Lite 描述逻辑族 [<cite><a href="#ref-DL-Lite" title="">DL-Lite</a></cite>]。文献中已描述了 DL-Lite 的若干变体,其中 DL-Lite<sub>R</sub> 为 OWL 2 QL 提供了逻辑基础。DL-Lite<sub>R</sub> 不要求唯一名称假设(UNA),因为做出该假设对 DL-Lite<sub>R</sub> 本体的语义推论没有任何影响。DL-Lite 的表达能力更强的变体(如 DL-Lite<sub>A</sub>)在 DL-Lite<sub>R</sub> 之上扩展了函数型属性,并且还可以进一步扩展键;然而,为使查询应答保持在 LOGSPACE 内,这些扩展要求 UNA,并且需要对不同类型公理所用属性之间的交互施加某些全局性限制。将 OWL 2 QL 建立在 DL-Lite<sub>R</sub> 之上,避免了显式公理化 UNA 所带来的实际问题。DL-Lite 的其他变体也可以在 OWL 2 QL 之上得到支持,但可能需要对本体的结构施加额外的限制。
|
|
349
|
+
</p>
|
|
350
|
+
<a id="Feature_Overview_2" name="Feature_Overview_2"></a><h3> <span class="mw-headline">3.1 特性概览 </span></h3>
|
|
351
|
+
<p>OWL 2 QL 的定义不仅在于其所支持的构造集合,还对这些构造允许出现的位置施加了限制。类表达式中各构造的允许用法汇总于表 1。
|
|
352
|
+
</p>
|
|
353
|
+
<div class="center">
|
|
354
|
+
<table border="2" cellpadding="5" style="text-align: left">
|
|
355
|
+
<caption> <span class="caption">表 1.</span> OWL 2 QL 中类表达式的语法限制
|
|
356
|
+
</caption>
|
|
357
|
+
<tbody><tr>
|
|
358
|
+
<th> 子类表达式
|
|
359
|
+
</th><th> 超类表达式
|
|
360
|
+
</th></tr>
|
|
361
|
+
<tr>
|
|
362
|
+
<td> 一个类<br /> 存在量化(<span class="nonterminal">ObjectSomeValuesFrom</span>)<br /> 其中类被限定为 <i>owl:Thing</i><br /> 指向数据范围的存在量化(<span class="nonterminal">DataSomeValuesFrom</span>)
|
|
363
|
+
</td><td> 一个类<br /> 交集(<span class="nonterminal">ObjectIntersectionOf</span>)<br /> 取反(<span class="nonterminal">ObjectComplementOf</span>)<br /> 指向一个类的存在量化(<span class="nonterminal">ObjectSomeValuesFrom</span>)<br /> 指向数据范围的存在量化(<span class="nonterminal">DataSomeValuesFrom</span>)
|
|
364
|
+
</td></tr></tbody></table>
|
|
365
|
+
</div>
|
|
366
|
+
<p>OWL 2 QL 支持以下公理,并对其加以约束以符合上述对类表达式的限制:
|
|
367
|
+
</p>
|
|
368
|
+
<ul><li> 子类公理(<span class="nonterminal">SubClassOf</span>)
|
|
369
|
+
</li><li> 类表达式等价(<span class="nonterminal">EquivalentClasses</span>)
|
|
370
|
+
</li><li> 类表达式不相交(<span class="nonterminal">DisjointClasses</span>)
|
|
371
|
+
</li><li> 逆对象属性(<span class="nonterminal">InverseObjectProperties</span>)
|
|
372
|
+
</li><li> 属性包含(不涉及属性链的 <span class="nonterminal">SubObjectPropertyOf</span> 以及 <span class="nonterminal">SubDataPropertyOf</span>)
|
|
373
|
+
</li><li> 属性等价(<span class="nonterminal">EquivalentObjectProperties</span> 和 <span class="nonterminal">EquivalentDataProperties</span>)
|
|
374
|
+
</li><li> 属性定义域(<span class="nonterminal">ObjectPropertyDomain</span> 和 <span class="nonterminal">DataPropertyDomain</span>)
|
|
375
|
+
</li><li> 属性值域(<span class="nonterminal">ObjectPropertyRange</span> 和 <span class="nonterminal">DataPropertyRange</span>)
|
|
376
|
+
</li><li> 不相交属性(<span class="nonterminal">DisjointObjectProperties</span> 和 <span class="nonterminal">DisjointDataProperties</span>)
|
|
377
|
+
</li><li> 对称属性(<span class="nonterminal">SymmetricObjectProperty</span>)
|
|
378
|
+
</li><li> 自反属性(<span class="nonterminal">ReflexiveObjectProperty</span>)
|
|
379
|
+
</li><li> 反自反属性(<span class="nonterminal">IrreflexiveObjectProperty</span>)
|
|
380
|
+
</li><li> 反对称属性(<span class="nonterminal">AsymmetricObjectProperty</span>)
|
|
381
|
+
</li><li> 除个体相等断言和负属性断言之外的断言(<span class="nonterminal">DifferentIndividuals</span>、<span class="nonterminal">ClassAssertion</span>、<span class="nonterminal">ObjectPropertyAssertion</span> 和 <span class="nonterminal">DataPropertyAssertion</span>)
|
|
382
|
+
</li></ul>
|
|
383
|
+
<p>OWL 2 QL 不支持以下构造:
|
|
384
|
+
</p>
|
|
385
|
+
<ul><li> 在子类位置出现指向类表达式或数据范围的存在量化(<span class="nonterminal">ObjectSomeValuesFrom</span> 和 <span class="nonterminal">DataSomeValuesFrom</span>)
|
|
386
|
+
</li><li> 自身限制(<span class="nonterminal">ObjectHasSelf</span>)
|
|
387
|
+
</li><li> 指向个体或字面量的存在量化(<span class="nonterminal">ObjectHasValue</span>、<span class="nonterminal">DataHasValue</span>)
|
|
388
|
+
</li><li> 个体和字面量的枚举(<span class="nonterminal">ObjectOneOf</span>、<span class="nonterminal">DataOneOf</span>)
|
|
389
|
+
</li><li> 指向类表达式或数据范围的全称量化(<span class="nonterminal">ObjectAllValuesFrom</span>、<span class="nonterminal">DataAllValuesFrom</span>)
|
|
390
|
+
</li><li> 基数约束(<span class="nonterminal">ObjectMaxCardinality</span>、<span class="nonterminal">ObjectMinCardinality</span>、<span class="nonterminal">ObjectExactCardinality</span>、<span class="nonterminal">DataMaxCardinality</span>、<span class="nonterminal">DataMinCardinality</span>、<span class="nonterminal">DataExactCardinality</span>)
|
|
391
|
+
</li><li> 析取(<span class="nonterminal">ObjectUnionOf</span>、<span class="nonterminal">DisjointUnion</span> 和 <span class="nonterminal">DataUnionOf</span>)
|
|
392
|
+
</li><li> 涉及属性链的属性包含(<span class="nonterminal">SubObjectPropertyOf</span>)
|
|
393
|
+
</li><li> 函数型与逆函数型属性(<span class="nonterminal">FunctionalObjectProperty</span>、<span class="nonterminal">InverseFunctionalObjectProperty</span> 和 <span class="nonterminal">FunctionalDataProperty</span>)
|
|
394
|
+
</li><li> 传递属性(<span class="nonterminal">TransitiveObjectProperty</span>)
|
|
395
|
+
</li><li> 键(<span class="nonterminal">HasKey</span>)
|
|
396
|
+
</li><li> 个体相等断言和负属性断言
|
|
397
|
+
</li></ul>
|
|
398
|
+
<p>OWL 2 QL 不支持个体相等断言(<span class="nonterminal">SameIndividual</span>):将此类公理加入 OWL 2 QL 会提高查询应答的数据复杂度,使其不再是一阶可重写的,这意味着查询应答将无法直接利用关系数据库技术来实现。然而,对于一个包含个体相等断言、但其余部分符合 OWL 2 QL 的本体 <i>O</i>,可以先计算 <i>O</i> 中相等(<span class="nonterminal">SameIndividual</span>)关系的自反–对称–传递闭包(这需要应答递归查询,且可以在相对于数据规模的 LOGSPACE 内实现)[<cite><a href="#ref-DL-Lite-bool" title="">DL-Lite-bool</a></cite>],然后在查询应答过程中利用该关系来模拟个体相等推理 [<cite><a href="#ref-automated-reasoning" title="">Automated Reasoning</a></cite>]。
|
|
399
|
+
</p>
|
|
400
|
+
<a id="Profile_Specification_2" name="Profile_Specification_2"></a><h3> <span class="mw-headline">3.2 剖面规约 </span></h3>
|
|
401
|
+
<p>OWL 2 QL 的文法产生式在以下各节中定义。请注意,每个 OWL 2 QL 本体都必须满足结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 第 11 节中定义的公理全局限制。
|
|
402
|
+
</p>
|
|
403
|
+
<a id="Entities_2" name="Entities_2"></a><h4> <span class="mw-headline">3.2.1 实体 </span></h4>
|
|
404
|
+
<p>OWL 2 QL 中实体的定义方式与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同,并且 OWL 2 QL 支持所有预定义类和属性。此外,OWL 2 QL 支持以下数据类型:
|
|
405
|
+
</p>
|
|
406
|
+
<ul><li> <i>rdf:PlainLiteral</i>
|
|
407
|
+
</li><li> <i>rdf:XMLLiteral</i>
|
|
408
|
+
</li><li> <i>rdfs:Literal</i>
|
|
409
|
+
</li><li> <i>owl:real</i>
|
|
410
|
+
</li><li> <i>owl:rational</i>
|
|
411
|
+
</li><li> <i>xsd:decimal</i>
|
|
412
|
+
</li><li> <i>xsd:integer</i>
|
|
413
|
+
</li><li> <i>xsd:nonNegativeInteger</i>
|
|
414
|
+
</li><li> <i>xsd:string</i>
|
|
415
|
+
</li><li> <i>xsd:normalizedString</i>
|
|
416
|
+
</li><li> <i>xsd:token</i>
|
|
417
|
+
</li><li> <i>xsd:Name</i>
|
|
418
|
+
</li><li> <i>xsd:NCName</i>
|
|
419
|
+
</li><li> <i>xsd:NMTOKEN</i>
|
|
420
|
+
</li><li> <i>xsd:hexBinary</i>
|
|
421
|
+
</li><li> <i>xsd:base64Binary</i>
|
|
422
|
+
</li><li> <i>xsd:anyURI</i>
|
|
423
|
+
</li><li> <i>xsd:dateTime</i>
|
|
424
|
+
</li><li> <i>xsd:dateTimeStamp</i>
|
|
425
|
+
</li></ul>
|
|
426
|
+
<p>所支持数据类型的集合经过精心设计,使得其中任意一组数据类型的值空间之交要么为空、要么无限,这是获得所需计算性质所必需的。因此,以下数据类型<em class="RFC2119" title="MUST NOT in RFC 2119 context">不得</em>在 OWL 2 QL 中使用:<i>xsd:double</i>、<i>xsd:float</i>、<i>xsd:nonPositiveInteger</i>、<i>xsd:positiveInteger</i>、<i>xsd:negativeInteger</i>、<i>xsd:long</i>、<i>xsd:int</i>、<i>xsd:short</i>、<i>xsd:byte</i>、<i>xsd:unsignedLong</i>、<i>xsd:unsignedInt</i>、<i>xsd:unsignedShort</i>、<i>xsd:unsignedByte</i>、<i>xsd:language</i> 和 <i>xsd:boolean</i>。
|
|
427
|
+
</p><p>最后,OWL 2 QL 不支持匿名个体。
|
|
428
|
+
</p>
|
|
429
|
+
<div class="grammar">
|
|
430
|
+
<p><span class="nonterminal">Individual</span> := <span class="nonterminal">NamedIndividual</span>
|
|
431
|
+
</p>
|
|
432
|
+
</div>
|
|
433
|
+
<a id="Property_Expressions_2" name="Property_Expressions_2"></a><h4> <span class="mw-headline">3.2.2 属性表达式 </span></h4>
|
|
434
|
+
<p>OWL 2 QL 的对象属性表达式和数据属性表达式与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 中的相同。
|
|
435
|
+
</p>
|
|
436
|
+
<a id="Class_Expressions_2" name="Class_Expressions_2"></a><h4> <span class="mw-headline">3.2.3 类表达式 </span></h4>
|
|
437
|
+
<p>在 OWL 2 QL 中,类表达式分为两种类型。<span class="nonterminal">subClassExpression</span> 产生式定义了可在 <span class="nonterminal">SubClassOf</span> 公理中作为子类表达式出现的类表达式,而 <span class="nonterminal">superClassExpression</span> 产生式定义了可在 <span class="nonterminal">SubClassOf</span> 公理中作为超类表达式出现的类。
|
|
438
|
+
</p>
|
|
439
|
+
<div class="grammar">
|
|
440
|
+
<p><span class="nonterminal">subClassExpression</span> :=<br />
|
|
441
|
+
<span class="nonterminal">Class</span> |<br />
|
|
442
|
+
<span class="nonterminal">subObjectSomeValuesFrom</span> | <span class="nonterminal">DataSomeValuesFrom</span><br />
|
|
443
|
+
<span class="nonterminal">subObjectSomeValuesFrom</span> := 'ObjectSomeValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <i>owl:Thing</i> ')'<br />
|
|
444
|
+
<br />
|
|
445
|
+
<span class="nonterminal">superClassExpression</span> :=<br />
|
|
446
|
+
<span class="nonterminal">Class</span> |<br />
|
|
447
|
+
<span class="nonterminal">superObjectIntersectionOf</span> | <span class="nonterminal">superObjectComplementOf</span> |<br />
|
|
448
|
+
<span class="nonterminal">superObjectSomeValuesFrom</span> | <span class="nonterminal">DataSomeValuesFrom</span><br />
|
|
449
|
+
<span class="nonterminal">superObjectIntersectionOf</span> := 'ObjectIntersectionOf' '(' <span class="nonterminal">superClassExpression</span> <span class="nonterminal">superClassExpression</span> { <span class="nonterminal">superClassExpression</span> } ')'<br />
|
|
450
|
+
<span class="nonterminal">superObjectComplementOf</span> := 'ObjectComplementOf' '(' <span class="nonterminal">subClassExpression</span> ')'<br />
|
|
451
|
+
<span class="nonterminal">superObjectSomeValuesFrom</span> := 'ObjectSomeValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">Class</span> ')'
|
|
452
|
+
</p>
|
|
453
|
+
</div>
|
|
454
|
+
<a id="Data_Ranges_2" name="Data_Ranges_2"></a><h4> <span class="mw-headline">3.2.4 数据范围 </span></h4>
|
|
455
|
+
<p>在 OWL 2 QL 中,数据范围表达式被限制为预定义数据类型以及数据范围的交集。
|
|
456
|
+
</p>
|
|
457
|
+
<div class="grammar">
|
|
458
|
+
<p><span class="nonterminal">DataRange</span> := <span class="nonterminal">Datatype</span> | <span class="nonterminal">DataIntersectionOf</span>
|
|
459
|
+
</p>
|
|
460
|
+
</div>
|
|
461
|
+
<a id="Axioms_2" name="Axioms_2"></a><h4> <span class="mw-headline">3.2.5 公理 </span></h4>
|
|
462
|
+
<p>OWL 2 QL 的类公理与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 中的相同,不同之处在于不允许使用 <span class="nonterminal">DisjointUnion</span>;此外,所有引用 <span class="nonterminal">ClassExpression</span> 产生式的公理都被重新定义,以酌情使用 <span class="nonterminal">subClassExpression</span> 和/或 <span class="nonterminal">superClassExpression</span>。
|
|
463
|
+
</p>
|
|
464
|
+
<div class="grammar">
|
|
465
|
+
<p><span class="nonterminal">SubClassOf</span> := 'SubClassOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
466
|
+
<span class="nonterminal">EquivalentClasses</span> := 'EquivalentClasses' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">subClassExpression</span> { <span class="nonterminal">subClassExpression</span> } ')'<br />
|
|
467
|
+
<span class="nonterminal">DisjointClasses</span> := 'DisjointClasses' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">subClassExpression</span> { <span class="nonterminal">subClassExpression</span> } ')'<br />
|
|
468
|
+
<span class="nonterminal">ClassAxiom</span> := <span class="nonterminal">SubClassOf</span> | <span class="nonterminal">EquivalentClasses</span> | <span class="nonterminal">DisjointClasses</span>
|
|
469
|
+
</p>
|
|
470
|
+
</div>
|
|
471
|
+
<p>OWL 2 QL 不允许在属性包含公理中使用属性链;但支持简单的属性包含。此外,OWL 2 QL 不允许使用函数型和传递型对象属性,并将对象属性定义域和值域公理中的类表达式限制为 <span class="nonterminal">superClassExpression</span>。
|
|
472
|
+
</p>
|
|
473
|
+
<div class="grammar">
|
|
474
|
+
<p><span class="nonterminal">ObjectPropertyDomain</span> := 'ObjectPropertyDomain' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
475
|
+
<span class="nonterminal">ObjectPropertyRange</span> := 'ObjectPropertyRange' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
476
|
+
<span class="nonterminal">SubObjectPropertyOf</span> := 'SubObjectPropertyOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
477
|
+
<span class="nonterminal">ObjectPropertyAxiom</span> :=<br />
|
|
478
|
+
<span class="nonterminal">SubObjectPropertyOf</span> | <span class="nonterminal">EquivalentObjectProperties</span> |<br />
|
|
479
|
+
<span class="nonterminal">DisjointObjectProperties</span> | <span class="nonterminal">InverseObjectProperties</span> |<br />
|
|
480
|
+
<span class="nonterminal">ObjectPropertyDomain</span> | <span class="nonterminal">ObjectPropertyRange</span> |<br />
|
|
481
|
+
<span class="nonterminal">ReflexiveObjectProperty</span> |<br />
|
|
482
|
+
<span class="nonterminal">SymmetricObjectProperty</span> | <span class="nonterminal">AsymmetricObjectProperty</span>
|
|
483
|
+
</p>
|
|
484
|
+
</div>
|
|
485
|
+
<p>OWL 2 QL 不允许函数型数据属性公理,并将数据属性定义域公理中的类表达式限制为 <span class="nonterminal">superClassExpression</span>。
|
|
486
|
+
</p>
|
|
487
|
+
<div class="grammar">
|
|
488
|
+
<p><span class="nonterminal">DataPropertyDomain</span> := 'DataPropertyDomain' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
489
|
+
<span class="nonterminal">DataPropertyAxiom</span> :=<br />
|
|
490
|
+
<span class="nonterminal">SubDataPropertyOf</span> | <span class="nonterminal">EquivalentDataProperties</span> | <span class="nonterminal">DisjointDataProperties</span> |<br />
|
|
491
|
+
<span class="nonterminal">DataPropertyDomain</span> | <span class="nonterminal">DataPropertyRange</span>
|
|
492
|
+
</p>
|
|
493
|
+
</div>
|
|
494
|
+
<p>OWL 2 QL 不允许负对象属性断言和个体相等公理。此外,OWL 2 QL 中的类断言只能涉及原子类。个体不等公理和属性断言与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 中的相同。
|
|
495
|
+
</p>
|
|
496
|
+
<div class="grammar">
|
|
497
|
+
<p><span class="nonterminal">ClassAssertion</span> := 'ClassAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">Class</span> <span class="nonterminal">Individual</span> ')'<br />
|
|
498
|
+
<span class="nonterminal">Assertion</span> := <span class="nonterminal">DifferentIndividuals</span> | <span class="nonterminal">ClassAssertion</span> | <span class="nonterminal">ObjectPropertyAssertion</span> | <span class="nonterminal">DataPropertyAssertion</span>
|
|
499
|
+
</p>
|
|
500
|
+
</div>
|
|
501
|
+
<p>最后,OWL 2 QL 中的公理与结构规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 中的相同,不同之处在于不允许使用键公理。
|
|
502
|
+
</p>
|
|
503
|
+
<div class="grammar">
|
|
504
|
+
<p><span class="nonterminal">Axiom</span> := <span class="nonterminal">Declaration</span> | <span class="nonterminal">ClassAxiom</span> | <span class="nonterminal">ObjectPropertyAxiom</span> | <span class="nonterminal">DataPropertyAxiom</span> | <span class="nonterminal">DatatypeDefinition</span> | <span class="nonterminal">Assertion</span> | <span class="nonterminal">AnnotationAxiom</span>
|
|
505
|
+
</p>
|
|
506
|
+
</div><a id="OWL_2_RL" name="OWL_2_RL"></a><h2> <span class="mw-headline">4 OWL 2 RL </span></h2>
|
|
507
|
+
<p>OWL 2 RL 剖面面向需要可扩展推理能力、同时又不愿牺牲太多表达能力的应用。它既适用于可以用语言的完整表达力换取效率的 OWL 2 应用,也适用于需要从 OWL 2 获得额外表达力的 RDF(S) 应用。其实现方式是:定义一个适合用基于规则的技术来实现的 OWL 2 语法子集(见<a href="#Profile_Specification_3" title="">第 4.2 节</a>),并以一阶蕴含式的形式给出 OWL 2 RDF-Based Semantics [<cite><a href="#ref-owl-2-rdf-semantics" title="">OWL 2 RDF-Based Semantics</a></cite>] 的部分公理化,作为此类实现的基础(见<a href="#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules" title="">第 4.3 节</a>)。OWL 2 RL 的设计受到 Description Logic Programs [<cite><a href="#ref-dlp" title="">DLP</a></cite>] 和 pD* [<cite><a href="#ref-pdstar" title="">pD*</a></cite>] 的启发。
|
|
508
|
+
</p><p>对于满足<a href="#Profile_Specification_3" title="">第 4.2 节</a>所述语法约束的本体,合适的基于规则的实现(例如基于<a href="#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules" title="">第 4.3 节</a>给出的部分公理化的实现)将具有理想的计算性质;例如,它可以对某几类查询返回<i>所有</i>且<i>仅</i>正确的答案(见<a href="#Theorem-PR1" title="">定理 PR1</a> 和 OWL 2 Conformance [<cite><a href="#ref-owl-2-conformance" title="">OWL 2 Conformance</a></cite>])。此类实现也可以用于任意的 RDF 图。不过在这种情况下,这些性质不再成立——特别是,不再能保证返回<i>所有</i>正确答案,例如当 RDF 图以非常规方式使用内建词汇时。然而,此类实现仍然只会产生正确的蕴含结果(见 OWL 2 Conformance [<cite><a href="#ref-owl-2-conformance" title="">OWL 2 Conformance</a></cite>])。
|
|
509
|
+
</p>
|
|
510
|
+
<a id="Feature_Overview_3" name="Feature_Overview_3"></a><h3> <span class="mw-headline">4.1 特性概览 </span></h3>
|
|
511
|
+
<p>通过限制各种构造的使用方式,可以用基于规则的推理引擎来实现推理系统,同时仍能提供理想的计算保证。这些限制旨在避免推断出知识库中未显式存在的个体,并避免不确定性推理的需求。其实现方式是将构造的使用限制在特定的语法位置上。例如在 <span class="name">SubClassOf</span> 公理中,子类表达式和超类表达式中的构造必须遵循表 2 所示的使用模式。
|
|
512
|
+
</p>
|
|
513
|
+
<div class="center">
|
|
514
|
+
<table border="2" cellpadding="5" style="text-align: left">
|
|
515
|
+
<caption> <span class="caption">表 2.</span> OWL 2 RL 中类表达式的语法限制
|
|
516
|
+
</caption>
|
|
517
|
+
<tbody><tr>
|
|
518
|
+
<th> 子类表达式
|
|
519
|
+
</th><th> 超类表达式
|
|
520
|
+
</th></tr>
|
|
521
|
+
<tr>
|
|
522
|
+
<td> 除 <i>owl:Thing</i> 之外的类<br /> 个体的枚举(<span class="nonterminal">ObjectOneOf</span>)<br /> 类表达式的交集(<span class="nonterminal">ObjectIntersectionOf</span>)<br /> 类表达式的并集(<span class="nonterminal">ObjectUnionOf</span>)<br /> 到类表达式的存在量化(<span class="nonterminal">ObjectSomeValuesFrom</span>)<br /> 到数据范围的存在量化(<span class="nonterminal">DataSomeValuesFrom</span>)<br /> 到个体的存在量化(<span class="nonterminal">ObjectHasValue</span>)<br /> 到字面量的存在量化(<span class="nonterminal">DataHasValue</span>)
|
|
523
|
+
</td><td> 除 <i>owl:Thing</i> 之外的类<br /> 类的交集(<span class="nonterminal">ObjectIntersectionOf</span>)<br /> 否定(<span class="nonterminal">ObjectComplementOf</span>)<br /> 到类表达式的全称量化(<span class="nonterminal">ObjectAllValuesFrom</span>)<br /> 到个体的存在量化(<span class="nonterminal">ObjectHasValue</span>)<br /> 到类表达式的至多 0/1 基数约束(<span class="nonterminal">ObjectMaxCardinality</span> 0/1)<br /> 到数据范围的全称量化(<span class="nonterminal">DataAllValuesFrom</span>)<br /> 到字面量的存在量化(<span class="nonterminal">DataHasValue</span>)<br /> 到数据范围的至多 0/1 基数约束(<span class="nonterminal">DataMaxCardinality</span> 0/1)
|
|
524
|
+
</td></tr></tbody></table>
|
|
525
|
+
</div>
|
|
526
|
+
<p>OWL 2 RL 中的所有公理都以符合这些限制的方式受到约束。因此,OWL 2 RL 支持 OWL 2 的全部公理,但类的不相交并(<span class="nonterminal">DisjointUnion</span>)和自反对象属性公理(<span class="nonterminal">ReflexiveObjectProperty</span>)除外。
|
|
527
|
+
</p>
|
|
528
|
+
<a id="Profile_Specification_3" name="Profile_Specification_3"></a><h3> <span class="mw-headline">4.2 剖面规约 </span></h3>
|
|
529
|
+
<p>OWL 2 RL 的产生式在以下各节中定义。OWL 2 RL 不仅按所支持构造的集合来定义,还限制了这些构造可以出现的位置。注意,每个 OWL 2 RL 本体都必须满足结构规约 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 第 11 节中定义的公理全局限制。
|
|
530
|
+
</p>
|
|
531
|
+
<a id="Entities_3" name="Entities_3"></a><h4> <span class="mw-headline">4.2.1 实体 </span></h4>
|
|
532
|
+
<p>OWL 2 RL 中实体的定义方式与结构规约 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同。OWL 2 RL 支持预定义类 <i>owl:Nothing</i> 和 <i>owl:Thing</i>,但后者的使用受到 OWL 2 RL 文法的限制。此外,OWL 2 RL 不支持预定义的对象属性和数据属性 <i>owl:topObjectProperty</i>、<i>owl:bottomObjectProperty</i>、<i>owl:topDataProperty</i> 和 <i>owl:bottomDataProperty</i>。最后,OWL 2 RL 支持以下数据类型:
|
|
533
|
+
</p>
|
|
534
|
+
<ul><li> <i>rdf:PlainLiteral</i>
|
|
535
|
+
</li><li> <i>rdf:XMLLiteral</i>
|
|
536
|
+
</li><li> <i>rdfs:Literal</i>
|
|
537
|
+
</li><li> <i>xsd:decimal</i>
|
|
538
|
+
</li><li> <i>xsd:integer</i>
|
|
539
|
+
</li><li> <i>xsd:nonNegativeInteger</i>
|
|
540
|
+
</li><li> <i>xsd:nonPositiveInteger</i>
|
|
541
|
+
</li><li> <i>xsd:positiveInteger</i>
|
|
542
|
+
</li><li> <i>xsd:negativeInteger</i>
|
|
543
|
+
</li><li> <i>xsd:long</i>
|
|
544
|
+
</li><li> <i>xsd:int</i>
|
|
545
|
+
</li><li> <i>xsd:short</i>
|
|
546
|
+
</li><li> <i>xsd:byte</i>
|
|
547
|
+
</li><li> <i>xsd:unsignedLong</i>
|
|
548
|
+
</li><li> <i>xsd:unsignedInt</i>
|
|
549
|
+
</li><li> <i>xsd:unsignedShort</i>
|
|
550
|
+
</li><li> <i>xsd:unsignedByte</i>
|
|
551
|
+
</li><li> <i>xsd:float</i>
|
|
552
|
+
</li><li> <i>xsd:double</i>
|
|
553
|
+
</li><li> <i>xsd:string</i>
|
|
554
|
+
</li><li> <i>xsd:normalizedString</i>
|
|
555
|
+
</li><li> <i>xsd:token</i>
|
|
556
|
+
</li><li> <i>xsd:language</i>
|
|
557
|
+
</li><li> <i>xsd:Name</i>
|
|
558
|
+
</li><li> <i>xsd:NCName</i>
|
|
559
|
+
</li><li> <i>xsd:NMTOKEN</i>
|
|
560
|
+
</li><li> <i>xsd:boolean</i>
|
|
561
|
+
</li><li> <i>xsd:hexBinary</i>
|
|
562
|
+
</li><li> <i>xsd:base64Binary</i>
|
|
563
|
+
</li><li> <i>xsd:anyURI</i>
|
|
564
|
+
</li><li> <i>xsd:dateTime</i>
|
|
565
|
+
</li><li> <i>xsd:dateTimeStamp</i>
|
|
566
|
+
</li></ul>
|
|
567
|
+
<p>所支持的数据类型集合的设计目标是允许在规则系统中实现。<i>owl:real</i> 和 <i>owl:rational</i> 数据类型<em class="RFC2119" title="MUST NOT in RFC 2119 context">不得</em>在 OWL 2 RL 中使用。
|
|
568
|
+
</p>
|
|
569
|
+
<a id="Property_Expressions_3" name="Property_Expressions_3"></a><h4> <span class="mw-headline">4.2.2 属性表达式 </span></h4>
|
|
570
|
+
<p>OWL 2 RL 中的属性表达式与结构规约 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 中的属性表达式相同。
|
|
571
|
+
</p>
|
|
572
|
+
<a id="Class_Expressions_3" name="Class_Expressions_3"></a><h4> <span class="mw-headline">4.2.3 类表达式 </span></h4>
|
|
573
|
+
<p>OWL 2 RL 中有三种类型的类表达式。<span class="nonterminal">subClassExpression</span> 产生式定义了可以在 <span class="nonterminal">SubClassOf</span> 公理中作为子类表达式出现的类表达式;<span class="nonterminal">superClassExpression</span> 产生式定义了可以在 <span class="nonterminal">SubClassOf</span> 公理中作为超类表达式出现的类表达式;<span class="nonterminal">equivClassExpressions</span> 产生式定义了可以在 <span class="nonterminal">EquivalentClasses</span> 公理中出现的类。
|
|
574
|
+
</p>
|
|
575
|
+
<div class="grammar">
|
|
576
|
+
<p><span class="nonterminal">zeroOrOne </span> := '0' | '1'<br />
|
|
577
|
+
<br />
|
|
578
|
+
<span class="nonterminal">subClassExpression</span> :=<br />
|
|
579
|
+
<span class="nonterminal">Class</span> other than <i>owl:Thing</i> |<br />
|
|
580
|
+
<span class="nonterminal">subObjectIntersectionOf</span> | <span class="nonterminal">subObjectUnionOf</span> | <span class="nonterminal">ObjectOneOf</span> |<br />
|
|
581
|
+
<span class="nonterminal">subObjectSomeValuesFrom</span> | <span class="nonterminal">ObjectHasValue</span> |<br />
|
|
582
|
+
<span class="nonterminal">DataSomeValuesFrom</span> | <span class="nonterminal">DataHasValue</span><br />
|
|
583
|
+
<span class="nonterminal">subObjectIntersectionOf</span> := 'ObjectIntersectionOf' '(' <span class="nonterminal">subClassExpression</span> <span class="nonterminal">subClassExpression</span> { <span class="nonterminal">subClassExpression</span> } ')'<br />
|
|
584
|
+
<span class="nonterminal">subObjectUnionOf</span> := 'ObjectUnionOf' '(' <span class="nonterminal">subClassExpression</span> <span class="nonterminal">subClassExpression</span> { <span class="nonterminal">subClassExpression</span> } ')'<br />
|
|
585
|
+
<span class="nonterminal">subObjectSomeValuesFrom</span> :=<br />
|
|
586
|
+
'ObjectSomeValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">subClassExpression</span> ')' |<br />
|
|
587
|
+
'ObjectSomeValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <i>owl:Thing</i> ')'<br />
|
|
588
|
+
<br />
|
|
589
|
+
<span class="nonterminal">superClassExpression</span> :=<br />
|
|
590
|
+
<span class="nonterminal">Class</span> other than <i>owl:Thing</i> |<br />
|
|
591
|
+
<span class="nonterminal">superObjectIntersectionOf</span> | <span class="nonterminal">superObjectComplementOf</span> |<br />
|
|
592
|
+
<span class="nonterminal">superObjectAllValuesFrom</span> | <span class="nonterminal">ObjectHasValue</span> | <span class="nonterminal">superObjectMaxCardinality</span> |<br />
|
|
593
|
+
<span class="nonterminal">DataAllValuesFrom</span> | <span class="nonterminal">DataHasValue</span> | <span class="nonterminal">superDataMaxCardinality</span><br />
|
|
594
|
+
<span class="nonterminal">superObjectIntersectionOf</span> := 'ObjectIntersectionOf' '(' <span class="nonterminal">superClassExpression</span> <span class="nonterminal">superClassExpression</span> { <span class="nonterminal">superClassExpression</span> } ')'<br />
|
|
595
|
+
<span class="nonterminal">superObjectComplementOf</span> := 'ObjectComplementOf' '(' <span class="nonterminal">subClassExpression</span> ')'<br />
|
|
596
|
+
<span class="nonterminal">superObjectAllValuesFrom</span> := 'ObjectAllValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
597
|
+
<span class="nonterminal">superObjectMaxCardinality</span> :=<br />
|
|
598
|
+
'ObjectMaxCardinality' '(' <span class="nonterminal">zeroOrOne</span> <span class="nonterminal">ObjectPropertyExpression</span> [ <span class="nonterminal">subClassExpression</span> ] ')' |<br />
|
|
599
|
+
'ObjectMaxCardinality' '(' <span class="nonterminal">zeroOrOne</span> <span class="nonterminal">ObjectPropertyExpression</span> <i>owl:Thing</i> ')'<br />
|
|
600
|
+
<span class="nonterminal">superDataMaxCardinality</span> := 'DataMaxCardinality' '(' <span class="nonterminal">zeroOrOne</span> <span class="nonterminal">DataPropertyExpression</span> [ <span class="nonterminal">DataRange</span> ] ')' <br />
|
|
601
|
+
<br />
|
|
602
|
+
<span class="nonterminal">equivClassExpression</span> :=<br />
|
|
603
|
+
<span class="nonterminal">Class</span> other than <i>owl:Thing</i> |<br />
|
|
604
|
+
<span class="nonterminal">equivObjectIntersectionOf</span> |<br />
|
|
605
|
+
<span class="nonterminal">ObjectHasValue</span> |<br />
|
|
606
|
+
<span class="nonterminal">DataHasValue</span><br />
|
|
607
|
+
<span class="nonterminal">equivObjectIntersectionOf</span> := 'ObjectIntersectionOf' '(' <span class="nonterminal">equivClassExpression</span> <span class="nonterminal">equivClassExpression</span> { <span class="nonterminal">equivClassExpression</span> } ')'
|
|
608
|
+
</p>
|
|
609
|
+
</div>
|
|
610
|
+
<a id="Data_Ranges_3" name="Data_Ranges_3"></a><h4> <span class="mw-headline">4.2.4 数据范围 </span></h4>
|
|
611
|
+
<p>在 OWL 2 RL 中,数据范围表达式被限制为 OWL 2 RL 所接受的预定义数据类型以及数据范围的交集。
|
|
612
|
+
</p>
|
|
613
|
+
<div class="grammar">
|
|
614
|
+
<p><span class="nonterminal">DataRange</span> := <span class="nonterminal">Datatype</span> | <span class="nonterminal">DataIntersectionOf</span>
|
|
615
|
+
</p>
|
|
616
|
+
</div>
|
|
617
|
+
<a id="Axioms_3" name="Axioms_3"></a><h4> <span class="mw-headline">4.2.5 公理 </span></h4>
|
|
618
|
+
<p>OWL 2 RL 重新定义了结构规约 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 中所有涉及类表达式的公理。具体而言,它要求各类公理使用适当形式的类表达式(即 <span class="nonterminal">subClassExpression</span>、<span class="nonterminal">superClassExpression</span> 或 <span class="nonterminal">equivClassExpression</span> 之一),并且不允许使用 <span class="nonterminal">DisjointUnion</span> 公理。
|
|
619
|
+
</p>
|
|
620
|
+
<div class="grammar">
|
|
621
|
+
<p><span class="nonterminal">ClassAxiom</span> := <span class="nonterminal">SubClassOf</span> | <span class="nonterminal">EquivalentClasses</span> | <span class="nonterminal">DisjointClasses</span><br />
|
|
622
|
+
<span class="nonterminal">SubClassOf</span> := 'SubClassOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
623
|
+
<span class="nonterminal">EquivalentClasses</span> := 'EquivalentClasses' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">equivClassExpression</span> <span class="nonterminal">equivClassExpression</span> { <span class="nonterminal">equivClassExpression</span> } ')'<br />
|
|
624
|
+
<span class="nonterminal">DisjointClasses</span> := 'DisjointClasses' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">subClassExpression</span> { <span class="nonterminal">subClassExpression</span> } ')'
|
|
625
|
+
</p>
|
|
626
|
+
</div>
|
|
627
|
+
<p>OWL 2 RL 中关于属性表达式的公理与结构规约 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同,唯一的区别在于:属性定义域和值域公理中的类表达式被限制为 <span class="nonterminal">superClassExpression</span>,并且不允许使用自反属性。
|
|
628
|
+
</p>
|
|
629
|
+
<div class="grammar">
|
|
630
|
+
<p><span class="nonterminal">ObjectPropertyDomain</span> := 'ObjectPropertyDomain' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
631
|
+
<span class="nonterminal">ObjectPropertyRange</span> := 'ObjectPropertyRange' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
632
|
+
<span class="nonterminal">DataPropertyDomain</span> := 'DataPropertyDomain' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
633
|
+
<span class="nonterminal">ObjectPropertyAxiom</span> :=<br />
|
|
634
|
+
<span class="nonterminal">SubObjectPropertyOf</span> | <span class="nonterminal">EquivalentObjectProperties</span> |<br />
|
|
635
|
+
<span class="nonterminal">DisjointObjectProperties</span> | <span class="nonterminal">InverseObjectProperties</span> |<br />
|
|
636
|
+
<span class="nonterminal">ObjectPropertyDomain</span> | <span class="nonterminal">ObjectPropertyRange</span> |<br />
|
|
637
|
+
<span class="nonterminal">FunctionalObjectProperty</span> | <span class="nonterminal">InverseFunctionalObjectProperty</span> |<br />
|
|
638
|
+
<span class="nonterminal">IrreflexiveObjectProperty</span> |<br />
|
|
639
|
+
<span class="nonterminal">SymmetricObjectProperty</span> | <span class="nonterminal">AsymmetricObjectProperty</span><br />
|
|
640
|
+
<span class="nonterminal">TransitiveObjectProperty</span>
|
|
641
|
+
</p>
|
|
642
|
+
</div>
|
|
643
|
+
<p>OWL 2 RL 将正断言中的类表达式限制为 <span class="nonterminal">superClassExpression</span>。其余所有断言均与结构规约 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 相同。
|
|
644
|
+
</p>
|
|
645
|
+
<div class="grammar">
|
|
646
|
+
<p><span class="nonterminal">ClassAssertion</span> := 'ClassAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">superClassExpression</span> <span class="nonterminal">Individual</span> ')'
|
|
647
|
+
</p>
|
|
648
|
+
</div>
|
|
649
|
+
<p>OWL 2 RL 将键中的类表达式限制为 <span class="nonterminal">subClassExpression</span>。
|
|
650
|
+
</p>
|
|
651
|
+
<div class="grammar">
|
|
652
|
+
<p><span class="nonterminal">HasKey</span> := 'HasKey' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> '(' { <span class="nonterminal">ObjectPropertyExpression</span> } ')' '(' { <span class="nonterminal">DataPropertyExpression</span> } ')' ')'
|
|
653
|
+
</p>
|
|
654
|
+
</div>
|
|
655
|
+
<p>OWL 2 RL 中的其余所有公理均按结构规约 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 中的定义。
|
|
656
|
+
</p>
|
|
657
|
+
<a id="Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules" name="Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules"></a><h3> <span class="mw-headline">4.3 在 OWL 2 RL 与 RDF 图上用规则进行推理 </span></h3>
|
|
658
|
+
<p>本节以一阶蕴含式的形式给出 OWL 2 RDF-Based Semantics [<cite><a href="#ref-owl-2-rdf-semantics" title="">OWL 2 RDF-Based Semantics</a></cite>] 的部分公理化;这一公理化称为 OWL 2 RL/RDF 规则。这些规则为使用基于规则的技术(如逻辑程序设计 [<cite><a href="#ref-logic-programming" title="">Logic Programming</a></cite>, <cite><a href="#ref-lloyd" title="">Lloyd</a></cite>])进行实际实现提供了有用的起点。
|
|
659
|
+
</p><p>这些规则以关于三元谓词 <span class="name">T</span> 的全称量化一阶蕴含式给出。该谓词表示对 RDF 三元组的推广,其中空白节点和字面量可以出现在所有位置上(类似于 pD* [<cite><a href="#ref-pdstar" title="">pD*</a></cite>] 中的部分推广以及 RIF [<cite><a href="#ref-rif-rdf-owl" title="">RIF RDF & OWL</a></cite>] 中的广义 RDF 三元组);因此,<span class="name">T(s, p, o)</span> 表示一个主语为 <span class="name">s</span>、谓词为 <span class="name">p</span>、宾语为 <span class="name">o</span> 的广义 RDF 三元组。蕴含式中的变量以问号开头。"if" 部分为空的规则应理解为始终适用。命题符号 <span class="name">false</span> 是表示矛盾的特殊符号:如果它被推出,则初始 RDF 图是不一致的。本节列出的规则集并非最小化的,因为某些规则可由其他规则推出;这样做是为了使 OWL 2 词汇的每个部分的语义推论的定义都是自包含的。
|
|
660
|
+
</p><p>许多条件包含与 RDF 列表构造相匹配的原子。为了简化规则的表述,<span class="name">LIST[h, e<sub>1</sub>, ..., e<sub>n</sub>]</span> 用作表 3 所示三元组合取式的缩写,其中 <span class="name">z<sub>2</sub></span>, ..., <span class="name">z<sub>n</sub></span> 是全新变量,不在使用该缩写的任何位置出现。
|
|
661
|
+
</p>
|
|
662
|
+
<div class="center">
|
|
663
|
+
<table border="2" cellpadding="5">
|
|
664
|
+
<caption> <span class="caption">表 3.</span> <span class="name">LIST[h, e<sub>1</sub>, ..., e<sub>n</sub>]</span> 的展开
|
|
665
|
+
</caption>
|
|
666
|
+
<tbody><tr>
|
|
667
|
+
<td class="name"> T(h, rdf:first, e<sub>1</sub>)
|
|
668
|
+
</td><td class="name"> T(h, rdf:rest, z<sub>2</sub>)
|
|
669
|
+
</td></tr>
|
|
670
|
+
<tr>
|
|
671
|
+
<td class="name"> T(z<sub>2</sub>, rdf:first, e<sub>2</sub>)
|
|
672
|
+
</td><td class="name"> T(z<sub>2</sub>, rdf:rest, z<sub>3</sub>)
|
|
673
|
+
</td></tr>
|
|
674
|
+
<tr>
|
|
675
|
+
<td class="name"> ...
|
|
676
|
+
</td><td class="name"> ...
|
|
677
|
+
</td></tr>
|
|
678
|
+
<tr>
|
|
679
|
+
<td class="name"> T(z<sub>n</sub>, rdf:first, e<sub>n</sub>)
|
|
680
|
+
</td><td class="name"> T(z<sub>n</sub>, rdf:rest, rdf:nil)
|
|
681
|
+
</td></tr>
|
|
682
|
+
</tbody></table>
|
|
683
|
+
</div>
|
|
684
|
+
<p>为便于查阅,该公理化被拆分为若干张表。每条规则都有一个简短的唯一名称。若干表中的各行规定了需要针对最右列给出的每一种下标组合进行实例化的规则。
|
|
685
|
+
</p><p>表 4 对相等性的语义进行公理化。具体而言,它将相等关系 <span class="name">owl:sameAs</span> 定义为自反、对称且传递的,并对其公理化标准的相等性替换性质。
|
|
686
|
+
</p>
|
|
687
|
+
<div class="center">
|
|
688
|
+
<table border="2" cellpadding="5">
|
|
689
|
+
<caption> <span class="caption">表 4.</span> 相等性的语义
|
|
690
|
+
</caption>
|
|
691
|
+
<tbody><tr>
|
|
692
|
+
<th>
|
|
693
|
+
</th><th> 前件
|
|
694
|
+
</th><th> 后件
|
|
695
|
+
</th></tr>
|
|
696
|
+
<tr>
|
|
697
|
+
<td> <span class="name" id="eq-ref">eq-ref</span>
|
|
698
|
+
</td><td class="name"> T(?s, ?p, ?o)<br />
|
|
699
|
+
</td><td class="name"> T(?s, owl:sameAs, ?s)<br /> T(?p, owl:sameAs, ?p)<br /> T(?o, owl:sameAs, ?o)
|
|
700
|
+
</td></tr>
|
|
701
|
+
<tr>
|
|
702
|
+
<td> <span class="name" id="eq-sym">eq-sym</span>
|
|
703
|
+
</td><td class="name"> T(?x, owl:sameAs, ?y)
|
|
704
|
+
</td><td class="name"> T(?y, owl:sameAs, ?x)
|
|
705
|
+
</td></tr>
|
|
706
|
+
<tr>
|
|
707
|
+
<td> <span class="name" id="eq-trans">eq-trans</span>
|
|
708
|
+
</td><td class="name"> T(?x, owl:sameAs, ?y)<br /> T(?y, owl:sameAs, ?z)
|
|
709
|
+
</td><td class="name"> T(?x, owl:sameAs, ?z)
|
|
710
|
+
</td></tr>
|
|
711
|
+
<tr>
|
|
712
|
+
<td> <span class="name" id="eq-rep-s">eq-rep-s</span>
|
|
713
|
+
</td><td class="name"> T(?s, owl:sameAs, ?s')<br /> T(?s, ?p, ?o)<br />
|
|
714
|
+
</td><td class="name"> T(?s', ?p, ?o)
|
|
715
|
+
</td></tr>
|
|
716
|
+
<tr>
|
|
717
|
+
<td> <span class="name" id="eq-rep-p">eq-rep-p</span>
|
|
718
|
+
</td><td class="name"> T(?p, owl:sameAs, ?p')<br /> T(?s, ?p, ?o)<br />
|
|
719
|
+
</td><td class="name"> T(?s, ?p', ?o)
|
|
720
|
+
</td></tr>
|
|
721
|
+
<tr>
|
|
722
|
+
<td> <span class="name" id="eq-rep-o">eq-rep-o</span>
|
|
723
|
+
</td><td class="name"> T(?o, owl:sameAs, ?o')<br /> T(?s, ?p, ?o)<br />
|
|
724
|
+
</td><td class="name"> T(?s, ?p, ?o')
|
|
725
|
+
</td></tr>
|
|
726
|
+
<tr>
|
|
727
|
+
<td> <span class="name" id="eq-diff1">eq-diff1</span>
|
|
728
|
+
</td><td class="name"> T(?x, owl:sameAs, ?y)<br /> T(?x, owl:differentFrom, ?y)<br />
|
|
729
|
+
</td><td class="name"> false
|
|
730
|
+
</td></tr>
|
|
731
|
+
<tr>
|
|
732
|
+
<td> <span class="name" id="eq-diff2">eq-diff2</span>
|
|
733
|
+
</td><td class="name"> T(?x, rdf:type, owl:AllDifferent)<br /> T(?x, owl:members, ?y)<br /> LIST[?y, ?z<sub>1</sub>, ..., ?z<sub>n</sub>]<br /> T(?z<sub>i</sub>, owl:sameAs, ?z<sub>j</sub>)
|
|
734
|
+
</td><td class="name"> false
|
|
735
|
+
</td><td> 对每个 1 ≤ i < j ≤ n
|
|
736
|
+
</td></tr>
|
|
737
|
+
<tr>
|
|
738
|
+
<td> <span class="name" id="eq-diff3">eq-diff3</span>
|
|
739
|
+
</td><td class="name"> T(?x, rdf:type, owl:AllDifferent)<br /> T(?x, owl:distinctMembers, ?y)<br /> LIST[?y, ?z<sub>1</sub>, ..., ?z<sub>n</sub>]<br /> T(?z<sub>i</sub>, owl:sameAs, ?z<sub>j</sub>)
|
|
740
|
+
</td><td class="name"> false
|
|
741
|
+
</td><td> 对每个 1 ≤ i < j ≤ n
|
|
742
|
+
</td></tr>
|
|
743
|
+
</tbody></table>
|
|
744
|
+
</div>
|
|
745
|
+
<p>表 5 规定了关于属性的公理所应满足的语义条件。
|
|
746
|
+
</p>
|
|
747
|
+
<div class="center">
|
|
748
|
+
<table border="2" cellpadding="5">
|
|
749
|
+
<caption> <span class="caption">表 5.</span> 属性相关公理的语义
|
|
750
|
+
</caption>
|
|
751
|
+
<tbody><tr>
|
|
752
|
+
<th>
|
|
753
|
+
</th><th> 前件
|
|
754
|
+
</th><th> 后件
|
|
755
|
+
</th></tr>
|
|
756
|
+
<tr>
|
|
757
|
+
<td> <span class="name" id="prp-ap">prp-ap</span>
|
|
758
|
+
</td><td class="name">
|
|
759
|
+
</td><td class="name"> T(ap, rdf:type, owl:AnnotationProperty)
|
|
760
|
+
</td><td> 对 OWL 2 RL 的每个内建注解属性
|
|
761
|
+
</td></tr>
|
|
762
|
+
<tr>
|
|
763
|
+
<td> <span class="name" id="prp-dom">prp-dom</span>
|
|
764
|
+
</td><td class="name"> T(?p, rdfs:domain, ?c)<br /> T(?x, ?p, ?y)
|
|
765
|
+
</td><td class="name"> T(?x, rdf:type, ?c)
|
|
766
|
+
</td></tr>
|
|
767
|
+
<tr>
|
|
768
|
+
<td> <span class="name" id="prp-rng">prp-rng</span>
|
|
769
|
+
</td><td class="name"> T(?p, rdfs:range, ?c)<br /> T(?x, ?p, ?y)
|
|
770
|
+
</td><td class="name"> T(?y, rdf:type, ?c)
|
|
771
|
+
</td></tr>
|
|
772
|
+
<tr>
|
|
773
|
+
<td> <span class="name" id="prp-fp">prp-fp</span>
|
|
774
|
+
</td><td class="name"> T(?p, rdf:type, owl:FunctionalProperty)<br /> T(?x, ?p, ?y<sub>1</sub>)<br /> T(?x, ?p, ?y<sub>2</sub>)
|
|
775
|
+
</td><td class="name"> T(?y<sub>1</sub>, owl:sameAs, ?y<sub>2</sub>)
|
|
776
|
+
</td></tr>
|
|
777
|
+
<tr>
|
|
778
|
+
<td> <span class="name" id="prp-ifp">prp-ifp</span>
|
|
779
|
+
</td><td class="name"> T(?p, rdf:type, owl:InverseFunctionalProperty)<br /> T(?x<sub>1</sub>, ?p, ?y)<br /> T(?x<sub>2</sub>, ?p, ?y)
|
|
780
|
+
</td><td class="name"> T(?x<sub>1</sub>, owl:sameAs, ?x<sub>2</sub>)
|
|
781
|
+
</td></tr>
|
|
782
|
+
<tr>
|
|
783
|
+
<td> <span class="name" id="prp-irp">prp-irp</span>
|
|
784
|
+
</td><td class="name"> T(?p, rdf:type, owl:IrreflexiveProperty)<br /> T(?x, ?p, ?x)
|
|
785
|
+
</td><td class="name"> false
|
|
786
|
+
</td></tr>
|
|
787
|
+
<tr>
|
|
788
|
+
<td> <span class="name" id="prp-symp">prp-symp</span>
|
|
789
|
+
</td><td class="name"> T(?p, rdf:type, owl:SymmetricProperty)<br /> T(?x, ?p, ?y)
|
|
790
|
+
</td><td class="name"> T(?y, ?p, ?x)
|
|
791
|
+
</td></tr>
|
|
792
|
+
<tr>
|
|
793
|
+
<td> <span class="name" id="prp-asyp">prp-asyp</span>
|
|
794
|
+
</td><td class="name"> T(?p, rdf:type, owl:AsymmetricProperty)<br /> T(?x, ?p, ?y)<br /> T(?y, ?p, ?x)
|
|
795
|
+
</td><td class="name"> false
|
|
796
|
+
</td></tr>
|
|
797
|
+
<tr>
|
|
798
|
+
<td> <span class="name" id="prp-trp">prp-trp</span>
|
|
799
|
+
</td><td class="name"> T(?p, rdf:type, owl:TransitiveProperty)<br /> T(?x, ?p, ?y)<br /> T(?y, ?p, ?z)
|
|
800
|
+
</td><td class="name"> T(?x, ?p, ?z)
|
|
801
|
+
</td></tr>
|
|
802
|
+
<tr>
|
|
803
|
+
<td> <span class="name" id="prp-spo1">prp-spo1</span>
|
|
804
|
+
</td><td class="name"> T(?p<sub>1</sub>, rdfs:subPropertyOf, ?p<sub>2</sub>)<br /> T(?x, ?p<sub>1</sub>, ?y)<br />
|
|
805
|
+
</td><td class="name"> T(?x, ?p<sub>2</sub>, ?y)
|
|
806
|
+
</td></tr>
|
|
807
|
+
<tr>
|
|
808
|
+
<td> <span class="name" id="prp-spo2">prp-spo2</span>
|
|
809
|
+
</td><td class="name"> T(?p, owl:propertyChainAxiom, ?x)<br /> LIST[?x, ?p<sub>1</sub>, ..., ?p<sub>n</sub>]<br /> T(?u<sub>1</sub>, ?p<sub>1</sub>, ?u<sub>2</sub>)<br /> T(?u<sub>2</sub>, ?p<sub>2</sub>, ?u<sub>3</sub>)<br /> ...<br /> T(?u<sub>n</sub>, ?p<sub>n</sub>, ?u<sub>n+1</sub>)
|
|
810
|
+
</td><td class="name"> T(?u<sub>1</sub>, ?p, ?u<sub>n+1</sub>)
|
|
811
|
+
</td></tr>
|
|
812
|
+
<tr>
|
|
813
|
+
<td> <span class="name" id="prp-eqp1">prp-eqp1</span>
|
|
814
|
+
</td><td class="name"> T(?p<sub>1</sub>, owl:equivalentProperty, ?p<sub>2</sub>)<br /> T(?x, ?p<sub>1</sub>, ?y)
|
|
815
|
+
</td><td class="name"> T(?x, ?p<sub>2</sub>, ?y)
|
|
816
|
+
</td></tr>
|
|
817
|
+
<tr>
|
|
818
|
+
<td> <span class="name" id="prp-eqp2">prp-eqp2</span>
|
|
819
|
+
</td><td class="name"> T(?p<sub>1</sub>, owl:equivalentProperty, ?p<sub>2</sub>)<br /> T(?x, ?p<sub>2</sub>, ?y)
|
|
820
|
+
</td><td class="name"> T(?x, ?p<sub>1</sub>, ?y)
|
|
821
|
+
</td></tr>
|
|
822
|
+
<tr>
|
|
823
|
+
<td> <span class="name" id="prp-pdw">prp-pdw</span>
|
|
824
|
+
</td><td class="name"> T(?p<sub>1</sub>, owl:propertyDisjointWith, ?p<sub>2</sub>)<br /> T(?x, ?p<sub>1</sub>, ?y)<br /> T(?x, ?p<sub>2</sub>, ?y)
|
|
825
|
+
</td><td class="name"> false
|
|
826
|
+
</td></tr>
|
|
827
|
+
<tr>
|
|
828
|
+
<td> <span class="name" id="prp-adp">prp-adp</span>
|
|
829
|
+
</td><td class="name"> T(?x, rdf:type, owl:AllDisjointProperties)<br /> T(?x, owl:members, ?y)<br /> LIST[?y, ?p<sub>1</sub>, ..., ?p<sub>n</sub>]<br /> T(?u, ?p<sub>i</sub>, ?v)<br /> T(?u, ?p<sub>j</sub>, ?v)
|
|
830
|
+
</td><td class="name"> false
|
|
831
|
+
</td><td> 对每个 1 ≤ i < j ≤ n
|
|
832
|
+
</td></tr>
|
|
833
|
+
<tr>
|
|
834
|
+
<td> <span class="name" id="prp-inv1">prp-inv1</span>
|
|
835
|
+
</td><td class="name"> T(?p<sub>1</sub>, owl:inverseOf, ?p<sub>2</sub>)<br /> T(?x, ?p<sub>1</sub>, ?y)
|
|
836
|
+
</td><td class="name"> T(?y, ?p<sub>2</sub>, ?x)
|
|
837
|
+
</td></tr>
|
|
838
|
+
<tr>
|
|
839
|
+
<td> <span class="name" id="prp-inv2">prp-inv2</span>
|
|
840
|
+
</td><td class="name"> T(?p<sub>1</sub>, owl:inverseOf, ?p<sub>2</sub>)<br /> T(?x, ?p<sub>2</sub>, ?y)
|
|
841
|
+
</td><td class="name"> T(?y, ?p<sub>1</sub>, ?x)
|
|
842
|
+
</td></tr>
|
|
843
|
+
<tr>
|
|
844
|
+
<td> <span class="name" id="prp-key">prp-key</span>
|
|
845
|
+
</td><td class="name"> T(?c, owl:hasKey, ?u)<br /> LIST[?u, ?p<sub>1</sub>, ..., ?p<sub>n</sub>]<br /> T(?x, rdf:type, ?c)<br /> T(?x, ?p<sub>1</sub>, ?z<sub>1</sub>)<br /> ...<br /> T(?x, ?p<sub>n</sub>, ?z<sub>n</sub>)<br /> T(?y, rdf:type, ?c)<br /> T(?y, ?p<sub>1</sub>, ?z<sub>1</sub>)<br /> ...<br /> T(?y, ?p<sub>n</sub>, ?z<sub>n</sub>)
|
|
846
|
+
</td><td class="name"> T(?x, owl:sameAs, ?y)
|
|
847
|
+
</td></tr>
|
|
848
|
+
<tr>
|
|
849
|
+
<td> <span class="name" id="prp-npa1">prp-npa1</span>
|
|
850
|
+
</td><td class="name"> T(?x, owl:sourceIndividual, ?i<sub>1</sub>)<br /> T(?x, owl:assertionProperty, ?p)<br /> T(?x, owl:targetIndividual, ?i<sub>2</sub>)<br /> T(?i<sub>1</sub>, ?p, ?i<sub>2</sub>)
|
|
851
|
+
</td><td class="name"> false
|
|
852
|
+
</td></tr>
|
|
853
|
+
<tr>
|
|
854
|
+
<td> <span class="name" id="prp-npa2">prp-npa2</span>
|
|
855
|
+
</td><td class="name"> T(?x, owl:sourceIndividual, ?i)<br /> T(?x, owl:assertionProperty, ?p)<br /> T(?x, owl:targetValue, ?lt)<br /> T(?i, ?p, ?lt)
|
|
856
|
+
</td><td class="name"> false
|
|
857
|
+
</td></tr>
|
|
858
|
+
</tbody></table>
|
|
859
|
+
</div>
|
|
860
|
+
<p>表 6 规定了类的语义条件。
|
|
861
|
+
</p>
|
|
862
|
+
<div class="center">
|
|
863
|
+
<table border="2" cellpadding="5">
|
|
864
|
+
<caption> <span class="caption">表 6.</span> 类的语义
|
|
865
|
+
</caption>
|
|
866
|
+
<tbody><tr>
|
|
867
|
+
<th>
|
|
868
|
+
</th><th> 前件
|
|
869
|
+
</th><th> 后件
|
|
870
|
+
</th></tr>
|
|
871
|
+
<tr>
|
|
872
|
+
<td> <span class="name" id="cls-thing">cls-thing</span>
|
|
873
|
+
</td><td class="name">
|
|
874
|
+
</td><td class="name"> T(owl:Thing, rdf:type, owl:Class)
|
|
875
|
+
</td></tr>
|
|
876
|
+
<tr>
|
|
877
|
+
<td> <span class="name" id="cls-nothing1">cls-nothing1</span>
|
|
878
|
+
</td><td class="name">
|
|
879
|
+
</td><td class="name"> T(owl:Nothing, rdf:type, owl:Class)
|
|
880
|
+
</td></tr>
|
|
881
|
+
<tr>
|
|
882
|
+
<td> <span class="name" id="cls-nothing2">cls-nothing2</span>
|
|
883
|
+
</td><td class="name"> T(?x, rdf:type, owl:Nothing)
|
|
884
|
+
</td><td class="name"> false
|
|
885
|
+
</td></tr>
|
|
886
|
+
<tr>
|
|
887
|
+
<td> <span class="name" id="cls-int1">cls-int1</span>
|
|
888
|
+
</td><td class="name"> T(?c, owl:intersectionOf, ?x)<br /> LIST[?x, ?c<sub>1</sub>, ..., ?c<sub>n</sub>]<br /> T(?y, rdf:type, ?c<sub>1</sub>)<br /> T(?y, rdf:type, ?c<sub>2</sub>)<br /> ...<br /> T(?y, rdf:type, ?c<sub>n</sub>)
|
|
889
|
+
</td><td class="name"> T(?y, rdf:type, ?c)
|
|
890
|
+
</td></tr>
|
|
891
|
+
<tr>
|
|
892
|
+
<td> <span class="name" id="cls-int2">cls-int2</span>
|
|
893
|
+
</td><td class="name"> T(?c, owl:intersectionOf, ?x)<br /> LIST[?x, ?c<sub>1</sub>, ..., ?c<sub>n</sub>]<br /> T(?y, rdf:type, ?c)
|
|
894
|
+
</td><td class="name"> T(?y, rdf:type, ?c<sub>1</sub>)<br /> T(?y, rdf:type, ?c<sub>2</sub>)<br /> ...<br /> T(?y, rdf:type, ?c<sub>n</sub>)
|
|
895
|
+
</td></tr>
|
|
896
|
+
<tr>
|
|
897
|
+
<td> <span class="name" id="cls-uni">cls-uni</span>
|
|
898
|
+
</td><td class="name"> T(?c, owl:unionOf, ?x)<br /> LIST[?x, ?c<sub>1</sub>, ..., ?c<sub>n</sub>]<br /> T(?y, rdf:type, ?c<sub>i</sub>)
|
|
899
|
+
</td><td class="name"> T(?y, rdf:type, ?c)
|
|
900
|
+
</td><td> 对每个 1 ≤ i ≤ n
|
|
901
|
+
</td></tr>
|
|
902
|
+
<tr>
|
|
903
|
+
<td> <span class="name" id="cls-com">cls-com</span>
|
|
904
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:complementOf, ?c<sub>2</sub>)<br /> T(?x, rdf:type, ?c<sub>1</sub>)<br /> T(?x, rdf:type, ?c<sub>2</sub>)
|
|
905
|
+
</td><td class="name"> false
|
|
906
|
+
</td></tr>
|
|
907
|
+
<tr>
|
|
908
|
+
<td> <span class="name" id="cls-svf1">cls-svf1</span>
|
|
909
|
+
</td><td class="name"> T(?x, owl:someValuesFrom, ?y)<br /> T(?x, owl:onProperty, ?p)<br /> T(?u, ?p, ?v)<br /> T(?v, rdf:type, ?y)
|
|
910
|
+
</td><td class="name"> T(?u, rdf:type, ?x)
|
|
911
|
+
</td></tr>
|
|
912
|
+
<tr>
|
|
913
|
+
<td> <span class="name" id="cls-svf2">cls-svf2</span>
|
|
914
|
+
</td><td class="name"> T(?x, owl:someValuesFrom, owl:Thing)<br /> T(?x, owl:onProperty, ?p)<br /> T(?u, ?p, ?v)
|
|
915
|
+
</td><td class="name"> T(?u, rdf:type, ?x)
|
|
916
|
+
</td></tr>
|
|
917
|
+
<tr>
|
|
918
|
+
<td> <span class="name" id="cls-avf">cls-avf</span>
|
|
919
|
+
</td><td class="name"> T(?x, owl:allValuesFrom, ?y)<br /> T(?x, owl:onProperty, ?p)<br /> T(?u, rdf:type, ?x)<br /> T(?u, ?p, ?v)
|
|
920
|
+
</td><td class="name"> T(?v, rdf:type, ?y)
|
|
921
|
+
</td></tr>
|
|
922
|
+
<tr>
|
|
923
|
+
<td> <span class="name" id="cls-hv1">cls-hv1</span>
|
|
924
|
+
</td><td class="name"> T(?x, owl:hasValue, ?y)<br /> T(?x, owl:onProperty, ?p)<br /> T(?u, rdf:type, ?x)
|
|
925
|
+
</td><td class="name"> T(?u, ?p, ?y)
|
|
926
|
+
</td></tr>
|
|
927
|
+
<tr>
|
|
928
|
+
<td> <span class="name" id="cls-hv2">cls-hv2</span>
|
|
929
|
+
</td><td class="name"> T(?x, owl:hasValue, ?y)<br /> T(?x, owl:onProperty, ?p)<br /> T(?u, ?p, ?y)
|
|
930
|
+
</td><td class="name"> T(?u, rdf:type, ?x)
|
|
931
|
+
</td></tr>
|
|
932
|
+
<tr>
|
|
933
|
+
<td> <span class="name" id="cls-maxc1">cls-maxc1</span>
|
|
934
|
+
</td><td class="name"> T(?x, owl:maxCardinality, "0"^^xsd:nonNegativeInteger)<br /> T(?x, owl:onProperty, ?p)<br /> T(?u, rdf:type, ?x)<br /> T(?u, ?p, ?y)
|
|
935
|
+
</td><td class="name"> false
|
|
936
|
+
</td></tr>
|
|
937
|
+
<tr>
|
|
938
|
+
<td> <span class="name" id="cls-maxc2">cls-maxc2</span>
|
|
939
|
+
</td><td class="name"> T(?x, owl:maxCardinality, "1"^^xsd:nonNegativeInteger)<br /> T(?x, owl:onProperty, ?p)<br /> T(?u, rdf:type, ?x)<br /> T(?u, ?p, ?y<sub>1</sub>)<br /> T(?u, ?p, ?y<sub>2</sub>)
|
|
940
|
+
</td><td class="name"> T(?y<sub>1</sub>, owl:sameAs, ?y<sub>2</sub>)
|
|
941
|
+
</td></tr>
|
|
942
|
+
<tr>
|
|
943
|
+
<td> <span class="name" id="cls-maxqc1">cls-maxqc1</span>
|
|
944
|
+
</td><td class="name"> T(?x, owl:maxQualifiedCardinality, "0"^^xsd:nonNegativeInteger)<br /> T(?x, owl:onProperty, ?p)<br /> T(?x, owl:onClass, ?c)<br /> T(?u, rdf:type, ?x)<br /> T(?u, ?p, ?y)<br /> T(?y, rdf:type, ?c)
|
|
945
|
+
</td><td class="name"> false
|
|
946
|
+
</td></tr>
|
|
947
|
+
<tr>
|
|
948
|
+
<td> <span class="name" id="cls-maxqc2">cls-maxqc2</span>
|
|
949
|
+
</td><td class="name"> T(?x, owl:maxQualifiedCardinality, "0"^^xsd:nonNegativeInteger)<br /> T(?x, owl:onProperty, ?p)<br /> T(?x, owl:onClass, owl:Thing)<br /> T(?u, rdf:type, ?x)<br /> T(?u, ?p, ?y)
|
|
950
|
+
</td><td class="name"> false
|
|
951
|
+
</td></tr>
|
|
952
|
+
<tr>
|
|
953
|
+
<td> <span class="name" id="cls-maxqc3">cls-maxqc3</span>
|
|
954
|
+
</td><td class="name"> T(?x, owl:maxQualifiedCardinality, "1"^^xsd:nonNegativeInteger)<br /> T(?x, owl:onProperty, ?p)<br /> T(?x, owl:onClass, ?c)<br /> T(?u, rdf:type, ?x)<br /> T(?u, ?p, ?y<sub>1</sub>)<br /> T(?y<sub>1</sub>, rdf:type, ?c)<br /> T(?u, ?p, ?y<sub>2</sub>)<br /> T(?y<sub>2</sub>, rdf:type, ?c)
|
|
955
|
+
</td><td class="name"> T(?y<sub>1</sub>, owl:sameAs, ?y<sub>2</sub>)
|
|
956
|
+
</td></tr>
|
|
957
|
+
<tr>
|
|
958
|
+
<td> <span class="name" id="cls-maxqc4">cls-maxqc4</span>
|
|
959
|
+
</td><td class="name"> T(?x, owl:maxQualifiedCardinality, "1"^^xsd:nonNegativeInteger)<br /> T(?x, owl:onProperty, ?p)<br /> T(?x, owl:onClass, owl:Thing)<br /> T(?u, rdf:type, ?x)<br /> T(?u, ?p, ?y<sub>1</sub>)<br /> T(?u, ?p, ?y<sub>2</sub>)
|
|
960
|
+
</td><td class="name"> T(?y<sub>1</sub>, owl:sameAs, ?y<sub>2</sub>)
|
|
961
|
+
</td></tr>
|
|
962
|
+
<tr>
|
|
963
|
+
<td> <span class="name" id="cls-oo">cls-oo</span>
|
|
964
|
+
</td><td class="name"> T(?c, owl:oneOf, ?x)<br /> LIST[?x, ?y<sub>1</sub>, ..., ?y<sub>n</sub>]
|
|
965
|
+
</td><td class="name"> T(?y<sub>1</sub>, rdf:type, ?c)<br /> ...<br /> T(?y<sub>n</sub>, rdf:type, ?c)
|
|
966
|
+
</td></tr>
|
|
967
|
+
</tbody></table>
|
|
968
|
+
</div>
|
|
969
|
+
<p>表 7 规定了类公理的语义条件。
|
|
970
|
+
</p>
|
|
971
|
+
<div class="center">
|
|
972
|
+
<table border="2" cellpadding="5">
|
|
973
|
+
<caption> <span class="caption">表 7.</span> 类公理的语义
|
|
974
|
+
</caption>
|
|
975
|
+
<tbody><tr>
|
|
976
|
+
<td>
|
|
977
|
+
</td><th> 前件
|
|
978
|
+
</th><th> 后件
|
|
979
|
+
</th></tr>
|
|
980
|
+
<tr>
|
|
981
|
+
<td> <span class="name" id="cax-sco">cax-sco</span>
|
|
982
|
+
</td><td class="name"> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>2</sub>)<br /> T(?x, rdf:type, ?c<sub>1</sub>)
|
|
983
|
+
</td><td class="name"> T(?x, rdf:type, ?c<sub>2</sub>)
|
|
984
|
+
</td></tr>
|
|
985
|
+
<tr>
|
|
986
|
+
<td> <span class="name" id="cax-eqc1">cax-eqc1</span>
|
|
987
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:equivalentClass, ?c<sub>2</sub>)<br /> T(?x, rdf:type, ?c<sub>1</sub>)
|
|
988
|
+
</td><td class="name"> T(?x, rdf:type, ?c<sub>2</sub>)
|
|
989
|
+
</td></tr>
|
|
990
|
+
<tr>
|
|
991
|
+
<td> <span class="name" id="cax-eqc2">cax-eqc2</span>
|
|
992
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:equivalentClass, ?c<sub>2</sub>)<br /> T(?x, rdf:type, ?c<sub>2</sub>)
|
|
993
|
+
</td><td class="name"> T(?x, rdf:type, ?c<sub>1</sub>)
|
|
994
|
+
</td></tr>
|
|
995
|
+
<tr>
|
|
996
|
+
<td> <span class="name" id="cax-dw">cax-dw</span>
|
|
997
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:disjointWith, ?c<sub>2</sub>)<br /> T(?x, rdf:type, ?c<sub>1</sub>)<br /> T(?x, rdf:type, ?c<sub>2</sub>)
|
|
998
|
+
</td><td class="name"> false
|
|
999
|
+
</td></tr>
|
|
1000
|
+
<tr>
|
|
1001
|
+
<td> <span class="name" id="cax-adc">cax-adc</span>
|
|
1002
|
+
</td><td class="name"> T(?x, rdf:type, owl:AllDisjointClasses)<br /> T(?x, owl:members, ?y)<br /> LIST[?y, ?c<sub>1</sub>, ..., ?c<sub>n</sub>]<br /> T(?z, rdf:type, ?c<sub>i</sub>)<br /> T(?z, rdf:type, ?c<sub>j</sub>)
|
|
1003
|
+
</td><td class="name"> false
|
|
1004
|
+
</td><td> 对每个 1 ≤ i < j ≤ n
|
|
1005
|
+
</td></tr>
|
|
1006
|
+
</tbody></table>
|
|
1007
|
+
</div>
|
|
1008
|
+
<p>表 8 规定了数据类型的语义。
|
|
1009
|
+
</p>
|
|
1010
|
+
<div class="center">
|
|
1011
|
+
<table border="2" cellpadding="5">
|
|
1012
|
+
<caption> <span class="caption">表 8.</span> 数据类型的语义
|
|
1013
|
+
</caption>
|
|
1014
|
+
<tbody><tr>
|
|
1015
|
+
<td>
|
|
1016
|
+
</td><th> 前件
|
|
1017
|
+
</th><th> 后件
|
|
1018
|
+
</th></tr>
|
|
1019
|
+
<tr>
|
|
1020
|
+
<td> <span class="name" id="dt-type1">dt-type1</span>
|
|
1021
|
+
</td><td class="name">
|
|
1022
|
+
</td><td class="name"> T(dt, rdf:type, rdfs:Datatype)
|
|
1023
|
+
</td><td> 对 OWL 2 RL 支持的每个数据类型 <span class="name">dt</span>
|
|
1024
|
+
</td></tr>
|
|
1025
|
+
<tr>
|
|
1026
|
+
<td> <span class="name" id="dt-type2">dt-type2</span>
|
|
1027
|
+
</td><td class="name">
|
|
1028
|
+
</td><td class="name"> T(lt, rdf:type, dt)
|
|
1029
|
+
</td><td> 对每个字面量 <span class="name">lt</span> 和 OWL 2 RL 支持的每个数据类型 <span class="name">dt</span>,<br /> 使得 <span class="name">lt</span> 的数据值包含在 <span class="name">dt</span> 的值空间中
|
|
1030
|
+
</td></tr>
|
|
1031
|
+
<tr>
|
|
1032
|
+
<td> <span class="name" id="dt-eq">dt-eq</span>
|
|
1033
|
+
</td><td class="name">
|
|
1034
|
+
</td><td class="name"> T(lt<sub>1</sub>, owl:sameAs, lt<sub>2</sub>)
|
|
1035
|
+
</td><td> 对所有具有相同数据值的字面量 <span class="name">lt<sub>1</sub></span> 和 <span class="name">lt<sub>2</sub></span>
|
|
1036
|
+
</td></tr>
|
|
1037
|
+
<tr>
|
|
1038
|
+
<td> <span class="name" id="dt-diff">dt-diff</span>
|
|
1039
|
+
</td><td class="name">
|
|
1040
|
+
</td><td class="name"> T(lt<sub>1</sub>, owl:differentFrom, lt<sub>2</sub>)
|
|
1041
|
+
</td><td> 对所有具有不同数据值的字面量 <span class="name">lt<sub>1</sub></span> 和 <span class="name">lt<sub>2</sub></span>
|
|
1042
|
+
</td></tr>
|
|
1043
|
+
<tr>
|
|
1044
|
+
<td> <span class="name" id="dt-not-type">dt-not-type</span>
|
|
1045
|
+
</td><td class="name"> T(lt, rdf:type, dt)
|
|
1046
|
+
</td><td class="name"> false
|
|
1047
|
+
</td><td> 对每个字面量 <span class="name">lt</span> 和 OWL 2 RL 支持的每个数据类型 <span class="name">dt</span>,<br /> 使得 <span class="name">lt</span> 的数据值不包含在 <span class="name">dt</span> 的值空间中
|
|
1048
|
+
</td></tr>
|
|
1049
|
+
</tbody></table>
|
|
1050
|
+
</div>
|
|
1051
|
+
<p>表 9 规定了对用于定义模式的词汇的语义限制。
|
|
1052
|
+
</p>
|
|
1053
|
+
<div class="center">
|
|
1054
|
+
<table border="2" cellpadding="5">
|
|
1055
|
+
<caption> <span class="caption">表 9.</span> 模式词汇的语义
|
|
1056
|
+
</caption>
|
|
1057
|
+
<tbody><tr>
|
|
1058
|
+
<th>
|
|
1059
|
+
</th><th> 前件
|
|
1060
|
+
</th><th> 后件
|
|
1061
|
+
</th></tr>
|
|
1062
|
+
<tr>
|
|
1063
|
+
<td> <span class="name" id="scm-cls">scm-cls</span>
|
|
1064
|
+
</td><td class="name"> T(?c, rdf:type, owl:Class)
|
|
1065
|
+
</td><td class="name"> T(?c, rdfs:subClassOf, ?c)<br /> T(?c, owl:equivalentClass, ?c)<br /> T(?c, rdfs:subClassOf, owl:Thing)<br /> T(owl:Nothing, rdfs:subClassOf, ?c)
|
|
1066
|
+
</td></tr>
|
|
1067
|
+
<tr>
|
|
1068
|
+
<td> <span class="name" id="scm-sco">scm-sco</span>
|
|
1069
|
+
</td><td class="name"> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>2</sub>)<br /> T(?c<sub>2</sub>, rdfs:subClassOf, ?c<sub>3</sub>)
|
|
1070
|
+
</td><td class="name"> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>3</sub>)
|
|
1071
|
+
</td></tr>
|
|
1072
|
+
<tr>
|
|
1073
|
+
<td> <span class="name" id="scm-eqc1">scm-eqc1</span>
|
|
1074
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:equivalentClass, ?c<sub>2</sub>)
|
|
1075
|
+
</td><td class="name"> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>2</sub>)<br /> T(?c<sub>2</sub>, rdfs:subClassOf, ?c<sub>1</sub>)
|
|
1076
|
+
</td></tr>
|
|
1077
|
+
<tr>
|
|
1078
|
+
<td> <span class="name" id="scm-eqc2">scm-eqc2</span>
|
|
1079
|
+
</td><td class="name"> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>2</sub>)<br /> T(?c<sub>2</sub>, rdfs:subClassOf, ?c<sub>1</sub>)
|
|
1080
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:equivalentClass, ?c<sub>2</sub>)
|
|
1081
|
+
</td></tr>
|
|
1082
|
+
<tr>
|
|
1083
|
+
<td> <span class="name" id="scm-op">scm-op</span>
|
|
1084
|
+
</td><td class="name"> T(?p, rdf:type, owl:ObjectProperty)
|
|
1085
|
+
</td><td class="name"> T(?p, rdfs:subPropertyOf, ?p)<br /> T(?p, owl:equivalentProperty, ?p)
|
|
1086
|
+
</td></tr>
|
|
1087
|
+
<tr>
|
|
1088
|
+
<td> <span class="name" id="scm-dp">scm-dp</span>
|
|
1089
|
+
</td><td class="name"> T(?p, rdf:type, owl:DatatypeProperty)
|
|
1090
|
+
</td><td class="name"> T(?p, rdfs:subPropertyOf, ?p)<br /> T(?p, owl:equivalentProperty, ?p)
|
|
1091
|
+
</td></tr>
|
|
1092
|
+
<tr>
|
|
1093
|
+
<td> <span class="name" id="scm-spo">scm-spo</span>
|
|
1094
|
+
</td><td class="name"> T(?p<sub>1</sub>, rdfs:subPropertyOf, ?p<sub>2</sub>)<br /> T(?p<sub>2</sub>, rdfs:subPropertyOf, ?p<sub>3</sub>)
|
|
1095
|
+
</td><td class="name"> T(?p<sub>1</sub>, rdfs:subPropertyOf, ?p<sub>3</sub>)
|
|
1096
|
+
</td></tr>
|
|
1097
|
+
<tr>
|
|
1098
|
+
<td> <span class="name" id="scm-eqp1">scm-eqp1</span>
|
|
1099
|
+
</td><td class="name"> T(?p<sub>1</sub>, owl:equivalentProperty, ?p<sub>2</sub>)
|
|
1100
|
+
</td><td class="name"> T(?p<sub>1</sub>, rdfs:subPropertyOf, ?p<sub>2</sub>)<br /> T(?p<sub>2</sub>, rdfs:subPropertyOf, ?p<sub>1</sub>)
|
|
1101
|
+
</td></tr>
|
|
1102
|
+
<tr>
|
|
1103
|
+
<td> <span class="name" id="scm-eqp2">scm-eqp2</span>
|
|
1104
|
+
</td><td class="name"> T(?p<sub>1</sub>, rdfs:subPropertyOf, ?p<sub>2</sub>)<br /> T(?p<sub>2</sub>, rdfs:subPropertyOf, ?p<sub>1</sub>)
|
|
1105
|
+
</td><td class="name"> T(?p<sub>1</sub>, owl:equivalentProperty, ?p<sub>2</sub>)
|
|
1106
|
+
</td></tr>
|
|
1107
|
+
<tr>
|
|
1108
|
+
<td> <span class="name" id="scm-dom1">scm-dom1</span>
|
|
1109
|
+
</td><td class="name"> T(?p, rdfs:domain, ?c<sub>1</sub>)<br /> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>2</sub>)
|
|
1110
|
+
</td><td class="name"> T(?p, rdfs:domain, ?c<sub>2</sub>)
|
|
1111
|
+
</td></tr>
|
|
1112
|
+
<tr>
|
|
1113
|
+
<td> <span class="name" id="scm-dom2">scm-dom2</span>
|
|
1114
|
+
</td><td class="name"> T(?p<sub>2</sub>, rdfs:domain, ?c)<br /> T(?p<sub>1</sub>, rdfs:subPropertyOf, ?p<sub>2</sub>)
|
|
1115
|
+
</td><td class="name"> T(?p<sub>1</sub>, rdfs:domain, ?c)
|
|
1116
|
+
</td></tr>
|
|
1117
|
+
<tr>
|
|
1118
|
+
<td> <span class="name" id="scm-rng1">scm-rng1</span>
|
|
1119
|
+
</td><td class="name"> T(?p, rdfs:range, ?c<sub>1</sub>)<br /> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>2</sub>)
|
|
1120
|
+
</td><td class="name"> T(?p, rdfs:range, ?c<sub>2</sub>)
|
|
1121
|
+
</td></tr>
|
|
1122
|
+
<tr>
|
|
1123
|
+
<td> <span class="name" id="scm-rng2">scm-rng2</span>
|
|
1124
|
+
</td><td class="name"> T(?p<sub>2</sub>, rdfs:range, ?c)<br /> T(?p<sub>1</sub>, rdfs:subPropertyOf, ?p<sub>2</sub>)
|
|
1125
|
+
</td><td class="name"> T(?p<sub>1</sub>, rdfs:range, ?c)
|
|
1126
|
+
</td></tr>
|
|
1127
|
+
<tr>
|
|
1128
|
+
<td> <span class="name" id="scm-hv">scm-hv</span>
|
|
1129
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:hasValue, ?i)<br /> T(?c<sub>1</sub>, owl:onProperty, ?p<sub>1</sub>)<br /> T(?c<sub>2</sub>, owl:hasValue, ?i)<br /> T(?c<sub>2</sub>, owl:onProperty, ?p<sub>2</sub>)<br /> T(?p<sub>1</sub>, rdfs:subPropertyOf, ?p<sub>2</sub>)
|
|
1130
|
+
</td><td class="name"> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>2</sub>)
|
|
1131
|
+
</td></tr>
|
|
1132
|
+
<tr>
|
|
1133
|
+
<td> <span class="name" id="scm-svf1">scm-svf1</span>
|
|
1134
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:someValuesFrom, ?y<sub>1</sub>)<br /> T(?c<sub>1</sub>, owl:onProperty, ?p)<br /> T(?c<sub>2</sub>, owl:someValuesFrom, ?y<sub>2</sub>)<br /> T(?c<sub>2</sub>, owl:onProperty, ?p)<br /> T(?y<sub>1</sub>, rdfs:subClassOf, ?y<sub>2</sub>)
|
|
1135
|
+
</td><td class="name"> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>2</sub>)
|
|
1136
|
+
</td></tr>
|
|
1137
|
+
<tr>
|
|
1138
|
+
<td> <span class="name" id="scm-svf2">scm-svf2</span>
|
|
1139
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:someValuesFrom, ?y)<br /> T(?c<sub>1</sub>, owl:onProperty, ?p<sub>1</sub>)<br /> T(?c<sub>2</sub>, owl:someValuesFrom, ?y)<br /> T(?c<sub>2</sub>, owl:onProperty, ?p<sub>2</sub>)<br /> T(?p<sub>1</sub>, rdfs:subPropertyOf, ?p<sub>2</sub>)
|
|
1140
|
+
</td><td class="name"> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>2</sub>)
|
|
1141
|
+
</td></tr>
|
|
1142
|
+
<tr>
|
|
1143
|
+
<td> <span class="name" id="scm-avf1">scm-avf1</span>
|
|
1144
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:allValuesFrom, ?y<sub>1</sub>)<br /> T(?c<sub>1</sub>, owl:onProperty, ?p)<br /> T(?c<sub>2</sub>, owl:allValuesFrom, ?y<sub>2</sub>)<br /> T(?c<sub>2</sub>, owl:onProperty, ?p)<br /> T(?y<sub>1</sub>, rdfs:subClassOf, ?y<sub>2</sub>)
|
|
1145
|
+
</td><td class="name"> T(?c<sub>1</sub>, rdfs:subClassOf, ?c<sub>2</sub>)
|
|
1146
|
+
</td></tr>
|
|
1147
|
+
<tr>
|
|
1148
|
+
<td> <span class="name" id="scm-avf2">scm-avf2</span>
|
|
1149
|
+
</td><td class="name"> T(?c<sub>1</sub>, owl:allValuesFrom, ?y)<br /> T(?c<sub>1</sub>, owl:onProperty, ?p<sub>1</sub>)<br /> T(?c<sub>2</sub>, owl:allValuesFrom, ?y)<br /> T(?c<sub>2</sub>, owl:onProperty, ?p<sub>2</sub>)<br /> T(?p<sub>1</sub>, rdfs:subPropertyOf, ?p<sub>2</sub>)
|
|
1150
|
+
</td><td class="name"> T(?c<sub>2</sub>, rdfs:subClassOf, ?c<sub>1</sub>)
|
|
1151
|
+
</td></tr>
|
|
1152
|
+
<tr>
|
|
1153
|
+
<td> <span class="name" id="scm-int">scm-int</span>
|
|
1154
|
+
</td><td class="name"> T(?c, owl:intersectionOf, ?x)<br /> LIST[?x, ?c<sub>1</sub>, ..., ?c<sub>n</sub>]
|
|
1155
|
+
</td><td class="name"> T(?c, rdfs:subClassOf, ?c<sub>1</sub>)<br /> T(?c, rdfs:subClassOf, ?c<sub>2</sub>)<br /> ...<br /> T(?c, rdfs:subClassOf, ?c<sub>n</sub>)
|
|
1156
|
+
</td></tr>
|
|
1157
|
+
<tr>
|
|
1158
|
+
<td> <span class="name" id="scm-uni">scm-uni</span>
|
|
1159
|
+
</td><td class="name"> T(?c, owl:unionOf, ?x)<br /> LIST[?x, ?c<sub>1</sub>, ..., ?c<sub>n</sub>]
|
|
1160
|
+
</td><td class="name"> T(?c<sub>1</sub>, rdfs:subClassOf, ?c)<br /> T(?c<sub>2</sub>, rdfs:subClassOf, ?c)<br /> ...<br /> T(?c<sub>n</sub>, rdfs:subClassOf, ?c)
|
|
1161
|
+
</td></tr></tbody></table>
|
|
1162
|
+
</div>
|
|
1163
|
+
<p>为避免实践中可能出现的性能问题,OWL 2 RL/RDF 规则不包含 RDF 和 RDFS 的公理化三元组(即分别必须被每个 RDF 和 RDFS 解释满足的那些三元组)[<cite><a href="#ref-rdf-semantics" title="">RDF Semantics</a></cite>] 以及相关的 OWL 词汇 [<cite><a href="#ref-owl-2-rdf-semantics" title="">OWL 2 RDF-Based Semantics</a></cite>];此外,OWL 2 RL/RDF 规则包含了 RDFS [<cite><a href="#ref-rdf-semantics" title="">RDF Semantics</a></cite>] 的大部分(但并非全部)蕴含规则。OWL 2 RL/RDF 实现<em class="RFC2119" title="MAY in RFC 2119 context">可以</em>根据需要包含这些三元组和蕴含规则,而不会违反 OWL 2 RL 的一致性要求 [<cite><a href="#ref-owl-2-conformance" title="">OWL 2 Conformance</a></cite>]。
|
|
1164
|
+
</p><p><span id="Theorem-PR1"><b>定理 PR1.</b></span> 设 <i>R</i> 为如上定义的 OWL 2 RL/RDF 规则。进一步设 <i>O<sub>1</sub></i> 和 <i>O<sub>2</sub></i> 为满足以下性质的 OWL 2 RL 本体:
|
|
1165
|
+
</p>
|
|
1166
|
+
<ul><li> <i>O<sub>1</sub></i> 和 <i>O<sub>2</sub></i> 都不包含被用于多种实体类型的 IRI(即没有任何 IRI 既用作例如类、又用作个体);
|
|
1167
|
+
</li><li> <i>O<sub>1</sub></i> 不包含 <span class="nonterminal">SubAnnotationPropertyOf</span>、<span class="nonterminal">AnnotationPropertyDomain</span> 和 <span class="nonterminal">AnnotationPropertyRange</span> 公理;并且
|
|
1168
|
+
</li><li> <i>O<sub>2</sub></i> 中的每条公理都是如下形式的断言,其中 <span class="name">a</span>, <span class="name">a<sub>1</sub></span>, ..., <span class="name">a<sub>n</sub></span> 为命名个体:
|
|
1169
|
+
<ul><li> <span class="name">ClassAssertion( C a )</span>,其中 <span class="name">C</span> 是一个类,
|
|
1170
|
+
</li><li> <span class="name">ObjectPropertyAssertion( OP a<sub>1</sub> a<sub>2</sub> )</span>,其中 <span class="name">OP</span> 是一个对象属性,
|
|
1171
|
+
</li><li> <span class="name">DataPropertyAssertion( DP a v )</span>,其中 <span class="name">DP</span> 是一个数据属性,或者
|
|
1172
|
+
</li><li> <span class="name">SameIndividual( a<sub>1</sub> ... a<sub>n</sub> )</span>。
|
|
1173
|
+
</li></ul>
|
|
1174
|
+
</li></ul>
|
|
1175
|
+
<p>进一步设 <i>RDF(O<sub>1</sub>)</i> 和 <i>RDF(O<sub>2</sub>)</i> 分别为 <i>O<sub>1</sub></i> 和 <i>O<sub>2</sub></i> 按 OWL 2 Mapping to RDF Graphs [<cite><a href="#ref-owl-2-rdf-mapping" title="">OWL 2 RDF Mapping</a></cite>] 翻译得到的 RDF 图;并设 <i>FO(RDF(O<sub>1</sub>))</i> 和 <i>FO(RDF(O<sub>2</sub>))</i> 为这些图翻译到一阶理论的结果,其中三元组用 <span class="name">T</span> 谓词表示——即 <span class="name">T(s, p, o)</span> 表示主语为 <span class="name">s</span>、谓词为 <span class="name">p</span>、宾语为 <span class="name">o</span> 的 RDF 三元组。那么,<i>O<sub>1</sub></i> 在 OWL 2 Direct Semantics [<cite><a href="#ref-owl-2-direct-semantics" title="">OWL 2 Direct Semantics</a></cite>] 下蕴含 <i>O<sub>2</sub></i>,当且仅当 <i>FO(RDF(O<sub>1</sub>))</i> ∪ <i>R</i> 在标准一阶语义下蕴含 <i>FO(RDF(O<sub>2</sub>))</i>。
|
|
1176
|
+
</p><p><i>证明概要。</i>不失一般性,可以假设 <i>O<sub>1</sub></i> 中的所有公理都已完全规范化——即公理中的所有类表达式的深度至多为一。设 <i>DLP(O<sub>1</sub>)</i> 为按照 Description Logic Programs [<cite><a href="#ref-dlp" title="">DLP</a></cite>] 将 <i>O<sub>1</sub></i> 翻译成一组规则所得到的规则集。
|
|
1177
|
+
</p><p>现在考虑每条由 <i>DLP(O<sub>1</sub>)</i>(或等价地由 <i>O<sub>1</sub></i>)蕴含的断言 <i>A</i> ∈ <i>O<sub>2</sub></i>。设 <i>dt</i> 为从 <i>DLP(O<sub>1</sub>)</i> 推出 <i>A</i> 的推导树。通过考察 OWL 2 RL 构造的集合可以看出,每棵这样的树都可以变换为一棵从 <i>FO(RDF(O<sub>1</sub>))</i> ∪ <i>R</i> 推出 <i>FO(RDF(A))</i> 的推导树 <i>dt'</i>。<i>dt</i> 中出现的每条断言 <i>B</i> 都具有定理中所述的形式。粗略地说,树 <i>dt'</i> 可以由 <i>dt</i> 通过将每条断言 <i>B</i> 替换为 <i>FO(RDF(B))</i>、并将 <i>DLP(O<sub>1</sub>)</i> 中的每条规则替换为表 3–8 中相应的规则而得到。因此,<i>FO(RDF(O<sub>1</sub>))</i> ∪ <i>R</i> 蕴含 <i>FO(RDF(A))</i>。
|
|
1178
|
+
</p><p>由于 <i>O<sub>1</sub></i> 中没有任何 IRI 同时用作个体和类或属性,<i>FO(RDF(O<sub>1</sub>))</i> ∪ <i>R</i> 不会推出形如 <span class="name">T(a:i1, owl:sameAs, a:i2)</span> 的三元组,其中 <i>a:i1</i> 或 <i>a:i2</i> 在 <i>O<sub>1</sub></i> 中用作类或属性。这使得我们可以用与前一种情况类似的方式,把从 <i>FO(RDF(O<sub>1</sub>))</i> ∪ <i>R</i> 推出 <i>FO(RDF(A))</i> 的推导树变换为从 <i>DLP(O<sub>1</sub>)</i> 推出 <i>A</i> 的推导树。证毕
|
|
1179
|
+
</p>
|
|
1180
|
+
<a id="Computational_Properties" name="Computational_Properties"></a><h2> <span class="mw-headline">5 计算性质 </span></h2>
|
|
1181
|
+
<p>本节描述本文档所定义语言的最相关推理问题的计算复杂度。关于计算复杂度的入门介绍,请参阅复杂度方面的教科书,例如 [<cite><a href="#ref-papa" title="">Papadimitriou</a></cite>]。这里考虑的推理问题包括<i>本体一致性</i>、<i>类表达式可满足性</i>、<i>类表达式包含</i>、<i>实例检查</i>以及<i>(布尔)合取查询回答</i> [<cite><a href="#ref-owl-2-direct-semantics" title="">OWL 2 Direct Semantics</a></cite>]。在评估复杂度时,考虑以下几种复杂度度量:
|
|
1182
|
+
</p>
|
|
1183
|
+
<ul><li> <b>数据复杂度(Data Complexity)</b>:相对于本体中断言的总大小度量的复杂度
|
|
1184
|
+
</li><li> <b>分类复杂度(Taxonomic Complexity)</b>:相对于本体中公理(不含断言)的总大小度量的复杂度
|
|
1185
|
+
</li><li> <b>查询复杂度(Query Complexity)</b>:相对于合取查询的总大小度量的复杂度(仅为合取查询回答定义)
|
|
1186
|
+
</li><li> <b>组合复杂度(Combined Complexity)</b>:相对于本体中公理与断言的总大小、合取查询(在合取查询回答的情形下),以及被检查的表达式(在类表达式可满足性、类表达式包含或实例检查的情形下)度量的复杂度
|
|
1187
|
+
</li></ul>
|
|
1188
|
+
<p>表 10 汇总了 RDF-Based 语义与直接语义下的 OWL 2、OWL 2 EL、OWL 2 QL、OWL 2 RL 以及 OWL 1 DL 的已知复杂度结果。各表项的含义如下:
|
|
1189
|
+
</p>
|
|
1190
|
+
<ul><li> <b>可判定性未知</b>表示尚不知道该推理问题是否可判定。
|
|
1191
|
+
</li><li> <b>可判定,但复杂度未知</b>表示已知该推理问题是可判定的,但其确切的计算复杂度尚不清楚。如有已知的下界,则在括号中给出;例如,<b>(NP-Hard)</b> 表示该问题至少与 NP 中的任何问题一样难。
|
|
1192
|
+
</li><li> <b>X-完全</b>(其中 X 为下文所述复杂度类之一)表示已知紧致的复杂度界——即该问题既被证明<i>属于</i>复杂度类 X(即已知存在只使用 X 所允许的时间/空间的算法),又被证明对 X 是<i>难的</i>(即它至少与 X 中的任何问题一样难)。下面按从最复杂到最简单的顺序,简要介绍本表中用到的复杂度类。
|
|
1193
|
+
<ul><li> <b>N2EXPTIME</b> 是可由非确定性算法在至多双指数于输入规模的<i>时间</i>内求解的问题类(即大致为 2<sup>2<sup>n</sup></sup>,其中 n 为输入规模)。
|
|
1194
|
+
</li><li> <b>NEXPTIME</b> 是可由非确定性算法在至多指数于输入规模的<i>时间</i>内求解的问题类(即大致为 2<sup>n</sup>,其中 n 为输入规模)。
|
|
1195
|
+
</li><li> <b>PSPACE</b> 是可由确定性算法使用至多多项式于输入规模的<i>空间</i>求解的问题类(即大致为 n<sup>c</sup>,其中 n 为输入规模,c 为常数)。
|
|
1196
|
+
</li><li> <b>NP</b> 是可由非确定性算法在至多多项式于输入规模的<i>时间</i>内求解的问题类(即大致为 n<sup>c</sup>,其中 n 为输入规模,c 为常数)。
|
|
1197
|
+
</li><li> <b>PTIME</b> 是可由确定性算法在至多多项式于输入规模的<i>时间</i>内求解的问题类(即大致为 n<sup>c</sup>,其中 n 为输入规模,c 为常数)。PTIME 通常称为<i>易处理的</i>,而上述各类中的问题通常称为<i>难处理的</i>。
|
|
1198
|
+
</li><li> <b>LOGSPACE</b> 是可由确定性算法使用至多对数于输入规模的<i>空间</i>求解的问题类(即大致为 log(n),其中 n 为输入规模,c 为常数)。NLOGSPACE 是该类的非确定性版本。
|
|
1199
|
+
</li><li> <b>AC<sup>0</sup></b> 是 LOGSPACE 的真子类,它不是通过图灵机而是通过电路来定义的:AC<sup>0</sup> 是可由一族常数深度、多项式规模的电路定义的问题类,且该电路族可由确定性图灵机在对数时间(相对于输入规模)内生成。直观地说,AC<sup>0</sup> 允许我们使用多项式数量的处理器,但运行时间必须是常数。AC<sup>0</sup> 问题的一个典型例子是数据库上的一阶查询求值(或有限模型上一阶语句的模型检查),其中只有数据库(一阶模型)被视为输入,而查询(一阶语句)被假定为固定的。已知无向图可达性问题属于 LogSpace,但不属于 AC<sup>0</sup>。
|
|
1200
|
+
</li></ul>
|
|
1201
|
+
</li></ul>
|
|
1202
|
+
<p>下面的结果针对的是这些推理问题的<i>最坏情形</i>复杂度,因此并不意味着已实现的算法在所有输入问题上都必然以该复杂度运行,也不说明它们在某些/典型/特定类型的问题上使用多少空间/时间。对于 X-完全问题,这些结果只表明:任何推理算法都不可能在<i>所有</i>输入问题上使用比该类所示更少的时间/空间。
|
|
1203
|
+
</p>
|
|
1204
|
+
<div class="center">
|
|
1205
|
+
<table border="2" cellpadding="5" class="complexity">
|
|
1206
|
+
<caption> <span class="caption">表 10.</span> 各剖面的复杂度
|
|
1207
|
+
</caption>
|
|
1208
|
+
<tbody><tr>
|
|
1209
|
+
<th> 语言
|
|
1210
|
+
</th><th> 推理问题
|
|
1211
|
+
</th><th> 分类复杂度
|
|
1212
|
+
</th><th> 数据复杂度
|
|
1213
|
+
</th><th> 查询复杂度
|
|
1214
|
+
</th><th> 组合复杂度
|
|
1215
|
+
</th></tr>
|
|
1216
|
+
<tr>
|
|
1217
|
+
<td> OWL 2<br /> RDF-Based Semantics
|
|
1218
|
+
</td><td style="text-align: left"> 本体一致性,<br /> 类表达式可满足性,<br /> 类表达式包含,<br /> 实例检查,<br /> 合取查询回答
|
|
1219
|
+
</td><td> 不可判定
|
|
1220
|
+
</td><td> 不可判定
|
|
1221
|
+
</td><td> 不可判定
|
|
1222
|
+
</td><td> 不可判定
|
|
1223
|
+
</td></tr>
|
|
1224
|
+
<tr>
|
|
1225
|
+
<td rowspan="2"> OWL 2<br /> 直接语义
|
|
1226
|
+
</td><td style="text-align: left"> 本体一致性,<br /> 类表达式可满足性,<br /> 类表达式包含,<br /> 实例检查
|
|
1227
|
+
</td><td> N2EXPTIME-完全(若属性层次可翻译为多项式规模的非确定性有限自动机,则为 NEXPTIME-完全)
|
|
1228
|
+
</td><td> 可判定,但复杂度未知<br />(NP-Hard)
|
|
1229
|
+
</td><td> 不适用
|
|
1230
|
+
</td><td> N2EXPTIME-完全(若属性层次可翻译为多项式规模的非确定性有限自动机,则为 NEXPTIME-完全)
|
|
1231
|
+
</td></tr>
|
|
1232
|
+
<tr>
|
|
1233
|
+
<td style="text-align: left"> 合取查询回答
|
|
1234
|
+
</td><td> 可判定性未知
|
|
1235
|
+
</td><td> 可判定性未知
|
|
1236
|
+
</td><td> 可判定性未知
|
|
1237
|
+
</td><td> 可判定性未知
|
|
1238
|
+
</td></tr>
|
|
1239
|
+
<tr>
|
|
1240
|
+
<td rowspan="2"> <a href="#OWL_2_EL" title="">OWL 2 EL</a>
|
|
1241
|
+
</td><td style="text-align: left"> 本体一致性,<br /> 类表达式可满足性,<br /> 类表达式包含,<br /> 实例检查
|
|
1242
|
+
</td><td> PTIME-完全
|
|
1243
|
+
</td><td> PTIME-完全
|
|
1244
|
+
</td><td> 不适用
|
|
1245
|
+
</td><td> PTIME-完全
|
|
1246
|
+
</td></tr>
|
|
1247
|
+
<tr>
|
|
1248
|
+
<td style="text-align: left"> 合取查询回答
|
|
1249
|
+
</td><td> 属于 EXPTIME(若属性层次可翻译为多项式规模的非确定性有限自动机,则为 PTIME-完全)
|
|
1250
|
+
</td><td> PTIME-完全
|
|
1251
|
+
</td><td> NP 完全
|
|
1252
|
+
</td><td> 属于 EXPTIME(若属性层次可翻译为多项式规模的非确定性有限自动机,则为 PSPACE-完全)
|
|
1253
|
+
</td></tr>
|
|
1254
|
+
<tr>
|
|
1255
|
+
<td rowspan="2"> <a href="#OWL_2_QL" title="">OWL 2 QL</a>
|
|
1256
|
+
</td><td style="text-align: left"> 本体一致性,<br /> 类表达式可满足性,<br /> 类表达式包含,<br /> 实例检查
|
|
1257
|
+
</td><td> NLogSpace-完全
|
|
1258
|
+
</td><td> 属于 AC<sup>0</sup>
|
|
1259
|
+
</td><td> 不适用
|
|
1260
|
+
</td><td> NLogSpace-完全
|
|
1261
|
+
</td></tr>
|
|
1262
|
+
<tr>
|
|
1263
|
+
<td style="text-align: left"> 合取查询回答
|
|
1264
|
+
</td><td> NLogSpace-完全
|
|
1265
|
+
</td><td> 属于 AC<sup>0</sup>
|
|
1266
|
+
</td><td> NP 完全
|
|
1267
|
+
</td><td> NP 完全
|
|
1268
|
+
</td></tr>
|
|
1269
|
+
<tr>
|
|
1270
|
+
<td rowspan="3"> <a href="#OWL_2_RL" title="">OWL 2 RL</a>
|
|
1271
|
+
</td><td style="text-align: left"> 本体一致性
|
|
1272
|
+
</td><td> PTIME-完全
|
|
1273
|
+
</td><td> PTIME-完全
|
|
1274
|
+
</td><td> 不适用
|
|
1275
|
+
</td><td> PTIME-完全
|
|
1276
|
+
</td></tr>
|
|
1277
|
+
<tr>
|
|
1278
|
+
<td style="text-align: left"> 类表达式可满足性,<br /> 类表达式包含,<br /> 实例检查
|
|
1279
|
+
</td><td> PTIME-完全
|
|
1280
|
+
</td><td> PTIME-完全
|
|
1281
|
+
</td><td> 不适用
|
|
1282
|
+
</td><td> co-NP-完全(对原子类表达式为 PTIME-完全)
|
|
1283
|
+
</td></tr>
|
|
1284
|
+
<tr>
|
|
1285
|
+
<td style="text-align: left"> 合取查询回答
|
|
1286
|
+
</td><td> PTIME-完全
|
|
1287
|
+
</td><td> PTIME-完全
|
|
1288
|
+
</td><td> NP 完全
|
|
1289
|
+
</td><td> NP 完全
|
|
1290
|
+
</td></tr>
|
|
1291
|
+
<tr>
|
|
1292
|
+
<td rowspan="2"> OWL 1 DL
|
|
1293
|
+
</td><td style="text-align: left"> 本体一致性,<br /> 类表达式可满足性,<br /> 类表达式包含,<br /> 实例检查
|
|
1294
|
+
</td><td> NEXPTIME-完全
|
|
1295
|
+
</td><td> 可判定,但复杂度未知<br />(NP-Hard)
|
|
1296
|
+
</td><td> 不适用
|
|
1297
|
+
</td><td> NEXPTIME-完全
|
|
1298
|
+
</td></tr>
|
|
1299
|
+
<tr>
|
|
1300
|
+
<td style="text-align: left"> 合取查询回答
|
|
1301
|
+
</td><td> 可判定性未知
|
|
1302
|
+
</td><td> 可判定性未知
|
|
1303
|
+
</td><td> 可判定性未知
|
|
1304
|
+
</td><td> 可判定性未知
|
|
1305
|
+
</td></tr>
|
|
1306
|
+
</tbody></table>
|
|
1307
|
+
</div>
|
|
1308
|
+
<a id="Appendix:_Complete_Grammars_for_Profiles" name="Appendix:_Complete_Grammars_for_Profiles"></a><h2> <span class="mw-headline">6 附录:各剖面的完整文法 </span></h2>
|
|
1309
|
+
<p>本附录包含 OWL 2 全部三个剖面的文法。
|
|
1310
|
+
</p>
|
|
1311
|
+
<a id="OWL_2_EL_2" name="OWL_2_EL_2"></a><h3> <span class="mw-headline">6.1 OWL 2 EL </span></h3>
|
|
1312
|
+
<p>OWL 2 EL 的文法由 OWL 2 规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 的<a href="https://www.w3.org/TR/2012/REC-owl2-syntax-20121211/#General_Definitions" title="Syntax">第 13.1 节</a>中给出的一般定义以及以下产生式组成。
|
|
1313
|
+
</p>
|
|
1314
|
+
<div class="grammar">
|
|
1315
|
+
<p><span class="nonterminal">Class</span> := <span class="nonterminal">IRI</span><br />
|
|
1316
|
+
<br />
|
|
1317
|
+
<span class="nonterminal">Datatype</span> := <span class="nonterminal">IRI</span><br />
|
|
1318
|
+
<br />
|
|
1319
|
+
<span class="nonterminal">ObjectProperty</span> := <span class="nonterminal">IRI</span><br />
|
|
1320
|
+
<br />
|
|
1321
|
+
<span class="nonterminal">DataProperty</span> := <span class="nonterminal">IRI</span><br />
|
|
1322
|
+
<br />
|
|
1323
|
+
<span class="nonterminal">AnnotationProperty</span> := <span class="nonterminal">IRI</span><br />
|
|
1324
|
+
<br />
|
|
1325
|
+
<span class="nonterminal">Individual</span> := <span class="nonterminal">NamedIndividual</span><br />
|
|
1326
|
+
<br />
|
|
1327
|
+
<span class="nonterminal">NamedIndividual</span> := <span class="nonterminal">IRI</span><br />
|
|
1328
|
+
<br />
|
|
1329
|
+
<span class="nonterminal">Literal</span> := <span class="nonterminal">typedLiteral</span> | <span class="nonterminal">stringLiteralNoLanguage</span> | <span class="nonterminal">stringLiteralWithLanguage</span><br />
|
|
1330
|
+
<span class="nonterminal">typedLiteral</span> := <span class="nonterminal">lexicalForm</span> '^^' <span class="nonterminal">Datatype</span><br />
|
|
1331
|
+
<span class="nonterminal">lexicalForm</span> := <span class="nonterminal">quotedString</span><br />
|
|
1332
|
+
<span class="nonterminal">stringLiteralNoLanguage</span> := <span class="nonterminal">quotedString</span><br />
|
|
1333
|
+
<span class="nonterminal">stringLiteralWithLanguage</span> := <span class="nonterminal">quotedString</span> <span class="nonterminal">languageTag</span><br />
|
|
1334
|
+
<br />
|
|
1335
|
+
<br />
|
|
1336
|
+
<br />
|
|
1337
|
+
<span class="nonterminal">ObjectPropertyExpression</span> := <span class="nonterminal">ObjectProperty</span><br />
|
|
1338
|
+
<br />
|
|
1339
|
+
<span class="nonterminal">DataPropertyExpression</span> := <span class="nonterminal">DataProperty</span><br />
|
|
1340
|
+
<br />
|
|
1341
|
+
<br />
|
|
1342
|
+
<br />
|
|
1343
|
+
<span class="nonterminal">DataRange</span> := <span class="nonterminal">Datatype</span> | <span class="nonterminal">DataIntersectionOf</span> | <span class="nonterminal">DataOneOf</span><br />
|
|
1344
|
+
<br />
|
|
1345
|
+
<span class="nonterminal">DataIntersectionOf</span> := 'DataIntersectionOf' '(' <span class="nonterminal">DataRange</span> <span class="nonterminal">DataRange</span> { <span class="nonterminal">DataRange</span> } ')'<br />
|
|
1346
|
+
<br />
|
|
1347
|
+
<span class="nonterminal">DataOneOf</span> := 'DataOneOf' '(' <span class="nonterminal">Literal</span> ')'<br />
|
|
1348
|
+
<br />
|
|
1349
|
+
<br />
|
|
1350
|
+
<br />
|
|
1351
|
+
<span class="nonterminal">ClassExpression</span> :=<br />
|
|
1352
|
+
<span class="nonterminal">Class</span> | <span class="nonterminal">ObjectIntersectionOf</span> | <span class="nonterminal">ObjectOneOf</span> |<br />
|
|
1353
|
+
<span class="nonterminal">ObjectSomeValuesFrom</span> | <span class="nonterminal">ObjectHasValue</span> | <span class="nonterminal">ObjectHasSelf</span> |<br />
|
|
1354
|
+
<span class="nonterminal">DataSomeValuesFrom</span> | <span class="nonterminal">DataHasValue</span><br />
|
|
1355
|
+
<br />
|
|
1356
|
+
<span class="nonterminal">ObjectIntersectionOf</span> := 'ObjectIntersectionOf' '(' <span class="nonterminal">ClassExpression</span> <span class="nonterminal">ClassExpression</span> { <span class="nonterminal">ClassExpression</span> } ')'<br />
|
|
1357
|
+
<br />
|
|
1358
|
+
<span class="nonterminal">ObjectOneOf</span> := 'ObjectOneOf' '(' <span class="nonterminal">Individual</span> ')'<br />
|
|
1359
|
+
<br />
|
|
1360
|
+
<span class="nonterminal">ObjectSomeValuesFrom</span> := 'ObjectSomeValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ClassExpression</span> ')'<br />
|
|
1361
|
+
<br />
|
|
1362
|
+
<span class="nonterminal">ObjectHasValue</span> := 'ObjectHasValue' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">Individual</span> ')'<br />
|
|
1363
|
+
<br />
|
|
1364
|
+
<span class="nonterminal">ObjectHasSelf</span> := 'ObjectHasSelf' '(' <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1365
|
+
<br />
|
|
1366
|
+
<span class="nonterminal">DataSomeValuesFrom</span> := 'DataSomeValuesFrom' '(' <span class="nonterminal">DataPropertyExpression</span> { <span class="nonterminal">DataPropertyExpression</span> } <span class="nonterminal">DataRange</span> ')'<br />
|
|
1367
|
+
<br />
|
|
1368
|
+
<span class="nonterminal">DataHasValue</span> := 'DataHasValue' '(' <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">Literal</span> ')'<br />
|
|
1369
|
+
<br />
|
|
1370
|
+
<br />
|
|
1371
|
+
<br />
|
|
1372
|
+
<span class="nonterminal">Axiom</span> := <span class="nonterminal">Declaration</span> | <span class="nonterminal">ClassAxiom</span> | <span class="nonterminal">ObjectPropertyAxiom</span> | <span class="nonterminal">DataPropertyAxiom</span> | <span class="nonterminal">DatatypeDefinition</span> | <span class="nonterminal">HasKey</span> | <span class="nonterminal">Assertion</span> | <span class="nonterminal">AnnotationAxiom</span><br />
|
|
1373
|
+
<br />
|
|
1374
|
+
<br />
|
|
1375
|
+
<br />
|
|
1376
|
+
<span class="nonterminal">ClassAxiom</span> := <span class="nonterminal">SubClassOf</span> | <span class="nonterminal">EquivalentClasses</span> | <span class="nonterminal">DisjointClasses</span>
|
|
1377
|
+
<br />
|
|
1378
|
+
<span class="nonterminal">SubClassOf</span> := 'SubClassOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
1379
|
+
<span class="nonterminal">subClassExpression</span> := <span class="nonterminal">ClassExpression</span><br />
|
|
1380
|
+
<span class="nonterminal">superClassExpression</span> := <span class="nonterminal">ClassExpression</span><br />
|
|
1381
|
+
<br />
|
|
1382
|
+
<span class="nonterminal">EquivalentClasses</span> := 'EquivalentClasses' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ClassExpression</span> <span class="nonterminal">ClassExpression</span> { <span class="nonterminal">ClassExpression</span> } ')'<br />
|
|
1383
|
+
<br />
|
|
1384
|
+
<span class="nonterminal">DisjointClasses</span> := 'DisjointClasses' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ClassExpression</span> <span class="nonterminal">ClassExpression</span> { <span class="nonterminal">ClassExpression</span> } ')'<br />
|
|
1385
|
+
<br />
|
|
1386
|
+
<br />
|
|
1387
|
+
<br />
|
|
1388
|
+
<span class="nonterminal">ObjectPropertyAxiom</span> :=<br />
|
|
1389
|
+
<span class="nonterminal">EquivalentObjectProperties</span> | <span class="nonterminal">SubObjectPropertyOf</span> |<br />
|
|
1390
|
+
<span class="nonterminal">ObjectPropertyDomain</span> | <span class="nonterminal">ObjectPropertyRange</span> |<br />
|
|
1391
|
+
<span class="nonterminal">ReflexiveObjectProperty</span> | <span class="nonterminal">TransitiveObjectProperty</span><br />
|
|
1392
|
+
<br />
|
|
1393
|
+
<span class="nonterminal">SubObjectPropertyOf</span> := 'SubObjectPropertyOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subObjectPropertyExpression</span> <span class="nonterminal">superObjectPropertyExpression</span> ')'<br />
|
|
1394
|
+
<span class="nonterminal">subObjectPropertyExpression</span> := <span class="nonterminal">ObjectPropertyExpression</span> | <span class="nonterminal">propertyExpressionChain</span><br />
|
|
1395
|
+
<span class="nonterminal">propertyExpressionChain</span> := 'ObjectPropertyChain' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> { <span class="nonterminal">ObjectPropertyExpression</span> } ')'<br />
|
|
1396
|
+
<span class="nonterminal">superObjectPropertyExpression</span> := <span class="nonterminal">ObjectPropertyExpression</span><br />
|
|
1397
|
+
<br />
|
|
1398
|
+
<span class="nonterminal">EquivalentObjectProperties</span> := 'EquivalentObjectProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> { <span class="nonterminal">ObjectPropertyExpression</span> } ')'<br />
|
|
1399
|
+
<br />
|
|
1400
|
+
<span class="nonterminal">ObjectPropertyDomain</span> := 'ObjectPropertyDomain' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ClassExpression</span> ')'<br />
|
|
1401
|
+
<br />
|
|
1402
|
+
<span class="nonterminal">ObjectPropertyRange</span> := 'ObjectPropertyRange' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ClassExpression</span> ')'<br />
|
|
1403
|
+
<br />
|
|
1404
|
+
<span class="nonterminal">ReflexiveObjectProperty</span> := 'ReflexiveObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1405
|
+
<br />
|
|
1406
|
+
<span class="nonterminal">TransitiveObjectProperty</span> := 'TransitiveObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1407
|
+
<br />
|
|
1408
|
+
<br />
|
|
1409
|
+
<br />
|
|
1410
|
+
<span class="nonterminal">DataPropertyAxiom</span> :=<br />
|
|
1411
|
+
<span class="nonterminal">SubDataPropertyOf</span> | <span class="nonterminal">EquivalentDataProperties</span> |<br />
|
|
1412
|
+
<span class="nonterminal">DataPropertyDomain</span> | <span class="nonterminal">DataPropertyRange</span> | <span class="nonterminal">FunctionalDataProperty</span><br />
|
|
1413
|
+
<br />
|
|
1414
|
+
<span class="nonterminal">SubDataPropertyOf</span> := 'SubDataPropertyOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subDataPropertyExpression</span> <span class="nonterminal">superDataPropertyExpression</span> ')'<br />
|
|
1415
|
+
<span class="nonterminal">subDataPropertyExpression</span> := <span class="nonterminal">DataPropertyExpression</span><br />
|
|
1416
|
+
<span class="nonterminal">superDataPropertyExpression</span> := <span class="nonterminal">DataPropertyExpression</span><br />
|
|
1417
|
+
<br />
|
|
1418
|
+
<span class="nonterminal">EquivalentDataProperties</span> := 'EquivalentDataProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">DataPropertyExpression</span> { <span class="nonterminal">DataPropertyExpression</span> } ')'<br />
|
|
1419
|
+
<br />
|
|
1420
|
+
<span class="nonterminal">DataPropertyDomain</span> := 'DataPropertyDomain' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">ClassExpression</span> ')'<br />
|
|
1421
|
+
<br />
|
|
1422
|
+
<span class="nonterminal">DataPropertyRange</span> := 'DataPropertyRange' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">DataRange</span> ')'<br />
|
|
1423
|
+
<br />
|
|
1424
|
+
<span class="nonterminal">FunctionalDataProperty</span> := 'FunctionalDataProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> ')'<br />
|
|
1425
|
+
<br />
|
|
1426
|
+
<br />
|
|
1427
|
+
<br />
|
|
1428
|
+
<span class="nonterminal">DatatypeDefinition</span> := 'DatatypeDefinition' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">Datatype</span> <span class="nonterminal">DataRange</span> ')'<br />
|
|
1429
|
+
<br />
|
|
1430
|
+
<br />
|
|
1431
|
+
<br />
|
|
1432
|
+
<span class="nonterminal">HasKey</span> := 'HasKey' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ClassExpression</span> '(' { <span class="nonterminal">ObjectPropertyExpression</span> } ')' '(' { <span class="nonterminal">DataPropertyExpression</span> } ')' ')'<br />
|
|
1433
|
+
<br />
|
|
1434
|
+
<br />
|
|
1435
|
+
<br />
|
|
1436
|
+
<span class="nonterminal">Assertion</span> :=<br />
|
|
1437
|
+
<span class="nonterminal">SameIndividual</span> | <span class="nonterminal">DifferentIndividuals</span> | <span class="nonterminal">ClassAssertion</span> |<br />
|
|
1438
|
+
<span class="nonterminal">ObjectPropertyAssertion</span> | <span class="nonterminal">NegativeObjectPropertyAssertion</span> |<br />
|
|
1439
|
+
<span class="nonterminal">DataPropertyAssertion</span> | <span class="nonterminal">NegativeDataPropertyAssertion</span><br />
|
|
1440
|
+
<br />
|
|
1441
|
+
<span class="nonterminal">sourceIndividual</span> := <span class="nonterminal">Individual</span><br />
|
|
1442
|
+
<span class="nonterminal">targetIndividual</span> := <span class="nonterminal">Individual</span><br />
|
|
1443
|
+
<span class="nonterminal">targetValue</span> := <span class="nonterminal">Literal</span><br />
|
|
1444
|
+
<br />
|
|
1445
|
+
<span class="nonterminal">SameIndividual</span> := 'SameIndividual' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">Individual</span> <span class="nonterminal">Individual</span> { <span class="nonterminal">Individual</span> } ')'<br />
|
|
1446
|
+
<br />
|
|
1447
|
+
<span class="nonterminal">DifferentIndividuals</span> := 'DifferentIndividuals' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">Individual</span> <span class="nonterminal">Individual</span> { <span class="nonterminal">Individual</span> } ')'<br />
|
|
1448
|
+
<br />
|
|
1449
|
+
<span class="nonterminal">ClassAssertion</span> := 'ClassAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ClassExpression</span> <span class="nonterminal">Individual</span> ')'<br />
|
|
1450
|
+
<br />
|
|
1451
|
+
<span class="nonterminal">ObjectPropertyAssertion</span> := 'ObjectPropertyAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">sourceIndividual</span> <span class="nonterminal">targetIndividual</span> ')'<br />
|
|
1452
|
+
<br />
|
|
1453
|
+
<span class="nonterminal">NegativeObjectPropertyAssertion</span> := 'NegativeObjectPropertyAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">sourceIndividual</span> <span class="nonterminal">targetIndividual</span> ')'<br />
|
|
1454
|
+
<br />
|
|
1455
|
+
<span class="nonterminal">DataPropertyAssertion</span> := 'DataPropertyAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">sourceIndividual</span> <span class="nonterminal">targetValue</span> ')'<br />
|
|
1456
|
+
<br />
|
|
1457
|
+
<span class="nonterminal">NegativeDataPropertyAssertion</span> := 'NegativeDataPropertyAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">sourceIndividual</span> <span class="nonterminal">targetValue</span> ')'
|
|
1458
|
+
</p>
|
|
1459
|
+
</div>
|
|
1460
|
+
<a id="OWL_2_QL_2" name="OWL_2_QL_2"></a><h3> <span class="mw-headline">6.2 OWL 2 QL </span></h3>
|
|
1461
|
+
<p>OWL 2 QL 的文法由 OWL 2 规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 的<a href="https://www.w3.org/TR/2012/REC-owl2-syntax-20121211/#General_Definitions" title="Syntax">第 13.1 节</a>中给出的一般定义以及以下产生式组成。
|
|
1462
|
+
</p>
|
|
1463
|
+
<div class="grammar">
|
|
1464
|
+
<p><span class="nonterminal">Class</span> := <span class="nonterminal">IRI</span><br />
|
|
1465
|
+
<br />
|
|
1466
|
+
<span class="nonterminal">Datatype</span> := <span class="nonterminal">IRI</span><br />
|
|
1467
|
+
<br />
|
|
1468
|
+
<span class="nonterminal">ObjectProperty</span> := <span class="nonterminal">IRI</span><br />
|
|
1469
|
+
<br />
|
|
1470
|
+
<span class="nonterminal">DataProperty</span> := <span class="nonterminal">IRI</span><br />
|
|
1471
|
+
<br />
|
|
1472
|
+
<span class="nonterminal">AnnotationProperty</span> := <span class="nonterminal">IRI</span><br />
|
|
1473
|
+
<br />
|
|
1474
|
+
<span class="nonterminal">Individual</span> := <span class="nonterminal">NamedIndividual</span><br />
|
|
1475
|
+
<br />
|
|
1476
|
+
<span class="nonterminal">NamedIndividual</span> := <span class="nonterminal">IRI</span><br />
|
|
1477
|
+
<br />
|
|
1478
|
+
<span class="nonterminal">Literal</span> := <span class="nonterminal">typedLiteral</span> | <span class="nonterminal">stringLiteralNoLanguage</span> | <span class="nonterminal">stringLiteralWithLanguage</span><br />
|
|
1479
|
+
<span class="nonterminal">typedLiteral</span> := <span class="nonterminal">lexicalForm</span> '^^' <span class="nonterminal">Datatype</span><br />
|
|
1480
|
+
<span class="nonterminal">lexicalForm</span> := <span class="nonterminal">quotedString</span><br />
|
|
1481
|
+
<span class="nonterminal">stringLiteralNoLanguage</span> := <span class="nonterminal">quotedString</span><br />
|
|
1482
|
+
<span class="nonterminal">stringLiteralWithLanguage</span> := <span class="nonterminal">quotedString</span> <span class="nonterminal">languageTag</span><br />
|
|
1483
|
+
<br />
|
|
1484
|
+
<br />
|
|
1485
|
+
<br />
|
|
1486
|
+
<span class="nonterminal">ObjectPropertyExpression</span> := <span class="nonterminal">ObjectProperty</span> | <span class="nonterminal">InverseObjectProperty</span><br />
|
|
1487
|
+
<br />
|
|
1488
|
+
<span class="nonterminal">InverseObjectProperty</span> := 'ObjectInverseOf' '(' <span class="nonterminal">ObjectProperty</span> ')'<br />
|
|
1489
|
+
<br />
|
|
1490
|
+
<span class="nonterminal">DataPropertyExpression</span> := <span class="nonterminal">DataProperty</span><br />
|
|
1491
|
+
<br />
|
|
1492
|
+
<br />
|
|
1493
|
+
<br />
|
|
1494
|
+
<span class="nonterminal">DataRange</span> := <span class="nonterminal">Datatype</span> | <span class="nonterminal">DataIntersectionOf</span><br />
|
|
1495
|
+
<br />
|
|
1496
|
+
<span class="nonterminal">DataIntersectionOf</span> := 'DataIntersectionOf' '(' <span class="nonterminal">DataRange</span> <span class="nonterminal">DataRange</span> { <span class="nonterminal">DataRange</span> } ')'<br />
|
|
1497
|
+
<br />
|
|
1498
|
+
<br />
|
|
1499
|
+
<br />
|
|
1500
|
+
<span class="nonterminal">subClassExpression</span> :=<br />
|
|
1501
|
+
<span class="nonterminal">Class</span> |<br />
|
|
1502
|
+
<span class="nonterminal">subObjectSomeValuesFrom</span> | <span class="nonterminal">DataSomeValuesFrom</span><br />
|
|
1503
|
+
<br />
|
|
1504
|
+
<span class="nonterminal">subObjectSomeValuesFrom</span> := 'ObjectSomeValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <i>owl:Thing</i> ')'<br />
|
|
1505
|
+
<br />
|
|
1506
|
+
<span class="nonterminal">superClassExpression</span> :=<br />
|
|
1507
|
+
<span class="nonterminal">Class</span> |<br />
|
|
1508
|
+
<span class="nonterminal">superObjectIntersectionOf</span> | <span class="nonterminal">superObjectComplementOf</span> |<br />
|
|
1509
|
+
<span class="nonterminal">superObjectSomeValuesFrom</span> | <span class="nonterminal">DataSomeValuesFrom</span><br />
|
|
1510
|
+
<br />
|
|
1511
|
+
<span class="nonterminal">superObjectIntersectionOf</span> := 'ObjectIntersectionOf' '(' <span class="nonterminal">superClassExpression</span> <span class="nonterminal">superClassExpression</span> { <span class="nonterminal">superClassExpression</span> } ')'<br />
|
|
1512
|
+
<br />
|
|
1513
|
+
<span class="nonterminal">superObjectComplementOf</span> := 'ObjectComplementOf' '(' <span class="nonterminal">subClassExpression</span> ')'<br />
|
|
1514
|
+
<br />
|
|
1515
|
+
<span class="nonterminal">superObjectSomeValuesFrom</span> := 'ObjectSomeValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">Class</span> ')'<br />
|
|
1516
|
+
<br />
|
|
1517
|
+
<span class="nonterminal">DataSomeValuesFrom</span> := 'DataSomeValuesFrom' '(' <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">DataRange</span> ')'<br />
|
|
1518
|
+
<br />
|
|
1519
|
+
<br />
|
|
1520
|
+
<br />
|
|
1521
|
+
<span class="nonterminal">Axiom</span> := <span class="nonterminal">Declaration</span> | <span class="nonterminal">ClassAxiom</span> | <span class="nonterminal">ObjectPropertyAxiom</span> | <span class="nonterminal">DataPropertyAxiom</span> | <span class="nonterminal">DatatypeDefinition</span> | <span class="nonterminal">Assertion</span> | <span class="nonterminal">AnnotationAxiom</span><br />
|
|
1522
|
+
<br />
|
|
1523
|
+
<br />
|
|
1524
|
+
<br />
|
|
1525
|
+
<span class="nonterminal">ClassAxiom</span> := <span class="nonterminal">SubClassOf</span> | <span class="nonterminal">EquivalentClasses</span> | <span class="nonterminal">DisjointClasses</span><br />
|
|
1526
|
+
<br />
|
|
1527
|
+
<span class="nonterminal">SubClassOf</span> := 'SubClassOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
1528
|
+
<br />
|
|
1529
|
+
<span class="nonterminal">EquivalentClasses</span> := 'EquivalentClasses' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">subClassExpression</span> { <span class="nonterminal">subClassExpression</span> } ')'<br />
|
|
1530
|
+
<br />
|
|
1531
|
+
<span class="nonterminal">DisjointClasses</span> := 'DisjointClasses' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">subClassExpression</span> { <span class="nonterminal">subClassExpression</span> } ')'<br />
|
|
1532
|
+
<br />
|
|
1533
|
+
<br />
|
|
1534
|
+
<br />
|
|
1535
|
+
<span class="nonterminal">ObjectPropertyAxiom</span> :=<br />
|
|
1536
|
+
<span class="nonterminal">SubObjectPropertyOf</span> | <span class="nonterminal">EquivalentObjectProperties</span> |<br />
|
|
1537
|
+
<span class="nonterminal">DisjointObjectProperties</span> | <span class="nonterminal">InverseObjectProperties</span> |<br />
|
|
1538
|
+
<span class="nonterminal">ObjectPropertyDomain</span> | <span class="nonterminal">ObjectPropertyRange</span> |<br />
|
|
1539
|
+
<span class="nonterminal">ReflexiveObjectProperty</span> |<br />
|
|
1540
|
+
<span class="nonterminal">SymmetricObjectProperty</span> | <span class="nonterminal">AsymmetricObjectProperty</span><br />
|
|
1541
|
+
<br />
|
|
1542
|
+
<span class="nonterminal">SubObjectPropertyOf</span> := 'SubObjectPropertyOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1543
|
+
<br />
|
|
1544
|
+
<span class="nonterminal">EquivalentObjectProperties</span> := 'EquivalentObjectProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> { <span class="nonterminal">ObjectPropertyExpression</span> } ')'<br />
|
|
1545
|
+
<br />
|
|
1546
|
+
<span class="nonterminal">DisjointObjectProperties</span> := 'DisjointObjectProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> { <span class="nonterminal">ObjectPropertyExpression</span> } ')'<br />
|
|
1547
|
+
<br />
|
|
1548
|
+
<span class="nonterminal">InverseObjectProperties</span> := 'InverseObjectProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1549
|
+
<br />
|
|
1550
|
+
<span class="nonterminal">ObjectPropertyDomain</span> := 'ObjectPropertyDomain' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
1551
|
+
<br />
|
|
1552
|
+
<span class="nonterminal">ObjectPropertyRange</span> := 'ObjectPropertyRange' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
1553
|
+
<br />
|
|
1554
|
+
<span class="nonterminal">ReflexiveObjectProperty</span> := 'ReflexiveObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1555
|
+
<br />
|
|
1556
|
+
<span class="nonterminal">SymmetricObjectProperty</span> := 'SymmetricObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1557
|
+
<br />
|
|
1558
|
+
<span class="nonterminal">AsymmetricObjectProperty</span> := 'AsymmetricObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1559
|
+
<br />
|
|
1560
|
+
<br />
|
|
1561
|
+
<br />
|
|
1562
|
+
<span class="nonterminal">DataPropertyAxiom</span> :=<br />
|
|
1563
|
+
<span class="nonterminal">SubDataPropertyOf</span> | <span class="nonterminal">EquivalentDataProperties</span> | <span class="nonterminal">DisjointDataProperties</span> |<br />
|
|
1564
|
+
<span class="nonterminal">DataPropertyDomain</span> | <span class="nonterminal">DataPropertyRange</span><br />
|
|
1565
|
+
<br />
|
|
1566
|
+
<span class="nonterminal">SubDataPropertyOf</span> := 'SubDataPropertyOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subDataPropertyExpression</span> <span class="nonterminal">superDataPropertyExpression</span> ')'<br />
|
|
1567
|
+
<span class="nonterminal">subDataPropertyExpression</span> := <span class="nonterminal">DataPropertyExpression</span><br />
|
|
1568
|
+
<span class="nonterminal">superDataPropertyExpression</span> := <span class="nonterminal">DataPropertyExpression</span><br />
|
|
1569
|
+
<br />
|
|
1570
|
+
<span class="nonterminal">EquivalentDataProperties</span> := 'EquivalentDataProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">DataPropertyExpression</span> { <span class="nonterminal">DataPropertyExpression</span> } ')'<br />
|
|
1571
|
+
<br />
|
|
1572
|
+
<span class="nonterminal">DisjointDataProperties</span> := 'DisjointDataProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">DataPropertyExpression</span> { <span class="nonterminal">DataPropertyExpression</span> } ')'<br />
|
|
1573
|
+
<br />
|
|
1574
|
+
<span class="nonterminal">DataPropertyDomain</span> := 'DataPropertyDomain' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
1575
|
+
<br />
|
|
1576
|
+
<span class="nonterminal">DataPropertyRange</span> := 'DataPropertyRange' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">DataRange</span> ')'<br />
|
|
1577
|
+
<br />
|
|
1578
|
+
<br />
|
|
1579
|
+
<br />
|
|
1580
|
+
<span class="nonterminal">DatatypeDefinition</span> := 'DatatypeDefinition' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">Datatype</span> <span class="nonterminal">DataRange</span> ')'<br />
|
|
1581
|
+
<br />
|
|
1582
|
+
<br />
|
|
1583
|
+
<br />
|
|
1584
|
+
<span class="nonterminal">Assertion</span> := <span class="nonterminal">DifferentIndividuals</span> | <span class="nonterminal">ClassAssertion</span> | <span class="nonterminal">ObjectPropertyAssertion</span> | <span class="nonterminal">DataPropertyAssertion</span><br />
|
|
1585
|
+
<br />
|
|
1586
|
+
<span class="nonterminal">sourceIndividual</span> := <span class="nonterminal">Individual</span><br />
|
|
1587
|
+
<span class="nonterminal">targetIndividual</span> := <span class="nonterminal">Individual</span><br />
|
|
1588
|
+
<span class="nonterminal">targetValue</span> := <span class="nonterminal">Literal</span><br />
|
|
1589
|
+
<br />
|
|
1590
|
+
<span class="nonterminal">DifferentIndividuals</span> := 'DifferentIndividuals' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">Individual</span> <span class="nonterminal">Individual</span> { <span class="nonterminal">Individual</span> } ')'<br />
|
|
1591
|
+
<br />
|
|
1592
|
+
<span class="nonterminal">ClassAssertion</span> := 'ClassAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">Class</span> <span class="nonterminal">Individual</span> ')'<br />
|
|
1593
|
+
<br />
|
|
1594
|
+
<span class="nonterminal">ObjectPropertyAssertion</span> := 'ObjectPropertyAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">sourceIndividual</span> <span class="nonterminal">targetIndividual</span> ')'<br />
|
|
1595
|
+
<br />
|
|
1596
|
+
<span class="nonterminal">DataPropertyAssertion</span> := 'DataPropertyAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">sourceIndividual</span> <span class="nonterminal">targetValue</span> ')'
|
|
1597
|
+
</p>
|
|
1598
|
+
</div>
|
|
1599
|
+
<a id="OWL_2_RL_2" name="OWL_2_RL_2"></a><h3> <span class="mw-headline">6.3 OWL 2 RL </span></h3>
|
|
1600
|
+
<p>OWL 2 RL 的文法由 OWL 2 规范 [<cite><a href="#ref-owl-2-specification" title="">OWL 2 Specification</a></cite>] 的<a href="https://www.w3.org/TR/2012/REC-owl2-syntax-20121211/#General_Definitions" title="Syntax">第 13.1 节</a>中给出的一般定义以及以下产生式组成。
|
|
1601
|
+
</p>
|
|
1602
|
+
<div class="grammar">
|
|
1603
|
+
<p><span class="nonterminal">Class</span> := <span class="nonterminal">IRI</span><br />
|
|
1604
|
+
<br />
|
|
1605
|
+
<span class="nonterminal">Datatype</span> := <span class="nonterminal">IRI</span><br />
|
|
1606
|
+
<br />
|
|
1607
|
+
<span class="nonterminal">ObjectProperty</span> := <span class="nonterminal">IRI</span><br />
|
|
1608
|
+
<br />
|
|
1609
|
+
<span class="nonterminal">DataProperty</span> := <span class="nonterminal">IRI</span><br />
|
|
1610
|
+
<br />
|
|
1611
|
+
<span class="nonterminal">AnnotationProperty</span> := <span class="nonterminal">IRI</span><br />
|
|
1612
|
+
<br />
|
|
1613
|
+
<span class="nonterminal">Individual</span> := <span class="nonterminal">NamedIndividual</span> | <span class="nonterminal">AnonymousIndividual</span><br />
|
|
1614
|
+
<br />
|
|
1615
|
+
<span class="nonterminal">NamedIndividual</span> := <span class="nonterminal">IRI</span><br />
|
|
1616
|
+
<br />
|
|
1617
|
+
<span class="nonterminal">AnonymousIndividual</span> := <span class="nonterminal">nodeID</span><br />
|
|
1618
|
+
<br />
|
|
1619
|
+
<span class="nonterminal">Literal</span> := <span class="nonterminal">typedLiteral</span> | <span class="nonterminal">stringLiteralNoLanguage</span> | <span class="nonterminal">stringLiteralWithLanguage</span><br />
|
|
1620
|
+
<span class="nonterminal">typedLiteral</span> := <span class="nonterminal">lexicalForm</span> '^^' <span class="nonterminal">Datatype</span><br />
|
|
1621
|
+
<span class="nonterminal">lexicalForm</span> := <span class="nonterminal">quotedString</span><br />
|
|
1622
|
+
<span class="nonterminal">stringLiteralNoLanguage</span> := <span class="nonterminal">quotedString</span><br />
|
|
1623
|
+
<span class="nonterminal">stringLiteralWithLanguage</span> := <span class="nonterminal">quotedString</span> <span class="nonterminal">languageTag</span><br />
|
|
1624
|
+
<br />
|
|
1625
|
+
<br />
|
|
1626
|
+
<br />
|
|
1627
|
+
<span class="nonterminal">ObjectPropertyExpression</span> := <span class="nonterminal">ObjectProperty</span> | <span class="nonterminal">InverseObjectProperty</span><br />
|
|
1628
|
+
<br />
|
|
1629
|
+
<span class="nonterminal">InverseObjectProperty</span> := 'ObjectInverseOf' '(' <span class="nonterminal">ObjectProperty</span> ')'<br />
|
|
1630
|
+
<br />
|
|
1631
|
+
<span class="nonterminal">DataPropertyExpression</span> := <span class="nonterminal">DataProperty</span><br />
|
|
1632
|
+
<br />
|
|
1633
|
+
<br />
|
|
1634
|
+
<br />
|
|
1635
|
+
<span class="nonterminal">DataRange</span> := <span class="nonterminal">Datatype</span> | <span class="nonterminal">DataIntersectionOf</span><br />
|
|
1636
|
+
<br />
|
|
1637
|
+
<span class="nonterminal">DataIntersectionOf</span> := 'DataIntersectionOf' '(' <span class="nonterminal">DataRange</span> <span class="nonterminal">DataRange</span> { <span class="nonterminal">DataRange</span> } ')'<br />
|
|
1638
|
+
<br />
|
|
1639
|
+
<br />
|
|
1640
|
+
<br />
|
|
1641
|
+
<span class="nonterminal">zeroOrOne </span> := '0' | '1'<br />
|
|
1642
|
+
<br />
|
|
1643
|
+
<span class="nonterminal">subClassExpression</span> :=<br />
|
|
1644
|
+
<span class="nonterminal">Class</span> other than <i>owl:Thing</i> |<br />
|
|
1645
|
+
<span class="nonterminal">subObjectIntersectionOf</span> | <span class="nonterminal">subObjectUnionOf</span> | <span class="nonterminal">ObjectOneOf</span> |<br />
|
|
1646
|
+
<span class="nonterminal">subObjectSomeValuesFrom</span> | <span class="nonterminal">ObjectHasValue</span> |<br />
|
|
1647
|
+
<span class="nonterminal">DataSomeValuesFrom</span> | <span class="nonterminal">DataHasValue</span><br />
|
|
1648
|
+
<br />
|
|
1649
|
+
<span class="nonterminal">subObjectIntersectionOf</span> := 'ObjectIntersectionOf' '(' <span class="nonterminal">subClassExpression</span> <span class="nonterminal">subClassExpression</span> { <span class="nonterminal">subClassExpression</span> } ')'<br />
|
|
1650
|
+
<br />
|
|
1651
|
+
<span class="nonterminal">subObjectUnionOf</span> := 'ObjectUnionOf' '(' <span class="nonterminal">subClassExpression</span> <span class="nonterminal">subClassExpression</span> { <span class="nonterminal">subClassExpression</span> } ')'<br />
|
|
1652
|
+
<br />
|
|
1653
|
+
<span class="nonterminal">subObjectSomeValuesFrom</span> :=<br />
|
|
1654
|
+
'ObjectSomeValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">subClassExpression</span> ')' |<br />
|
|
1655
|
+
'ObjectSomeValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <i>owl:Thing</i> ')'<br />
|
|
1656
|
+
<br />
|
|
1657
|
+
<span class="nonterminal">superClassExpression</span> :=<br />
|
|
1658
|
+
<span class="nonterminal">Class</span> other than <i>owl:Thing</i> |<br />
|
|
1659
|
+
<span class="nonterminal">superObjectIntersectionOf</span> | <span class="nonterminal">superComplementOf</span> |<br />
|
|
1660
|
+
<span class="nonterminal">superObjectAllValuesFrom</span> | <span class="nonterminal">ObjectHasValue</span> | <span class="nonterminal">superObjectMaxCardinality</span> |<br />
|
|
1661
|
+
<span class="nonterminal">DataAllValuesFrom</span> | <span class="nonterminal">DataHasValue</span> | <span class="nonterminal">superDataMaxCardinality</span><br />
|
|
1662
|
+
<br />
|
|
1663
|
+
<span class="nonterminal">superObjectIntersectionOf</span> := 'ObjectIntersectionOf' '(' <span class="nonterminal">superClassExpression</span> <span class="nonterminal">superClassExpression</span> { <span class="nonterminal">superClassExpression</span> } ')'<br />
|
|
1664
|
+
<br />
|
|
1665
|
+
<span class="nonterminal">superObjectComplementOf</span> := 'ObjectComplementOf' '(' <span class="nonterminal">subClassExpression</span> ')'<br />
|
|
1666
|
+
<br />
|
|
1667
|
+
<span class="nonterminal">superObjectAllValuesFrom</span> := 'ObjectAllValuesFrom' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
1668
|
+
<br />
|
|
1669
|
+
<span class="nonterminal">superObjectMaxCardinality</span> :=<br />
|
|
1670
|
+
'ObjectMaxCardinality' '(' <span class="nonterminal">zeroOrOne</span> <span class="nonterminal">ObjectPropertyExpression</span> [ <span class="nonterminal">subClassExpression</span> ] ')' |<br />
|
|
1671
|
+
'ObjectMaxCardinality' '(' <span class="nonterminal">zeroOrOne</span> <span class="nonterminal">ObjectPropertyExpression</span> <i>owl:Thing</i> ')'<br />
|
|
1672
|
+
<br />
|
|
1673
|
+
<span class="nonterminal">superDataMaxCardinality</span> := 'DataMaxCardinality' '(' <span class="nonterminal">zeroOrOne</span> <span class="nonterminal">DataPropertyExpression</span> [ <span class="nonterminal">DataRange</span> ] ')' |<br />
|
|
1674
|
+
<br />
|
|
1675
|
+
<span class="nonterminal">equivClassExpression</span> :=<br />
|
|
1676
|
+
<span class="nonterminal">Class</span> other than <i>owl:Thing</i> |<br />
|
|
1677
|
+
<span class="nonterminal">equivObjectIntersectionOf</span> |<br />
|
|
1678
|
+
<span class="nonterminal">ObjectHasValue</span> |<br />
|
|
1679
|
+
<span class="nonterminal">DataHasValue</span><br />
|
|
1680
|
+
<br />
|
|
1681
|
+
<span class="nonterminal">equivObjectIntersectionOf</span> := 'ObjectIntersectionOf' '(' <span class="nonterminal">equivClassExpression</span> <span class="nonterminal">equivClassExpression</span> { <span class="nonterminal">equivClassExpression</span> } ')'<br />
|
|
1682
|
+
<br />
|
|
1683
|
+
<span class="nonterminal">ObjectOneOf</span> := 'ObjectOneOf' '(' <span class="nonterminal">Individual</span> { <span class="nonterminal">Individual</span> }')'<br />
|
|
1684
|
+
<br />
|
|
1685
|
+
<span class="nonterminal">ObjectHasValue</span> := 'ObjectHasValue' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">Individual</span> ')'<br />
|
|
1686
|
+
<br />
|
|
1687
|
+
<span class="nonterminal">DataSomeValuesFrom</span> := 'DataSomeValuesFrom' '(' <span class="nonterminal">DataPropertyExpression</span> { <span class="nonterminal">DataPropertyExpression</span> } <span class="nonterminal">DataRange</span> ')'<br />
|
|
1688
|
+
<br />
|
|
1689
|
+
<span class="nonterminal">DataAllValuesFrom</span> := 'DataAllValuesFrom' '(' <span class="nonterminal">DataPropertyExpression</span> { <span class="nonterminal">DataPropertyExpression</span> } <span class="nonterminal">DataRange</span> ')'<br />
|
|
1690
|
+
<br />
|
|
1691
|
+
<span class="nonterminal">DataHasValue</span> := 'DataHasValue' '(' <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">Literal</span> ')'<br />
|
|
1692
|
+
<br />
|
|
1693
|
+
<br />
|
|
1694
|
+
<br />
|
|
1695
|
+
<span class="nonterminal">Axiom</span> := <span class="nonterminal">Declaration</span> | <span class="nonterminal">ClassAxiom</span> | <span class="nonterminal">ObjectPropertyAxiom</span> | <span class="nonterminal">DataPropertyAxiom</span> | <span class="nonterminal">DatatypeDefinition</span> | <span class="nonterminal">HasKey</span> | <span class="nonterminal">Assertion</span> | <span class="nonterminal">AnnotationAxiom</span><br />
|
|
1696
|
+
<br />
|
|
1697
|
+
<br />
|
|
1698
|
+
<br />
|
|
1699
|
+
<span class="nonterminal">ClassAxiom</span> := <span class="nonterminal">SubClassOf</span> | <span class="nonterminal">EquivalentClasses</span> | <span class="nonterminal">DisjointClasses</span><br />
|
|
1700
|
+
<br />
|
|
1701
|
+
<span class="nonterminal">SubClassOf</span> := 'SubClassOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
1702
|
+
<br />
|
|
1703
|
+
<span class="nonterminal">EquivalentClasses</span> := 'EquivalentClasses' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">equivClassExpression</span> <span class="nonterminal">equivClassExpression</span> { <span class="nonterminal">equivClassExpression</span> } ')'<br />
|
|
1704
|
+
<br />
|
|
1705
|
+
<span class="nonterminal">DisjointClasses</span> := 'DisjointClasses' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> <span class="nonterminal">subClassExpression</span> { <span class="nonterminal">subClassExpression</span> } ')'<br />
|
|
1706
|
+
<br />
|
|
1707
|
+
<br />
|
|
1708
|
+
<br />
|
|
1709
|
+
<span class="nonterminal">ObjectPropertyAxiom</span> :=<br />
|
|
1710
|
+
<span class="nonterminal">SubObjectPropertyOf</span> | <span class="nonterminal">EquivalentObjectProperties</span> |<br />
|
|
1711
|
+
<span class="nonterminal">DisjointObjectProperties</span> | <span class="nonterminal">InverseObjectProperties</span> |<br />
|
|
1712
|
+
<span class="nonterminal">ObjectPropertyDomain</span> | <span class="nonterminal">ObjectPropertyRange</span> |<br />
|
|
1713
|
+
<span class="nonterminal">FunctionalObjectProperty</span> | <span class="nonterminal">InverseFunctionalObjectProperty</span> |<br />
|
|
1714
|
+
<span class="nonterminal">IrreflexiveObjectProperty</span> |<br />
|
|
1715
|
+
<span class="nonterminal">SymmetricObjectProperty</span> | <span class="nonterminal">AsymmetricObjectProperty</span><br />
|
|
1716
|
+
<span class="nonterminal">TransitiveObjectProperty</span><br />
|
|
1717
|
+
<br />
|
|
1718
|
+
<span class="nonterminal">SubObjectPropertyOf</span> := 'SubObjectPropertyOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subObjectPropertyExpression</span> <span class="nonterminal">superObjectPropertyExpression</span> ')'<br />
|
|
1719
|
+
<span class="nonterminal">subObjectPropertyExpression</span> := <span class="nonterminal">ObjectPropertyExpression</span> | <span class="nonterminal">propertyExpressionChain</span><br />
|
|
1720
|
+
<span class="nonterminal">propertyExpressionChain</span> := 'ObjectPropertyChain' '(' <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> { <span class="nonterminal">ObjectPropertyExpression</span> } ')'<br />
|
|
1721
|
+
<span class="nonterminal">superObjectPropertyExpression</span> := <span class="nonterminal">ObjectPropertyExpression</span><br />
|
|
1722
|
+
<br />
|
|
1723
|
+
<span class="nonterminal">EquivalentObjectProperties</span> := 'EquivalentObjectProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> { <span class="nonterminal">ObjectPropertyExpression</span> } ')'<br />
|
|
1724
|
+
<br />
|
|
1725
|
+
<span class="nonterminal">DisjointObjectProperties</span> := 'DisjointObjectProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> { <span class="nonterminal">ObjectPropertyExpression</span> } ')'<br />
|
|
1726
|
+
<br />
|
|
1727
|
+
<span class="nonterminal">InverseObjectProperties</span> := 'InverseObjectProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1728
|
+
<br />
|
|
1729
|
+
<span class="nonterminal">ObjectPropertyDomain</span> := 'ObjectPropertyDomain' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
1730
|
+
<br />
|
|
1731
|
+
<span class="nonterminal">ObjectPropertyRange</span> := 'ObjectPropertyRange' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
1732
|
+
<br />
|
|
1733
|
+
<span class="nonterminal">FunctionalObjectProperty</span> := 'FunctionalObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1734
|
+
<br />
|
|
1735
|
+
<span class="nonterminal">InverseFunctionalObjectProperty</span> := 'InverseFunctionalObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1736
|
+
<br />
|
|
1737
|
+
<span class="nonterminal">IrreflexiveObjectProperty</span> := 'IrreflexiveObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1738
|
+
<br />
|
|
1739
|
+
<span class="nonterminal">SymmetricObjectProperty</span> := 'SymmetricObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1740
|
+
<br />
|
|
1741
|
+
<span class="nonterminal">AsymmetricObjectProperty</span> := 'AsymmetricObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1742
|
+
<br />
|
|
1743
|
+
<span class="nonterminal">TransitiveObjectProperty</span> := 'TransitiveObjectProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> ')'<br />
|
|
1744
|
+
<br />
|
|
1745
|
+
<br />
|
|
1746
|
+
<br />
|
|
1747
|
+
<span class="nonterminal">DataPropertyAxiom</span> :=<br />
|
|
1748
|
+
<span class="nonterminal">SubDataPropertyOf</span> | <span class="nonterminal">EquivalentDataProperties</span> | <span class="nonterminal">DisjointDataProperties</span> |<br />
|
|
1749
|
+
<span class="nonterminal">DataPropertyDomain</span> | <span class="nonterminal">DataPropertyRange</span> | <span class="nonterminal">FunctionalDataProperty</span><br />
|
|
1750
|
+
<br />
|
|
1751
|
+
<span class="nonterminal">SubDataPropertyOf</span> := 'SubDataPropertyOf' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subDataPropertyExpression</span> <span class="nonterminal">superDataPropertyExpression</span> ')'<br />
|
|
1752
|
+
<span class="nonterminal">subDataPropertyExpression</span> := <span class="nonterminal">DataPropertyExpression</span><br />
|
|
1753
|
+
<span class="nonterminal">superDataPropertyExpression</span> := <span class="nonterminal">DataPropertyExpression</span><br />
|
|
1754
|
+
<br />
|
|
1755
|
+
<span class="nonterminal">EquivalentDataProperties</span> := 'EquivalentDataProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">DataPropertyExpression</span> { <span class="nonterminal">DataPropertyExpression</span> } ')'<br />
|
|
1756
|
+
<br />
|
|
1757
|
+
<span class="nonterminal">DisjointDataProperties</span> := 'DisjointDataProperties' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">DataPropertyExpression</span> { <span class="nonterminal">DataPropertyExpression</span> } ')'<br />
|
|
1758
|
+
<br />
|
|
1759
|
+
<span class="nonterminal">DataPropertyDomain</span> := 'DataPropertyDomain' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">superClassExpression</span> ')'<br />
|
|
1760
|
+
<br />
|
|
1761
|
+
<span class="nonterminal">DataPropertyRange</span> := 'DataPropertyRange' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">DataRange</span> ')'<br />
|
|
1762
|
+
<br />
|
|
1763
|
+
<span class="nonterminal">FunctionalDataProperty</span> := 'FunctionalDataProperty' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> ')'<br />
|
|
1764
|
+
<br />
|
|
1765
|
+
<br />
|
|
1766
|
+
<br />
|
|
1767
|
+
<span class="nonterminal">DatatypeDefinition</span> := 'DatatypeDefinition' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">Datatype</span> <span class="nonterminal">DataRange</span> ')'<br />
|
|
1768
|
+
<br />
|
|
1769
|
+
<br />
|
|
1770
|
+
<br />
|
|
1771
|
+
<span class="nonterminal">HasKey</span> := 'HasKey' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">subClassExpression</span> '(' { <span class="nonterminal">ObjectPropertyExpression</span> } ')' '(' { <span class="nonterminal">DataPropertyExpression</span> } ')' ')'<br />
|
|
1772
|
+
<br />
|
|
1773
|
+
<br />
|
|
1774
|
+
<br />
|
|
1775
|
+
<span class="nonterminal">Assertion</span> :=<br />
|
|
1776
|
+
<span class="nonterminal">SameIndividual</span> | <span class="nonterminal">DifferentIndividuals</span> | <span class="nonterminal">ClassAssertion</span> |<br />
|
|
1777
|
+
<span class="nonterminal">ObjectPropertyAssertion</span> | <span class="nonterminal">NegativeObjectPropertyAssertion</span> |<br />
|
|
1778
|
+
<span class="nonterminal">DataPropertyAssertion</span> | <span class="nonterminal">NegativeDataPropertyAssertion</span><br />
|
|
1779
|
+
<br />
|
|
1780
|
+
<span class="nonterminal">sourceIndividual</span> := <span class="nonterminal">Individual</span><br />
|
|
1781
|
+
<span class="nonterminal">targetIndividual</span> := <span class="nonterminal">Individual</span><br />
|
|
1782
|
+
<span class="nonterminal">targetValue</span> := <span class="nonterminal">Literal</span><br />
|
|
1783
|
+
<br />
|
|
1784
|
+
<span class="nonterminal">SameIndividual</span> := 'SameIndividual' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">Individual</span> <span class="nonterminal">Individual</span> { <span class="nonterminal">Individual</span> } ')'<br />
|
|
1785
|
+
<br />
|
|
1786
|
+
<span class="nonterminal">DifferentIndividuals</span> := 'DifferentIndividuals' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">Individual</span> <span class="nonterminal">Individual</span> { <span class="nonterminal">Individual</span> } ')'<br />
|
|
1787
|
+
<br />
|
|
1788
|
+
<span class="nonterminal">ClassAssertion</span> := 'ClassAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">superClassExpression</span> <span class="nonterminal">Individual</span> ')'<br />
|
|
1789
|
+
<br />
|
|
1790
|
+
<span class="nonterminal">ObjectPropertyAssertion</span> := 'ObjectPropertyAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">sourceIndividual</span> <span class="nonterminal">targetIndividual</span> ')'<br />
|
|
1791
|
+
<br />
|
|
1792
|
+
<span class="nonterminal">NegativeObjectPropertyAssertion</span> := 'NegativeObjectPropertyAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">ObjectPropertyExpression</span> <span class="nonterminal">sourceIndividual</span> <span class="nonterminal">targetIndividual</span> ')'<br />
|
|
1793
|
+
<br />
|
|
1794
|
+
<span class="nonterminal">DataPropertyAssertion</span> := 'DataPropertyAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">sourceIndividual</span> <span class="nonterminal">targetValue</span> ')'<br />
|
|
1795
|
+
<br />
|
|
1796
|
+
<span class="nonterminal">NegativeDataPropertyAssertion</span> := 'NegativeDataPropertyAssertion' '(' <span class="nonterminal">axiomAnnotations</span> <span class="nonterminal">DataPropertyExpression</span> <span class="nonterminal">sourceIndividual</span> <span class="nonterminal">targetValue</span> ')'
|
|
1797
|
+
</p>
|
|
1798
|
+
</div>
|
|
1799
|
+
<div id="changelog">
|
|
1800
|
+
<a id="Appendix:_Change_Log_.28Informative.29" name="Appendix:_Change_Log_.28Informative.29"></a><h2> <span class="mw-headline">7 附录:变更日志(非规范性) </span></h2>
|
|
1801
|
+
<a id="Changes_Since_Recommendation" name="Changes_Since_Recommendation"></a><h3> <span class="mw-headline">7.1 自推荐标准以来的变更 </span></h3>
|
|
1802
|
+
<p>本节概述自 <a class="external text" href="https://www.w3.org/TR/2009/REC-owl2-profiles-20091027/" rel="nofollow" title="http://www.w3.org/TR/2009/REC-owl2-profiles-20091027/">2009年10月27日推荐标准</a>发布以来本文档的变更。
|
|
1803
|
+
</p>
|
|
1804
|
+
<ul><li> 随着 XML Schema 定义语言(XSD)1.1 第 2 部分:数据类型<a class="external text" href="https://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/" rel="nofollow" title="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/">2012年4月5日推荐标准</a>的发布,OWL 2 中基于 XSD 1.1 的各项内容现在被视为必需支持,先前在「本文档地位」一节中详述对 XSD 1.1 <a class="external text" href="https://www.w3.org/TR/2009/CR-xmlschema11-2-20090430/" rel="nofollow" title="http://www.w3.org/TR/2009/CR-xmlschema11-2-20090430/">2009年4月30日候选推荐标准</a>可选依赖性的说明已被移除。
|
|
1805
|
+
</li><li> <a href="#Computational_Properties" title="">第 5 节</a>中对各剖面计算性质的描述已作修订,以提高清晰度和精确性。
|
|
1806
|
+
</li><li> <a href="#OWL_2_RL_2" title="">第 6.3 节</a>中一条针对 <b>ReflexiveObjectProperty</b> 的冗余文法产生式已被移除。
|
|
1807
|
+
</li><li> 若干次要的排版错误已按 <a class="external text" href="https://www.w3.org/2007/OWL/wiki/Errata" rel="nofollow" title="http://www.w3.org/2007/OWL/wiki/Errata">OWL 2 勘误表</a>页面所述予以更正。
|
|
1808
|
+
</li></ul>
|
|
1809
|
+
<a id="Changes_Since_Proposed_Recommendation" name="Changes_Since_Proposed_Recommendation"></a><h3> <span class="mw-headline">7.2 自提案推荐标准以来的变更 </span></h3>
|
|
1810
|
+
<p>自 <a class="external text" href="https://www.w3.org/TR/2009/PR-owl2-profiles-20090922/" rel="nofollow" title="http://www.w3.org/TR/2009/PR-owl2-profiles-20090922/">2009年9月22日提案推荐标准</a>发布以来,本文档未作任何变更。
|
|
1811
|
+
</p>
|
|
1812
|
+
<a id="Changes_Since_Candidate_Recommendation" name="Changes_Since_Candidate_Recommendation"></a><h3> <span class="mw-headline">7.3 自候选推荐标准以来的变更 </span></h3>
|
|
1813
|
+
<p>本节概述自 <a class="external text" href="https://www.w3.org/TR/2009/CR-owl2-profiles-20090611/" rel="nofollow" title="http://www.w3.org/TR/2009/CR-owl2-profiles-20090611/">2009年6月11日候选推荐标准</a>发布以来本文档的变更。
|
|
1814
|
+
</p>
|
|
1815
|
+
<ul><li> 关于 owl:rational 和 rdf:XMLLiteral 数据类型的「风险特性」警告已被移除:其实现支持已得到充分论证,这些特性不再被视为存在风险(参见 <a class="external text" href="https://www.w3.org/2007/OWL/meeting/2009-08-05#resolution_5" rel="nofollow" title="http://www.w3.org/2007/OWL/meeting/2009-08-05#resolution_5">决议 5</a> 和 <a class="external text" href="https://www.w3.org/2007/OWL/meeting/2009-08-05#resolution_6" rel="nofollow" title="http://www.w3.org/2007/OWL/meeting/2009-08-05#resolution_6">决议 6</a>,2009年8月5日)。
|
|
1816
|
+
</li><li> 新增了一条关于各剖面名称由来的说明,并明确指出这些剖面互不包含、没有任何一个是另一个的子集。
|
|
1817
|
+
</li><li> 新增了对 Lloyd 所著 <i>Foundations of Logic Programming</i> 一书的引用。
|
|
1818
|
+
</li><li> 进行了一些次要的编辑性修改。
|
|
1819
|
+
</li></ul>
|
|
1820
|
+
<a id="Changes_Since_Last_Call" name="Changes_Since_Last_Call"></a><h3> <span class="mw-headline">7.4 自最后征集意见以来的变更 </span></h3>
|
|
1821
|
+
<p>本节概述自 <a class="external text" href="https://www.w3.org/TR/2009/WD-owl2-profiles-20090421/" rel="nofollow" title="http://www.w3.org/TR/2009/WD-owl2-profiles-20090421/">2009年4月21日最后征集意见工作草案</a>发布以来本文档的变更。
|
|
1822
|
+
</p>
|
|
1823
|
+
<ul><li> 修正了一条文法产生式,以使其与《结构规范与函数式语法》中的文法保持一致。
|
|
1824
|
+
</li><li> rdf:text 的名称已更改为 rdf:PlainLiteral。
|
|
1825
|
+
</li><li> 新增了对逻辑程序设计(logic programming)的引用。
|
|
1826
|
+
</li><li> 进行了一些次要的编辑性修改。
|
|
1827
|
+
</li></ul>
|
|
1828
|
+
</div>
|
|
1829
|
+
<a id="Acknowledgments" name="Acknowledgments"></a><h2> <span class="mw-headline">8 致谢 </span></h2>
|
|
1830
|
+
<p>OWL 2 开发的起点是 <a class="external text" href="https://www.w3.org/Submission/2006/10/" rel="nofollow" title="http://www.w3.org/Submission/2006/10/">OWL1.1 成员提交案</a>,它本身是用户与开发者反馈的成果,尤其是 <a class="external text" href="http://www.webont.org/owled/" rel="nofollow" title="http://www.webont.org/owled/">OWL Experiences and Directions(OWLED)研讨会系列</a>期间收集的信息。工作组还审议了 <a class="external text" href="https://www.w3.org/2004/OWL/" rel="nofollow" title="http://www.w3.org/2004/OWL/">WebOnt 工作组</a>遗留下来被<a class="external text" href="https://www.w3.org/2001/sw/WebOnt/webont-issues.html" rel="nofollow" title="http://www.w3.org/2001/sw/WebOnt/webont-issues.html">暂缓处理的议题</a>。
|
|
1831
|
+
</p><p>本文档由 OWL 工作组(见下文)编制,其内容反映了工作组全体的广泛讨论。
|
|
1832
|
+
编辑特别感谢
|
|
1833
|
+
Jie Bao (RPI)、
|
|
1834
|
+
Jim Hendler (RPI) 以及
|
|
1835
|
+
Jeff Pan (University of Aberdeen)
|
|
1836
|
+
的细致审阅。
|
|
1837
|
+
</p><p>本文档发布时 OWL 工作组会议的常出席成员有:
|
|
1838
|
+
Jie Bao (RPI)、
|
|
1839
|
+
Diego Calvanese (Free University of Bozen-Bolzano)、
|
|
1840
|
+
Bernardo Cuenca Grau (Oxford University Computing Laboratory)、
|
|
1841
|
+
Martin Dzbor (Open University)、
|
|
1842
|
+
Achille Fokoue (IBM Corporation)、
|
|
1843
|
+
Christine Golbreich (Université de Versailles St-Quentin and LIRMM)、
|
|
1844
|
+
Sandro Hawke (W3C/MIT)、
|
|
1845
|
+
Ivan Herman (W3C/ERCIM)、
|
|
1846
|
+
Rinke Hoekstra (University of Amsterdam)、
|
|
1847
|
+
Ian Horrocks (Oxford University Computing Laboratory)、
|
|
1848
|
+
Elisa Kendall (Sandpiper Software)、
|
|
1849
|
+
Markus Krötzsch (FZI)、
|
|
1850
|
+
Carsten Lutz (Universität Bremen)、
|
|
1851
|
+
Deborah L. McGuinness (RPI)、
|
|
1852
|
+
Boris Motik (Oxford University Computing Laboratory)、
|
|
1853
|
+
Jeff Pan (University of Aberdeen)、
|
|
1854
|
+
Bijan Parsia (University of Manchester)、
|
|
1855
|
+
Peter F. Patel-Schneider (Bell Labs Research, Alcatel-Lucent)、
|
|
1856
|
+
Sebastian Rudolph (FZI)、
|
|
1857
|
+
Alan Ruttenberg (Science Commons)、
|
|
1858
|
+
Uli Sattler (University of Manchester)、
|
|
1859
|
+
Michael Schneider (FZI)、
|
|
1860
|
+
Mike Smith (Clark & Parsia)、
|
|
1861
|
+
Evan Wallace (NIST)、
|
|
1862
|
+
Zhe Wu (Oracle Corporation),以及
|
|
1863
|
+
Antoine Zimmermann (DERI Galway)。
|
|
1864
|
+
我们还要感谢工作组的往届成员:
|
|
1865
|
+
Jeremy Carroll、
|
|
1866
|
+
Jim Hendler 以及
|
|
1867
|
+
Vipul Kashyap。
|
|
1868
|
+
</p>
|
|
1869
|
+
<a id="References" name="References"></a><h2> <span class="mw-headline">9 参考文献 </span></h2>
|
|
1870
|
+
<a id="Normative_References" name="Normative_References"></a><h3> <span class="mw-headline">9.1 规范性参考文献 </span></h3>
|
|
1871
|
+
<dl><dt> <span id="ref-owl-2-conformance">[OWL 2 Conformance]</span>
|
|
1872
|
+
</dt><dd><span><cite><a href="https://www.w3.org/TR/2012/REC-owl2-conformance-20121211/">OWL 2 Web Ontology Language: <span>Conformance (Second Edition)</span></a></cite> Michael Smith, Ian Horrocks, Markus Krötzsch, Birte Glimm, eds. W3C Recommendation, 11 December 2012, <a href="https://www.w3.org/TR/2012/REC-owl2-conformance-20121211/">http://www.w3.org/TR/2012/REC-owl2-conformance-20121211/</a>. Latest version available at <a href="https://www.w3.org/TR/owl2-conformance/">http://www.w3.org/TR/owl2-conformance/</a>.</span></dd><dt> <span id="ref-owl-2-direct-semantics">[OWL 2 Direct Semantics]</span>
|
|
1873
|
+
</dt><dd><span><cite><a href="https://www.w3.org/TR/2012/REC-owl2-direct-semantics-20121211/">OWL 2 Web Ontology Language: <span>Direct Semantics (Second Edition)</span></a></cite> Boris Motik, Peter F. Patel-Schneider, Bernardo Cuenca Grau, eds. W3C Recommendation, 11 December 2012, <a href="https://www.w3.org/TR/2012/REC-owl2-direct-semantics-20121211/">http://www.w3.org/TR/2012/REC-owl2-direct-semantics-20121211/</a>. Latest version available at <a href="https://www.w3.org/TR/owl2-direct-semantics/">http://www.w3.org/TR/owl2-direct-semantics/</a>.</span></dd><dt> <span id="ref-owl-2-rdf-mapping">[OWL 2 RDF Mapping]</span>
|
|
1874
|
+
</dt><dd><span><cite><a href="https://www.w3.org/TR/2012/REC-owl2-mapping-to-rdf-20121211/">OWL 2 Web Ontology Language: <span>Mapping to RDF Graphs (Second Edition)</span></a></cite> Peter F. Patel-Schneider, Boris Motik, eds. W3C Recommendation, 11 December 2012, <a href="https://www.w3.org/TR/2012/REC-owl2-mapping-to-rdf-20121211/">http://www.w3.org/TR/2012/REC-owl2-mapping-to-rdf-20121211/</a>. Latest version available at <a href="https://www.w3.org/TR/owl2-mapping-to-rdf/">http://www.w3.org/TR/owl2-mapping-to-rdf/</a>.</span></dd><dt> <span id="ref-owl-2-rdf-semantics">[OWL 2 RDF-Based Semantics]</span>
|
|
1875
|
+
</dt><dd><span><cite><a href="https://www.w3.org/TR/2012/REC-owl2-rdf-based-semantics-20121211/">OWL 2 Web Ontology Language: <span>RDF-Based Semantics (Second Edition)</span></a></cite> Michael Schneider, editor. W3C Recommendation, 11 December 2012, <a href="https://www.w3.org/TR/2012/REC-owl2-rdf-based-semantics-20121211/">http://www.w3.org/TR/2012/REC-owl2-rdf-based-semantics-20121211/</a>. Latest version available at <a href="https://www.w3.org/TR/owl2-rdf-based-semantics/">http://www.w3.org/TR/owl2-rdf-based-semantics/</a>.</span></dd><dt> <span id="ref-owl-2-specification">[OWL 2 Specification]</span>
|
|
1876
|
+
</dt><dd><span><cite><a href="https://www.w3.org/TR/2012/REC-owl2-syntax-20121211/">OWL 2 Web Ontology Language: <span>Structural Specification and Functional-Style Syntax (Second Edition)</span></a></cite> Boris Motik, Peter F. Patel-Schneider, Bijan Parsia, eds. W3C Recommendation, 11 December 2012, <a href="https://www.w3.org/TR/2012/REC-owl2-syntax-20121211/">http://www.w3.org/TR/2012/REC-owl2-syntax-20121211/</a>. Latest version available at <a href="https://www.w3.org/TR/owl2-syntax/">http://www.w3.org/TR/owl2-syntax/</a>.</span></dd><dt> <span id="ref-rfc-2119">[RFC 2119]</span>
|
|
1877
|
+
</dt><dd> <cite><a class="external text" href="http://www.ietf.org/rfc/rfc2119.txt" rel="nofollow" title="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119: Key words for use in RFCs to Indicate Requirement Levels</a></cite>. Network Working Group, S. Bradner. IETF, March 1997, http://www.ietf.org/rfc/rfc2119.txt
|
|
1878
|
+
</dd></dl>
|
|
1879
|
+
<a id="Nonnormative_References" name="Nonnormative_References"></a><h3> <span class="mw-headline">9.2 非规范性参考文献 </span></h3>
|
|
1880
|
+
<dl><dt> <span id="ref-complexity">[Complexity]</span>
|
|
1881
|
+
</dt><dd> <cite><a class="external text" href="http://lat.inf.tu-dresden.de/research/phd/Tobies-PhD-2001.pdf" rel="nofollow" title="http://lat.inf.tu-dresden.de/research/phd/Tobies-PhD-2001.pdf">Complexity Results and Practical Algorithms for Logics in Knowledge Representation</a></cite>. Stephan Tobies. Ph.D Dissertation, 2002
|
|
1882
|
+
</dd><dt> <span id="ref-DL-Lite">[DL-Lite]</span>
|
|
1883
|
+
</dt><dd> <cite><a class="external text" href="http://www.springerlink.com/content/n17338715966v81h/" rel="nofollow" title="http://www.springerlink.com/content/n17338715966v81h/">Tractable Reasoning and Efficient Query Answering in Description Logics: The DL-Lite Family</a></cite>. Diego Calvanese, Giuseppe de Giacomo, Domenico Lembo, Maurizio Lenzerini, Riccardo Rosati. J. of Automated Reasoning 39(3):385–429, 2007
|
|
1884
|
+
</dd><dt> <span id="ref-DL-Lite-bool">[DL-Lite-bool]</span>
|
|
1885
|
+
</dt><dd> <cite><a class="external text" href="http://www.dcs.bbk.ac.uk/~michael/DL-LiteFamily.pdf" rel="nofollow" title="http://www.dcs.bbk.ac.uk/~michael/DL-LiteFamily.pdf">The DL-Lite Family and Relatives</a></cite>. Alessandro Artale, Diego Calvanese, Roman Kontchakov, Michael Zakharyaschev, submitted.
|
|
1886
|
+
</dd><dt> <span id="ref-dlp">[DLP]</span>
|
|
1887
|
+
</dt><dd> <cite><a class="external text" href="http://www2003.org/cdrom/papers/refereed/p117/p117-grosof.html" rel="nofollow" title="http://www2003.org/cdrom/papers/refereed/p117/p117-grosof.html">Description Logic Programs: Combining Logic Programs with Description Logic</a></cite>. Benjamin N. Grosof, Ian Horrocks, Raphael Volz, and Stefan Decker. in Proc. of the 12th Int. World Wide Web Conference (WWW 2003), Budapest, Hungary, 2003. pp.: 48–57
|
|
1888
|
+
</dd><dt> <span id="ref-ELpp">[EL++]</span>
|
|
1889
|
+
</dt><dd> <cite><a class="external text" href="http://lat.inf.tu-dresden.de/research/papers/2005/BaaderBrandtLutz-IJCAI-05.pdf" rel="nofollow" title="http://lat.inf.tu-dresden.de/research/papers/2005/BaaderBrandtLutz-IJCAI-05.pdf">Pushing the EL Envelope</a></cite>. Franz Baader, Sebastian Brandt, and Carsten Lutz. In Proc. of the 19th Joint Int. Conf. on Artificial Intelligence (IJCAI 2005), 2005
|
|
1890
|
+
</dd><dt> <span id="ref-ELppUpd">[EL++ Update]</span>
|
|
1891
|
+
</dt><dd> <cite><a class="external text" href="http://www.webont.org/owled/2008dc/papers/owled2008dc_paper_3.pdf" rel="nofollow" title="http://www.webont.org/owled/2008dc/papers/owled2008dc_paper_3.pdf">Pushing the EL Envelope Further</a></cite>. Franz Baader, Sebastian Brandt, and Carsten Lutz. In Proc. of the Washington DC workshop on OWL: Experiences and Directions (OWLED08DC), 2008
|
|
1892
|
+
</dd><dt> <span id="ref-owl-1-reference">[OWL 1 Reference]</span>
|
|
1893
|
+
</dt><dd> <cite><a class="external text" href="https://www.w3.org/TR/owl-ref/" rel="nofollow" title="http://www.w3.org/TR/owl-ref/">OWL Web Ontology Language Reference</a></cite>. Mike Dean and Guus Screiber, eds., W3C Recommendation, 10 February 2004.
|
|
1894
|
+
</dd><dt> <span id="ref-owl-2-primer">[OWL 2 Primer]</span>
|
|
1895
|
+
</dt><dd><span><cite><a href="https://www.w3.org/TR/2012/REC-owl2-primer-20121211/">OWL 2 Web Ontology Language: <span>Primer (Second Edition)</span></a></cite> Pascal Hitzler, Markus Krötzsch, Bijan Parsia, Peter F. Patel-Schneider, Sebastian Rudolph, eds. W3C Recommendation, 11 December 2012, <a href="https://www.w3.org/TR/2012/REC-owl2-primer-20121211/">http://www.w3.org/TR/2012/REC-owl2-primer-20121211/</a>. Latest version available at <a href="https://www.w3.org/TR/owl2-primer/">http://www.w3.org/TR/owl2-primer/</a>.</span></dd><dt> <span id="ref-papa">[Papadimitriou]</span>
|
|
1896
|
+
</dt><dd> <cite><a class="external text" href="https://en.wikipedia.org/wiki/Christos_Papadimitriou" rel="nofollow" title="http://en.wikipedia.org/wiki/Christos_Papadimitriou">Christos H. Papadimitriou</a></cite>. Computational Complexity. Addison Wesley Publ. Co., Reading, Massachussetts, 1994.
|
|
1897
|
+
</dd><dt> <span id="ref-pdstar">[pD*]</span>
|
|
1898
|
+
</dt><dd> <cite><a class="external text" href="http://linkinghub.elsevier.com/retrieve/pii/S1570826805000144" rel="nofollow" title="http://linkinghub.elsevier.com/retrieve/pii/S1570826805000144">Completeness, decidability and complexity of entailment for RDF Schema and a semantic extension involving the OWL vocabulary</a></cite>. Herman J. ter Horst. J. of Web Semantics 3(2–3):79–115, 2005
|
|
1899
|
+
</dd><dt> <span id="ref-rdf-semantics">[RDF Semantics]</span>
|
|
1900
|
+
</dt><dd> <cite><a class="external text" href="https://www.w3.org/TR/2004/REC-rdf-mt-20040210/" rel="nofollow" title="http://www.w3.org/TR/2004/REC-rdf-mt-20040210/">RDF Semantics</a></cite>. Patrick Hayes, ed., W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-mt-20040210/. Latest version available as http://www.w3.org/TR/rdf-mt/.
|
|
1901
|
+
</dd><dt> <span id="ref-rif-rdf-owl">[RIF RDF & OWL]</span>
|
|
1902
|
+
</dt><dd> <cite><a class="external text" href="https://www.w3.org/TR/rif-rdf-owl/" rel="nofollow" title="http://www.w3.org/TR/rif-rdf-owl/">RIF RDF and OWL Compatibility</a></cite>. Jos de Bruijn, ed., W3C Working Draft, 30 July 2008.
|
|
1903
|
+
</dd><dt> <span id="ref-snomed-ct">[SNOMED CT]</span>
|
|
1904
|
+
</dt><dd> <cite><a class="external text" href="http://www.ihtsdo.org/snomed-ct/" rel="nofollow" title="http://www.ihtsdo.org/snomed-ct/">Systematized Nomenclature of Medicine – Clinical Terms</a></cite>. International Health Terminology Standards Development Organization (IHTSDO)
|
|
1905
|
+
</dd><dt> <span id="ref-automated-reasoning">[Automated Reasoning]</span>
|
|
1906
|
+
</dt><dd> <cite><a class="external text" href="http://www.elsevier.com/wps/find/bookdescription.cws_home/622118/description" rel="nofollow" title="http://www.elsevier.com/wps/find/bookdescription.cws_home/622118/description">Handbook of Automated Reasoning</a></cite>. A. Robinson and A. Voronkov, eds., Elsevier Science, 2001
|
|
1907
|
+
</dd><dt> <span id="ref-logic-programming">[Logic Programming]</span>
|
|
1908
|
+
</dt><dd> <cite><a class="external text" href="http://www.cs.ttu.edu/~mgelfond/papers/survey.pdf" rel="nofollow" title="http://www.cs.ttu.edu/~mgelfond/papers/survey.pdf">Logic programming and knowledge representation</a></cite>. Chitta Baral and Michael Gelfond. Journal of Logic Programming 19:73–148, 1994.
|
|
1909
|
+
</dd><dt> <span id="ref-lloyd">[Lloyd]</span>
|
|
1910
|
+
</dt><dd> <cite>Foundations of Logic Programming, 2nd ed.</cite> John Wylie Lloyd. Springer-Verlag, Berlin, Germany, 1987.
|
|
1911
|
+
</dd></dl>
|
|
1912
|
+
|
|
1913
|
+
|
|
1914
|
+
<script src="https://www.w3.org/scripts/TR/fixup.js"></script></body>
|