rdfa_parser 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. data/.gitignore +7 -0
  2. data/History.txt +47 -0
  3. data/README.rdoc +61 -0
  4. data/Rakefile +52 -0
  5. data/VERSION +1 -0
  6. data/bin/rdfa_parser +55 -0
  7. data/lib/rdfa_parser.rb +35 -0
  8. data/lib/rdfa_parser/bnode.rb +92 -0
  9. data/lib/rdfa_parser/exceptions.rb +11 -0
  10. data/lib/rdfa_parser/graph.rb +222 -0
  11. data/lib/rdfa_parser/literal.rb +375 -0
  12. data/lib/rdfa_parser/namespace.rb +91 -0
  13. data/lib/rdfa_parser/rdfa_parser.rb +415 -0
  14. data/lib/rdfa_parser/triple.rb +100 -0
  15. data/lib/rdfa_parser/uriref.rb +94 -0
  16. data/script/console +10 -0
  17. data/script/destroy +14 -0
  18. data/script/generate +14 -0
  19. data/spec/bnode_spec.rb +51 -0
  20. data/spec/graph_spec.rb +230 -0
  21. data/spec/literal_spec.rb +282 -0
  22. data/spec/matchers.rb +134 -0
  23. data/spec/namespace_spec.rb +61 -0
  24. data/spec/rdfa_helper.rb +127 -0
  25. data/spec/rdfa_parser_spec.rb +119 -0
  26. data/spec/spec.opts +1 -0
  27. data/spec/spec_helper.rb +23 -0
  28. data/spec/triple_spec.rb +145 -0
  29. data/spec/uriref_spec.rb +117 -0
  30. data/spec/xhtml1-testcases/.sparql +13 -0
  31. data/spec/xhtml1-testcases/0001.nt +1 -0
  32. data/spec/xhtml1-testcases/0001.sparql +3 -0
  33. data/spec/xhtml1-testcases/0001.xhtml +11 -0
  34. data/spec/xhtml1-testcases/0002.sparql +3 -0
  35. data/spec/xhtml1-testcases/0003.sparql +3 -0
  36. data/spec/xhtml1-testcases/0006.nt +2 -0
  37. data/spec/xhtml1-testcases/0006.sparql +8 -0
  38. data/spec/xhtml1-testcases/0006.xhtml +16 -0
  39. data/spec/xhtml1-testcases/0007.nt +3 -0
  40. data/spec/xhtml1-testcases/0007.sparql +5 -0
  41. data/spec/xhtml1-testcases/0007.xhtml +16 -0
  42. data/spec/xhtml1-testcases/0008.nt +1 -0
  43. data/spec/xhtml1-testcases/0008.sparql +3 -0
  44. data/spec/xhtml1-testcases/0008.xhtml +16 -0
  45. data/spec/xhtml1-testcases/0009.nt +1 -0
  46. data/spec/xhtml1-testcases/0009.sparql +3 -0
  47. data/spec/xhtml1-testcases/0009.xhtml +14 -0
  48. data/spec/xhtml1-testcases/0010.nt +2 -0
  49. data/spec/xhtml1-testcases/0010.sparql +4 -0
  50. data/spec/xhtml1-testcases/0010.xhtml +13 -0
  51. data/spec/xhtml1-testcases/0011.nt +3 -0
  52. data/spec/xhtml1-testcases/0011.sparql +17 -0
  53. data/spec/xhtml1-testcases/0011.xhtml +14 -0
  54. data/spec/xhtml1-testcases/0012.nt +1 -0
  55. data/spec/xhtml1-testcases/0012.sparql +3 -0
  56. data/spec/xhtml1-testcases/0012.xhtml +12 -0
  57. data/spec/xhtml1-testcases/0013.nt +1 -0
  58. data/spec/xhtml1-testcases/0013.sparql +3 -0
  59. data/spec/xhtml1-testcases/0013.xhtml +12 -0
  60. data/spec/xhtml1-testcases/0014.nt +1 -0
  61. data/spec/xhtml1-testcases/0014.sparql +3 -0
  62. data/spec/xhtml1-testcases/0014.xhtml +15 -0
  63. data/spec/xhtml1-testcases/0015.nt +2 -0
  64. data/spec/xhtml1-testcases/0015.sparql +4 -0
  65. data/spec/xhtml1-testcases/0015.xhtml +13 -0
  66. data/spec/xhtml1-testcases/0017.nt +3 -0
  67. data/spec/xhtml1-testcases/0017.sparql +6 -0
  68. data/spec/xhtml1-testcases/0017.xhtml +16 -0
  69. data/spec/xhtml1-testcases/0018.nt +1 -0
  70. data/spec/xhtml1-testcases/0018.sparql +3 -0
  71. data/spec/xhtml1-testcases/0018.xhtml +17 -0
  72. data/spec/xhtml1-testcases/0019.nt +1 -0
  73. data/spec/xhtml1-testcases/0019.sparql +3 -0
  74. data/spec/xhtml1-testcases/0019.xhtml +14 -0
  75. data/spec/xhtml1-testcases/0020.nt +1 -0
  76. data/spec/xhtml1-testcases/0020.sparql +3 -0
  77. data/spec/xhtml1-testcases/0020.xhtml +17 -0
  78. data/spec/xhtml1-testcases/0021.nt +1 -0
  79. data/spec/xhtml1-testcases/0021.sparql +3 -0
  80. data/spec/xhtml1-testcases/0021.xhtml +17 -0
  81. data/spec/xhtml1-testcases/0023.nt +1 -0
  82. data/spec/xhtml1-testcases/0023.sparql +3 -0
  83. data/spec/xhtml1-testcases/0023.xhtml +16 -0
  84. data/spec/xhtml1-testcases/0025.nt +2 -0
  85. data/spec/xhtml1-testcases/0025.sparql +4 -0
  86. data/spec/xhtml1-testcases/0025.xhtml +19 -0
  87. data/spec/xhtml1-testcases/0026.nt +1 -0
  88. data/spec/xhtml1-testcases/0026.sparql +3 -0
  89. data/spec/xhtml1-testcases/0026.xhtml +16 -0
  90. data/spec/xhtml1-testcases/0027.nt +1 -0
  91. data/spec/xhtml1-testcases/0027.sparql +3 -0
  92. data/spec/xhtml1-testcases/0027.xhtml +17 -0
  93. data/spec/xhtml1-testcases/0029.nt +1 -0
  94. data/spec/xhtml1-testcases/0029.sparql +3 -0
  95. data/spec/xhtml1-testcases/0029.xhtml +17 -0
  96. data/spec/xhtml1-testcases/0030.nt +1 -0
  97. data/spec/xhtml1-testcases/0030.sparql +3 -0
  98. data/spec/xhtml1-testcases/0030.xhtml +16 -0
  99. data/spec/xhtml1-testcases/0031.nt +1 -0
  100. data/spec/xhtml1-testcases/0031.sparql +3 -0
  101. data/spec/xhtml1-testcases/0031.xhtml +14 -0
  102. data/spec/xhtml1-testcases/0032.nt +1 -0
  103. data/spec/xhtml1-testcases/0032.sparql +3 -0
  104. data/spec/xhtml1-testcases/0032.xhtml +15 -0
  105. data/spec/xhtml1-testcases/0033.nt +2 -0
  106. data/spec/xhtml1-testcases/0033.sparql +5 -0
  107. data/spec/xhtml1-testcases/0033.xhtml +19 -0
  108. data/spec/xhtml1-testcases/0034.nt +1 -0
  109. data/spec/xhtml1-testcases/0034.sparql +3 -0
  110. data/spec/xhtml1-testcases/0034.xhtml +14 -0
  111. data/spec/xhtml1-testcases/0035.nt +1 -0
  112. data/spec/xhtml1-testcases/0035.sparql +3 -0
  113. data/spec/xhtml1-testcases/0035.xhtml +17 -0
  114. data/spec/xhtml1-testcases/0036.nt +1 -0
  115. data/spec/xhtml1-testcases/0036.sparql +3 -0
  116. data/spec/xhtml1-testcases/0036.xhtml +17 -0
  117. data/spec/xhtml1-testcases/0037.nt +1 -0
  118. data/spec/xhtml1-testcases/0037.sparql +3 -0
  119. data/spec/xhtml1-testcases/0037.xhtml +18 -0
  120. data/spec/xhtml1-testcases/0038.nt +1 -0
  121. data/spec/xhtml1-testcases/0038.sparql +3 -0
  122. data/spec/xhtml1-testcases/0038.xhtml +14 -0
  123. data/spec/xhtml1-testcases/0039.nt +1 -0
  124. data/spec/xhtml1-testcases/0039.sparql +3 -0
  125. data/spec/xhtml1-testcases/0039.xhtml +17 -0
  126. data/spec/xhtml1-testcases/0040.nt +1 -0
  127. data/spec/xhtml1-testcases/0040.sparql +3 -0
  128. data/spec/xhtml1-testcases/0040.xhtml +16 -0
  129. data/spec/xhtml1-testcases/0041.nt +1 -0
  130. data/spec/xhtml1-testcases/0041.sparql +3 -0
  131. data/spec/xhtml1-testcases/0041.xhtml +18 -0
  132. data/spec/xhtml1-testcases/0042.nt +0 -0
  133. data/spec/xhtml1-testcases/0042.sparql +4 -0
  134. data/spec/xhtml1-testcases/0042.xhtml +15 -0
  135. data/spec/xhtml1-testcases/0046.nt +3 -0
  136. data/spec/xhtml1-testcases/0046.sparql +6 -0
  137. data/spec/xhtml1-testcases/0046.xhtml +13 -0
  138. data/spec/xhtml1-testcases/0047.nt +3 -0
  139. data/spec/xhtml1-testcases/0047.sparql +6 -0
  140. data/spec/xhtml1-testcases/0047.xhtml +13 -0
  141. data/spec/xhtml1-testcases/0048.nt +3 -0
  142. data/spec/xhtml1-testcases/0048.sparql +6 -0
  143. data/spec/xhtml1-testcases/0048.xhtml +14 -0
  144. data/spec/xhtml1-testcases/0049.nt +2 -0
  145. data/spec/xhtml1-testcases/0049.sparql +4 -0
  146. data/spec/xhtml1-testcases/0049.xhtml +14 -0
  147. data/spec/xhtml1-testcases/0050.nt +2 -0
  148. data/spec/xhtml1-testcases/0050.sparql +5 -0
  149. data/spec/xhtml1-testcases/0050.xhtml +14 -0
  150. data/spec/xhtml1-testcases/0051.nt +2 -0
  151. data/spec/xhtml1-testcases/0051.sparql +4 -0
  152. data/spec/xhtml1-testcases/0051.xhtml +12 -0
  153. data/spec/xhtml1-testcases/0052.nt +1 -0
  154. data/spec/xhtml1-testcases/0052.sparql +3 -0
  155. data/spec/xhtml1-testcases/0052.xhtml +13 -0
  156. data/spec/xhtml1-testcases/0053.nt +2 -0
  157. data/spec/xhtml1-testcases/0053.sparql +4 -0
  158. data/spec/xhtml1-testcases/0053.xhtml +13 -0
  159. data/spec/xhtml1-testcases/0054.nt +2 -0
  160. data/spec/xhtml1-testcases/0054.sparql +4 -0
  161. data/spec/xhtml1-testcases/0054.xhtml +14 -0
  162. data/spec/xhtml1-testcases/0055.nt +2 -0
  163. data/spec/xhtml1-testcases/0055.sparql +4 -0
  164. data/spec/xhtml1-testcases/0055.xhtml +16 -0
  165. data/spec/xhtml1-testcases/0056.nt +3 -0
  166. data/spec/xhtml1-testcases/0056.sparql +5 -0
  167. data/spec/xhtml1-testcases/0056.xhtml +13 -0
  168. data/spec/xhtml1-testcases/0057.nt +4 -0
  169. data/spec/xhtml1-testcases/0057.sparql +6 -0
  170. data/spec/xhtml1-testcases/0057.xhtml +14 -0
  171. data/spec/xhtml1-testcases/0058.nt +6 -0
  172. data/spec/xhtml1-testcases/0058.sparql +9 -0
  173. data/spec/xhtml1-testcases/0058.xhtml +14 -0
  174. data/spec/xhtml1-testcases/0059.nt +6 -0
  175. data/spec/xhtml1-testcases/0059.sparql +8 -0
  176. data/spec/xhtml1-testcases/0059.xhtml +16 -0
  177. data/spec/xhtml1-testcases/0060.nt +2 -0
  178. data/spec/xhtml1-testcases/0060.sparql +4 -0
  179. data/spec/xhtml1-testcases/0060.xhtml +14 -0
  180. data/spec/xhtml1-testcases/0061.nt +1 -0
  181. data/spec/xhtml1-testcases/0061.sparql +3 -0
  182. data/spec/xhtml1-testcases/0061.xhtml +11 -0
  183. data/spec/xhtml1-testcases/0062.nt +1 -0
  184. data/spec/xhtml1-testcases/0062.sparql +3 -0
  185. data/spec/xhtml1-testcases/0062.xhtml +12 -0
  186. data/spec/xhtml1-testcases/0063.nt +1 -0
  187. data/spec/xhtml1-testcases/0063.sparql +3 -0
  188. data/spec/xhtml1-testcases/0063.xhtml +11 -0
  189. data/spec/xhtml1-testcases/0064.nt +1 -0
  190. data/spec/xhtml1-testcases/0064.sparql +4 -0
  191. data/spec/xhtml1-testcases/0064.xhtml +13 -0
  192. data/spec/xhtml1-testcases/0065.nt +3 -0
  193. data/spec/xhtml1-testcases/0065.sparql +6 -0
  194. data/spec/xhtml1-testcases/0065.xhtml +22 -0
  195. data/spec/xhtml1-testcases/0066.nt +1 -0
  196. data/spec/xhtml1-testcases/0066.sparql +3 -0
  197. data/spec/xhtml1-testcases/0066.xhtml +11 -0
  198. data/spec/xhtml1-testcases/0067.nt +1 -0
  199. data/spec/xhtml1-testcases/0067.sparql +3 -0
  200. data/spec/xhtml1-testcases/0067.xhtml +11 -0
  201. data/spec/xhtml1-testcases/0068.nt +1 -0
  202. data/spec/xhtml1-testcases/0068.sparql +3 -0
  203. data/spec/xhtml1-testcases/0068.xhtml +14 -0
  204. data/spec/xhtml1-testcases/0069.nt +1 -0
  205. data/spec/xhtml1-testcases/0069.sparql +3 -0
  206. data/spec/xhtml1-testcases/0069.xhtml +14 -0
  207. data/spec/xhtml1-testcases/0070.nt +1 -0
  208. data/spec/xhtml1-testcases/0070.sparql +3 -0
  209. data/spec/xhtml1-testcases/0070.xhtml +13 -0
  210. data/spec/xhtml1-testcases/0071.nt +1 -0
  211. data/spec/xhtml1-testcases/0071.sparql +3 -0
  212. data/spec/xhtml1-testcases/0071.xhtml +16 -0
  213. data/spec/xhtml1-testcases/0072.nt +1 -0
  214. data/spec/xhtml1-testcases/0072.sparql +3 -0
  215. data/spec/xhtml1-testcases/0072.xhtml +16 -0
  216. data/spec/xhtml1-testcases/0073.nt +1 -0
  217. data/spec/xhtml1-testcases/0073.sparql +3 -0
  218. data/spec/xhtml1-testcases/0073.xhtml +16 -0
  219. data/spec/xhtml1-testcases/0074.nt +1 -0
  220. data/spec/xhtml1-testcases/0074.sparql +3 -0
  221. data/spec/xhtml1-testcases/0074.xhtml +16 -0
  222. data/spec/xhtml1-testcases/0075.nt +1 -0
  223. data/spec/xhtml1-testcases/0075.sparql +3 -0
  224. data/spec/xhtml1-testcases/0075.xhtml +16 -0
  225. data/spec/xhtml1-testcases/0076.nt +23 -0
  226. data/spec/xhtml1-testcases/0076.sparql +70 -0
  227. data/spec/xhtml1-testcases/0076.xhtml +35 -0
  228. data/spec/xhtml1-testcases/0077.nt +23 -0
  229. data/spec/xhtml1-testcases/0077.sparql +70 -0
  230. data/spec/xhtml1-testcases/0077.xhtml +58 -0
  231. data/spec/xhtml1-testcases/0078.nt +6 -0
  232. data/spec/xhtml1-testcases/0078.sparql +7 -0
  233. data/spec/xhtml1-testcases/0078.xhtml +15 -0
  234. data/spec/xhtml1-testcases/0079.nt +3 -0
  235. data/spec/xhtml1-testcases/0079.sparql +6 -0
  236. data/spec/xhtml1-testcases/0079.xhtml +15 -0
  237. data/spec/xhtml1-testcases/0080.nt +1 -0
  238. data/spec/xhtml1-testcases/0080.sparql +3 -0
  239. data/spec/xhtml1-testcases/0080.xhtml +13 -0
  240. data/spec/xhtml1-testcases/0081.nt +6 -0
  241. data/spec/xhtml1-testcases/0081.sparql +9 -0
  242. data/spec/xhtml1-testcases/0081.xhtml +15 -0
  243. data/spec/xhtml1-testcases/0082.nt +8 -0
  244. data/spec/xhtml1-testcases/0082.sparql +11 -0
  245. data/spec/xhtml1-testcases/0082.xhtml +15 -0
  246. data/spec/xhtml1-testcases/0083.nt +6 -0
  247. data/spec/xhtml1-testcases/0083.sparql +9 -0
  248. data/spec/xhtml1-testcases/0083.xhtml +15 -0
  249. data/spec/xhtml1-testcases/0084.nt +8 -0
  250. data/spec/xhtml1-testcases/0084.sparql +11 -0
  251. data/spec/xhtml1-testcases/0084.xhtml +18 -0
  252. data/spec/xhtml1-testcases/0085.nt +4 -0
  253. data/spec/xhtml1-testcases/0085.sparql +6 -0
  254. data/spec/xhtml1-testcases/0085.xhtml +17 -0
  255. data/spec/xhtml1-testcases/0086.nt +0 -0
  256. data/spec/xhtml1-testcases/0086.sparql +4 -0
  257. data/spec/xhtml1-testcases/0086.xhtml +13 -0
  258. data/spec/xhtml1-testcases/0087.nt +23 -0
  259. data/spec/xhtml1-testcases/0087.sparql +70 -0
  260. data/spec/xhtml1-testcases/0087.xhtml +35 -0
  261. data/spec/xhtml1-testcases/0088.nt +3 -0
  262. data/spec/xhtml1-testcases/0088.sparql +6 -0
  263. data/spec/xhtml1-testcases/0088.xhtml +14 -0
  264. data/spec/xhtml1-testcases/0089.nt +1 -0
  265. data/spec/xhtml1-testcases/0089.sparql +3 -0
  266. data/spec/xhtml1-testcases/0089.xhtml +13 -0
  267. data/spec/xhtml1-testcases/0090.nt +1 -0
  268. data/spec/xhtml1-testcases/0090.sparql +3 -0
  269. data/spec/xhtml1-testcases/0090.xhtml +16 -0
  270. data/spec/xhtml1-testcases/0091.nt +3 -0
  271. data/spec/xhtml1-testcases/0091.sparql +6 -0
  272. data/spec/xhtml1-testcases/0091.xhtml +16 -0
  273. data/spec/xhtml1-testcases/0092.nt +3 -0
  274. data/spec/xhtml1-testcases/0092.sparql +16 -0
  275. data/spec/xhtml1-testcases/0092.xhtml +15 -0
  276. data/spec/xhtml1-testcases/0093.nt +2 -0
  277. data/spec/xhtml1-testcases/0093.sparql +4 -0
  278. data/spec/xhtml1-testcases/0093.xhtml +15 -0
  279. data/spec/xhtml1-testcases/0094.nt +3 -0
  280. data/spec/xhtml1-testcases/0094.sparql +16 -0
  281. data/spec/xhtml1-testcases/0094.xhtml +15 -0
  282. data/spec/xhtml1-testcases/0099.nt +1 -0
  283. data/spec/xhtml1-testcases/0099.sparql +3 -0
  284. data/spec/xhtml1-testcases/0099.xhtml +20 -0
  285. data/spec/xhtml1-testcases/0100.nt +3 -0
  286. data/spec/xhtml1-testcases/0100.sparql +15 -0
  287. data/spec/xhtml1-testcases/0100.xhtml +16 -0
  288. data/spec/xhtml1-testcases/0101.nt +3 -0
  289. data/spec/xhtml1-testcases/0101.sparql +15 -0
  290. data/spec/xhtml1-testcases/0101.xhtml +16 -0
  291. data/spec/xhtml1-testcases/0102.nt +1 -0
  292. data/spec/xhtml1-testcases/0102.sparql +15 -0
  293. data/spec/xhtml1-testcases/0102.xhtml +16 -0
  294. data/spec/xhtml1-testcases/0103.nt +1 -0
  295. data/spec/xhtml1-testcases/0103.sparql +15 -0
  296. data/spec/xhtml1-testcases/0103.xhtml +15 -0
  297. data/spec/xhtml1-testcases/0104.nt +3 -0
  298. data/spec/xhtml1-testcases/0104.sparql +5 -0
  299. data/spec/xhtml1-testcases/0104.xhtml +18 -0
  300. data/spec/xhtml1-testcases/0105.nt +1 -0
  301. data/spec/xhtml1-testcases/0105.sparql +7 -0
  302. data/spec/xhtml1-testcases/0105.xhtml +13 -0
  303. data/spec/xhtml1-testcases/0106.nt +1 -0
  304. data/spec/xhtml1-testcases/0106.sparql +7 -0
  305. data/spec/xhtml1-testcases/0106.xhtml +13 -0
  306. data/spec/xhtml1-testcases/0107.nt +0 -0
  307. data/spec/xhtml1-testcases/0107.sparql +4 -0
  308. data/spec/xhtml1-testcases/0107.xhtml +11 -0
  309. data/spec/xhtml1-testcases/0108.nt +1 -0
  310. data/spec/xhtml1-testcases/0108.sparql +3 -0
  311. data/spec/xhtml1-testcases/0108.xhtml +14 -0
  312. data/spec/xhtml1-testcases/0109.nt +1 -0
  313. data/spec/xhtml1-testcases/0109.sparql +3 -0
  314. data/spec/xhtml1-testcases/0109.xhtml +15 -0
  315. data/spec/xhtml1-testcases/0110.nt +1 -0
  316. data/spec/xhtml1-testcases/0110.sparql +4 -0
  317. data/spec/xhtml1-testcases/0110.xhtml +12 -0
  318. data/spec/xhtml1-testcases/0111.nt +2 -0
  319. data/spec/xhtml1-testcases/0111.sparql +5 -0
  320. data/spec/xhtml1-testcases/0111.xhtml +14 -0
  321. data/spec/xhtml1-testcases/0112.nt +1 -0
  322. data/spec/xhtml1-testcases/0112.sparql +3 -0
  323. data/spec/xhtml1-testcases/0112.xhtml +16 -0
  324. data/spec/xhtml1-testcases/0113.nt +2 -0
  325. data/spec/xhtml1-testcases/0113.sparql +4 -0
  326. data/spec/xhtml1-testcases/0113.xhtml +12 -0
  327. data/spec/xhtml1-testcases/0114.nt +3 -0
  328. data/spec/xhtml1-testcases/0114.sparql +5 -0
  329. data/spec/xhtml1-testcases/0114.xhtml +15 -0
  330. data/spec/xhtml1-testcases/0115.nt +4 -0
  331. data/spec/xhtml1-testcases/0115.sparql +14 -0
  332. data/spec/xhtml1-testcases/0115.xhtml +17 -0
  333. data/spec/xhtml1-testcases/0116.nt +2 -0
  334. data/spec/xhtml1-testcases/0116.sparql +6 -0
  335. data/spec/xhtml1-testcases/0116.xhtml +10 -0
  336. data/spec/xhtml1-testcases/0117.nt +2 -0
  337. data/spec/xhtml1-testcases/0117.sparql +4 -0
  338. data/spec/xhtml1-testcases/0117.xhtml +15 -0
  339. data/spec/xhtml1-testcases/0118.nt +1 -0
  340. data/spec/xhtml1-testcases/0118.sparql +5 -0
  341. data/spec/xhtml1-testcases/0118.xhtml +16 -0
  342. data/spec/xhtml1-testcases/0119.nt +1 -0
  343. data/spec/xhtml1-testcases/0119.sparql +5 -0
  344. data/spec/xhtml1-testcases/0119.xhtml +19 -0
  345. data/spec/xhtml1-testcases/0120.nt +1 -0
  346. data/spec/xhtml1-testcases/0120.sparql +5 -0
  347. data/spec/xhtml1-testcases/0120.xhtml +17 -0
  348. data/spec/xhtml1-testcases/0121.nt +2 -0
  349. data/spec/xhtml1-testcases/0121.sparql +4 -0
  350. data/spec/xhtml1-testcases/0121.xhtml +24 -0
  351. data/spec/xhtml1-testcases/0122.nt +1 -0
  352. data/spec/xhtml1-testcases/0122.sparql +4 -0
  353. data/spec/xhtml1-testcases/0122.xhtml +16 -0
  354. data/spec/xhtml1-testcases/0123.nt +3 -0
  355. data/spec/xhtml1-testcases/0123.sparql +5 -0
  356. data/spec/xhtml1-testcases/0123.xhtml +18 -0
  357. data/spec/xhtml1-testcases/0124.nt +4 -0
  358. data/spec/xhtml1-testcases/0124.sparql +6 -0
  359. data/spec/xhtml1-testcases/0124.xhtml +14 -0
  360. data/spec/xhtml1-testcases/0125.nt +1 -0
  361. data/spec/xhtml1-testcases/0125.sparql +5 -0
  362. data/spec/xhtml1-testcases/0125.xhtml +16 -0
  363. data/spec/xhtml1-testcases/0126.nt +3 -0
  364. data/spec/xhtml1-testcases/0126.sparql +5 -0
  365. data/spec/xhtml1-testcases/0126.xhtml +15 -0
  366. data/spec/xhtml1-testcases/1001.nt +6 -0
  367. data/spec/xhtml1-testcases/1001.sparql +8 -0
  368. data/spec/xhtml1-testcases/1001.xhtml +20 -0
  369. data/spec/xhtml1-testcases/9999.nt +3 -0
  370. data/spec/xhtml1-testcases/9999.xhtml +14 -0
  371. data/spec/xhtml1-testcases/rdfa-xhtml1-test-manifest.rdf +1303 -0
  372. data/tasks/rspec.rake +21 -0
  373. metadata +485 -0
