rdf_context 0.4.8 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (248) hide show
  1. data/History.txt +27 -0
  2. data/README.rdoc +22 -9
  3. data/Rakefile +11 -6
  4. data/VERSION +1 -1
  5. data/bin/rdf_context +12 -4
  6. data/lib/rdf_context.rb +3 -1
  7. data/lib/rdf_context/aggregate_graph.rb +86 -0
  8. data/lib/rdf_context/array_hacks.rb +53 -0
  9. data/lib/rdf_context/conjunctive_graph.rb +1 -1
  10. data/lib/rdf_context/exceptions.rb +9 -7
  11. data/lib/rdf_context/graph.rb +174 -15
  12. data/lib/rdf_context/literal.rb +34 -2
  13. data/lib/rdf_context/n3_grammar.treetop +213 -129
  14. data/lib/rdf_context/n3parser.rb +281 -57
  15. data/lib/rdf_context/namespace.rb +23 -12
  16. data/lib/rdf_context/parser.rb +4 -3
  17. data/lib/rdf_context/quoted_graph.rb +38 -0
  18. data/lib/rdf_context/rdfaparser.rb +2 -1
  19. data/lib/rdf_context/rdfxmlparser.rb +4 -3
  20. data/lib/rdf_context/store/abstract_sql_store.rb +4 -4
  21. data/lib/rdf_context/store/abstract_store.rb +5 -1
  22. data/lib/rdf_context/store/sqlite3_store.rb +10 -8
  23. data/lib/rdf_context/string_hacks.rb +44 -21
  24. data/lib/rdf_context/term_utils.rb +73 -4
  25. data/lib/rdf_context/triple.rb +32 -47
  26. data/lib/rdf_context/uriref.rb +33 -26
  27. data/spec/aggregate_graph_spec.rb +59 -0
  28. data/spec/conjunctive_graph_spec.rb +1 -1
  29. data/spec/cwm_spec.rb +32 -0
  30. data/spec/graph_spec.rb +114 -3
  31. data/spec/literal_spec.rb +107 -5
  32. data/spec/matchers.rb +104 -51
  33. data/spec/n3parser_spec.rb +798 -99
  34. data/spec/namespaces_spec.rb +26 -0
  35. data/spec/quoted_graph_spec.rb +0 -0
  36. data/spec/rdf_helper.rb +197 -0
  37. data/spec/rdfa_helper.rb +15 -11
  38. data/spec/rdfa_parser_spec.rb +6 -8
  39. data/spec/rdfxml_spec.rb +21 -28
  40. data/spec/spec_helper.rb +20 -0
  41. data/spec/sqlite3_store_spec.rb +6 -5
  42. data/spec/store_helper.rb +9 -1
  43. data/spec/string_hacks_spec.rb +14 -0
  44. data/spec/{rdfxml_helper.rb → swap_helper.rb} +8 -9
  45. data/spec/swap_spec.rb +77 -0
  46. data/spec/swap_test/animal.rdf +17 -0
  47. data/spec/swap_test/anon-prop.n3 +14 -0
  48. data/spec/swap_test/anonymous_loop.n3 +2 -0
  49. data/spec/swap_test/contexts.n3 +16 -0
  50. data/spec/swap_test/daml-pref.n3 +10 -0
  51. data/spec/swap_test/i18n/hiragana.n3 +22 -0
  52. data/spec/swap_test/i18n/n3string.n3 +4 -0
  53. data/spec/swap_test/list/itemType.rdf +12 -0
  54. data/spec/swap_test/lists-simple.n3 +40 -0
  55. data/spec/swap_test/lists.n3 +35 -0
  56. data/spec/swap_test/n3/n3parser.tests_n3_10001.nt +3 -0
  57. data/spec/swap_test/n3/n3parser.tests_n3_10002.nt +7 -0
  58. data/spec/swap_test/n3/n3parser.tests_n3_10003.nt +3 -0
  59. data/spec/swap_test/n3/n3parser.tests_n3_10004.nt +119 -0
  60. data/spec/swap_test/n3/n3parser.tests_n3_10005.nt +3 -0
  61. data/spec/swap_test/n3/n3parser.tests_n3_10006.nt +225 -0
  62. data/spec/swap_test/n3/n3parser.tests_n3_10007.nt +79 -0
  63. data/spec/swap_test/n3/n3parser.tests_n3_10008.nt +5 -0
  64. data/spec/swap_test/n3/n3parser.tests_n3_10009.nt +13 -0
  65. data/spec/swap_test/n3/n3parser.tests_n3_10010.nt +21 -0
  66. data/spec/swap_test/n3/n3parser.tests_n3_10011.nt +9 -0
  67. data/spec/swap_test/n3/n3parser.tests_n3_10012.nt +53 -0
  68. data/spec/swap_test/n3/n3parser.tests_n3_10013.nt +19 -0
  69. data/spec/swap_test/n3/n3parser.tests_n3_10014.nt +103 -0
  70. data/spec/swap_test/n3/n3parser.tests_n3_10015.nt +103 -0
  71. data/spec/swap_test/n3/n3parser.tests_n3_10016.nt +3 -0
  72. data/spec/swap_test/n3/n3parser.tests_n3_10017.nt +151 -0
  73. data/spec/swap_test/n3/n3parser.tests_n3_10018.nt +9 -0
  74. data/spec/swap_test/n3/n3parser.tests_n3_10019.nt +3 -0
  75. data/spec/swap_test/n3/n3parser.tests_n3_10020.nt +13 -0
  76. data/spec/swap_test/n3parser.tests +160 -0
  77. data/spec/swap_test/nodeID/classes.n3 +9 -0
  78. data/spec/swap_test/nodeID/classes.ref.rdf +15 -0
  79. data/spec/swap_test/nodeID/ex1.rdf +15 -0
  80. data/spec/swap_test/norm/fix.rdf +33 -0
  81. data/spec/swap_test/owl-ex.rdf +150 -0
  82. data/spec/swap_test/ref/animal.n3 +11 -0
  83. data/spec/swap_test/ref/anon-prop-1.n3 +8 -0
  84. data/spec/swap_test/ref/anonymous_loop.ref +7 -0
  85. data/spec/swap_test/ref/bnode.n3 +6 -0
  86. data/spec/swap_test/ref/bnode.rdf +16 -0
  87. data/spec/swap_test/ref/colon-in-uri.n3 +15 -0
  88. data/spec/swap_test/ref/daml-ex.n3 +103 -0
  89. data/spec/swap_test/ref/daml-ont.n3 +289 -0
  90. data/spec/swap_test/ref/djb1a-out.n3 +4 -0
  91. data/spec/swap_test/ref/dot-dash.n3 +8 -0
  92. data/spec/swap_test/ref/in-xml-t.n3 +4 -0
  93. data/spec/swap_test/ref/itemType.n3 +9 -0
  94. data/spec/swap_test/ref/keywords1.n3 +11 -0
  95. data/spec/swap_test/ref/keywords2.n3 +11 -0
  96. data/spec/swap_test/ref/lists-simple-1.rdf +108 -0
  97. data/spec/swap_test/ref/lists.n3 +43 -0
  98. data/spec/swap_test/ref/lstring-out.n3 +20 -0
  99. data/spec/swap_test/ref/n3string.n3 +13 -0
  100. data/spec/swap_test/ref/no-last-nl.n3 +3 -0
  101. data/spec/swap_test/ref/numbers.n3 +18 -0
  102. data/spec/swap_test/ref/path1.n3 +8 -0
  103. data/spec/swap_test/ref/path2.n3 +39 -0
  104. data/spec/swap_test/ref/prefix1.rdf +31 -0
  105. data/spec/swap_test/ref/prefix3.rdf +31 -0
  106. data/spec/swap_test/ref/rdf-redefine.rdf +11 -0
  107. data/spec/swap_test/ref/reluri-1.rdf +18 -0
  108. data/spec/swap_test/ref/strquot.n3 +23 -0
  109. data/spec/swap_test/ref/strquot_a.n3 +23 -0
  110. data/spec/swap_test/ref/xml-base3.n3 +5 -0
  111. data/spec/swap_test/ref/xml-redefine.rdf +20 -0
  112. data/spec/swap_test/ref/xml-redefine2.rdf +23 -0
  113. data/spec/swap_test/ref/xml-syntax-basic-serialization.rdf +10 -0
  114. data/spec/swap_test/ref/xmllit.nt +3 -0
  115. data/spec/swap_test/regression.n3 +231 -0
  116. data/spec/swap_test/reluri-1.n3 +10 -0
  117. data/spec/swap_test/strquot.n3 +23 -0
  118. data/spec/swap_test/syntax/colon-in-uri.rdf +27 -0
  119. data/spec/swap_test/syntax/djb1a.n3 +3 -0
  120. data/spec/swap_test/syntax/dot-dash.n3 +15 -0
  121. data/spec/swap_test/syntax/equals1.n3 +1 -0
  122. data/spec/swap_test/syntax/equals2.n3 +1 -0
  123. data/spec/swap_test/syntax/keywords1.n3 +17 -0
  124. data/spec/swap_test/syntax/keywords2.n3 +18 -0
  125. data/spec/swap_test/syntax/lstring.n3 +26 -0
  126. data/spec/swap_test/syntax/neg-formula-predicate.n3 +1 -0
  127. data/spec/swap_test/syntax/neg-keywords3.n3 +1 -0
  128. data/spec/swap_test/syntax/neg-literal-predicate.n3 +1 -0
  129. data/spec/swap_test/syntax/neg-single-quote.n3 +1 -0
  130. data/spec/swap_test/syntax/neg-thisadoc.n3 +1 -0
  131. data/spec/swap_test/syntax/no-last-nl.n3 +2 -0
  132. data/spec/swap_test/syntax/numbers.n3 +26 -0
  133. data/spec/swap_test/syntax/path1.n3 +23 -0
  134. data/spec/swap_test/syntax/path2.n3 +31 -0
  135. data/spec/swap_test/syntax/qvars1.n3 +19 -0
  136. data/spec/swap_test/syntax/qvars2.n3 +19 -0
  137. data/spec/swap_test/syntax/this-quantifiers.n3 +164 -0
  138. data/spec/swap_test/syntax/this-rules.n3 +43 -0
  139. data/spec/swap_test/syntax/too-nested.n3 +25 -0
  140. data/spec/swap_test/syntax/trailing-semicolon.n3 +12 -0
  141. data/spec/swap_test/syntax/zero-objects.n3 +1 -0
  142. data/spec/swap_test/syntax/zero-predicates.n3 +3 -0
  143. data/spec/swap_test/tests-work.txt +25 -0
  144. data/spec/swap_test/xml-syntax/basic-serialization.n3 +8 -0
  145. data/spec/swap_test/xml-syntax/in-xml.xml +13 -0
  146. data/spec/swap_test/xml-syntax/non-ascii-pred.rdf +14 -0
  147. data/spec/swap_test/xml-syntax/rdf_prefix.n3 +2 -0
  148. data/spec/swap_test/xml-syntax/xml_prefix.n3 +7 -0
  149. data/spec/swap_test/xml-syntax/xml_prefix2.n3 +9 -0
  150. data/spec/swap_test/xml-syntax/xmlbase3.rdf +10 -0
  151. data/spec/swap_test/xml-syntax/xmllit.rdf +33 -0
  152. data/spec/triple_spec.rb +90 -46
  153. data/spec/turtle/README.txt +20 -0
  154. data/spec/turtle/bad-00.ttl +2 -0
  155. data/spec/turtle/bad-01.ttl +3 -0
  156. data/spec/turtle/bad-02.ttl +3 -0
  157. data/spec/turtle/bad-03.ttl +3 -0
  158. data/spec/turtle/bad-04.ttl +3 -0
  159. data/spec/turtle/bad-05.ttl +4 -0
  160. data/spec/turtle/bad-06.ttl +3 -0
  161. data/spec/turtle/bad-07.ttl +4 -0
  162. data/spec/turtle/bad-08.ttl +2 -0
  163. data/spec/turtle/bad-09.ttl +3 -0
  164. data/spec/turtle/bad-10.ttl +3 -0
  165. data/spec/turtle/bad-11.ttl +3 -0
  166. data/spec/turtle/bad-12.ttl +3 -0
  167. data/spec/turtle/bad-13.ttl +3 -0
  168. data/spec/turtle/bad-14.ttl +6 -0
  169. data/spec/turtle/manifest-bad.ttl +88 -0
  170. data/spec/turtle/manifest.ttl +215 -0
  171. data/spec/turtle/rdf-schema.out +126 -0
  172. data/spec/turtle/rdf-schema.ttl +156 -0
  173. data/spec/turtle/rdfq-results.out +36 -0
  174. data/spec/turtle/rdfq-results.ttl +39 -0
  175. data/spec/turtle/rdfs-namespace.out +131 -0
  176. data/spec/turtle/rdfs-namespace.ttl +160 -0
  177. data/spec/turtle/test-00.out +1 -0
  178. data/spec/turtle/test-00.ttl +2 -0
  179. data/spec/turtle/test-01.out +3 -0
  180. data/spec/turtle/test-01.ttl +7 -0
  181. data/spec/turtle/test-02.out +3 -0
  182. data/spec/turtle/test-02.ttl +5 -0
  183. data/spec/turtle/test-03.out +3 -0
  184. data/spec/turtle/test-03.ttl +5 -0
  185. data/spec/turtle/test-04.out +2 -0
  186. data/spec/turtle/test-04.ttl +4 -0
  187. data/spec/turtle/test-05.out +4 -0
  188. data/spec/turtle/test-05.ttl +4 -0
  189. data/spec/turtle/test-06.out +1 -0
  190. data/spec/turtle/test-06.ttl +3 -0
  191. data/spec/turtle/test-07.out +5 -0
  192. data/spec/turtle/test-07.ttl +3 -0
  193. data/spec/turtle/test-08.out +1 -0
  194. data/spec/turtle/test-08.ttl +3 -0
  195. data/spec/turtle/test-09.out +4 -0
  196. data/spec/turtle/test-09.ttl +10 -0
  197. data/spec/turtle/test-10.out +5 -0
  198. data/spec/turtle/test-10.ttl +5 -0
  199. data/spec/turtle/test-11.out +4 -0
  200. data/spec/turtle/test-11.ttl +10 -0
  201. data/spec/turtle/test-12.out +4 -0
  202. data/spec/turtle/test-12.ttl +9 -0
  203. data/spec/turtle/test-13.out +2 -0
  204. data/spec/turtle/test-13.ttl +7 -0
  205. data/spec/turtle/test-14.out +10000 -0
  206. data/spec/turtle/test-14.ttl +10002 -0
  207. data/spec/turtle/test-15.out +10000 -0
  208. data/spec/turtle/test-15.ttl +3 -0
  209. data/spec/turtle/test-16.out +10000 -0
  210. data/spec/turtle/test-16.ttl +10002 -0
  211. data/spec/turtle/test-17.out +1 -0
  212. data/spec/turtle/test-17.ttl +6 -0
  213. data/spec/turtle/test-18.out +2 -0
  214. data/spec/turtle/test-18.ttl +9 -0
  215. data/spec/turtle/test-19.out +1 -0
  216. data/spec/turtle/test-19.ttl +4 -0
  217. data/spec/turtle/test-20.out +2 -0
  218. data/spec/turtle/test-20.ttl +6 -0
  219. data/spec/turtle/test-21.out +3 -0
  220. data/spec/turtle/test-21.ttl +4 -0
  221. data/spec/turtle/test-22.out +3 -0
  222. data/spec/turtle/test-22.ttl +4 -0
  223. data/spec/turtle/test-23.out +1 -0
  224. data/spec/turtle/test-23.ttl +3 -0
  225. data/spec/turtle/test-24.out +2 -0
  226. data/spec/turtle/test-24.ttl +3 -0
  227. data/spec/turtle/test-25.out +7 -0
  228. data/spec/turtle/test-25.ttl +14 -0
  229. data/spec/turtle/test-26.out +1 -0
  230. data/spec/turtle/test-26.ttl +4 -0
  231. data/spec/turtle/test-27.out +1 -0
  232. data/spec/turtle/test-27.ttl +5 -0
  233. data/spec/turtle/test-28-out.ttl +6 -0
  234. data/spec/turtle/test-28.out +22 -0
  235. data/spec/turtle/test-28.ttl +22 -0
  236. data/spec/turtle/test-29.out +1 -0
  237. data/spec/turtle/test-29.ttl +1 -0
  238. data/spec/turtle/test-30.out +5 -0
  239. data/spec/turtle/test-30.ttl +12 -0
  240. data/spec/turtle_spec.rb +64 -0
  241. data/spec/uriref_spec.rb +74 -34
  242. data/test/n3_tests/rdflib/n3-writer-teset-26.n3 +31 -0
  243. data/test/n3_tests/rdflib/n3-writer-teset-26.nt +14 -0
  244. data/test/rdf_tests/xml-literal-mixed.nt +1 -2
  245. metadata +278 -39
  246. data/lib/rdf_context/n3_grammar.rb +0 -2171
  247. data/test/perf_test/test.rb +0 -11
  248. data/test/perf_test/tommorris.rdf +0 -2267
