rdf_context 0.4.2

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.
Files changed (551) hide show
  1. data/.autotest +2 -0
  2. data/.gitignore +10 -0
  3. data/.gitmodules +3 -0
  4. data/History.txt +73 -0
  5. data/README.rdoc +145 -0
  6. data/Rakefile +77 -0
  7. data/VERSION +1 -0
  8. data/bin/reddy +59 -0
  9. data/lib/rdf_context.rb +60 -0
  10. data/lib/rdf_context/bnode.rb +99 -0
  11. data/lib/rdf_context/conjunctive_graph.rb +47 -0
  12. data/lib/rdf_context/exceptions.rb +11 -0
  13. data/lib/rdf_context/graph.rb +333 -0
  14. data/lib/rdf_context/literal.rb +340 -0
  15. data/lib/rdf_context/n3_grammar.rb +2171 -0
  16. data/lib/rdf_context/n3_grammar.treetop +143 -0
  17. data/lib/rdf_context/n3parser.rb +152 -0
  18. data/lib/rdf_context/namespace.rb +82 -0
  19. data/lib/rdf_context/nokogiri_hacks.rb +8 -0
  20. data/lib/rdf_context/parser.rb +119 -0
  21. data/lib/rdf_context/rdfaparser.rb +398 -0
  22. data/lib/rdf_context/rdfxmlparser.rb +525 -0
  23. data/lib/rdf_context/store/abstract_sql_store.rb +843 -0
  24. data/lib/rdf_context/store/abstract_store.rb +64 -0
  25. data/lib/rdf_context/store/list_store.rb +63 -0
  26. data/lib/rdf_context/store/memory_store.rb +323 -0
  27. data/lib/rdf_context/store/sqlite3_store.rb +223 -0
  28. data/lib/rdf_context/string_hacks.rb +108 -0
  29. data/lib/rdf_context/term_utils.rb +196 -0
  30. data/lib/rdf_context/triple.rb +144 -0
  31. data/lib/rdf_context/uriref.rb +95 -0
  32. data/script/console +10 -0
  33. data/spec/bnode_spec.rb +58 -0
  34. data/spec/conjunctive_graph_spec.rb +60 -0
  35. data/spec/graph_spec.rb +390 -0
  36. data/spec/list_store_spec.rb +12 -0
  37. data/spec/literal_spec.rb +314 -0
  38. data/spec/matchers.rb +150 -0
  39. data/spec/memory_store_spec.rb +23 -0
  40. data/spec/n3parser_spec.rb +229 -0
  41. data/spec/namespaces_spec.rb +66 -0
  42. data/spec/ntriples/test.nt +78 -0
  43. data/spec/parser_spec.rb +29 -0
  44. data/spec/rdfa-triples/0001.nt +1 -0
  45. data/spec/rdfa-triples/0006.nt +2 -0
  46. data/spec/rdfa-triples/0007.nt +3 -0
  47. data/spec/rdfa-triples/0008.nt +1 -0
  48. data/spec/rdfa-triples/0009.nt +1 -0
  49. data/spec/rdfa-triples/0010.nt +2 -0
  50. data/spec/rdfa-triples/0011.nt +3 -0
  51. data/spec/rdfa-triples/0012.nt +1 -0
  52. data/spec/rdfa-triples/0013.nt +1 -0
  53. data/spec/rdfa-triples/0014.nt +1 -0
  54. data/spec/rdfa-triples/0015.nt +2 -0
  55. data/spec/rdfa-triples/0017.nt +3 -0
  56. data/spec/rdfa-triples/0018.nt +1 -0
  57. data/spec/rdfa-triples/0019.nt +1 -0
  58. data/spec/rdfa-triples/0020.nt +1 -0
  59. data/spec/rdfa-triples/0021.nt +1 -0
  60. data/spec/rdfa-triples/0023.nt +1 -0
  61. data/spec/rdfa-triples/0025.nt +2 -0
  62. data/spec/rdfa-triples/0026.nt +1 -0
  63. data/spec/rdfa-triples/0027.nt +1 -0
  64. data/spec/rdfa-triples/0029.nt +1 -0
  65. data/spec/rdfa-triples/0030.nt +1 -0
  66. data/spec/rdfa-triples/0031.nt +1 -0
  67. data/spec/rdfa-triples/0032.nt +1 -0
  68. data/spec/rdfa-triples/0033.nt +2 -0
  69. data/spec/rdfa-triples/0034.nt +1 -0
  70. data/spec/rdfa-triples/0035.nt +1 -0
  71. data/spec/rdfa-triples/0036.nt +1 -0
  72. data/spec/rdfa-triples/0037.nt +1 -0
  73. data/spec/rdfa-triples/0038.nt +1 -0
  74. data/spec/rdfa-triples/0039.nt +1 -0
  75. data/spec/rdfa-triples/0040.nt +1 -0
  76. data/spec/rdfa-triples/0041.nt +1 -0
  77. data/spec/rdfa-triples/0042.nt +0 -0
  78. data/spec/rdfa-triples/0046.nt +3 -0
  79. data/spec/rdfa-triples/0047.nt +3 -0
  80. data/spec/rdfa-triples/0048.nt +3 -0
  81. data/spec/rdfa-triples/0049.nt +2 -0
  82. data/spec/rdfa-triples/0050.nt +2 -0
  83. data/spec/rdfa-triples/0051.nt +2 -0
  84. data/spec/rdfa-triples/0052.nt +1 -0
  85. data/spec/rdfa-triples/0053.nt +2 -0
  86. data/spec/rdfa-triples/0054.nt +2 -0
  87. data/spec/rdfa-triples/0055.nt +2 -0
  88. data/spec/rdfa-triples/0056.nt +3 -0
  89. data/spec/rdfa-triples/0057.nt +4 -0
  90. data/spec/rdfa-triples/0058.nt +6 -0
  91. data/spec/rdfa-triples/0059.nt +6 -0
  92. data/spec/rdfa-triples/0060.nt +2 -0
  93. data/spec/rdfa-triples/0061.nt +1 -0
  94. data/spec/rdfa-triples/0062.nt +1 -0
  95. data/spec/rdfa-triples/0063.nt +1 -0
  96. data/spec/rdfa-triples/0064.nt +1 -0
  97. data/spec/rdfa-triples/0065.nt +3 -0
  98. data/spec/rdfa-triples/0066.nt +1 -0
  99. data/spec/rdfa-triples/0067.nt +1 -0
  100. data/spec/rdfa-triples/0068.nt +1 -0
  101. data/spec/rdfa-triples/0069.nt +1 -0
  102. data/spec/rdfa-triples/0070.nt +1 -0
  103. data/spec/rdfa-triples/0071.nt +1 -0
  104. data/spec/rdfa-triples/0072.nt +1 -0
  105. data/spec/rdfa-triples/0073.nt +1 -0
  106. data/spec/rdfa-triples/0074.nt +1 -0
  107. data/spec/rdfa-triples/0075.nt +1 -0
  108. data/spec/rdfa-triples/0076.nt +23 -0
  109. data/spec/rdfa-triples/0077.nt +23 -0
  110. data/spec/rdfa-triples/0078.nt +6 -0
  111. data/spec/rdfa-triples/0079.nt +3 -0
  112. data/spec/rdfa-triples/0080.nt +1 -0
  113. data/spec/rdfa-triples/0081.nt +6 -0
  114. data/spec/rdfa-triples/0082.nt +8 -0
  115. data/spec/rdfa-triples/0083.nt +6 -0
  116. data/spec/rdfa-triples/0084.nt +8 -0
  117. data/spec/rdfa-triples/0085.nt +4 -0
  118. data/spec/rdfa-triples/0086.nt +0 -0
  119. data/spec/rdfa-triples/0087.nt +23 -0
  120. data/spec/rdfa-triples/0088.nt +3 -0
  121. data/spec/rdfa-triples/0089.nt +1 -0
  122. data/spec/rdfa-triples/0090.nt +1 -0
  123. data/spec/rdfa-triples/0091.nt +3 -0
  124. data/spec/rdfa-triples/0092.nt +3 -0
  125. data/spec/rdfa-triples/0093.nt +2 -0
  126. data/spec/rdfa-triples/0094.nt +3 -0
  127. data/spec/rdfa-triples/0099.nt +1 -0
  128. data/spec/rdfa-triples/0100.nt +3 -0
  129. data/spec/rdfa-triples/0101.nt +3 -0
  130. data/spec/rdfa-triples/0102.nt +1 -0
  131. data/spec/rdfa-triples/0103.nt +1 -0
  132. data/spec/rdfa-triples/0104.nt +3 -0
  133. data/spec/rdfa-triples/0105.nt +1 -0
  134. data/spec/rdfa-triples/0106.nt +1 -0
  135. data/spec/rdfa-triples/0107.nt +0 -0
  136. data/spec/rdfa-triples/0108.nt +1 -0
  137. data/spec/rdfa-triples/0109.nt +1 -0
  138. data/spec/rdfa-triples/0110.nt +1 -0
  139. data/spec/rdfa-triples/0111.nt +2 -0
  140. data/spec/rdfa-triples/0112.nt +1 -0
  141. data/spec/rdfa-triples/0113.nt +2 -0
  142. data/spec/rdfa-triples/0114.nt +3 -0
  143. data/spec/rdfa-triples/0115.nt +4 -0
  144. data/spec/rdfa-triples/0116.nt +2 -0
  145. data/spec/rdfa-triples/0117.nt +2 -0
  146. data/spec/rdfa-triples/0118.nt +1 -0
  147. data/spec/rdfa-triples/0119.nt +1 -0
  148. data/spec/rdfa-triples/0120.nt +1 -0
  149. data/spec/rdfa-triples/0121.nt +2 -0
  150. data/spec/rdfa-triples/0122.nt +1 -0
  151. data/spec/rdfa-triples/0123.nt +3 -0
  152. data/spec/rdfa-triples/0124.nt +4 -0
  153. data/spec/rdfa-triples/0125.nt +1 -0
  154. data/spec/rdfa-triples/0126.nt +3 -0
  155. data/spec/rdfa-triples/1001.nt +6 -0
  156. data/spec/rdfa_helper.rb +189 -0
  157. data/spec/rdfa_parser_spec.rb +148 -0
  158. data/spec/rdfcore/Manifest.rdf +5395 -0
  159. data/spec/rdfcore/amp-in-url/test001.nt +16 -0
  160. data/spec/rdfcore/amp-in-url/test001.rdf +40 -0
  161. data/spec/rdfcore/datatypes-intensional/test001.nt +18 -0
  162. data/spec/rdfcore/datatypes-intensional/test002.nt +18 -0
  163. data/spec/rdfcore/datatypes/test001.nt +15 -0
  164. data/spec/rdfcore/datatypes/test001.rdf +29 -0
  165. data/spec/rdfcore/datatypes/test002.nt +14 -0
  166. data/spec/rdfcore/datatypes/test002.rdf +27 -0
  167. data/spec/rdfcore/datatypes/test002b.nt +17 -0
  168. data/spec/rdfcore/datatypes/test003a.nt +16 -0
  169. data/spec/rdfcore/datatypes/test003b.nt +16 -0
  170. data/spec/rdfcore/datatypes/test005a.nt +16 -0
  171. data/spec/rdfcore/datatypes/test005b.nt +16 -0
  172. data/spec/rdfcore/datatypes/test006.nt +17 -0
  173. data/spec/rdfcore/datatypes/test008a.nt +15 -0
  174. data/spec/rdfcore/datatypes/test008b.nt +15 -0
  175. data/spec/rdfcore/datatypes/test009a.nt +15 -0
  176. data/spec/rdfcore/datatypes/test009b.nt +15 -0
  177. data/spec/rdfcore/datatypes/test010.nt +17 -0
  178. data/spec/rdfcore/datatypes/test011a.nt +17 -0
  179. data/spec/rdfcore/datatypes/test011b.nt +17 -0
  180. data/spec/rdfcore/horst-01/test001.rdf +38 -0
  181. data/spec/rdfcore/horst-01/test002.rdf +39 -0
  182. data/spec/rdfcore/horst-01/test003.rdf +40 -0
  183. data/spec/rdfcore/horst-01/test004.rdf +42 -0
  184. data/spec/rdfcore/pfps-10/test001a.nt +14 -0
  185. data/spec/rdfcore/pfps-10/test001b.nt +15 -0
  186. data/spec/rdfcore/rdf-charmod-literals/test001.nt +15 -0
  187. data/spec/rdfcore/rdf-charmod-literals/test001.rdf +34 -0
  188. data/spec/rdfcore/rdf-charmod-uris/test001.nt +14 -0
  189. data/spec/rdfcore/rdf-charmod-uris/test001.rdf +34 -0
  190. data/spec/rdfcore/rdf-charmod-uris/test002.nt +15 -0
  191. data/spec/rdfcore/rdf-charmod-uris/test002.rdf +33 -0
  192. data/spec/rdfcore/rdf-containers-syntax-vs-schema/error001.rdf +27 -0
  193. data/spec/rdfcore/rdf-containers-syntax-vs-schema/error002.rdf +34 -0
  194. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test001.nt +17 -0
  195. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test001.rdf +27 -0
  196. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test002.nt +19 -0
  197. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test002.rdf +37 -0
  198. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test003.nt +18 -0
  199. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test003.rdf +29 -0
  200. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test004.nt +29 -0
  201. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test004.rdf +33 -0
  202. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test006.nt +40 -0
  203. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test006.rdf +28 -0
  204. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test007.nt +20 -0
  205. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test007.rdf +32 -0
  206. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test008.nt +15 -0
  207. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test008.rdf +28 -0
  208. data/spec/rdfcore/rdf-element-not-mandatory/test001.nt +10 -0
  209. data/spec/rdfcore/rdf-element-not-mandatory/test001.rdf +14 -0
  210. data/spec/rdfcore/rdf-ns-prefix-confusion/test0001.nt +14 -0
  211. data/spec/rdfcore/rdf-ns-prefix-confusion/test0001.rdf +35 -0
  212. data/spec/rdfcore/rdf-ns-prefix-confusion/test0003.nt +14 -0
  213. data/spec/rdfcore/rdf-ns-prefix-confusion/test0003.rdf +35 -0
  214. data/spec/rdfcore/rdf-ns-prefix-confusion/test0004.nt +14 -0
  215. data/spec/rdfcore/rdf-ns-prefix-confusion/test0004.rdf +34 -0
  216. data/spec/rdfcore/rdf-ns-prefix-confusion/test0005.nt +15 -0
  217. data/spec/rdfcore/rdf-ns-prefix-confusion/test0005.rdf +40 -0
  218. data/spec/rdfcore/rdf-ns-prefix-confusion/test0006.nt +14 -0
  219. data/spec/rdfcore/rdf-ns-prefix-confusion/test0006.rdf +32 -0
  220. data/spec/rdfcore/rdf-ns-prefix-confusion/test0009.nt +14 -0
  221. data/spec/rdfcore/rdf-ns-prefix-confusion/test0009.rdf +32 -0
  222. data/spec/rdfcore/rdf-ns-prefix-confusion/test0010.nt +14 -0
  223. data/spec/rdfcore/rdf-ns-prefix-confusion/test0010.rdf +38 -0
  224. data/spec/rdfcore/rdf-ns-prefix-confusion/test0011.nt +15 -0
  225. data/spec/rdfcore/rdf-ns-prefix-confusion/test0011.rdf +40 -0
  226. data/spec/rdfcore/rdf-ns-prefix-confusion/test0012.nt +15 -0
  227. data/spec/rdfcore/rdf-ns-prefix-confusion/test0012.rdf +40 -0
  228. data/spec/rdfcore/rdf-ns-prefix-confusion/test0013.nt +15 -0
  229. data/spec/rdfcore/rdf-ns-prefix-confusion/test0013.rdf +40 -0
  230. data/spec/rdfcore/rdf-ns-prefix-confusion/test0014.nt +15 -0
  231. data/spec/rdfcore/rdf-ns-prefix-confusion/test0014.rdf +42 -0
  232. data/spec/rdfcore/rdfms-abouteach/error001.rdf +35 -0
  233. data/spec/rdfcore/rdfms-abouteach/error002.rdf +35 -0
  234. data/spec/rdfcore/rdfms-difference-between-ID-and-about/error1.rdf +25 -0
  235. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test1.nt +14 -0
  236. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test1.rdf +22 -0
  237. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test2.nt +14 -0
  238. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test2.rdf +22 -0
  239. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test3.nt +14 -0
  240. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test3.rdf +22 -0
  241. data/spec/rdfcore/rdfms-duplicate-member-props/test001.nt +17 -0
  242. data/spec/rdfcore/rdfms-duplicate-member-props/test001.rdf +30 -0
  243. data/spec/rdfcore/rdfms-empty-property-elements/error001.rdf +33 -0
  244. data/spec/rdfcore/rdfms-empty-property-elements/error002.rdf +33 -0
  245. data/spec/rdfcore/rdfms-empty-property-elements/error003.rdf +39 -0
  246. data/spec/rdfcore/rdfms-empty-property-elements/test001.nt +14 -0
  247. data/spec/rdfcore/rdfms-empty-property-elements/test001.rdf +33 -0
  248. data/spec/rdfcore/rdfms-empty-property-elements/test002.nt +14 -0
  249. data/spec/rdfcore/rdfms-empty-property-elements/test002.rdf +31 -0
  250. data/spec/rdfcore/rdfms-empty-property-elements/test003.nt +14 -0
  251. data/spec/rdfcore/rdfms-empty-property-elements/test003.rdf +32 -0
  252. data/spec/rdfcore/rdfms-empty-property-elements/test004.nt +14 -0
  253. data/spec/rdfcore/rdfms-empty-property-elements/test004.rdf +32 -0
  254. data/spec/rdfcore/rdfms-empty-property-elements/test005.nt +18 -0
  255. data/spec/rdfcore/rdfms-empty-property-elements/test005.rdf +32 -0
  256. data/spec/rdfcore/rdfms-empty-property-elements/test006.nt +18 -0
  257. data/spec/rdfcore/rdfms-empty-property-elements/test006.rdf +32 -0
  258. data/spec/rdfcore/rdfms-empty-property-elements/test007.nt +14 -0
  259. data/spec/rdfcore/rdfms-empty-property-elements/test007.rdf +32 -0
  260. data/spec/rdfcore/rdfms-empty-property-elements/test008.nt +14 -0
  261. data/spec/rdfcore/rdfms-empty-property-elements/test008.rdf +31 -0
  262. data/spec/rdfcore/rdfms-empty-property-elements/test009.nt +14 -0
  263. data/spec/rdfcore/rdfms-empty-property-elements/test009.rdf +32 -0
  264. data/spec/rdfcore/rdfms-empty-property-elements/test010.nt +14 -0
  265. data/spec/rdfcore/rdfms-empty-property-elements/test010.rdf +31 -0
  266. data/spec/rdfcore/rdfms-empty-property-elements/test011.nt +18 -0
  267. data/spec/rdfcore/rdfms-empty-property-elements/test011.rdf +30 -0
  268. data/spec/rdfcore/rdfms-empty-property-elements/test012.nt +18 -0
  269. data/spec/rdfcore/rdfms-empty-property-elements/test012.rdf +30 -0
  270. data/spec/rdfcore/rdfms-empty-property-elements/test013.nt +15 -0
  271. data/spec/rdfcore/rdfms-empty-property-elements/test013.rdf +35 -0
  272. data/spec/rdfcore/rdfms-empty-property-elements/test014.nt +15 -0
  273. data/spec/rdfcore/rdfms-empty-property-elements/test014.rdf +34 -0
  274. data/spec/rdfcore/rdfms-empty-property-elements/test015.nt +15 -0
  275. data/spec/rdfcore/rdfms-empty-property-elements/test015.rdf +38 -0
  276. data/spec/rdfcore/rdfms-empty-property-elements/test016.nt +14 -0
  277. data/spec/rdfcore/rdfms-empty-property-elements/test016.rdf +31 -0
  278. data/spec/rdfcore/rdfms-empty-property-elements/test017.nt +14 -0
  279. data/spec/rdfcore/rdfms-empty-property-elements/test017.rdf +38 -0
  280. data/spec/rdfcore/rdfms-identity-anon-resources/test001.nt +14 -0
  281. data/spec/rdfcore/rdfms-identity-anon-resources/test001.rdf +33 -0
  282. data/spec/rdfcore/rdfms-identity-anon-resources/test002.nt +15 -0
  283. data/spec/rdfcore/rdfms-identity-anon-resources/test002.rdf +33 -0
  284. data/spec/rdfcore/rdfms-identity-anon-resources/test003.nt +14 -0
  285. data/spec/rdfcore/rdfms-identity-anon-resources/test003.rdf +31 -0
  286. data/spec/rdfcore/rdfms-identity-anon-resources/test004.nt +15 -0
  287. data/spec/rdfcore/rdfms-identity-anon-resources/test004.rdf +33 -0
  288. data/spec/rdfcore/rdfms-identity-anon-resources/test005.nt +14 -0
  289. data/spec/rdfcore/rdfms-identity-anon-resources/test005.rdf +31 -0
  290. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test001.nt +19 -0
  291. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test001.rdf +29 -0
  292. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test002.nt +15 -0
  293. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test002.rdf +29 -0
  294. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test004.nt +18 -0
  295. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test004.rdf +29 -0
  296. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test005.nt +19 -0
  297. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test005.rdf +29 -0
  298. data/spec/rdfcore/rdfms-para196/test001.nt +17 -0
  299. data/spec/rdfcore/rdfms-para196/test001.rdf +35 -0
  300. data/spec/rdfcore/rdfms-rdf-id/error001.rdf +26 -0
  301. data/spec/rdfcore/rdfms-rdf-id/error002.rdf +26 -0
  302. data/spec/rdfcore/rdfms-rdf-id/error003.rdf +29 -0
  303. data/spec/rdfcore/rdfms-rdf-id/error004.rdf +27 -0
  304. data/spec/rdfcore/rdfms-rdf-id/error005.rdf +31 -0
  305. data/spec/rdfcore/rdfms-rdf-id/error006.rdf +26 -0
  306. data/spec/rdfcore/rdfms-rdf-id/error007.rdf +29 -0
  307. data/spec/rdfcore/rdfms-rdf-names-use/error-001.rdf +23 -0
  308. data/spec/rdfcore/rdfms-rdf-names-use/error-002.rdf +23 -0
  309. data/spec/rdfcore/rdfms-rdf-names-use/error-003.rdf +23 -0
  310. data/spec/rdfcore/rdfms-rdf-names-use/error-004.rdf +23 -0
  311. data/spec/rdfcore/rdfms-rdf-names-use/error-005.rdf +23 -0
  312. data/spec/rdfcore/rdfms-rdf-names-use/error-006.rdf +23 -0
  313. data/spec/rdfcore/rdfms-rdf-names-use/error-007.rdf +23 -0
  314. data/spec/rdfcore/rdfms-rdf-names-use/error-008.rdf +23 -0
  315. data/spec/rdfcore/rdfms-rdf-names-use/error-009.rdf +23 -0
  316. data/spec/rdfcore/rdfms-rdf-names-use/error-010.rdf +23 -0
  317. data/spec/rdfcore/rdfms-rdf-names-use/error-011.rdf +25 -0
  318. data/spec/rdfcore/rdfms-rdf-names-use/error-012.rdf +25 -0
  319. data/spec/rdfcore/rdfms-rdf-names-use/error-013.rdf +25 -0
  320. data/spec/rdfcore/rdfms-rdf-names-use/error-014.rdf +25 -0
  321. data/spec/rdfcore/rdfms-rdf-names-use/error-015.rdf +25 -0
  322. data/spec/rdfcore/rdfms-rdf-names-use/error-016.rdf +25 -0
  323. data/spec/rdfcore/rdfms-rdf-names-use/error-017.rdf +25 -0
  324. data/spec/rdfcore/rdfms-rdf-names-use/error-018.rdf +25 -0
  325. data/spec/rdfcore/rdfms-rdf-names-use/error-019.rdf +25 -0
  326. data/spec/rdfcore/rdfms-rdf-names-use/error-020.rdf +25 -0
  327. data/spec/rdfcore/rdfms-rdf-names-use/test-001.nt +1 -0
  328. data/spec/rdfcore/rdfms-rdf-names-use/test-001.rdf +23 -0
  329. data/spec/rdfcore/rdfms-rdf-names-use/test-002.nt +1 -0
  330. data/spec/rdfcore/rdfms-rdf-names-use/test-002.rdf +23 -0
  331. data/spec/rdfcore/rdfms-rdf-names-use/test-003.nt +1 -0
  332. data/spec/rdfcore/rdfms-rdf-names-use/test-003.rdf +23 -0
  333. data/spec/rdfcore/rdfms-rdf-names-use/test-004.nt +1 -0
  334. data/spec/rdfcore/rdfms-rdf-names-use/test-004.rdf +23 -0
  335. data/spec/rdfcore/rdfms-rdf-names-use/test-005.nt +1 -0
  336. data/spec/rdfcore/rdfms-rdf-names-use/test-005.rdf +23 -0
  337. data/spec/rdfcore/rdfms-rdf-names-use/test-006.nt +1 -0
  338. data/spec/rdfcore/rdfms-rdf-names-use/test-006.rdf +23 -0
  339. data/spec/rdfcore/rdfms-rdf-names-use/test-007.nt +1 -0
  340. data/spec/rdfcore/rdfms-rdf-names-use/test-007.rdf +23 -0
  341. data/spec/rdfcore/rdfms-rdf-names-use/test-008.nt +1 -0
  342. data/spec/rdfcore/rdfms-rdf-names-use/test-008.rdf +23 -0
  343. data/spec/rdfcore/rdfms-rdf-names-use/test-009.nt +1 -0
  344. data/spec/rdfcore/rdfms-rdf-names-use/test-009.rdf +23 -0
  345. data/spec/rdfcore/rdfms-rdf-names-use/test-010.nt +1 -0
  346. data/spec/rdfcore/rdfms-rdf-names-use/test-010.rdf +23 -0
  347. data/spec/rdfcore/rdfms-rdf-names-use/test-011.nt +1 -0
  348. data/spec/rdfcore/rdfms-rdf-names-use/test-011.rdf +23 -0
  349. data/spec/rdfcore/rdfms-rdf-names-use/test-012.nt +1 -0
  350. data/spec/rdfcore/rdfms-rdf-names-use/test-012.rdf +23 -0
  351. data/spec/rdfcore/rdfms-rdf-names-use/test-013.nt +1 -0
  352. data/spec/rdfcore/rdfms-rdf-names-use/test-013.rdf +23 -0
  353. data/spec/rdfcore/rdfms-rdf-names-use/test-014.nt +1 -0
  354. data/spec/rdfcore/rdfms-rdf-names-use/test-014.rdf +23 -0
  355. data/spec/rdfcore/rdfms-rdf-names-use/test-015.nt +1 -0
  356. data/spec/rdfcore/rdfms-rdf-names-use/test-015.rdf +23 -0
  357. data/spec/rdfcore/rdfms-rdf-names-use/test-016.nt +1 -0
  358. data/spec/rdfcore/rdfms-rdf-names-use/test-016.rdf +23 -0
  359. data/spec/rdfcore/rdfms-rdf-names-use/test-017.nt +1 -0
  360. data/spec/rdfcore/rdfms-rdf-names-use/test-017.rdf +25 -0
  361. data/spec/rdfcore/rdfms-rdf-names-use/test-018.nt +1 -0
  362. data/spec/rdfcore/rdfms-rdf-names-use/test-018.rdf +25 -0
  363. data/spec/rdfcore/rdfms-rdf-names-use/test-019.nt +1 -0
  364. data/spec/rdfcore/rdfms-rdf-names-use/test-019.rdf +25 -0
  365. data/spec/rdfcore/rdfms-rdf-names-use/test-020.nt +1 -0
  366. data/spec/rdfcore/rdfms-rdf-names-use/test-020.rdf +25 -0
  367. data/spec/rdfcore/rdfms-rdf-names-use/test-021.nt +1 -0
  368. data/spec/rdfcore/rdfms-rdf-names-use/test-021.rdf +25 -0
  369. data/spec/rdfcore/rdfms-rdf-names-use/test-022.nt +1 -0
  370. data/spec/rdfcore/rdfms-rdf-names-use/test-022.rdf +25 -0
  371. data/spec/rdfcore/rdfms-rdf-names-use/test-023.nt +1 -0
  372. data/spec/rdfcore/rdfms-rdf-names-use/test-023.rdf +25 -0
  373. data/spec/rdfcore/rdfms-rdf-names-use/test-024.nt +1 -0
  374. data/spec/rdfcore/rdfms-rdf-names-use/test-024.rdf +25 -0
  375. data/spec/rdfcore/rdfms-rdf-names-use/test-025.nt +1 -0
  376. data/spec/rdfcore/rdfms-rdf-names-use/test-025.rdf +25 -0
  377. data/spec/rdfcore/rdfms-rdf-names-use/test-026.nt +1 -0
  378. data/spec/rdfcore/rdfms-rdf-names-use/test-026.rdf +25 -0
  379. data/spec/rdfcore/rdfms-rdf-names-use/test-027.nt +1 -0
  380. data/spec/rdfcore/rdfms-rdf-names-use/test-027.rdf +25 -0
  381. data/spec/rdfcore/rdfms-rdf-names-use/test-028.nt +1 -0
  382. data/spec/rdfcore/rdfms-rdf-names-use/test-028.rdf +25 -0
  383. data/spec/rdfcore/rdfms-rdf-names-use/test-029.nt +1 -0
  384. data/spec/rdfcore/rdfms-rdf-names-use/test-029.rdf +25 -0
  385. data/spec/rdfcore/rdfms-rdf-names-use/test-030.nt +1 -0
  386. data/spec/rdfcore/rdfms-rdf-names-use/test-030.rdf +25 -0
  387. data/spec/rdfcore/rdfms-rdf-names-use/test-031.nt +1 -0
  388. data/spec/rdfcore/rdfms-rdf-names-use/test-031.rdf +25 -0
  389. data/spec/rdfcore/rdfms-rdf-names-use/test-032.nt +1 -0
  390. data/spec/rdfcore/rdfms-rdf-names-use/test-032.rdf +24 -0
  391. data/spec/rdfcore/rdfms-rdf-names-use/test-033.nt +1 -0
  392. data/spec/rdfcore/rdfms-rdf-names-use/test-033.rdf +24 -0
  393. data/spec/rdfcore/rdfms-rdf-names-use/test-034.nt +1 -0
  394. data/spec/rdfcore/rdfms-rdf-names-use/test-034.rdf +24 -0
  395. data/spec/rdfcore/rdfms-rdf-names-use/test-035.nt +1 -0
  396. data/spec/rdfcore/rdfms-rdf-names-use/test-035.rdf +24 -0
  397. data/spec/rdfcore/rdfms-rdf-names-use/test-036.nt +1 -0
  398. data/spec/rdfcore/rdfms-rdf-names-use/test-036.rdf +24 -0
  399. data/spec/rdfcore/rdfms-rdf-names-use/test-037.nt +1 -0
  400. data/spec/rdfcore/rdfms-rdf-names-use/test-037.rdf +24 -0
  401. data/spec/rdfcore/rdfms-rdf-names-use/warn-001.nt +1 -0
  402. data/spec/rdfcore/rdfms-rdf-names-use/warn-001.rdf +23 -0
  403. data/spec/rdfcore/rdfms-rdf-names-use/warn-002.nt +1 -0
  404. data/spec/rdfcore/rdfms-rdf-names-use/warn-002.rdf +25 -0
  405. data/spec/rdfcore/rdfms-rdf-names-use/warn-003.nt +1 -0
  406. data/spec/rdfcore/rdfms-rdf-names-use/warn-003.rdf +24 -0
  407. data/spec/rdfcore/rdfms-reification-required/test001.nt +15 -0
  408. data/spec/rdfcore/rdfms-reification-required/test001.rdf +29 -0
  409. data/spec/rdfcore/rdfms-seq-representation/empty.nt +13 -0
  410. data/spec/rdfcore/rdfms-seq-representation/test001.nt +19 -0
  411. data/spec/rdfcore/rdfms-seq-representation/test001.rdf +33 -0
  412. data/spec/rdfcore/rdfms-seq-representation/test002.nt +14 -0
  413. data/spec/rdfcore/rdfms-seq-representation/test003a.nt +14 -0
  414. data/spec/rdfcore/rdfms-seq-representation/test003b.nt +14 -0
  415. data/spec/rdfcore/rdfms-seq-representation/test004.nt +14 -0
  416. data/spec/rdfcore/rdfms-syntax-incomplete/error001.rdf +26 -0
  417. data/spec/rdfcore/rdfms-syntax-incomplete/error002.rdf +26 -0
  418. data/spec/rdfcore/rdfms-syntax-incomplete/error003.rdf +29 -0
  419. data/spec/rdfcore/rdfms-syntax-incomplete/error004.rdf +25 -0
  420. data/spec/rdfcore/rdfms-syntax-incomplete/error005.rdf +25 -0
  421. data/spec/rdfcore/rdfms-syntax-incomplete/error006.rdf +28 -0
  422. data/spec/rdfcore/rdfms-syntax-incomplete/test001.nt +14 -0
  423. data/spec/rdfcore/rdfms-syntax-incomplete/test001.rdf +28 -0
  424. data/spec/rdfcore/rdfms-syntax-incomplete/test002.nt +19 -0
  425. data/spec/rdfcore/rdfms-syntax-incomplete/test002.rdf +38 -0
  426. data/spec/rdfcore/rdfms-syntax-incomplete/test003.nt +17 -0
  427. data/spec/rdfcore/rdfms-syntax-incomplete/test003.rdf +28 -0
  428. data/spec/rdfcore/rdfms-syntax-incomplete/test004.nt +21 -0
  429. data/spec/rdfcore/rdfms-syntax-incomplete/test004.rdf +36 -0
  430. data/spec/rdfcore/rdfms-uri-substructure/error001.nt +18 -0
  431. data/spec/rdfcore/rdfms-uri-substructure/test001.nt +17 -0
  432. data/spec/rdfcore/rdfms-uri-substructure/test001.rdf +29 -0
  433. data/spec/rdfcore/rdfms-xml-literal-namespaces/test001.nt +13 -0
  434. data/spec/rdfcore/rdfms-xml-literal-namespaces/test001.rdf +33 -0
  435. data/spec/rdfcore/rdfms-xml-literal-namespaces/test002.nt +14 -0
  436. data/spec/rdfcore/rdfms-xml-literal-namespaces/test002.rdf +47 -0
  437. data/spec/rdfcore/rdfms-xmllang/test001.nt +14 -0
  438. data/spec/rdfcore/rdfms-xmllang/test001.rdf +30 -0
  439. data/spec/rdfcore/rdfms-xmllang/test002.nt +14 -0
  440. data/spec/rdfcore/rdfms-xmllang/test002.rdf +29 -0
  441. data/spec/rdfcore/rdfms-xmllang/test003.nt +14 -0
  442. data/spec/rdfcore/rdfms-xmllang/test003.rdf +28 -0
  443. data/spec/rdfcore/rdfms-xmllang/test004.nt +14 -0
  444. data/spec/rdfcore/rdfms-xmllang/test004.rdf +28 -0
  445. data/spec/rdfcore/rdfms-xmllang/test005.nt +14 -0
  446. data/spec/rdfcore/rdfms-xmllang/test005.rdf +28 -0
  447. data/spec/rdfcore/rdfms-xmllang/test006.nt +14 -0
  448. data/spec/rdfcore/rdfms-xmllang/test006.rdf +29 -0
  449. data/spec/rdfcore/rdfms-xmllang/test007a.nt +14 -0
  450. data/spec/rdfcore/rdfms-xmllang/test007b.nt +14 -0
  451. data/spec/rdfcore/rdfms-xmllang/test007c.nt +14 -0
  452. data/spec/rdfcore/rdfs-container-membership-superProperty/not1C.rdf +13 -0
  453. data/spec/rdfcore/rdfs-container-membership-superProperty/not1P.rdf +14 -0
  454. data/spec/rdfcore/rdfs-domain-and-range/nonconclusions005.rdf +28 -0
  455. data/spec/rdfcore/rdfs-domain-and-range/nonconclusions006.rdf +28 -0
  456. data/spec/rdfcore/rdfs-domain-and-range/premises005.rdf +32 -0
  457. data/spec/rdfcore/rdfs-domain-and-range/premises006.rdf +32 -0
  458. data/spec/rdfcore/rdfs-domain-and-range/test001.nt +16 -0
  459. data/spec/rdfcore/rdfs-domain-and-range/test001.rdf +29 -0
  460. data/spec/rdfcore/rdfs-domain-and-range/test002.nt +16 -0
  461. data/spec/rdfcore/rdfs-domain-and-range/test002.rdf +29 -0
  462. data/spec/rdfcore/rdfs-entailment/test001.nt +16 -0
  463. data/spec/rdfcore/rdfs-entailment/test002.nt +15 -0
  464. data/spec/rdfcore/rdfs-no-cycles-in-subClassOf/test001.nt +18 -0
  465. data/spec/rdfcore/rdfs-no-cycles-in-subClassOf/test001.rdf +37 -0
  466. data/spec/rdfcore/rdfs-no-cycles-in-subPropertyOf/test001.nt +18 -0
  467. data/spec/rdfcore/rdfs-no-cycles-in-subPropertyOf/test001.rdf +40 -0
  468. data/spec/rdfcore/rdfs-subClassOf-a-Property/test001.nt +15 -0
  469. data/spec/rdfcore/rdfs-subPropertyOf-semantics/test001.nt +24 -0
  470. data/spec/rdfcore/rdfs-subPropertyOf-semantics/test002.nt +21 -0
  471. data/spec/rdfcore/statement-entailment/test001a.nt +12 -0
  472. data/spec/rdfcore/statement-entailment/test001b.nt +2 -0
  473. data/spec/rdfcore/statement-entailment/test002a.nt +2 -0
  474. data/spec/rdfcore/statement-entailment/test002b.nt +5 -0
  475. data/spec/rdfcore/tex-01/test001.rdf +34 -0
  476. data/spec/rdfcore/tex-01/test002.rdf +33 -0
  477. data/spec/rdfcore/unrecognised-xml-attributes/test001.nt +15 -0
  478. data/spec/rdfcore/unrecognised-xml-attributes/test001.rdf +31 -0
  479. data/spec/rdfcore/unrecognised-xml-attributes/test002.nt +14 -0
  480. data/spec/rdfcore/unrecognised-xml-attributes/test002.rdf +32 -0
  481. data/spec/rdfcore/xml-canon/test001.nt +16 -0
  482. data/spec/rdfcore/xml-canon/test001.rdf +28 -0
  483. data/spec/rdfcore/xmlbase/test001.nt +14 -0
  484. data/spec/rdfcore/xmlbase/test001.rdf +27 -0
  485. data/spec/rdfcore/xmlbase/test002.nt +14 -0
  486. data/spec/rdfcore/xmlbase/test002.rdf +28 -0
  487. data/spec/rdfcore/xmlbase/test003.nt +14 -0
  488. data/spec/rdfcore/xmlbase/test003.rdf +25 -0
  489. data/spec/rdfcore/xmlbase/test004.nt +18 -0
  490. data/spec/rdfcore/xmlbase/test004.rdf +27 -0
  491. data/spec/rdfcore/xmlbase/test006.nt +15 -0
  492. data/spec/rdfcore/xmlbase/test006.rdf +26 -0
  493. data/spec/rdfcore/xmlbase/test007.nt +14 -0
  494. data/spec/rdfcore/xmlbase/test007.rdf +25 -0
  495. data/spec/rdfcore/xmlbase/test008.nt +14 -0
  496. data/spec/rdfcore/xmlbase/test008.rdf +25 -0
  497. data/spec/rdfcore/xmlbase/test009.nt +14 -0
  498. data/spec/rdfcore/xmlbase/test009.rdf +26 -0
  499. data/spec/rdfcore/xmlbase/test010.nt +14 -0
  500. data/spec/rdfcore/xmlbase/test010.rdf +26 -0
  501. data/spec/rdfcore/xmlbase/test011.nt +14 -0
  502. data/spec/rdfcore/xmlbase/test011.rdf +27 -0
  503. data/spec/rdfcore/xmlbase/test013.nt +15 -0
  504. data/spec/rdfcore/xmlbase/test013.rdf +28 -0
  505. data/spec/rdfcore/xmlbase/test014.nt +15 -0
  506. data/spec/rdfcore/xmlbase/test014.rdf +28 -0
  507. data/spec/rdfcore/xmlsch-02/test001.rdf +34 -0
  508. data/spec/rdfcore/xmlsch-02/test002.rdf +34 -0
  509. data/spec/rdfcore/xmlsch-02/test003.rdf +37 -0
  510. data/spec/rdfxml_helper.rb +137 -0
  511. data/spec/rdfxml_spec.rb +362 -0
  512. data/spec/spec.opts +1 -0
  513. data/spec/spec_helper.rb +23 -0
  514. data/spec/sqlite3_store_spec.rb +41 -0
  515. data/spec/store_helper.rb +231 -0
  516. data/spec/string_hacks_spec.rb +21 -0
  517. data/spec/triple_spec.rb +172 -0
  518. data/spec/uriref_spec.rb +117 -0
  519. data/test/longtests_spec.rb +25 -0
  520. data/test/n3_tests/lcsh/sh85062913.n3 +41 -0
  521. data/test/n3_tests/lcsh/sh85062913.nt +21 -0
  522. data/test/n3_tests/lcsh/sh85082139.n3 +157 -0
  523. data/test/n3_tests/lcsh/sh85082139.nt +79 -0
  524. data/test/n3_tests/lcsh/sh85118553.n3 +123 -0
  525. data/test/n3_tests/lcsh/sh85118553.nt +63 -0
  526. data/test/n3_tests/misc/on_now-01.n3 +30 -0
  527. data/test/n3_tests/misc/on_now-01.nt +15 -0
  528. data/test/n3_tests/n3p/simple-01.n3 +1 -0
  529. data/test/n3_tests/n3p/simple-01.nt +0 -0
  530. data/test/n3_tests/n3p/simple-02.n3 +4 -0
  531. data/test/n3_tests/n3p/simple-02.nt +0 -0
  532. data/test/n3_tests/n3p/simple-03.n3 +5 -0
  533. data/test/n3_tests/n3p/simple-03.nt +1 -0
  534. data/test/n3_tests/n3p/simple-04.n3 +6 -0
  535. data/test/n3_tests/n3p/simple-04.nt +3 -0
  536. data/test/n3_tests/n3p/simple-05.n3 +7 -0
  537. data/test/n3_tests/n3p/simple-05.nt +2 -0
  538. data/test/n3_tests/n3p/simple-06.n3 +6 -0
  539. data/test/n3_tests/n3p/simple-06.nt +4 -0
  540. data/test/n3_tests/n3p/simple-07.n3 +7 -0
  541. data/test/n3_tests/n3p/simple-07.nt +6 -0
  542. data/test/perf_test/test.rb +11 -0
  543. data/test/perf_test/tommorris.rdf +2267 -0
  544. data/test/rdf_tests/cc197bad-dc9c-440d-a5b5-d52ba2e14234.nt +24 -0
  545. data/test/rdf_tests/cc197bad-dc9c-440d-a5b5-d52ba2e14234.rdf +46 -0
  546. data/test/rdf_tests/tm_001.nt +1 -0
  547. data/test/rdf_tests/tm_001.rdf +7 -0
  548. data/test/rdf_tests/xml-literal-mixed.nt +7 -0
  549. data/test/rdf_tests/xml-literal-mixed.rdf +15 -0
  550. data/test/xml.rdf +6 -0
  551. metadata +696 -0