@@ -0,0 +1,145 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+
3
+ describe "Triples" do
4
+ it "should require that the subject is a URIRef or BNode" do
5
+ lambda do
6
+ Triple.new(Literal.new("foo"), URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new)
7
+ end.should raise_error
8
+ end
9
+
10
+ it "should require that the predicate is a URIRef" do
11
+ lambda do
12
+ Triple.new(BNode.new, BNode.new, BNode.new)
13
+ end.should raise_error
14
+ end
15
+
16
+ it "should require that the object is a URIRef, BNode, Literal or Typed Literal" do
17
+ lambda do
18
+ Triple.new(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), [])
19
+ end.should raise_error
20
+ end
21
+
22
+ describe "with BNodes" do
23
+ subject { Triple.new(BNode.new, URIRef.new('http://xmlns.com/foaf/0.1/knows'), BNode.new) }
24
+
25
+ it "should have a subject" do
26
+ subject.subject.class.should == BNode
27
+ end
28
+
29
+ it "should emit an NTriple" do
30
+ subject.to_ntriples.should == "#{subject.subject.to_n3} <http://xmlns.com/foaf/0.1/knows> #{subject.object.to_n3} ."
31
+ end
32
+ end
33
+
34
+ describe "with URIRefs" do
35
+ subject {
36
+ s = URIRef.new("http://tommorris.org/foaf#me")
37
+ p = URIRef.new("http://xmlns.com/foaf/0.1/name")
38
+ o = Literal.untyped("Tom Morris")
39
+ Triple.new(s,p,o)
40
+ }
41
+
42
+ it "should emit an NTriple" do
43
+ subject.to_ntriples.should == "<http://tommorris.org/foaf#me> <http://xmlns.com/foaf/0.1/name> \"Tom Morris\" ."
44
+ end
45
+ end
46
+
47
+ describe "with coerced subject" do
48
+ it "should accept a URIRef" do
49
+ ref = URIRef.new('http://localhost/')
50
+ Triple.coerce_subject(ref).should == ref
51
+ end
52
+
53
+ it "should accept a BNode" do
54
+ node = BNode.new('a')
55
+ Triple.coerce_subject(node).should == node
56
+ end
57
+
58
+ it "should accept a uri string and make URIRef" do
59
+ Triple.coerce_subject('http://localhost/').should == URIRef.new('http://localhost/')
60
+ end
61
+
62
+ it "should accept an Addressable::URI object and make URIRef" do
63
+ Triple.coerce_subject(Addressable::URI.parse("http://localhost/")).should == URIRef.new("http://localhost/")
64
+ end
65
+
66
+ it "should turn an other string into a BNode" do
67
+ Triple.coerce_subject('foo').should == BNode.new('foo')
68
+ end
69
+
70
+ it "should raise an InvalidSubject exception with any other class argument" do
71
+ lambda do
72
+ Triple.coerce_subject(Object.new)
73
+ end.should raise_error(Triple::InvalidSubject)
74
+ end
75
+ end
76
+
77
+ describe "with coerced predicate" do
78
+ it "should make a string into a URI ref" do
79
+ Triple.coerce_predicate("http://localhost/").should == URIRef.new('http://localhost/')
80
+ end
81
+
82
+ it "should leave a URIRef alone" do
83
+ ref = URIRef.new('http://localhost/')
84
+ Triple.coerce_predicate(ref).should == ref
85
+ end
86
+
87
+ it "should barf on an illegal uri string" do
88
+ lambda do
89
+ Triple.coerce_predicate("I'm just a soul whose intention is good")
90
+ end.should raise_error(Triple::InvalidPredicate)
91
+ end
92
+ end
93
+
94
+ describe "with coerced object" do
95
+ it "should leave URIRefs alone" do
96
+ ref = URIRef.new("http://localhost/")
97
+ Triple.coerce_object(ref).should == ref
98
+ end
99
+
100
+ it "should accept an Addressable::URI object and make URIRef" do
101
+ Triple.coerce_object(Addressable::URI.parse("http://localhost/")).should == URIRef.new("http://localhost/")
102
+ end
103
+
104
+ it "should leave BNodes alone" do
105
+ ref = BNode.new()
106
+ Triple.coerce_object(ref).should == ref
107
+ end
108
+
109
+ it "should leave Literals alone" do
110
+ ref = Literal.untyped('foo')
111
+ Triple.coerce_object(ref).should == ref
112
+
113
+ typedref = Literal.build_from('foo')
114
+ Triple.coerce_object(ref).should == ref
115
+ end
116
+
117
+ end
118
+
119
+ describe "equivalence" do
120
+ before(:all) do
121
+ @test_cases = [
122
+ Triple.new(URIRef.new("http://foo"),URIRef.new("http://bar"),URIRef.new("http://baz")),
123
+ Triple.new(URIRef.new("http://foo"),URIRef.new("http://bar"),Literal.untyped("baz")),
124
+ Triple.new(URIRef.new("http://foo"),"http://bar",Literal.untyped("baz")),
125
+ Triple.new(BNode.new("foo"),URIRef.new("http://bar"),Literal.untyped("baz")),
126
+ Triple.new(BNode.new,URIRef.new("http://bar"),Literal.untyped("baz")),
127
+ ]
128
+ end
129
+ it "should be equal to itself" do
130
+ @test_cases.each {|triple| triple.should == triple}
131
+ end
132
+
133
+ it "should not be equal to something else" do
134
+ t = Triple.new(URIRef.new("http://fab"),URIRef.new("http://bar"),URIRef.new("http://baz")),
135
+ @test_cases.each {|triple| triple.should_not == t}
136
+ end
137
+
138
+ it "should be equal to equivalent" do
139
+ @test_cases.each do |triple|
140
+ t = Triple.new(triple.subject.to_s, triple.predicate.to_s, triple.object)
141
+ triple.should == t
142
+ end
143
+ end
144
+ end
145
+ end
@@ -0,0 +1,117 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+ require 'webrick'
3
+ include WEBrick
4
+ #require 'lib/uriref'
5
+
6
+ describe "URI References" do
7
+ it "should output NTriples" do
8
+ f = URIRef.new("http://tommorris.org/foaf/")
9
+ f.to_ntriples.should == "<http://tommorris.org/foaf/>"
10
+ end
11
+
12
+ it "should handle Unicode symbols inside URLs" do
13
+ lambda do
14
+ f = URIRef.new("http://example.org/#Andr%E9")
15
+ end.should_not raise_error
16
+ end
17
+
18
+ # it "do not contain any control characters (#x00 - #x1F, #x74-#x9F)" do
19
+ # lambda do
20
+ # f = URIRef.new("http://tommorris.org/blog/")
21
+ # f.test_string("http://tommorris.org/blog")
22
+ # end.should_not raise_error
23
+ #
24
+ # lambda do
25
+ # f = URIRef.new("http://xmlns.com/foaf/0.1/knows")
26
+ # f.test_string("http://xmlns.com/foaf/0.1/knows")
27
+ # end.should_not raise_error
28
+ # end
29
+
30
+ it "should return the 'last fragment' name" do
31
+ fragment = URIRef.new("http://example.org/foo#bar")
32
+ fragment.short_name.should == "bar"
33
+
34
+ path = URIRef.new("http://example.org/foo/bar")
35
+ path.short_name.should == "bar"
36
+
37
+ nonetest = URIRef.new("http://example.org/")
38
+ nonetest.short_name.should == false
39
+ end
40
+
41
+ it "should append fragment to uri" do
42
+ URIRef.new("foo", "http://example.org").should == "http://example.org/foo"
43
+ end
44
+
45
+ it "should produce a valid URI character sequence (per RFC 2396 §2.1) representing an absolute URI with optional fragment identifier" do
46
+ pending "TODO: figure out a series of tests for RFC 2396 §2.1 adherence"
47
+ end
48
+
49
+ it "should throw errors on suspicious protocols and non-protocols" do
50
+ lambda do
51
+ URIRef.new("javascript:alert(\"pass\")")
52
+ end.should raise_error
53
+ end
54
+
55
+ it "must not be a relative URI" do
56
+ lambda do
57
+ URIRef.new("foo")
58
+ end.should raise_error
59
+ end
60
+
61
+ it "should discourage use of %-escaped characters" do
62
+ pending "TODO: figure out a way to discourage %-escaped character usage"
63
+ end
64
+
65
+ it "should allow another URIRef to be added" do
66
+ uri = URIRef.new("http://example.org/") + "foo#bar"
67
+ uri.to_s.should == "http://example.org/foo#bar"
68
+ uri.class.should == URIRef
69
+
70
+ uri2 = URIRef.new("http://example.org/") + Addressable::URI.parse("foo#bar")
71
+ uri2.to_s.should == "http://example.org/foo#bar"
72
+ end
73
+
74
+ it "should create QName from URI with namespace" do
75
+ uri = URIRef.new("http://example.org/foo#bar")
76
+ uri.to_qname("http://example.org/foo#" => "ex").should == "ex:bar"
77
+
78
+ uri = URIRef.new("http://xmlns.com/foaf/0.1/knows")
79
+ uri.to_qname("http://xmlns.com/foaf/0.1/" => "foaf").should == "foaf:knows"
80
+ end
81
+
82
+ it "should create resource hash for RDF/XML" do
83
+ uri = URIRef.new("http://example.org/foo#bar")
84
+ uri.xml_args.should == [{"rdf:resource" => uri.to_s}]
85
+ end
86
+
87
+ it "should be equivalent to string" do
88
+ URIRef.new("http://example.org/foo#bar").should == "http://example.org/foo#bar"
89
+ end
90
+
91
+ # TEST turned off until parser is working.
92
+ # it "should allow the programmer to Follow His Nose" do
93
+ # a = URIRef.new("http://127.0.0.1:3001/test")
94
+ #
95
+ # # server
96
+ # test_proc = lambda { |req, resp|
97
+ # resp['Content-Type'] = "application/rdf+xml"
98
+ # resp.body = <<-EOF;
99
+ # <?xml version="1.0" ?>
100
+ # <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/">
101
+ # <rdf:Description rdf:about="http://localhost:3001/test">
102
+ # <foaf:name>Testy McTest</foaf:name>
103
+ # </rdf:Description>
104
+ # </rdf:RDF>
105
+ # EOF
106
+ # }
107
+ # test = HTTPServlet::ProcHandler.new(test_proc)
108
+ # s = HTTPServer.new(:Port => 3001)
109
+ # s.mount("/test", test)
110
+ # trap("INT"){ s.shutdown }
111
+ # thread = Thread.new { s.start }
112
+ # graph = a.load_graph
113
+ # s.shutdown
114
+ # graph.class.should == Reddy::Graph
115
+ # graph.size.should == 1
116
+ # end
117
+ end
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
2
+ <html><head>
3
+ <title>300 Multiple Choices</title>
4
+ </head><body>
5
+ <h1>Multiple Choices</h1>
6
+ The document name you requested (<code>/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/.sparql</code>) could not be found on this server.
7
+ However, we found documents with names similar to the one you requested.<p>Available documents:
8
+ <ul>
9
+ <li><a href="/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/.">/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/.</a> (common basename)
10
+ <li><a href="/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/..">/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/..</a> (common basename)
11
+ <li><a href="/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/.htaccess">/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/.htaccess</a> (common basename)
12
+ </ul>
13
+ </body></html>
@@ -0,0 +1 @@
1
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
@@ -0,0 +1,3 @@
1
+ ASK WHERE {
2
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
3
+ }
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
5
+ <head>
6
+ <title>Test 0001</title>
7
+ </head>
8
+ <body>
9
+ <p>This photo was taken by <span class="author" about="photo1.jpg" property="dc:creator">Mark Birbeck</span>.</p>
10
+ </body>
11
+ </html>
@@ -0,0 +1,3 @@
1
+ ASK WHERE {
2
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
3
+ }
@@ -0,0 +1,3 @@
1
+ ASK WHERE {
2
+ ?x0 <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
3
+ }
@@ -0,0 +1,2 @@
1
+ <http://www.blogger.com/profile/1109404> <http://xmlns.com/foaf/0.1/img> <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> .
2
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> <http://www.blogger.com/profile/1109404> .
@@ -0,0 +1,8 @@
1
+ ASK WHERE {
2
+ <http://www.blogger.com/profile/1109404> <http://xmlns.com/foaf/0.1/img> <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> .
3
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> <http://www.blogger.com/profile/1109404> .
4
+ }
5
+
6
+
7
+
8
+
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:foaf="http://xmlns.com/foaf/0.1/">
6
+ <head>
7
+ <title>Test 0006</title>
8
+ </head>
9
+ <body>
10
+ <p>
11
+ This photo was taken by
12
+ <a about="photo1.jpg" rel="dc:creator" rev="foaf:img"
13
+ href="http://www.blogger.com/profile/1109404">Mark Birbeck</a>.
14
+ </p>
15
+ </body>
16
+ </html>
@@ -0,0 +1,3 @@
1
+ <http://www.blogger.com/profile/1109404> <http://xmlns.com/foaf/0.1/img> <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> .
2
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> <http://purl.org/dc/elements/1.1/title> "Portrait of Mark" .
3
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> <http://www.blogger.com/profile/1109404> .
@@ -0,0 +1,5 @@
1
+ ASK WHERE {
2
+ <http://www.blogger.com/profile/1109404> <http://xmlns.com/foaf/0.1/img> <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> .
3
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> <http://purl.org/dc/elements/1.1/title> "Portrait of Mark" .
4
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> <http://www.blogger.com/profile/1109404> .
5
+ }
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:foaf="http://xmlns.com/foaf/0.1/">
6
+ <head>
7
+ <title>Test 0007</title>
8
+ </head>
9
+ <body>
10
+ <p>This photo was taken by
11
+ <a about="photo1.jpg" property="dc:title"
12
+ content="Portrait of Mark" rel="dc:creator"
13
+ rev="foaf:img" href="http://www.blogger.com/profile/1109404">Mark Birbeck</a>.
14
+ </p>
15
+ </body>
16
+ </html>
@@ -0,0 +1 @@
1
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/0008.xhtml> <http://creativecommons.org/ns#license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> .
@@ -0,0 +1,3 @@
1
+ ASK WHERE {
2
+ <http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/0008.xhtml> <http://creativecommons.org/ns#license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> .
3
+ }
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"
4
+ xmlns:cc="http://creativecommons.org/ns#">
5
+ <head>
6
+ <title>Test 0008</title>
7
+ </head>
8
+ <body>
9
+ <p>This document is licensed under a
10
+ <a about="" rel="cc:license"
11
+ href="http://creativecommons.org/licenses/by-nc-nd/2.5/">
12
+ Creative Commons
13
+ </a>.
14
+ </p>
15
+ </body>
16
+ </html>
@@ -0,0 +1 @@
1
+ <http://example.org/people#Person2> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person1> .
@@ -0,0 +1,3 @@
1
+ ASK WHERE {
2
+ <http://example.org/people#Person2> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person1> .
3
+ }
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"
4
+ xmlns:foaf="http://xmlns.com/foaf/0.1/">
5
+ <head>
6
+ <title>Test 0009</title>
7
+ <link about="http://example.org/people#Person1"
8
+ rev="foaf:knows" href="http://example.org/people#Person2" />
9
+
10
+ </head>
11
+ <body>
12
+ <p></p>
13
+ </body>
14
+ </html>
@@ -0,0 +1,2 @@
1
+ <http://example.org/people#Person1> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person2> .
2
+ <http://example.org/people#Person2> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person1> .
@@ -0,0 +1,4 @@
1
+ ASK WHERE {
2
+ <http://example.org/people#Person1> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person2> .
3
+ <http://example.org/people#Person2> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person1> .
4
+ }
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"
4
+ xmlns:foaf="http://xmlns.com/foaf/0.1/">
5
+ <head>
6
+ <title>Test 0010</title>
7
+ <link about="http://example.org/people#Person1"
8
+ rel="foaf:knows" rev="foaf:knows" href="http://example.org/people#Person2" />
9
+ </head>
10
+ <body>
11
+ <p></p>
12
+ </body>
13
+ </html>