rdfa_parser 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +7 -0
- data/History.txt +47 -0
- data/README.rdoc +61 -0
- data/Rakefile +52 -0
- data/VERSION +1 -0
- data/bin/rdfa_parser +55 -0
- data/lib/rdfa_parser.rb +35 -0
- data/lib/rdfa_parser/bnode.rb +92 -0
- data/lib/rdfa_parser/exceptions.rb +11 -0
- data/lib/rdfa_parser/graph.rb +222 -0
- data/lib/rdfa_parser/literal.rb +375 -0
- data/lib/rdfa_parser/namespace.rb +91 -0
- data/lib/rdfa_parser/rdfa_parser.rb +415 -0
- data/lib/rdfa_parser/triple.rb +100 -0
- data/lib/rdfa_parser/uriref.rb +94 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/bnode_spec.rb +51 -0
- data/spec/graph_spec.rb +230 -0
- data/spec/literal_spec.rb +282 -0
- data/spec/matchers.rb +134 -0
- data/spec/namespace_spec.rb +61 -0
- data/spec/rdfa_helper.rb +127 -0
- data/spec/rdfa_parser_spec.rb +119 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/triple_spec.rb +145 -0
- data/spec/uriref_spec.rb +117 -0
- data/spec/xhtml1-testcases/.sparql +13 -0
- data/spec/xhtml1-testcases/0001.nt +1 -0
- data/spec/xhtml1-testcases/0001.sparql +3 -0
- data/spec/xhtml1-testcases/0001.xhtml +11 -0
- data/spec/xhtml1-testcases/0002.sparql +3 -0
- data/spec/xhtml1-testcases/0003.sparql +3 -0
- data/spec/xhtml1-testcases/0006.nt +2 -0
- data/spec/xhtml1-testcases/0006.sparql +8 -0
- data/spec/xhtml1-testcases/0006.xhtml +16 -0
- data/spec/xhtml1-testcases/0007.nt +3 -0
- data/spec/xhtml1-testcases/0007.sparql +5 -0
- data/spec/xhtml1-testcases/0007.xhtml +16 -0
- data/spec/xhtml1-testcases/0008.nt +1 -0
- data/spec/xhtml1-testcases/0008.sparql +3 -0
- data/spec/xhtml1-testcases/0008.xhtml +16 -0
- data/spec/xhtml1-testcases/0009.nt +1 -0
- data/spec/xhtml1-testcases/0009.sparql +3 -0
- data/spec/xhtml1-testcases/0009.xhtml +14 -0
- data/spec/xhtml1-testcases/0010.nt +2 -0
- data/spec/xhtml1-testcases/0010.sparql +4 -0
- data/spec/xhtml1-testcases/0010.xhtml +13 -0
- data/spec/xhtml1-testcases/0011.nt +3 -0
- data/spec/xhtml1-testcases/0011.sparql +17 -0
- data/spec/xhtml1-testcases/0011.xhtml +14 -0
- data/spec/xhtml1-testcases/0012.nt +1 -0
- data/spec/xhtml1-testcases/0012.sparql +3 -0
- data/spec/xhtml1-testcases/0012.xhtml +12 -0
- data/spec/xhtml1-testcases/0013.nt +1 -0
- data/spec/xhtml1-testcases/0013.sparql +3 -0
- data/spec/xhtml1-testcases/0013.xhtml +12 -0
- data/spec/xhtml1-testcases/0014.nt +1 -0
- data/spec/xhtml1-testcases/0014.sparql +3 -0
- data/spec/xhtml1-testcases/0014.xhtml +15 -0
- data/spec/xhtml1-testcases/0015.nt +2 -0
- data/spec/xhtml1-testcases/0015.sparql +4 -0
- data/spec/xhtml1-testcases/0015.xhtml +13 -0
- data/spec/xhtml1-testcases/0017.nt +3 -0
- data/spec/xhtml1-testcases/0017.sparql +6 -0
- data/spec/xhtml1-testcases/0017.xhtml +16 -0
- data/spec/xhtml1-testcases/0018.nt +1 -0
- data/spec/xhtml1-testcases/0018.sparql +3 -0
- data/spec/xhtml1-testcases/0018.xhtml +17 -0
- data/spec/xhtml1-testcases/0019.nt +1 -0
- data/spec/xhtml1-testcases/0019.sparql +3 -0
- data/spec/xhtml1-testcases/0019.xhtml +14 -0
- data/spec/xhtml1-testcases/0020.nt +1 -0
- data/spec/xhtml1-testcases/0020.sparql +3 -0
- data/spec/xhtml1-testcases/0020.xhtml +17 -0
- data/spec/xhtml1-testcases/0021.nt +1 -0
- data/spec/xhtml1-testcases/0021.sparql +3 -0
- data/spec/xhtml1-testcases/0021.xhtml +17 -0
- data/spec/xhtml1-testcases/0023.nt +1 -0
- data/spec/xhtml1-testcases/0023.sparql +3 -0
- data/spec/xhtml1-testcases/0023.xhtml +16 -0
- data/spec/xhtml1-testcases/0025.nt +2 -0
- data/spec/xhtml1-testcases/0025.sparql +4 -0
- data/spec/xhtml1-testcases/0025.xhtml +19 -0
- data/spec/xhtml1-testcases/0026.nt +1 -0
- data/spec/xhtml1-testcases/0026.sparql +3 -0
- data/spec/xhtml1-testcases/0026.xhtml +16 -0
- data/spec/xhtml1-testcases/0027.nt +1 -0
- data/spec/xhtml1-testcases/0027.sparql +3 -0
- data/spec/xhtml1-testcases/0027.xhtml +17 -0
- data/spec/xhtml1-testcases/0029.nt +1 -0
- data/spec/xhtml1-testcases/0029.sparql +3 -0
- data/spec/xhtml1-testcases/0029.xhtml +17 -0
- data/spec/xhtml1-testcases/0030.nt +1 -0
- data/spec/xhtml1-testcases/0030.sparql +3 -0
- data/spec/xhtml1-testcases/0030.xhtml +16 -0
- data/spec/xhtml1-testcases/0031.nt +1 -0
- data/spec/xhtml1-testcases/0031.sparql +3 -0
- data/spec/xhtml1-testcases/0031.xhtml +14 -0
- data/spec/xhtml1-testcases/0032.nt +1 -0
- data/spec/xhtml1-testcases/0032.sparql +3 -0
- data/spec/xhtml1-testcases/0032.xhtml +15 -0
- data/spec/xhtml1-testcases/0033.nt +2 -0
- data/spec/xhtml1-testcases/0033.sparql +5 -0
- data/spec/xhtml1-testcases/0033.xhtml +19 -0
- data/spec/xhtml1-testcases/0034.nt +1 -0
- data/spec/xhtml1-testcases/0034.sparql +3 -0
- data/spec/xhtml1-testcases/0034.xhtml +14 -0
- data/spec/xhtml1-testcases/0035.nt +1 -0
- data/spec/xhtml1-testcases/0035.sparql +3 -0
- data/spec/xhtml1-testcases/0035.xhtml +17 -0
- data/spec/xhtml1-testcases/0036.nt +1 -0
- data/spec/xhtml1-testcases/0036.sparql +3 -0
- data/spec/xhtml1-testcases/0036.xhtml +17 -0
- data/spec/xhtml1-testcases/0037.nt +1 -0
- data/spec/xhtml1-testcases/0037.sparql +3 -0
- data/spec/xhtml1-testcases/0037.xhtml +18 -0
- data/spec/xhtml1-testcases/0038.nt +1 -0
- data/spec/xhtml1-testcases/0038.sparql +3 -0
- data/spec/xhtml1-testcases/0038.xhtml +14 -0
- data/spec/xhtml1-testcases/0039.nt +1 -0
- data/spec/xhtml1-testcases/0039.sparql +3 -0
- data/spec/xhtml1-testcases/0039.xhtml +17 -0
- data/spec/xhtml1-testcases/0040.nt +1 -0
- data/spec/xhtml1-testcases/0040.sparql +3 -0
- data/spec/xhtml1-testcases/0040.xhtml +16 -0
- data/spec/xhtml1-testcases/0041.nt +1 -0
- data/spec/xhtml1-testcases/0041.sparql +3 -0
- data/spec/xhtml1-testcases/0041.xhtml +18 -0
- data/spec/xhtml1-testcases/0042.nt +0 -0
- data/spec/xhtml1-testcases/0042.sparql +4 -0
- data/spec/xhtml1-testcases/0042.xhtml +15 -0
- data/spec/xhtml1-testcases/0046.nt +3 -0
- data/spec/xhtml1-testcases/0046.sparql +6 -0
- data/spec/xhtml1-testcases/0046.xhtml +13 -0
- data/spec/xhtml1-testcases/0047.nt +3 -0
- data/spec/xhtml1-testcases/0047.sparql +6 -0
- data/spec/xhtml1-testcases/0047.xhtml +13 -0
- data/spec/xhtml1-testcases/0048.nt +3 -0
- data/spec/xhtml1-testcases/0048.sparql +6 -0
- data/spec/xhtml1-testcases/0048.xhtml +14 -0
- data/spec/xhtml1-testcases/0049.nt +2 -0
- data/spec/xhtml1-testcases/0049.sparql +4 -0
- data/spec/xhtml1-testcases/0049.xhtml +14 -0
- data/spec/xhtml1-testcases/0050.nt +2 -0
- data/spec/xhtml1-testcases/0050.sparql +5 -0
- data/spec/xhtml1-testcases/0050.xhtml +14 -0
- data/spec/xhtml1-testcases/0051.nt +2 -0
- data/spec/xhtml1-testcases/0051.sparql +4 -0
- data/spec/xhtml1-testcases/0051.xhtml +12 -0
- data/spec/xhtml1-testcases/0052.nt +1 -0
- data/spec/xhtml1-testcases/0052.sparql +3 -0
- data/spec/xhtml1-testcases/0052.xhtml +13 -0
- data/spec/xhtml1-testcases/0053.nt +2 -0
- data/spec/xhtml1-testcases/0053.sparql +4 -0
- data/spec/xhtml1-testcases/0053.xhtml +13 -0
- data/spec/xhtml1-testcases/0054.nt +2 -0
- data/spec/xhtml1-testcases/0054.sparql +4 -0
- data/spec/xhtml1-testcases/0054.xhtml +14 -0
- data/spec/xhtml1-testcases/0055.nt +2 -0
- data/spec/xhtml1-testcases/0055.sparql +4 -0
- data/spec/xhtml1-testcases/0055.xhtml +16 -0
- data/spec/xhtml1-testcases/0056.nt +3 -0
- data/spec/xhtml1-testcases/0056.sparql +5 -0
- data/spec/xhtml1-testcases/0056.xhtml +13 -0
- data/spec/xhtml1-testcases/0057.nt +4 -0
- data/spec/xhtml1-testcases/0057.sparql +6 -0
- data/spec/xhtml1-testcases/0057.xhtml +14 -0
- data/spec/xhtml1-testcases/0058.nt +6 -0
- data/spec/xhtml1-testcases/0058.sparql +9 -0
- data/spec/xhtml1-testcases/0058.xhtml +14 -0
- data/spec/xhtml1-testcases/0059.nt +6 -0
- data/spec/xhtml1-testcases/0059.sparql +8 -0
- data/spec/xhtml1-testcases/0059.xhtml +16 -0
- data/spec/xhtml1-testcases/0060.nt +2 -0
- data/spec/xhtml1-testcases/0060.sparql +4 -0
- data/spec/xhtml1-testcases/0060.xhtml +14 -0
- data/spec/xhtml1-testcases/0061.nt +1 -0
- data/spec/xhtml1-testcases/0061.sparql +3 -0
- data/spec/xhtml1-testcases/0061.xhtml +11 -0
- data/spec/xhtml1-testcases/0062.nt +1 -0
- data/spec/xhtml1-testcases/0062.sparql +3 -0
- data/spec/xhtml1-testcases/0062.xhtml +12 -0
- data/spec/xhtml1-testcases/0063.nt +1 -0
- data/spec/xhtml1-testcases/0063.sparql +3 -0
- data/spec/xhtml1-testcases/0063.xhtml +11 -0
- data/spec/xhtml1-testcases/0064.nt +1 -0
- data/spec/xhtml1-testcases/0064.sparql +4 -0
- data/spec/xhtml1-testcases/0064.xhtml +13 -0
- data/spec/xhtml1-testcases/0065.nt +3 -0
- data/spec/xhtml1-testcases/0065.sparql +6 -0
- data/spec/xhtml1-testcases/0065.xhtml +22 -0
- data/spec/xhtml1-testcases/0066.nt +1 -0
- data/spec/xhtml1-testcases/0066.sparql +3 -0
- data/spec/xhtml1-testcases/0066.xhtml +11 -0
- data/spec/xhtml1-testcases/0067.nt +1 -0
- data/spec/xhtml1-testcases/0067.sparql +3 -0
- data/spec/xhtml1-testcases/0067.xhtml +11 -0
- data/spec/xhtml1-testcases/0068.nt +1 -0
- data/spec/xhtml1-testcases/0068.sparql +3 -0
- data/spec/xhtml1-testcases/0068.xhtml +14 -0
- data/spec/xhtml1-testcases/0069.nt +1 -0
- data/spec/xhtml1-testcases/0069.sparql +3 -0
- data/spec/xhtml1-testcases/0069.xhtml +14 -0
- data/spec/xhtml1-testcases/0070.nt +1 -0
- data/spec/xhtml1-testcases/0070.sparql +3 -0
- data/spec/xhtml1-testcases/0070.xhtml +13 -0
- data/spec/xhtml1-testcases/0071.nt +1 -0
- data/spec/xhtml1-testcases/0071.sparql +3 -0
- data/spec/xhtml1-testcases/0071.xhtml +16 -0
- data/spec/xhtml1-testcases/0072.nt +1 -0
- data/spec/xhtml1-testcases/0072.sparql +3 -0
- data/spec/xhtml1-testcases/0072.xhtml +16 -0
- data/spec/xhtml1-testcases/0073.nt +1 -0
- data/spec/xhtml1-testcases/0073.sparql +3 -0
- data/spec/xhtml1-testcases/0073.xhtml +16 -0
- data/spec/xhtml1-testcases/0074.nt +1 -0
- data/spec/xhtml1-testcases/0074.sparql +3 -0
- data/spec/xhtml1-testcases/0074.xhtml +16 -0
- data/spec/xhtml1-testcases/0075.nt +1 -0
- data/spec/xhtml1-testcases/0075.sparql +3 -0
- data/spec/xhtml1-testcases/0075.xhtml +16 -0
- data/spec/xhtml1-testcases/0076.nt +23 -0
- data/spec/xhtml1-testcases/0076.sparql +70 -0
- data/spec/xhtml1-testcases/0076.xhtml +35 -0
- data/spec/xhtml1-testcases/0077.nt +23 -0
- data/spec/xhtml1-testcases/0077.sparql +70 -0
- data/spec/xhtml1-testcases/0077.xhtml +58 -0
- data/spec/xhtml1-testcases/0078.nt +6 -0
- data/spec/xhtml1-testcases/0078.sparql +7 -0
- data/spec/xhtml1-testcases/0078.xhtml +15 -0
- data/spec/xhtml1-testcases/0079.nt +3 -0
- data/spec/xhtml1-testcases/0079.sparql +6 -0
- data/spec/xhtml1-testcases/0079.xhtml +15 -0
- data/spec/xhtml1-testcases/0080.nt +1 -0
- data/spec/xhtml1-testcases/0080.sparql +3 -0
- data/spec/xhtml1-testcases/0080.xhtml +13 -0
- data/spec/xhtml1-testcases/0081.nt +6 -0
- data/spec/xhtml1-testcases/0081.sparql +9 -0
- data/spec/xhtml1-testcases/0081.xhtml +15 -0
- data/spec/xhtml1-testcases/0082.nt +8 -0
- data/spec/xhtml1-testcases/0082.sparql +11 -0
- data/spec/xhtml1-testcases/0082.xhtml +15 -0
- data/spec/xhtml1-testcases/0083.nt +6 -0
- data/spec/xhtml1-testcases/0083.sparql +9 -0
- data/spec/xhtml1-testcases/0083.xhtml +15 -0
- data/spec/xhtml1-testcases/0084.nt +8 -0
- data/spec/xhtml1-testcases/0084.sparql +11 -0
- data/spec/xhtml1-testcases/0084.xhtml +18 -0
- data/spec/xhtml1-testcases/0085.nt +4 -0
- data/spec/xhtml1-testcases/0085.sparql +6 -0
- data/spec/xhtml1-testcases/0085.xhtml +17 -0
- data/spec/xhtml1-testcases/0086.nt +0 -0
- data/spec/xhtml1-testcases/0086.sparql +4 -0
- data/spec/xhtml1-testcases/0086.xhtml +13 -0
- data/spec/xhtml1-testcases/0087.nt +23 -0
- data/spec/xhtml1-testcases/0087.sparql +70 -0
- data/spec/xhtml1-testcases/0087.xhtml +35 -0
- data/spec/xhtml1-testcases/0088.nt +3 -0
- data/spec/xhtml1-testcases/0088.sparql +6 -0
- data/spec/xhtml1-testcases/0088.xhtml +14 -0
- data/spec/xhtml1-testcases/0089.nt +1 -0
- data/spec/xhtml1-testcases/0089.sparql +3 -0
- data/spec/xhtml1-testcases/0089.xhtml +13 -0
- data/spec/xhtml1-testcases/0090.nt +1 -0
- data/spec/xhtml1-testcases/0090.sparql +3 -0
- data/spec/xhtml1-testcases/0090.xhtml +16 -0
- data/spec/xhtml1-testcases/0091.nt +3 -0
- data/spec/xhtml1-testcases/0091.sparql +6 -0
- data/spec/xhtml1-testcases/0091.xhtml +16 -0
- data/spec/xhtml1-testcases/0092.nt +3 -0
- data/spec/xhtml1-testcases/0092.sparql +16 -0
- data/spec/xhtml1-testcases/0092.xhtml +15 -0
- data/spec/xhtml1-testcases/0093.nt +2 -0
- data/spec/xhtml1-testcases/0093.sparql +4 -0
- data/spec/xhtml1-testcases/0093.xhtml +15 -0
- data/spec/xhtml1-testcases/0094.nt +3 -0
- data/spec/xhtml1-testcases/0094.sparql +16 -0
- data/spec/xhtml1-testcases/0094.xhtml +15 -0
- data/spec/xhtml1-testcases/0099.nt +1 -0
- data/spec/xhtml1-testcases/0099.sparql +3 -0
- data/spec/xhtml1-testcases/0099.xhtml +20 -0
- data/spec/xhtml1-testcases/0100.nt +3 -0
- data/spec/xhtml1-testcases/0100.sparql +15 -0
- data/spec/xhtml1-testcases/0100.xhtml +16 -0
- data/spec/xhtml1-testcases/0101.nt +3 -0
- data/spec/xhtml1-testcases/0101.sparql +15 -0
- data/spec/xhtml1-testcases/0101.xhtml +16 -0
- data/spec/xhtml1-testcases/0102.nt +1 -0
- data/spec/xhtml1-testcases/0102.sparql +15 -0
- data/spec/xhtml1-testcases/0102.xhtml +16 -0
- data/spec/xhtml1-testcases/0103.nt +1 -0
- data/spec/xhtml1-testcases/0103.sparql +15 -0
- data/spec/xhtml1-testcases/0103.xhtml +15 -0
- data/spec/xhtml1-testcases/0104.nt +3 -0
- data/spec/xhtml1-testcases/0104.sparql +5 -0
- data/spec/xhtml1-testcases/0104.xhtml +18 -0
- data/spec/xhtml1-testcases/0105.nt +1 -0
- data/spec/xhtml1-testcases/0105.sparql +7 -0
- data/spec/xhtml1-testcases/0105.xhtml +13 -0
- data/spec/xhtml1-testcases/0106.nt +1 -0
- data/spec/xhtml1-testcases/0106.sparql +7 -0
- data/spec/xhtml1-testcases/0106.xhtml +13 -0
- data/spec/xhtml1-testcases/0107.nt +0 -0
- data/spec/xhtml1-testcases/0107.sparql +4 -0
- data/spec/xhtml1-testcases/0107.xhtml +11 -0
- data/spec/xhtml1-testcases/0108.nt +1 -0
- data/spec/xhtml1-testcases/0108.sparql +3 -0
- data/spec/xhtml1-testcases/0108.xhtml +14 -0
- data/spec/xhtml1-testcases/0109.nt +1 -0
- data/spec/xhtml1-testcases/0109.sparql +3 -0
- data/spec/xhtml1-testcases/0109.xhtml +15 -0
- data/spec/xhtml1-testcases/0110.nt +1 -0
- data/spec/xhtml1-testcases/0110.sparql +4 -0
- data/spec/xhtml1-testcases/0110.xhtml +12 -0
- data/spec/xhtml1-testcases/0111.nt +2 -0
- data/spec/xhtml1-testcases/0111.sparql +5 -0
- data/spec/xhtml1-testcases/0111.xhtml +14 -0
- data/spec/xhtml1-testcases/0112.nt +1 -0
- data/spec/xhtml1-testcases/0112.sparql +3 -0
- data/spec/xhtml1-testcases/0112.xhtml +16 -0
- data/spec/xhtml1-testcases/0113.nt +2 -0
- data/spec/xhtml1-testcases/0113.sparql +4 -0
- data/spec/xhtml1-testcases/0113.xhtml +12 -0
- data/spec/xhtml1-testcases/0114.nt +3 -0
- data/spec/xhtml1-testcases/0114.sparql +5 -0
- data/spec/xhtml1-testcases/0114.xhtml +15 -0
- data/spec/xhtml1-testcases/0115.nt +4 -0
- data/spec/xhtml1-testcases/0115.sparql +14 -0
- data/spec/xhtml1-testcases/0115.xhtml +17 -0
- data/spec/xhtml1-testcases/0116.nt +2 -0
- data/spec/xhtml1-testcases/0116.sparql +6 -0
- data/spec/xhtml1-testcases/0116.xhtml +10 -0
- data/spec/xhtml1-testcases/0117.nt +2 -0
- data/spec/xhtml1-testcases/0117.sparql +4 -0
- data/spec/xhtml1-testcases/0117.xhtml +15 -0
- data/spec/xhtml1-testcases/0118.nt +1 -0
- data/spec/xhtml1-testcases/0118.sparql +5 -0
- data/spec/xhtml1-testcases/0118.xhtml +16 -0
- data/spec/xhtml1-testcases/0119.nt +1 -0
- data/spec/xhtml1-testcases/0119.sparql +5 -0
- data/spec/xhtml1-testcases/0119.xhtml +19 -0
- data/spec/xhtml1-testcases/0120.nt +1 -0
- data/spec/xhtml1-testcases/0120.sparql +5 -0
- data/spec/xhtml1-testcases/0120.xhtml +17 -0
- data/spec/xhtml1-testcases/0121.nt +2 -0
- data/spec/xhtml1-testcases/0121.sparql +4 -0
- data/spec/xhtml1-testcases/0121.xhtml +24 -0
- data/spec/xhtml1-testcases/0122.nt +1 -0
- data/spec/xhtml1-testcases/0122.sparql +4 -0
- data/spec/xhtml1-testcases/0122.xhtml +16 -0
- data/spec/xhtml1-testcases/0123.nt +3 -0
- data/spec/xhtml1-testcases/0123.sparql +5 -0
- data/spec/xhtml1-testcases/0123.xhtml +18 -0
- data/spec/xhtml1-testcases/0124.nt +4 -0
- data/spec/xhtml1-testcases/0124.sparql +6 -0
- data/spec/xhtml1-testcases/0124.xhtml +14 -0
- data/spec/xhtml1-testcases/0125.nt +1 -0
- data/spec/xhtml1-testcases/0125.sparql +5 -0
- data/spec/xhtml1-testcases/0125.xhtml +16 -0
- data/spec/xhtml1-testcases/0126.nt +3 -0
- data/spec/xhtml1-testcases/0126.sparql +5 -0
- data/spec/xhtml1-testcases/0126.xhtml +15 -0
- data/spec/xhtml1-testcases/1001.nt +6 -0
- data/spec/xhtml1-testcases/1001.sparql +8 -0
- data/spec/xhtml1-testcases/1001.xhtml +20 -0
- data/spec/xhtml1-testcases/9999.nt +3 -0
- data/spec/xhtml1-testcases/9999.xhtml +14 -0
- data/spec/xhtml1-testcases/rdfa-xhtml1-test-manifest.rdf +1303 -0
- data/tasks/rspec.rake +21 -0
- metadata +485 -0
data/spec/triple_spec.rb
ADDED
@@ -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
|
data/spec/uriref_spec.rb
ADDED
@@ -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,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,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,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,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,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>
|