@@ -0,0 +1,15 @@
1
+ #
2
+ # Copyright World Wide Web Consortium, (Massachusetts Institute of
3
+ # Technology, Institut National de Recherche en Informatique et en
4
+ # Automatique, Keio University).
5
+ #
6
+ # All Rights Reserved.
7
+ #
8
+ # Please see the full Copyright clause at
9
+ # <http://www.w3.org/Consortium/Legal/copyright-software.html>
10
+ #
11
+ # $Id: test013.nt,v 1.1 2002/03/08 12:21:41 dajobe Exp $
12
+ #
13
+ #####################################################################
14
+ <http://example.org/dir/file> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/type> .
15
+ <http://example.org/dir/file#foo> <http://example.org/value> <http://example.org/dir/relpath> .
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <!--
4
+ Copyright World Wide Web Consortium, (Massachusetts Institute of
5
+ Technology, Institut National de Recherche en Informatique et en
6
+ Automatique, Keio University).
7
+
8
+ All Rights Reserved.
9
+
10
+ Please see the full Copyright clause at
11
+ <http://www.w3.org/Consortium/Legal/copyright-software.html>
12
+
13
+ Description: With an xml:base with fragment the fragment is ignored.
14
+ Author: Jeremy Carroll (jjc@hpl.hp.com)
15
+
16
+ $Id: test013.rdf,v 1.1 2002/03/08 12:21:41 dajobe Exp $
17
+ -->
18
+
19
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
20
+ xmlns:eg="http://example.org/"
21
+ xml:base="http://example.org/dir/file#frag">
22
+
23
+ <eg:type rdf:about="" />
24
+ <rdf:Description rdf:ID="foo" >
25
+ <eg:value rdf:resource="relpath" />
26
+ </rdf:Description>
27
+
28
+ </rdf:RDF>
@@ -0,0 +1,15 @@
1
+ #
2
+ # Copyright World Wide Web Consortium, (Massachusetts Institute of
3
+ # Technology, Institut National de Recherche en Informatique et en
4
+ # Automatique, Keio University).
5
+ #
6
+ # All Rights Reserved.
7
+ #
8
+ # Please see the full Copyright clause at
9
+ # <http://www.w3.org/Consortium/Legal/copyright-software.html>
10
+ #
11
+ # $Id: test014.nt,v 1.2 2002/11/15 11:45:42 jgrant Exp $
12
+ #
13
+ #####################################################################
14
+ <http://example.org/dir/file#frag> <http://example.org/value> "v" .
15
+ <http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test014.rdf#frag> <http://example.org/value> "v" .
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <!--
4
+ Copyright World Wide Web Consortium, (Massachusetts Institute of
5
+ Technology, Institut National de Recherche en Informatique et en
6
+ Automatique, Keio University).
7
+
8
+ All Rights Reserved.
9
+
10
+ Please see the full Copyright clause at
11
+ <http://www.w3.org/Consortium/Legal/copyright-software.html>
12
+
13
+ Description: two identical rdf:ID's are allowed, as long as they
14
+ refer to different resources.
15
+ Author: Jeremy Carroll (jjc@hpl.hp.com)
16
+
17
+ $Id: test014.rdf,v 1.1 2002/03/08 12:21:41 dajobe Exp $
18
+ -->
19
+
20
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
21
+ xmlns:eg="http://example.org/"
22
+ >
23
+
24
+ <rdf:Description xml:base="http://example.org/dir/file"
25
+ rdf:ID="frag" eg:value="v" />
26
+ <rdf:Description rdf:ID="frag" eg:value="v" />
27
+
28
+ </rdf:RDF>
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <!--
4
+ Copyright World Wide Web Consortium, (Massachusetts Institute of
5
+ Technology, European Research Consortium for Informatics and
6
+ Mathematics, Keio University).
7
+
8
+ All Rights Reserved.
9
+
10
+ Please see the full Copyright clause at
11
+ <http://www.w3.org/Consortium/Legal/copyright-software.html>
12
+
13
+ Description: the typed literal in this file is well-formed.
14
+
15
+ Related issue:
16
+
17
+ http://www.w3.org/2001/sw/RDFCore/20030123-issues/#xmlsch-02
18
+
19
+ Author: Jeremy Carroll
20
+
21
+ $Id: test001.rdf,v 1.1 2003/05/12 20:07:01 jcarroll Exp $
22
+
23
+ -->
24
+
25
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
26
+ xmlns:eg="http://example.org/">
27
+
28
+
29
+ <rdf:Description rdf:about="http://www.example.org/a">
30
+ <eg:prop rdf:datatype="http://www.w3.org/2001/XMLSchema#int">3</eg:prop>
31
+ </rdf:Description>
32
+
33
+ </rdf:RDF>
34
+
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <!--
4
+ Copyright World Wide Web Consortium, (Massachusetts Institute of
5
+ Technology, European Research Consortium for Informatics and
6
+ Mathematics, Keio University).
7
+
8
+ All Rights Reserved.
9
+
10
+ Please see the full Copyright clause at
11
+ <http://www.w3.org/Consortium/Legal/copyright-software.html>
12
+
13
+ Description: the typed literal in this file is not well-formed.
14
+
15
+ Related issue:
16
+
17
+ http://www.w3.org/2001/sw/RDFCore/20030123-issues/#xmlsch-02
18
+
19
+ Author: Jeremy Carroll
20
+
21
+ $Id: test002.rdf,v 1.3 2003/05/12 20:12:03 jcarroll Exp $
22
+
23
+ -->
24
+
25
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
26
+ xmlns:eg="http://example.org/">
27
+
28
+
29
+ <rdf:Description rdf:about="http://www.example.org/a">
30
+ <eg:prop rdf:datatype="http://www.w3.org/2001/XMLSchema#int"> 3 </eg:prop>
31
+ </rdf:Description>
32
+
33
+ </rdf:RDF>
34
+
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <!--
4
+ Copyright World Wide Web Consortium, (Massachusetts Institute of
5
+ Technology, European Research Consortium for Informatics and
6
+ Mathematics, Keio University).
7
+
8
+ All Rights Reserved.
9
+
10
+ Please see the full Copyright clause at
11
+ <http://www.w3.org/Consortium/Legal/copyright-software.html>
12
+
13
+ Description: eg:prop has a literal value.
14
+
15
+ Related issue:
16
+
17
+ http://www.w3.org/2001/sw/RDFCore/20030123-issues/#xmlsch-02
18
+
19
+ Author: Jeremy Carroll
20
+
21
+ $Id: test003.rdf,v 1.1 2003/05/12 20:07:01 jcarroll Exp $
22
+
23
+ -->
24
+
25
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
26
+ xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
27
+ xmlns:eg="http://example.org/">
28
+
29
+
30
+ <rdf:Description rdf:about="http://www.example.org/a">
31
+ <eg:prop>
32
+ <rdfs:Literal/>
33
+ </eg:prop>
34
+ </rdf:Description>
35
+
36
+ </rdf:RDF>
37
+
@@ -0,0 +1,137 @@
1
+ require 'matchers'
2
+
3
+ module RdfXMLHelper
4
+ # Class representing test cases in format http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#
5
+ class TestCase
6
+ include Matchers
7
+
8
+ TEST_DIR = File.join(File.dirname(__FILE__), 'rdfcore')
9
+ NT_DIR = File.join(File.dirname(__FILE__), 'rdfa-triples')
10
+ BASE_MANIFEST_URL = "http://rdfa.digitalbazaar.com/test-suite/"
11
+ BASE_TEST_CASE_URL = "#{BASE_MANIFEST_URL}test-cases/"
12
+
13
+ attr_accessor :about
14
+ attr_accessor :approval
15
+ attr_accessor :conclusionDocument
16
+ attr_accessor :data
17
+ attr_accessor :description
18
+ attr_accessor :discussion
19
+ attr_accessor :document
20
+ attr_accessor :entailmentRules
21
+ attr_accessor :inputDocument
22
+ attr_accessor :issue
23
+ attr_accessor :name
24
+ attr_accessor :outputDocument
25
+ attr_accessor :premiseDocument
26
+ attr_accessor :rdf_type
27
+ attr_accessor :status
28
+ attr_accessor :warning
29
+ attr_accessor :parser
30
+
31
+ @@test_cases = []
32
+
33
+ def initialize(triples)
34
+ triples.each do |statement|
35
+ next if statement.subject.is_a?(BNode)
36
+ # self.about ||= statement.subject
37
+ # self.name ||= statement.subject.short_name
38
+
39
+ if statement.is_type?
40
+ self.rdf_type = statement.object.short_name
41
+ elsif statement.predicate.short_name =~ /Document\Z/i
42
+ #puts "#{statement.predicate.short_name}: #{statement.object.inspect}"
43
+ self.send("#{statement.predicate.short_name}=", statement.object.to_s.sub(/^.*rdfcore/, TEST_DIR))
44
+ if statement.predicate.short_name == "inputDocument"
45
+ self.about ||= statement.object
46
+ self.name ||= statement.object.short_name
47
+ end
48
+ elsif self.respond_to?("#{statement.predicate.short_name}=")
49
+ self.send("#{statement.predicate.short_name}=", statement.object.to_s)
50
+ end
51
+ end
52
+ end
53
+
54
+ def inspect
55
+ "[Test Case " + %w(
56
+ about
57
+ name
58
+ inputDocument
59
+ outputDocument
60
+ issue
61
+ status
62
+ approval
63
+ description
64
+ discussion
65
+ issue
66
+ warning
67
+ ).map {|a| v = self.send(a); "#{a}='#{v}'" if v}.compact.join(", ") +
68
+ "]"
69
+ end
70
+
71
+ # Read in file, and apply modifications reference either .html or .xhtml
72
+ def input
73
+ File.read(inputDocument)
74
+ end
75
+
76
+ def output
77
+ outputDocument && File.read(outputDocument)
78
+ end
79
+
80
+ # Run test case, yields input for parser to create triples
81
+ def run_test
82
+ rdf_string = input
83
+
84
+ # Run
85
+ @parser = RdfXmlParser.new
86
+ yield(rdf_string, @parser)
87
+
88
+ @parser.graph.should be_equivalent_graph(output, self) if output
89
+ end
90
+
91
+ def trace
92
+ @parser.debug.to_a.join("\n")
93
+ end
94
+
95
+ def self.parse_test_cases
96
+ return unless @@test_cases.empty?
97
+
98
+ @@positive_parser_tests = []
99
+ @@negative_parser_tests = []
100
+ @@positive_entailment_tests = []
101
+ @@negative_entailment_tests = []
102
+
103
+ manifest = File.read(File.join(TEST_DIR, "Manifest.rdf"))
104
+ parser = RdfXmlParser.new
105
+ begin
106
+ parser.parse(manifest, "http://www.w3.org/2000/10/rdf-tests/rdfcore/Manifest.rdf")
107
+ rescue
108
+ raise "Parse error: #{$!}\n\t#{parser.debug.join("\t\n")}\n\n"
109
+ end
110
+ graph = parser.graph
111
+
112
+ # Group by subject
113
+ test_hash = graph.triples.inject({}) do |hash, st|
114
+ a = hash[st.subject] ||= []
115
+ a << st
116
+ hash
117
+ end
118
+
119
+ @@test_cases = test_hash.values.map {|statements| TestCase.new(statements)}.compact.sort_by{|t| t.about.is_a?(URIRef) ? t.about.uri.to_s : "zzz"}
120
+
121
+ @@test_cases.each do |tc|
122
+ next unless tc.status == "APPROVED"
123
+ case tc.rdf_type
124
+ when "PositiveParserTest" then @@positive_parser_tests << tc
125
+ when "NegativeParserTest" then @@negative_parser_tests << tc
126
+ when "PositiveEntailmentTest" then @@positive_entailment_tests << tc
127
+ when "NegativeEntailmentTest" then @@negative_entailment_tests << tc
128
+ end
129
+ end
130
+ end
131
+ def self.test_cases; parse_test_cases; @@test_cases; end
132
+ def self.positive_parser_tests; parse_test_cases; @@positive_parser_tests; end
133
+ def self.negative_parser_tests; parse_test_cases; @@negative_parser_tests; end
134
+ def self.positive_entailment_tests; parse_test_cases; @@positive_entailment_tests; end
135
+ def self.negative_entailment_tests; parse_test_cases; @@negative_entailment_tests; end
136
+ end
137
+ end
@@ -0,0 +1,362 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+ include RdfContext
3
+
4
+ # w3c test suite: http://www.w3.org/TR/rdf-testcases/
5
+
6
+ describe "RDF/XML Parser" do
7
+ before(:each) { @parser = RdfXmlParser.new }
8
+
9
+ it "should recognise and create single triple for empty non-RDF root" do
10
+ sampledoc = <<-EOF;
11
+ <?xml version="1.0" ?>
12
+ <NotRDF />
13
+ EOF
14
+ graph = @parser.parse(sampledoc, "http://example.com", :strict => true)
15
+ graph.size.should == 1
16
+ statement = graph[0]
17
+ statement.subject.class.should == BNode
18
+ statement.predicate.to_s.should == RDF_TYPE.to_s
19
+ statement.object.to_s.should == XML_NS.uri.to_s + "NotRDF"
20
+ end
21
+
22
+ it "should parse simple doc without a base URI" do
23
+ sampledoc = <<-EOF;
24
+ <?xml version="1.0" ?>
25
+ <NotRDF />
26
+ EOF
27
+ graph = @parser.parse(sampledoc, nil, :strict => true)
28
+ graph.size.should == 1
29
+ statement = graph[0]
30
+ statement.subject.class.should == BNode
31
+ statement.predicate.to_s.should == RDF_TYPE.to_s
32
+ statement.object.to_s.should == XML_NS.uri.to_s + "NotRDF"
33
+ end
34
+
35
+ it "should trigger parsing on XML documents with multiple RDF nodes" do
36
+ sampledoc = <<-EOF;
37
+ <?xml version="1.0" ?>
38
+ <GenericXML xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/">
39
+ <rdf:RDF>
40
+ <rdf:Description rdf:about="http://example.org/one">
41
+ <ex:name>Foo</ex:name>
42
+ </rdf:Description>
43
+ </rdf:RDF>
44
+ <blablabla />
45
+ <rdf:RDF>
46
+ <rdf:Description rdf:about="http://example.org/two">
47
+ <ex:name>Bar</ex:name>
48
+ </rdf:Description>
49
+ </rdf:RDF>
50
+ </GenericXML>
51
+ EOF
52
+ graph = @parser.parse(sampledoc, "http://example.com", :strict => true)
53
+ [graph[0].object.to_s, graph[1].object.to_s].sort.should == ["Bar", "Foo"].sort
54
+ end
55
+
56
+ it "should be able to parse a simple single-triple document" do
57
+ sampledoc = <<-EOF;
58
+ <?xml version="1.0" ?>
59
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
60
+ xmlns:ex="http://www.example.org/" xml:lang="en" xml:base="http://www.example.org/foo">
61
+ <ex:Thing rdf:about="http://example.org/joe" ex:name="bar">
62
+ <ex:belongsTo rdf:resource="http://tommorris.org/" />
63
+ <ex:sampleText rdf:datatype="http://www.w3.org/2001/XMLSchema#string">foo</ex:sampleText>
64
+ <ex:hadADodgyRelationshipWith>
65
+ <rdf:Description>
66
+ <ex:name>Tom</ex:name>
67
+ <ex:hadADodgyRelationshipWith>
68
+ <rdf:Description>
69
+ <ex:name>Rob</ex:name>
70
+ <ex:hadADodgyRelationshipWith>
71
+ <rdf:Description>
72
+ <ex:name>Mary</ex:name>
73
+ </rdf:Description>
74
+ </ex:hadADodgyRelationshipWith>
75
+ </rdf:Description>
76
+ </ex:hadADodgyRelationshipWith>
77
+ </rdf:Description>
78
+ </ex:hadADodgyRelationshipWith>
79
+ </ex:Thing>
80
+ </rdf:RDF>
81
+ EOF
82
+
83
+ graph = @parser.parse(sampledoc, "http://example.com", :strict => true)
84
+ #puts @parser.debug
85
+ graph.size.should == 10
86
+ # print graph.to_ntriples
87
+ # TODO: add datatype parsing
88
+ # TODO: make sure the BNode forging is done correctly - an internal element->nodeID mapping
89
+ # TODO: proper test
90
+ end
91
+
92
+ it "should raise an error if rdf:aboutEach is used, as per the negative parser test rdfms-abouteach-error001 (rdf:aboutEach attribute)" do
93
+ sampledoc = <<-EOF;
94
+ <?xml version="1.0" ?>
95
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
96
+ xmlns:eg="http://example.org/">
97
+
98
+ <rdf:Bag rdf:ID="node">
99
+ <rdf:li rdf:resource="http://example.org/node2"/>
100
+ </rdf:Bag>
101
+
102
+ <rdf:Description rdf:aboutEach="#node">
103
+ <dc:rights xmlns:dc="http://purl.org/dc/elements/1.1/">me</dc:rights>
104
+
105
+ </rdf:Description>
106
+
107
+ </rdf:RDF>
108
+ EOF
109
+
110
+ lambda do
111
+ graph = @parser.parse(sampledoc, "http://example.com", :strict => true)
112
+ end.should raise_error(InvalidPredicate, /Obsolete attribute .*aboutEach/)
113
+ end
114
+
115
+ it "should raise an error if rdf:aboutEachPrefix is used, as per the negative parser test rdfms-abouteach-error002 (rdf:aboutEachPrefix attribute)" do
116
+ sampledoc = <<-EOF;
117
+ <?xml version="1.0" ?>
118
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
119
+ xmlns:eg="http://example.org/">
120
+
121
+ <rdf:Description rdf:about="http://example.org/node">
122
+ <eg:property>foo</eg:property>
123
+ </rdf:Description>
124
+
125
+ <rdf:Description rdf:aboutEachPrefix="http://example.org/">
126
+ <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">me</dc:creator>
127
+
128
+ </rdf:Description>
129
+
130
+ </rdf:RDF>
131
+ EOF
132
+
133
+ lambda do
134
+ graph = @parser.parse(sampledoc, "http://example.com", :strict => true)
135
+ end.should raise_error(InvalidPredicate, /Obsolete attribute .*aboutEachPrefix/)
136
+ end
137
+
138
+ it "should fail if given a non-ID as an ID (as per rdfcore-rdfms-rdf-id-error001)" do
139
+ sampledoc = <<-EOF;
140
+ <?xml version="1.0"?>
141
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
142
+ <rdf:Description rdf:ID='333-555-666' />
143
+ </rdf:RDF>
144
+ EOF
145
+
146
+ lambda do
147
+ graph = @parser.parse(sampledoc, "http://example.com", :strict => true)
148
+ end.should raise_error(ParserException, /ID addtribute '.*' must be a NCName/)
149
+ end
150
+
151
+ it "should make sure that the value of rdf:ID attributes match the XML Name production (child-element version)" do
152
+ sampledoc = <<-EOF;
153
+ <?xml version="1.0" ?>
154
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
155
+ xmlns:eg="http://example.org/">
156
+ <rdf:Description>
157
+ <eg:prop rdf:ID="q:name" />
158
+ </rdf:Description>
159
+ </rdf:RDF>
160
+ EOF
161
+
162
+ lambda do
163
+ graph = @parser.parse(sampledoc, "http://example.com", :strict => true)
164
+ end.should raise_error(ParserException, /ID addtribute '.*' must be a NCName/)
165
+ end
166
+
167
+ it "should be able to reify according to §2.17 of RDF/XML Syntax Specification" do
168
+ sampledoc = <<-EOF;
169
+ <?xml version="1.0"?>
170
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
171
+ xmlns:ex="http://example.org/stuff/1.0/"
172
+ xml:base="http://example.org/triples/">
173
+ <rdf:Description rdf:about="http://example.org/">
174
+ <ex:prop rdf:ID="triple1">blah</ex:prop>
175
+ </rdf:Description>
176
+ </rdf:RDF>
177
+ EOF
178
+
179
+ triples = <<-EOF
180
+ <http://example.org/> <http://example.org/stuff/1.0/prop> \"blah\" .
181
+ <http://example.org/triples/#triple1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> .
182
+ <http://example.org/triples/#triple1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> <http://example.org/> .
183
+ <http://example.org/triples/#triple1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <http://example.org/stuff/1.0/prop> .
184
+ <http://example.org/triples/#triple1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> \"blah\" .
185
+ EOF
186
+ tc = RdfXMLHelper::TestCase.new([])
187
+ tc.about = "http://example.com"
188
+ tc.parser = @parser
189
+
190
+ graph = @parser.parse(sampledoc, tc.about, :strict => true)
191
+ graph.should be_equivalent_graph(triples, tc)
192
+ end
193
+
194
+ it "should make sure that the value of rdf:ID attributes match the XML Name production (data attribute version)" do
195
+ sampledoc = <<-EOF;
196
+ <?xml version="1.0" ?>
197
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
198
+ xmlns:eg="http://example.org/">
199
+ <rdf:Description rdf:ID="a/b" eg:prop="val" />
200
+ </rdf:RDF>
201
+ EOF
202
+
203
+ lambda do
204
+ graph = @parser.parse(sampledoc, "http://example.com", :strict => true)
205
+ end.should raise_error(ParserException, "ID addtribute 'a/b' must be a NCName")
206
+ end
207
+
208
+ it "should be able to handle Bags/Alts etc." do
209
+ sampledoc = <<-EOF;
210
+ <?xml version="1.0" ?>
211
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:eg="http://example.org/">
212
+ <rdf:Bag>
213
+ <rdf:li rdf:resource="http://tommorris.org/" />
214
+ <rdf:li rdf:resource="http://twitter.com/tommorris" />
215
+ </rdf:Bag>
216
+ </rdf:RDF>
217
+ EOF
218
+ graph = @parser.parse(sampledoc, "http://example.com", :strict => true)
219
+ graph.predicates.should include("http://www.w3.org/1999/02/22-rdf-syntax-ns#_1", "http://www.w3.org/1999/02/22-rdf-syntax-ns#_2")
220
+ end
221
+
222
+ # # when we have decent Unicode support, add http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-rdf-id/error005.rdf
223
+ #
224
+ # it "should support reification" do
225
+ # pending
226
+ # end
227
+ #
228
+ it "should detect bad bagIDs" do
229
+ sampledoc = <<-EOF;
230
+ <?xml version="1.0" ?>
231
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
232
+ <rdf:Description rdf:bagID='333-555-666' />
233
+ </rdf:RDF>
234
+ EOF
235
+
236
+ lambda do
237
+ graph = @parser.parse(sampledoc, "http://example.com", :strict => true)
238
+ puts @parser.debug
239
+ end.should raise_error(InvalidPredicate, /Obsolete attribute .*bagID/)
240
+ end
241
+
242
+ it "should parse testcase" do
243
+ sampledoc = <<-EOF;
244
+ <?xml version="1.0" ?>
245
+ <rdf:RDF
246
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
247
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
248
+ xmlns:test="http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#"
249
+ >
250
+ <!-- amp-in-url/Manifest.rdf -->
251
+ <test:PositiveParserTest rdf:about="http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/Manifest.rdf#test001">
252
+
253
+ <test:status>APPROVED</test:status>
254
+ <test:approval rdf:resource="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2001Sep/0326.html" />
255
+ <!-- <test:discussion rdf:resource="pointer to archived email or other discussion" /> -->
256
+ <!-- <test:description>
257
+ -if we have a description, fill it in here -
258
+ </test:description> -->
259
+
260
+ <test:inputDocument>
261
+ <test:RDF-XML-Document rdf:about="http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/test001.rdf" />
262
+ </test:inputDocument>
263
+
264
+ <test:outputDocument>
265
+ <test:NT-Document rdf:about="http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/test001.nt" />
266
+ </test:outputDocument>
267
+
268
+ </test:PositiveParserTest>
269
+ </rdf:RDF>
270
+ EOF
271
+
272
+ triples = <<-EOF
273
+ <http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/Manifest.rdf#test001> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#PositiveParserTest> .
274
+ <http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/Manifest.rdf#test001> <http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#approval> <http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2001Sep/0326.html> .
275
+ <http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/Manifest.rdf#test001> <http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#inputDocument> <http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/test001.rdf> .
276
+ <http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/Manifest.rdf#test001> <http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#outputDocument> <http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/test001.nt> .
277
+ <http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/Manifest.rdf#test001> <http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#status> "APPROVED" .
278
+ <http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/test001.nt> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#NT-Document> .
279
+ <http://www.w3.org/2000/10/rdf-tests/rdfcore/amp-in-url/test001.rdf> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#RDF-XML-Document> .
280
+ EOF
281
+ tc = RdfXMLHelper::TestCase.new([])
282
+ tc.about = "http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/Manifest.rdf#test001"
283
+ tc.parser = @parser
284
+ graph = @parser.parse(sampledoc, tc.about, :strict => true)
285
+ graph.should be_equivalent_graph(triples, tc)
286
+ end
287
+
288
+ describe "parsing rdf files" do
289
+ def test_file(filepath, uri = nil)
290
+ n3_string = File.read(filepath)
291
+ graph = @parser.parse(n3_string, uri, :strict => true)
292
+ ntriples = graph.to_ntriples
293
+ ntriples.gsub!(/_:bn\d+/, '_:node1')
294
+ ntriples = ntriples.split("\n").sort.join("\n")
295
+
296
+ nt_string = File.read(filepath.sub('.rdf', '.nt'))
297
+ nt_string = nt_string.split("\n").sort.join("\n")
298
+
299
+ ntriples.should == nt_string
300
+ end
301
+
302
+ before(:all) do
303
+ @rdf_dir = File.join(File.dirname(__FILE__), '..', 'test', 'rdf_tests')
304
+ end
305
+
306
+ it "should parse Coldplay's BBC Music profile" do
307
+ gid = 'cc197bad-dc9c-440d-a5b5-d52ba2e14234'
308
+ file = File.join(@rdf_dir, "#{gid}.rdf")
309
+ test_file(file, "http://www.bbc.co.uk/music/artists/#{gid}")
310
+ end
311
+
312
+ # it "should parse xml literal test" do
313
+ # file = File.join(@rdf_dir, "xml-literal-mixed.rdf")
314
+ # test_file(file)
315
+ # end
316
+ end
317
+
318
+ # W3C Test suite from http://www.w3.org/2000/10/rdf-tests/rdfcore/
319
+ describe "w3c rdfcore tests" do
320
+ require 'rdfxml_helper'
321
+ include RdfXMLHelper
322
+
323
+ def self.positive_tests
324
+ RdfCoreHelper::TestCase.positive_parser_tests rescue []
325
+ end
326
+
327
+ def self.negative_tests
328
+ []#RdfCoreHelper::TestCase.negative_parser_tests rescue []
329
+ end
330
+
331
+ # Negative parser tests should raise errors.
332
+ describe "positive parser tests" do
333
+ positive_tests.each do |t|
334
+ #next unless t.about.uri.to_s =~ /rdfms-rdf-names-use/
335
+ #next unless t.name =~ /11/
336
+ #puts t.inspect
337
+ specify "test #{t.about.uri.to_s}" do
338
+ t.run_test do |rdf_string, parser|
339
+ parser.parse(rdf_string, t.about.uri.to_s, :strict => true, :debug => [])
340
+ end
341
+ end
342
+ end
343
+ end
344
+
345
+ describe "negative parser tests" do
346
+ negative_tests.each do |t|
347
+ #next unless t.about.uri.to_s =~ /rdfms-empty-property-elements/
348
+ #next unless t.name =~ /1/
349
+ #puts t.inspect
350
+ specify "test #{t.about.uri.to_s}" do
351
+ t.run_test do |rdf_string, parser|
352
+ lambda do
353
+ parser.parse(rdf_string, t.about.uri.to_s, :strict => true, :debug => [])
354
+ parser.graph.should be_equivalent_graph("", t)
355
+ end.should raise_error(RdfException)
356
+ end
357
+ end
358
+ end
359
+ end
360
+ end
361
+ end
362
+