@@ -0,0 +1,9 @@
1
+ @prefix log: <http://www.w3.org/2000/10/swap/log#> .
2
+
3
+ @forSome :_x .
4
+
5
+ :yosi :likes :_x;
6
+ :eats :_x .
7
+
8
+ :_x a :Thing;
9
+ :color :red .
@@ -0,0 +1,15 @@
1
+
2
+
3
+
4
+ <rdf:RDF xmlns="http://example.com/swap/test/nodeID/classes.n3#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
6
+
7
+ <Thing rdf:nodeID="b1">
8
+ <color rdf:resource="#red"/>
9
+ </Thing>
10
+
11
+ <rdf:Description rdf:about="#yosi">
12
+ <eats rdf:nodeID="b1"/>
13
+ <likes rdf:nodeID="b1"/>
14
+ </rdf:Description>
15
+ </rdf:RDF>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0"?>
2
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:ex="http://example.org/stuff/1.0/">
5
+ <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
6
+ dc:title="RDF/XML Syntax Specification (Revised)">
7
+ <ex:editor rdf:nodeID="abc"/>
8
+ </rdf:Description>
9
+
10
+ <rdf:Description rdf:nodeID="abc"
11
+ ex:fullName="Dave Beckett">
12
+ <ex:homePage rdf:resource="http://purl.org/net/dajobe/"/>
13
+ </rdf:Description>
14
+ </rdf:RDF>
15
+
@@ -0,0 +1,33 @@
1
+ <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
2
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3
+ xmlns:cal="http://nwalsh.com/pim/Palm/Calendar#"
4
+ xmlns:da="file:/home79536262/ndw/.xmlDate.rdf#"
5
+ xmlns:log="http://www.w3.org/2000/10/swap/log#"
6
+ xmlns:palm="http://nwalsh.com/pim/Palm/DateBook#"
7
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
8
+
9
+ <rdf:Description rdf:about="http://nwalsh.com/pim/Palm/Calendar#_2002_2">
10
+ <da:appointments rdf:parseType="Resource">
11
+ <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq"/>
12
+ <rdf:_1 rdf:resource="file:/home79536262/ndw/.xmlDate.rdf#id166"/>
13
+ <rdf:_2 rdf:resource="file:/home79536262/ndw/.xmlDate.rdf#id172"/>
14
+ <rdf:_3 rdf:resource="file:/home79536262/ndw/.xmlDate.rdf#id93"/>
15
+ <_4 rdf:resource="file:/home79536262/ndw/.xmlDate.rdf#id193"/>
16
+ <_5 rdf:resource="file:/home79536262/ndw/.xmlDate.rdf#id192"/>
17
+ <_6 rdf:resource="file:/home79536262/ndw/.xmlDate.rdf#id104"/>
18
+ <_7 rdf:resource="file:/home79536262/ndw/.xmlDate.rdf#id157"/>
19
+ <_8 rdf:resource="file:/home79536262/ndw/.xmlDate.rdf#id32"/>
20
+ </da:appointments>
21
+ <cal:month>2</cal:month>
22
+ <cal:year>2002</cal:year>
23
+ <Seq rdf:parseType="Resource">
24
+ <_1 rdf:resource="http://nwalsh.com/pim/Palm/Calendar#_week_2002_2_1"/>
25
+ <_2 rdf:resource="http://nwalsh.com/pim/Palm/Calendar#_week_2002_2_2"/>
26
+ <_3 rdf:resource="http://nwalsh.com/pim/Palm/Calendar#_week_2002_2_3"/>
27
+ <_4 rdf:resource="http://nwalsh.com/pim/Palm/Calendar#_week_2002_2_4"/>
28
+ <_5 rdf:resource="http://nwalsh.com/pim/Palm/Calendar#_week_2002_2_5"/>
29
+ </Seq>
30
+ </rdf:Description>
31
+ </RDF>
32
+
33
+
@@ -0,0 +1,150 @@
1
+ <!--
2
+ Derived from daml-ex.rdf which used old namespaces, but was an early common test
3
+
4
+ The following message was in this daml-ex.rdf, dunno what it refers to - tbl
5
+ @@@ WARNING THIS ATTRIBUES ATE SCREWED UP IN this daml-ex.rdf
6
+ -->
7
+ <rdf:RDF
8
+ xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
9
+ xmlns ="http://www.w3.org/2002/07/owl#"
10
+ xmlns:dpo ="http://www.w3.org/2002/07/owl#"
11
+ xmlns:ex ="#"
12
+ >
13
+
14
+ <Ontology about="">
15
+ <versionInfo>$Id: owl-ex.rdf,v 1.3 2004-06-21 16:53:34 syosi Exp $</versionInfo>
16
+ <comment>An example ontology</comment>
17
+ <imports resource="http://www.daml.org/2000/10/daml-ont"/>
18
+ </Ontology>
19
+
20
+ <Class ID="Animal">
21
+ <label>Animal</label>
22
+ <comment>This class of animals is illustrative of a number of
23
+ ontological idioms.</comment>
24
+ </Class>
25
+
26
+ <Class ID="Male">
27
+ <subClassOf resource="#Animal"/>
28
+ </Class>
29
+
30
+ <Class ID="Female">
31
+ <subClassOf resource="#Animal"/>
32
+ <disjointFrom resource="#Male"/>
33
+ </Class>
34
+
35
+ <Property ID="parent">
36
+ <domain resource="#Animal"/>
37
+ <cardinality>2</cardinality>
38
+ </Property>
39
+
40
+ <Class ID="Person">
41
+ <subClassOf resource="#Animal"/>
42
+ <restrictedBy>
43
+ <Restriction>
44
+ <onProperty resource="#parent"/>
45
+ <toClass resource="#Person"/>
46
+ </Restriction>
47
+ </restrictedBy>
48
+ </Class>
49
+
50
+ <Property ID="father">
51
+ <subProperty resource="#parent"/>
52
+ <range resource="#Man"/>
53
+ <cardinality>1</cardinality>
54
+ </Property>
55
+
56
+ <UniqueProperty ID="mother">
57
+ <subProperty resource="#parent"/>
58
+ <range resource="#Woman"/>
59
+ </UniqueProperty>
60
+
61
+ <!-- need an example for UnambiguousProperty -->
62
+
63
+ <Property ID="child">
64
+ <inverseOf resource="#parent"/>
65
+ </Property>
66
+
67
+ <TransitiveProperty ID="ancestor">
68
+ <label>ancestor</label>
69
+ </TransitiveProperty>
70
+
71
+ <TransitiveProperty ID="descendant"/>
72
+
73
+ <Property ID="mom">
74
+ <sameAs resource="#mother"/>
75
+ </Property>
76
+
77
+ <Property ID="occupation">
78
+ <maxCardinality>1</maxCardinality>
79
+ </Property>
80
+
81
+ <Class ID="Car">
82
+ <comment>no car is a person</comment>
83
+ <subClassOf>
84
+ <Class>
85
+ <complementOf resource="#Person"/>
86
+ </Class>
87
+ </subClassOf>
88
+ </Class>
89
+
90
+ <Class ID="Man">
91
+ <subClassOf resource="#Person"/>
92
+ <subClassOf resource="#Male"/>
93
+ </Class>
94
+
95
+ <Class ID="Woman">
96
+ <subClassOf resource="#Person"/>
97
+ <subClassOf resource="#Female"/>
98
+ </Class>
99
+
100
+ <Class about="#Person">
101
+ <comment>every person is a man or a woman</comment>
102
+ <disjointUnionOf parseType="rdf:collection">
103
+ <Class about="#Man"/>
104
+ <Class about="#Woman"/>
105
+ </disjointUnionOf>
106
+ </Class>
107
+
108
+ <Person ID="Adam">
109
+ <label>Adam</label>
110
+ <comment>Adam is a person.</comment>
111
+ </Person>
112
+
113
+ <Property ID="height">
114
+ <domain resource="#Person"/>
115
+ <range resource="#Height"/>
116
+ </Property>
117
+
118
+ <Class ID="Height">
119
+ <oneOf rdf:parseType="Collection">
120
+ <Height ID="short"/>
121
+ <Height ID="medium"/>
122
+ <Height ID="tall"/>
123
+ </oneOf>
124
+ </Class>
125
+
126
+ <Class ID="TallThing">
127
+ <restrictedBy>
128
+ <Restriction>
129
+ <onProperty resource="#height"/>
130
+ <toValue resource="#tall"/>
131
+ </Restriction>
132
+ </restrictedBy>
133
+ </Class>
134
+
135
+ <!-- @@ need example of hasValue qualification -->
136
+
137
+ <!-- @@ lack Disjoint example -->
138
+
139
+ <Class ID="TallMan">
140
+ <intersectionOf rdf:parseType="Collection">
141
+ <Class about="#TallThing"/>
142
+ <Class about="#Man"/>
143
+ </intersectionOf>
144
+ </Class>
145
+
146
+ <!-- @@ example of subProperty, label, comment, etc. from RDF/RDFS -->
147
+
148
+ </rdf:RDF>
149
+
150
+
@@ -0,0 +1,11 @@
1
+ @prefix : <http://www.daml.org/2000/12/daml+oil#> .
2
+ @prefix ani: <#> .
3
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
4
+
5
+ ani:Animal a rdfs:Class;
6
+ :restrictedBy [
7
+ a :Restriction;
8
+ :cardinality "2";
9
+ :onProperty ani:parent ];
10
+ rdfs:label "Animal" .
11
+
@@ -0,0 +1,8 @@
1
+ @prefix : <#> .
2
+
3
+ @forSome :_g0 .
4
+
5
+ :anySubj :_g0 :anyObj .
6
+
7
+ :_g0 :propProp "red" .
8
+
@@ -0,0 +1,7 @@
1
+ @prefix : <#> .
2
+
3
+ @forSome :_g0 .
4
+
5
+ :_g0 :z [
6
+ :y :_g0 ] .
7
+
@@ -0,0 +1,6 @@
1
+
2
+ <http://www.w3.org/TR/rdf-syntax-grammar> <http://example.org/stuff/1.0/editor> [
3
+ <http://example.org/stuff/1.0/fullName> "Dave Beckett";
4
+ <http://example.org/stuff/1.0/homePage> <http://purl.org/net/dajobe/> ];
5
+ <http://purl.org/dc/elements/1.1/title> "RDF/XML Syntax Specification (Revised)" .
6
+
@@ -0,0 +1,16 @@
1
+
2
+
3
+
4
+ <rdf:RDF xmlns="http://example.org/stuff/1.0/"
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:ex="http://example.org/stuff/1.0/"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
8
+
9
+ <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
10
+ <editor rdf:parseType="Resource">
11
+ <fullName>Dave Beckett</fullName>
12
+ <homePage rdf:resource="http://purl.org/net/dajobe/"/>
13
+ </editor>
14
+ <dc:title>RDF/XML Syntax Specification (Revised)</dc:title>
15
+ </rdf:Description>
16
+ </rdf:RDF>
@@ -0,0 +1,15 @@
1
+ @prefix : <http://www.w3.org/2000/01/rdf-schema#> .
2
+ @prefix CIM: <http://iec.ch/TC57/2003/CIM-schema-cim10#> .
3
+ @prefix cims: <http://iec.ch/TC57/1999/rdf-schema-extensions-19990926#> .
4
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
5
+
6
+ <http://iec.ch/TC57/2003/CIM-schema-cim10#AirCompressor.DrivenBy_C%20ombustionTurbine> a rdf:Property;
7
+ cims:inverseRoleName <http://iec.ch/TC57/2003/CIM-schema-cim10#CombustionTurbine.Dri%20ves_AirCompressor>;
8
+ cims:multiplicity <http://iec.ch/TC57/1999/rdf-schema-extensions-19990926#M:1>;
9
+ cims:profile "Nerc";
10
+ :comment """A CAES air compressor is driven by combustion
11
+ turbine""";
12
+ :domain CIM:AirCompressor;
13
+ :label "DrivenBy_CombustionTurbine"@en;
14
+ :range CIM:CombustionTurbine .
15
+
@@ -0,0 +1,103 @@
1
+ @prefix : <http://www.w3.org/2002/07/owl#> .
2
+ @prefix ex: <#> .
3
+
4
+ <> a :Ontology;
5
+ :comment "An example ontology";
6
+ :imports <http://www.daml.org/2000/10/daml-ont>;
7
+ :versionInfo "" .
8
+
9
+ ex:Adam a :Person;
10
+ :comment "Adam is a person.";
11
+ :label "Adam" .
12
+
13
+ ex:Animal a :Class;
14
+ :comment """This class of animals is illustrative of a number of
15
+ ontological idioms.""";
16
+ :label "Animal" .
17
+
18
+ ex:Car a :Class;
19
+ :comment "no car is a person";
20
+ :subClassOf [
21
+ a :Class;
22
+ :complementOf ex:Person ] .
23
+
24
+ ex:Female a :Class;
25
+ :disjointFrom ex:Male;
26
+ :subClassOf ex:Animal .
27
+
28
+ ex:Height a :Class;
29
+ :oneOf (
30
+ ex:short
31
+ ex:medium
32
+ ex:tall ) .
33
+
34
+ ex:Male a :Class;
35
+ :subClassOf ex:Animal .
36
+
37
+ ex:Man a :Class;
38
+ :subClassOf ex:Male,
39
+ ex:Person .
40
+
41
+ ex:Person a :Class;
42
+ :comment "every person is a man or a woman";
43
+ :disjointUnionOf (
44
+ ex:Man
45
+ ex:Woman );
46
+ :restrictedBy [
47
+ a :Restriction;
48
+ :onProperty ex:parent;
49
+ :toClass ex:Person ];
50
+ :subClassOf ex:Animal .
51
+
52
+ ex:TallMan a :Class;
53
+ :intersectionOf (
54
+ ex:TallThing
55
+ ex:Man ) .
56
+
57
+ ex:TallThing a :Class;
58
+ :restrictedBy [
59
+ a :Restriction;
60
+ :onProperty ex:height;
61
+ :toValue ex:tall ] .
62
+
63
+ ex:Woman a :Class;
64
+ :subClassOf ex:Female,
65
+ ex:Person .
66
+
67
+ ex:ancestor a :TransitiveProperty;
68
+ :label "ancestor" .
69
+
70
+ ex:child a :Property;
71
+ :inverseOf ex:parent .
72
+
73
+ ex:descendant a :TransitiveProperty .
74
+
75
+ ex:father a :Property;
76
+ :cardinality "1";
77
+ :range ex:Man;
78
+ :subProperty ex:parent .
79
+
80
+ ex:height a :Property;
81
+ :domain ex:Person;
82
+ :range ex:Height .
83
+
84
+ ex:medium a :Height .
85
+
86
+ ex:mom a :Property;
87
+ = ex:mother .
88
+
89
+ ex:mother a :UniqueProperty;
90
+ :range ex:Woman;
91
+ :subProperty ex:parent .
92
+
93
+ ex:occupation a :Property;
94
+ :maxCardinality "1" .
95
+
96
+ ex:parent a :Property;
97
+ :cardinality "2";
98
+ :domain ex:Animal .
99
+
100
+ ex:short a :Height .
101
+
102
+ ex:tall a :Height .
103
+
@@ -0,0 +1,289 @@
1
+ @prefix : <http://www.daml.org/2001/03/daml-ont#> .
2
+ @prefix dam: <daml-ont.rdf#> .
3
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
4
+ @prefix s: <http://www.w3.org/2000/01/rdf-schema#> .
5
+
6
+ <daml-ont.rdf> a :Ontology;
7
+ :imports <http://www.w3.org/2000/01/rdf-schema>;
8
+ :versionInfo "" .
9
+
10
+ dam:Class a :Class;
11
+ :sameClassAs s:Class .
12
+
13
+ dam:Disjoint a :Class;
14
+ :comment """for type(L, Disjoint) read: the classes in L are
15
+ pairwise disjoint.
16
+
17
+ i.e. if type(L, Disjoint), and C1 in L and C2 in L, then disjointWith(C1, C2).
18
+ """;
19
+ :label "Disjoint";
20
+ :subClassOf dam:List .
21
+
22
+ dam:Empty a :Class;
23
+ :asClass dam:Nothing .
24
+
25
+ dam:List a :Class;
26
+ :subClassOf rdf:Seq .
27
+
28
+ dam:Literal a :Class;
29
+ :sameClassAs s:Literal .
30
+
31
+ dam:Nothing a :Class;
32
+ :comment "the class with no things in it.";
33
+ :complementOf dam:Thing .
34
+
35
+ dam:Ontology a :Class;
36
+ :comment """An Ontology is a document that describes
37
+ a vocabulary of terms for communication between
38
+ (human and) automated agents.
39
+ """;
40
+ :label "Ontology" .
41
+
42
+ dam:Property a :Class;
43
+ :sameClassAs rdf:Property .
44
+
45
+ dam:Qualification a :Class .
46
+
47
+ dam:Restriction a :Class .
48
+
49
+ dam:Thing a :Class;
50
+ :comment "The most general class in DAML.";
51
+ :label "Thing" .
52
+
53
+ dam:TransitiveProperty a :Class .
54
+
55
+ dam:UnambiguousProperty a :Class;
56
+ :comment """if P is an UnambiguousProperty, then
57
+ if P(x, y) and P(z, y) then x=z.
58
+ aka injective.
59
+ e.g. if nameOfMonth(m, "Feb")
60
+ and nameOfMonth(n, "Feb") then m and n are the same month.
61
+ """;
62
+ :label "UnambiguousProperty"@en;
63
+ :subClassOf dam:Property .
64
+
65
+ dam:UniqueProperty a :Class;
66
+ :comment """compare with maxCardinality=1; e.g. integer successor:
67
+ if P is a UniqueProperty, then
68
+ if P(x, y) and P(x, z) then y=z.
69
+ aka functional.
70
+ """;
71
+ :label "UniqueProperty";
72
+ :subClassOf dam:Property .
73
+
74
+ dam:cardinality a :Property;
75
+ :comment """for cardinality(P, N) read: P has cardinality N; i.e.
76
+ everything x in the domain of P has N things y such that P(x, y).
77
+ """;
78
+ :domain dam:Property;
79
+ :label "cardinality" .
80
+
81
+ dam:comment a :Property;
82
+ :samePropertyAs s:comment .
83
+
84
+ dam:complementOf a :Property;
85
+ :comment """
86
+ for complementOf(X, Y) read: X is the complement of Y; if something is in Y,
87
+ then it's not in X, and vice versa.
88
+ cf OIL NOT""";
89
+ :domain dam:Class;
90
+ :range dam:Class .
91
+
92
+ dam:default a :Property;
93
+ :comment """default(X, Y) suggests that Y be considered a/the default
94
+ value for the X property. This can be considered
95
+ documentation (ala label, comment) but we don't specify
96
+ any logical impact.
97
+ """;
98
+ :label "default" .
99
+
100
+ dam:disjointUnionOf a :Property;
101
+ :comment """
102
+
103
+ for disjointUnionOf(X, Y) read: X is the disjoint union of the classes in
104
+ the list Y: (a) for any c1 and c2 in Y, disjointWith(c1, c2),
105
+ and (b) i.e. if something is in any of the classes in Y, it's
106
+ in X, and vice versa.
107
+
108
+ cf OIL disjoint-covered
109
+ """;
110
+ :domain dam:Class;
111
+ :label "disjointUnionOf";
112
+ :range dam:List .
113
+
114
+ dam:disjointWith a :Property;
115
+ :comment """for disjointWith(X, Y) read: X and Y have no members
116
+ in common.
117
+ """;
118
+ :domain dam:Class;
119
+ :label "disjointWith";
120
+ :range dam:Class .
121
+
122
+ dam:domain a :Property;
123
+ :samePropertyAs s:domain .
124
+
125
+ dam:equivalentTo a :Property;
126
+ :comment """for equivalentTo(X, Y), read X is an equivalent term to Y.
127
+ """ .
128
+
129
+ dam:first a :Property;
130
+ :domain dam:List .
131
+
132
+ dam:hasValue a :Property;
133
+ :comment """for hasValue(Q, C), read: Q is a hasValue
134
+ qualification to C.""";
135
+ :domain dam:Qualification;
136
+ :label "hasValue";
137
+ :range dam:Class .
138
+
139
+ dam:imports a :Property;
140
+ :comment """for imports(X, Y) read: X imports Y;
141
+ i.e. X asserts the* contents of Y by reference;
142
+ i.e. if imports(X, Y) and you believe X and Y says something,
143
+ then you should believe it.
144
+
145
+ Note: "the contents" is, in the general case,
146
+ an il-formed definite description. Different
147
+ interactions with a resource may expose contents
148
+ that vary with time, data format, preferred language,
149
+ requestor credentials, etc. So for "the contents",
150
+ read "any contents".
151
+ """;
152
+ :label "imports" .
153
+
154
+ dam:intersectionOf a :Property;
155
+ :comment """
156
+ for intersectionOf(X, Y) read: X is the intersection of the classes in the list Y;
157
+ i.e. if something is in all the classes in Y, then it's in X, and vice versa.
158
+ cf OIL AND""";
159
+ :domain dam:Class;
160
+ :range dam:List .
161
+
162
+ dam:inverseOf a :Property;
163
+ :comment """for inverseOf(R, S) read: R is the inverse of S; i.e.
164
+ if R(x, y) then S(y, x) and vice versa.""";
165
+ :domain dam:Property;
166
+ :range dam:Property .
167
+
168
+ dam:isDefinedBy a :Property;
169
+ :samePropertyAs s:isDefinedBy;
170
+ :subPropertyOf dam:seeAlso .
171
+
172
+ dam:item a :Property;
173
+ :comment """for item(L, I) read: I is an item in L; either first(L, I)
174
+ or item(R, I) where rest(L, R).""";
175
+ :domain dam:List .
176
+
177
+ dam:label a :Property;
178
+ :samePropertyAs s:label .
179
+
180
+ dam:maxCardinality a :Property;
181
+ :comment """for maxCardinality(P, N) read: P has maximum cardinality N; i.e.
182
+ everything x in the domain of P has at most N things y such that P(x, y).
183
+ """;
184
+ :domain dam:Property;
185
+ :label "maxCardinality" .
186
+
187
+ dam:minCardinality a :Property;
188
+ :comment """for minCardinality(P, N) read: P has minimum cardinality N; i.e.
189
+ everything x in the domain of P has at least N things y such that P(x, y).
190
+ """;
191
+ :domain dam:Property .
192
+
193
+ dam:onProperty a :Property;
194
+ :comment """for onProperty(R, P), read:
195
+ R is a restriction/qualification on P.""";
196
+ :domain dam:Qualification,
197
+ dam:Restriction;
198
+ :range dam:Property .
199
+
200
+ dam:oneOf a :Property;
201
+ :comment """for oneOf(C, L) read everything in C is one of the
202
+ things in L;
203
+ This lets us define classes by enumerating the members.
204
+ """;
205
+ :domain dam:Class;
206
+ :range dam:List .
207
+
208
+ dam:qualifiedBy a :Property;
209
+ :comment """for qualifiedBy(C, Q), read: C is qualified by Q; i.e. the
210
+ qualification Q applies to C;
211
+
212
+ if onProperty(Q, P) and hasValue(Q, C2)
213
+ then for every i in C, there is some V
214
+ so that type(V, C2) and P(i, V).
215
+ """;
216
+ :domain dam:Class;
217
+ :label "qualifiedBy";
218
+ :range dam:Qualification .
219
+
220
+ dam:range a :Property;
221
+ :samePropertyAs s:range .
222
+
223
+ dam:rest a :Property;
224
+ :domain dam:List;
225
+ :range dam:List .
226
+
227
+ dam:restrictedBy a :Property;
228
+ :comment """for restrictedBy(C, R), read: C is restricted by R; i.e. the
229
+ restriction R applies to c;
230
+
231
+ if onProperty(R, P) and toValue(R, V)
232
+ then for every i in C, we have P(i, V).
233
+
234
+ if onProperty(R, P) and toClass(R, C2)
235
+ then for every i in C and for all j, if P(i, j) then type(j, C2).
236
+ """;
237
+ :domain dam:Class;
238
+ :label "restrictedBy";
239
+ :range dam:Restriction .
240
+
241
+ dam:sameClassAs a :Property;
242
+ :subPropertyOf dam:equivalentTo,
243
+ dam:subClassOf .
244
+
245
+ dam:samePropertyAs a :Property;
246
+ :subPropertyOf dam:equivalentTo,
247
+ dam:subPropertyOf .
248
+
249
+ dam:seeAlso a :Property;
250
+ :samePropertyAs s:seeAlso .
251
+
252
+ dam:subClassOf a :Property;
253
+ :samePropertyAs s:subClassOf .
254
+
255
+ dam:subPropertyOf a :Property;
256
+ :samePropertyAs s:subPropertyOf;
257
+ :subPropertyOf s:subPropertyOf .
258
+
259
+ dam:toClass a :Property;
260
+ :comment "for toClass(R, C), read: R is a restriction to C.";
261
+ :domain dam:Restriction;
262
+ :range dam:Class .
263
+
264
+ dam:toValue a :Property;
265
+ :comment "for toValue(R, V), read: R is a restriction to V.";
266
+ :domain dam:Restriction;
267
+ :range dam:Class .
268
+
269
+ dam:type a :Property;
270
+ :samePropertyAs rdf:type .
271
+
272
+ dam:unionOf a :Property;
273
+ :comment """
274
+ for unionOf(X, Y) read: X is the union of the classes in the list Y;
275
+ i.e. if something is in any of the classes in Y, it's in X, and vice versa.
276
+ cf OIL OR""";
277
+ :domain dam:Class;
278
+ :label "unionOf";
279
+ :range dam:List .
280
+
281
+ dam:value a :Property;
282
+ :samePropertyAs rdf:value .
283
+
284
+ dam:versionInfo a :Property;
285
+ :comment """generally, a string giving information about this
286
+ version; e.g. RCS/CVS keywords
287
+ """;
288
+ :label "versionInfo" .
289
+