rdf_context 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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
+