rdf-spec 0.3.2 → 0.3.4

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.3.4
data/etc/bendiken.nq ADDED
@@ -0,0 +1,8 @@
1
+ <http://ar.to/#self> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> <http://ar.to/#self> .
2
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/name> "Arto Bendiken" <http://ar.to/#self> .
3
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox> <mailto:arto.bendiken@gmail.com> <http://ar.to/#self> .
4
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "d0737cceb55eb7d740578d2db1bc0727e3ed49ce" <http://ar.to/#self> .
5
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "a033f652c84a4d73b8c26d318c2395699dd2bdfb" <http://ar.to/#self> .
6
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/homepage> <http://ar.to/> <http://ar.to/#self> .
7
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/made> <http://rubygems.org/gems/rdf> <http://ar.to/#self> .
8
+ <http://ar.to/#self> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://datagraph.org/bendiken/foaf> <http://ar.to/#self> .
data/etc/bendiken.nt ADDED
@@ -0,0 +1,8 @@
1
+ <http://ar.to/#self> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
2
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/name> "Arto Bendiken" .
3
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox> <mailto:arto.bendiken@gmail.com> .
4
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "d0737cceb55eb7d740578d2db1bc0727e3ed49ce" .
5
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "a033f652c84a4d73b8c26d318c2395699dd2bdfb" .
6
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/homepage> <http://ar.to/> .
7
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/made> <http://rubygems.org/gems/rdf> .
8
+ <http://ar.to/#self> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://datagraph.org/bendiken/foaf> .
data/etc/bendiken.ttl ADDED
@@ -0,0 +1,17 @@
1
+ @base <http://rubygems.org/gems/rdf> .
2
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
3
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
4
+ @prefix dc: <http://purl.org/dc/terms/> .
5
+ @prefix foaf: <http://xmlns.com/foaf/0.1/> .
6
+ @prefix doap: <http://usefulinc.com/ns/doap#> .
7
+ @prefix ex: <http://example.org/> .
8
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
9
+
10
+ <http://ar.to/#self> a foaf:Person ;
11
+ foaf:name "Arto Bendiken" ;
12
+ foaf:mbox <mailto:arto.bendiken@gmail.com> ;
13
+ foaf:mbox_sha1sum "d0737cceb55eb7d740578d2db1bc0727e3ed49ce",
14
+ "a033f652c84a4d73b8c26d318c2395699dd2bdfb" ;
15
+ foaf:homepage <http://ar.to/> ;
16
+ foaf:made <> ;
17
+ rdfs:isDefinedBy <http://datagraph.org/bendiken/foaf> .
data/etc/bhuga.nq ADDED
@@ -0,0 +1,6 @@
1
+ <http://bhuga.net/#ben> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> <http://bhuga.net/#ben> .
2
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/name> "Ben Lavender" <http://bhuga.net/#ben> .
3
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/mbox> <mailto:blavender@gmail.com> <http://bhuga.net/#ben> .
4
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "dbf45f4ffbd27b67aa84f02a6a31c144727d10af" <http://bhuga.net/#ben> .
5
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/homepage> <http://bhuga.net/> <http://bhuga.net/#ben> .
6
+ <http://bhuga.net/#ben> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://datagraph.org/bhuga/foaf> <http://bhuga.net/#ben> .
data/etc/bhuga.nt ADDED
@@ -0,0 +1,6 @@
1
+ <http://bhuga.net/#ben> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
2
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/name> "Ben Lavender" .
3
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/mbox> <mailto:blavender@gmail.com> .
4
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "dbf45f4ffbd27b67aa84f02a6a31c144727d10af" .
5
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/homepage> <http://bhuga.net/> .
6
+ <http://bhuga.net/#ben> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://datagraph.org/bhuga/foaf> .
data/etc/bhuga.ttl ADDED
@@ -0,0 +1,15 @@
1
+ @base <http://rubygems.org/gems/rdf> .
2
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
3
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
4
+ @prefix dc: <http://purl.org/dc/terms/> .
5
+ @prefix foaf: <http://xmlns.com/foaf/0.1/> .
6
+ @prefix doap: <http://usefulinc.com/ns/doap#> .
7
+ @prefix ex: <http://example.org/> .
8
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
9
+
10
+ <http://bhuga.net/#ben> a foaf:Person ;
11
+ foaf:name "Ben Lavender" ;
12
+ foaf:mbox <mailto:blavender@gmail.com> ;
13
+ foaf:mbox_sha1sum "dbf45f4ffbd27b67aa84f02a6a31c144727d10af" ;
14
+ foaf:homepage <http://bhuga.net/> ;
15
+ rdfs:isDefinedBy <http://datagraph.org/bhuga/foaf> .
data/etc/doap.nq ADDED
@@ -0,0 +1,92 @@
1
+ <http://ar.to/#self> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> <http://ar.to/#self> .
2
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/name> "Arto Bendiken" <http://ar.to/#self> .
3
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox> <mailto:arto.bendiken@gmail.com> <http://ar.to/#self> .
4
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "d0737cceb55eb7d740578d2db1bc0727e3ed49ce" <http://ar.to/#self> .
5
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "a033f652c84a4d73b8c26d318c2395699dd2bdfb" <http://ar.to/#self> .
6
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/homepage> <http://ar.to/> <http://ar.to/#self> .
7
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/made> <http://rubygems.org/gems/rdf> <http://ar.to/#self> .
8
+ <http://ar.to/#self> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://datagraph.org/bendiken/foaf> <http://ar.to/#self> .
9
+ <http://bhuga.net/#ben> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> <http://bhuga.net/#ben> .
10
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/name> "Ben Lavender" <http://bhuga.net/#ben> .
11
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/mbox> <mailto:blavender@gmail.com> <http://bhuga.net/#ben> .
12
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "dbf45f4ffbd27b67aa84f02a6a31c144727d10af" <http://bhuga.net/#ben> .
13
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/homepage> <http://bhuga.net/> <http://bhuga.net/#ben> .
14
+ <http://bhuga.net/#ben> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://datagraph.org/bhuga/foaf> <http://bhuga.net/#ben> .
15
+ <http://greggkellogg.net/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> <http://greggkellogg.net/#me> .
16
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" <http://greggkellogg.net/#me> .
17
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/mbox> <mailto:gregg@greggkellogg.net> <http://greggkellogg.net/#me> .
18
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "b7a856d39fc3f02573271d9901f1f9107147f657" <http://greggkellogg.net/#me> .
19
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/homepage> <http://greggkellogg.net/> <http://greggkellogg.net/#me> .
20
+ <http://rubygems.org/gems/rdf> <http://purl.org/dc/terms/creator> <http://ar.to/#self> .
21
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://ar.to/> .
22
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://blog.datagraph.org/> .
23
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#bug-database> <http://github.com/bendiken/rdf/issues> .
24
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#category> <http://dbpedia.org/resource/Resource_Description_Framework> .
25
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#category> <http://dbpedia.org/resource/Ruby_(programming_language)> .
26
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#created> "2007-10-23" .
27
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#description> "RDF.rb is a pure-Ruby library for working with Resource Description Framework (RDF) data."@en .
28
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://ar.to/#self> .
29
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://bhuga.net/#ben> .
30
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://greggkellogg.net/#me> .
31
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://ar.to/#self> .
32
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://bhuga.net/#ben> .
33
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://greggkellogg.net/#me> .
34
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#download-page> <http://rubyforge.org/projects/rdf/> .
35
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid1 .
36
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid2 .
37
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid3 .
38
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid4 .
39
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid5 .
40
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid6 .
41
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid7 .
42
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid8 .
43
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid9 .
44
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#homepage> <http://rdf.rubyforge.org/> .
45
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#license> <http://creativecommons.org/licenses/publicdomain/> .
46
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://ar.to/#self> .
47
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://bhuga.net/#ben> .
48
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://greggkellogg.net/#me> .
49
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#name> "RDF.rb" .
50
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#platform> "Ruby" .
51
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#shortdesc> "A Ruby library for working with Resource Description Framework (RDF) data."@en .
52
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#vendor> <http://datagraph.org/> .
53
+ <http://rubygems.org/gems/rdf> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://usefulinc.com/ns/doap#Project> .
54
+ <http://rubygems.org/gems/rdf> <http://xmlns.com/foaf/0.1/maker> <http://ar.to/#self> .
55
+ _:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
56
+ _:genid1 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "274bd18402fc773ffc0606996aa1fb90b603aa29" .
57
+ _:genid1 <http://xmlns.com/foaf/0.1/name> "C\u0103lin Ardelean" .
58
+ _:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
59
+ _:genid2 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "6de43e9cf7de53427fea9765706703e4d957c17b" .
60
+ _:genid2 <http://xmlns.com/foaf/0.1/name> "Danny Gagne" .
61
+ _:genid3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
62
+ _:genid3 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "f412d743150d7b27b8468d56e69ca147917ea6fc" .
63
+ _:genid3 <http://xmlns.com/foaf/0.1/name> "Joey Geiger" .
64
+ _:genid4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
65
+ _:genid4 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "d31fdd6af7a279a89bf09fdc9f7c44d9d08bb930" .
66
+ _:genid4 <http://xmlns.com/foaf/0.1/name> "Fumihiro Kato" .
67
+ _:genid5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
68
+ _:genid5 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "5bdcd8e2af4f5952aaeeffbdd371c41525ec761d" .
69
+ _:genid5 <http://xmlns.com/foaf/0.1/name> "Naoki Kawamukai" .
70
+ _:genid6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
71
+ _:genid6 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "c69f3255ff0639543cc5edfd8116eac8df16fab8" .
72
+ _:genid6 <http://xmlns.com/foaf/0.1/name> "Hellekin O. Wolf" .
73
+ _:genid7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
74
+ _:genid7 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "f7653fc1ac0e82ebb32f092389bd5fc728eaae12" .
75
+ _:genid7 <http://xmlns.com/foaf/0.1/name> "John Fieber" .
76
+ _:genid8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
77
+ _:genid8 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "2b4247b6fd5bb4a1383378f325784318680d5ff9" .
78
+ _:genid8 <http://xmlns.com/foaf/0.1/name> "Keita Urashima" .
79
+ _:genid9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
80
+ _:genid9 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "bedbbf2451e5beb38d59687c0460032aff92cd3c" .
81
+ _:genid9 <http://xmlns.com/foaf/0.1/name> "Pius Uzamere" .
82
+ # Test data from SPARQLdata-r2/expr-equals
83
+ <http://example.org/xi1> <http://example.org/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
84
+ <http://example.org/xi2> <http://example.org/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
85
+ <http://example.org/xi3> <http://example.org/p> "01"^^<http://www.w3.org/2001/XMLSchema#integer> .
86
+ <http://example.org/xd1> <http://example.org/p> "1.0e0"^^<http://www.w3.org/2001/XMLSchema#double> .
87
+ <http://example.org/xd2> <http://example.org/p> "1.0"^^<http://www.w3.org/2001/XMLSchema#double> .
88
+ <http://example.org/xd3> <http://example.org/p> "1"^^<http://www.w3.org/2001/XMLSchema#double> .
89
+ <http://example.org/xt1> <http://example.org/p> "zzz"^^<http://example.org/myType> .
90
+ <http://example.org/xp1> <http://example.org/p> "zzz" .
91
+ <http://example.org/xp2> <http://example.org/p> "1" .
92
+ <http://example.org/xu> <http://example.org/p> <http://example.org/z> .
data/etc/doap.nt CHANGED
@@ -1,22 +1,3 @@
1
- <http://ar.to/#self> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
2
- <http://ar.to/#self> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://datagraph.org/bendiken/foaf> .
3
- <http://ar.to/#self> <http://xmlns.com/foaf/0.1/homepage> <http://ar.to/> .
4
- <http://ar.to/#self> <http://xmlns.com/foaf/0.1/made> <http://rubygems.org/gems/rdf> .
5
- <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox> <mailto:arto.bendiken@gmail.com> .
6
- <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "a033f652c84a4d73b8c26d318c2395699dd2bdfb" .
7
- <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "d0737cceb55eb7d740578d2db1bc0727e3ed49ce" .
8
- <http://ar.to/#self> <http://xmlns.com/foaf/0.1/name> "Arto Bendiken" .
9
- <http://bhuga.net/#ben> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
10
- <http://bhuga.net/#ben> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://datagraph.org/bhuga/foaf> .
11
- <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/homepage> <http://bhuga.net/> .
12
- <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/mbox> <mailto:blavender@gmail.com> .
13
- <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "dbf45f4ffbd27b67aa84f02a6a31c144727d10af" .
14
- <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/name> "Ben Lavender" .
15
- <http://kellogg-assoc.com/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
16
- <http://kellogg-assoc.com/#me> <http://xmlns.com/foaf/0.1/homepage> <http://kellogg-assoc.com/> .
17
- <http://kellogg-assoc.com/#me> <http://xmlns.com/foaf/0.1/mbox> <mailto:gregg@kellogg-assoc.com> .
18
- <http://kellogg-assoc.com/#me> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "35bc44e6d0070e5ad50ccbe0d24403c96af2b9bd" .
19
- <http://kellogg-assoc.com/#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
20
1
  <http://rubygems.org/gems/rdf> <http://purl.org/dc/terms/creator> <http://ar.to/#self> .
21
2
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://ar.to/> .
22
3
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://blog.datagraph.org/> .
@@ -27,10 +8,10 @@
27
8
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#description> "RDF.rb is a pure-Ruby library for working with Resource Description Framework (RDF) data."@en .
28
9
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://ar.to/#self> .
29
10
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://bhuga.net/#ben> .
30
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://kellogg-assoc.com/#me> .
11
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://greggkellogg.net/#me> .
31
12
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://ar.to/#self> .
32
13
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://bhuga.net/#ben> .
33
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://kellogg-assoc.com/#me> .
14
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://greggkellogg.net/#me> .
34
15
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#download-page> <http://rubyforge.org/projects/rdf/> .
35
16
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid1 .
36
17
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid2 .
@@ -45,7 +26,7 @@
45
26
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#license> <http://creativecommons.org/licenses/publicdomain/> .
46
27
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://ar.to/#self> .
47
28
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://bhuga.net/#ben> .
48
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://kellogg-assoc.com/#me> .
29
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://greggkellogg.net/#me> .
49
30
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#name> "RDF.rb" .
50
31
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#platform> "Ruby" .
51
32
  <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#shortdesc> "A Ruby library for working with Resource Description Framework (RDF) data."@en .
data/etc/doap.ttl ADDED
@@ -0,0 +1,53 @@
1
+ @base <http://rubygems.org/gems/rdf> .
2
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
3
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
4
+ @prefix dc: <http://purl.org/dc/terms/> .
5
+ @prefix foaf: <http://xmlns.com/foaf/0.1/> .
6
+ @prefix doap: <http://usefulinc.com/ns/doap#> .
7
+
8
+ <> a doap:Project ;
9
+ doap:name "RDF.rb" ;
10
+ doap:homepage <http://rdf.rubyforge.org/> ;
11
+ doap:license <http://creativecommons.org/licenses/publicdomain/> ;
12
+ doap:shortdesc "A Ruby library for working with Resource Description Framework (RDF) data."@en ;
13
+ doap:description "RDF.rb is a pure-Ruby library for working with Resource Description Framework (RDF) data."@en ;
14
+ doap:created "2007-10-23" ;
15
+ doap:platform "Ruby" ;
16
+ doap:category <http://dbpedia.org/resource/Resource_Description_Framework>,
17
+ <http://dbpedia.org/resource/Ruby_(programming_language)> ;
18
+ doap:download-page <http://rubyforge.org/projects/rdf/> ;
19
+ doap:bug-database <http://github.com/bendiken/rdf/issues> ;
20
+ doap:blog <http://ar.to/>, <http://blog.datagraph.org/> ;
21
+ doap:vendor <http://datagraph.org/> ;
22
+ doap:developer <http://ar.to/#self>, <http://bhuga.net/#ben>, <http://greggkellogg.net/#me> ;
23
+ doap:maintainer <http://ar.to/#self>, <http://bhuga.net/#ben>, <http://greggkellogg.net/#me> ;
24
+ doap:documenter <http://ar.to/#self>, <http://bhuga.net/#ben>, <http://greggkellogg.net/#me> ;
25
+ doap:helper [a foaf:Person ;
26
+ foaf:name "Călin Ardelean" ;
27
+ foaf:mbox_sha1sum "274bd18402fc773ffc0606996aa1fb90b603aa29"] ;
28
+ doap:helper [a foaf:Person ;
29
+ foaf:name "Danny Gagne" ;
30
+ foaf:mbox_sha1sum "6de43e9cf7de53427fea9765706703e4d957c17b"] ;
31
+ doap:helper [a foaf:Person ;
32
+ foaf:name "Joey Geiger" ;
33
+ foaf:mbox_sha1sum "f412d743150d7b27b8468d56e69ca147917ea6fc"] ;
34
+ doap:helper [a foaf:Person ;
35
+ foaf:name "Fumihiro Kato" ;
36
+ foaf:mbox_sha1sum "d31fdd6af7a279a89bf09fdc9f7c44d9d08bb930"] ;
37
+ doap:helper [a foaf:Person ;
38
+ foaf:name "Naoki Kawamukai" ;
39
+ foaf:mbox_sha1sum "5bdcd8e2af4f5952aaeeffbdd371c41525ec761d"] ;
40
+ doap:helper [a foaf:Person ;
41
+ foaf:name "Hellekin O. Wolf" ;
42
+ foaf:mbox_sha1sum "c69f3255ff0639543cc5edfd8116eac8df16fab8"] ;
43
+ doap:helper [a foaf:Person ;
44
+ foaf:name "John Fieber" ;
45
+ foaf:mbox_sha1sum "f7653fc1ac0e82ebb32f092389bd5fc728eaae12"] ;
46
+ doap:helper [a foaf:Person ;
47
+ foaf:name "Keita Urashima" ;
48
+ foaf:mbox_sha1sum "2b4247b6fd5bb4a1383378f325784318680d5ff9"] ;
49
+ doap:helper [a foaf:Person ;
50
+ foaf:name "Pius Uzamere" ;
51
+ foaf:mbox_sha1sum "bedbbf2451e5beb38d59687c0460032aff92cd3c"] ;
52
+ foaf:maker <http://ar.to/#self> ;
53
+ dc:creator <http://ar.to/#self> .
data/etc/gkellogg.nq ADDED
@@ -0,0 +1,5 @@
1
+ <http://greggkellogg.net/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> <http://greggkellogg.net/#me> .
2
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" <http://greggkellogg.net/#me> .
3
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/mbox> <mailto:gregg@greggkellogg.net> <http://greggkellogg.net/#me> .
4
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "b7a856d39fc3f02573271d9901f1f9107147f657" <http://greggkellogg.net/#me> .
5
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/homepage> <http://greggkellogg.net/> <http://greggkellogg.net/#me> .
data/etc/gkellogg.nt ADDED
@@ -0,0 +1,5 @@
1
+ <http://greggkellogg.net/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
2
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
3
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/mbox> <mailto:gregg@greggkellogg.net> .
4
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "b7a856d39fc3f02573271d9901f1f9107147f657" .
5
+ <http://greggkellogg.net/#me> <http://xmlns.com/foaf/0.1/homepage> <http://greggkellogg.net/> .
data/etc/gkellogg.ttl ADDED
@@ -0,0 +1,14 @@
1
+ @base <http://rubygems.org/gems/rdf> .
2
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
3
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
4
+ @prefix dc: <http://purl.org/dc/terms/> .
5
+ @prefix foaf: <http://xmlns.com/foaf/0.1/> .
6
+ @prefix doap: <http://usefulinc.com/ns/doap#> .
7
+ @prefix ex: <http://example.org/> .
8
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
9
+
10
+ <http://greggkellogg.net/#me> a foaf:Person ;
11
+ foaf:name "Gregg Kellogg" ;
12
+ foaf:mbox <mailto:gregg@greggkellogg.net> ;
13
+ foaf:mbox_sha1sum "b7a856d39fc3f02573271d9901f1f9107147f657" ;
14
+ foaf:homepage <http://greggkellogg.net/> .
data/etc/test-data.nt ADDED
@@ -0,0 +1,11 @@
1
+ # Test data from SPARQLdata-r2/expr-equals
2
+ <http://example.org/xi1> <http://example.org/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
3
+ <http://example.org/xi2> <http://example.org/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
4
+ <http://example.org/xi3> <http://example.org/p> "01"^^<http://www.w3.org/2001/XMLSchema#integer> .
5
+ <http://example.org/xd1> <http://example.org/p> "1.0e0"^^<http://www.w3.org/2001/XMLSchema#double> .
6
+ <http://example.org/xd2> <http://example.org/p> "1.0"^^<http://www.w3.org/2001/XMLSchema#double> .
7
+ <http://example.org/xd3> <http://example.org/p> "1"^^<http://www.w3.org/2001/XMLSchema#double> .
8
+ <http://example.org/xt1> <http://example.org/p> "zzz"^^<http://example.org/myType> .
9
+ <http://example.org/xp1> <http://example.org/p> "zzz" .
10
+ <http://example.org/xp2> <http://example.org/p> "1" .
11
+ <http://example.org/xu> <http://example.org/p> <http://example.org/z> .
@@ -3,5 +3,26 @@ require 'rdf/spec'
3
3
  share_as :RDF_Format do
4
4
  include RDF::Spec::Matchers
5
5
 
6
- # TODO
6
+ before(:each) do
7
+ raise raise '+@format_class+ must be defined in a before(:each) block' unless instance_variable_get('@format_class')
8
+ end
9
+
10
+ describe ".reader" do
11
+ it "returns a reader" do
12
+ @format_class.each do |f|
13
+ f.reader.should_not be_nil
14
+ end
15
+ end
16
+ end
17
+
18
+ describe ".writer" do
19
+ ##
20
+ # May not return a writer, only does if one is defined by the format
21
+ it "returns a writer" do
22
+ @format_class.each do |f|
23
+ format_namespace = f.name.split('::')[0..-2].inject(Kernel) {|base, const| base.const_get(const)}
24
+ f.writer.should_not be_nil if format_namespace.const_defined?(:Writer)
25
+ end
26
+ end
27
+ end
7
28
  end
@@ -6,14 +6,15 @@ share_as :RDF_Queryable do
6
6
  before :each do
7
7
  raise '+@queryable+ must be defined in a before(:each) block' unless instance_variable_get('@queryable')
8
8
 
9
- @filename = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', 'etc', 'doap.nt'))
10
- @statements = RDF::NTriples::Reader.new(File.open(@filename)).to_a
9
+ @doap = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', 'etc', 'doap.nq'))
10
+ @doaps = RDF::NQuads::Reader.new(File.open(@doap)).to_a
11
+ @statements = @doaps
11
12
 
12
13
  if @queryable.empty?
13
14
  if @queryable.respond_to?(:<<)
14
- @statements.each { |statement| @queryable << statement }
15
+ @doaps.each { |statement| @queryable << statement }
15
16
  else
16
- raise "@queryable must respond to #<< or be pre-populated with the statements in #{@filename} in a before(:each) block"
17
+ raise "@queryable must respond to #<< or be pre-populated with the statements in #{@doap} in a before(:each) block"
17
18
  end
18
19
  end
19
20
 
@@ -22,150 +23,245 @@ share_as :RDF_Queryable do
22
23
 
23
24
  ##
24
25
  # @see RDF::Queryable#query
25
-
26
- it "should respond to #query" do
27
- @queryable.should respond_to(:query)
28
- end
29
-
30
- context "#query when called" do
31
- it "should require an argument" do
32
- lambda { @queryable.query }.should raise_error(ArgumentError)
26
+ describe "#query" do
27
+ it "should respond to #query" do
28
+ @queryable.should respond_to(:query)
33
29
  end
34
30
 
35
- it "should accept a pattern argument" do
36
- lambda { @queryable.query(RDF::Query::Pattern.new(nil, nil, nil)) }.should_not raise_error(ArgumentError)
37
- lambda { @queryable.query(RDF::Query::Pattern.new(:s, :p, :o)) }.should_not raise_error(ArgumentError)
38
- end
31
+ context "when called" do
32
+ it "requires an argument" do
33
+ lambda { @queryable.query }.should raise_error(ArgumentError)
34
+ end
39
35
 
40
- it "should accept a statement argument" do
41
- lambda { @queryable.query(RDF::Statement.new(nil, nil, nil)) }.should_not raise_error(ArgumentError)
42
- end
36
+ it "accepts a pattern argument" do
37
+ lambda { @queryable.query(RDF::Query::Pattern.new(nil, nil, nil)) }.should_not raise_error(ArgumentError)
38
+ lambda { @queryable.query(RDF::Query::Pattern.new(:s, :p, :o)) }.should_not raise_error(ArgumentError)
39
+ end
43
40
 
44
- it "should accept a triple argument" do
45
- lambda { @queryable.query([nil, nil, nil]) }.should_not raise_error(ArgumentError)
46
- end
41
+ it "accepts a statement argument" do
42
+ lambda { @queryable.query(RDF::Statement.new(nil, nil, nil)) }.should_not raise_error(ArgumentError)
43
+ end
47
44
 
48
- it "should accept a quad argument" do
49
- lambda { @queryable.query([nil, nil, nil, nil]) }.should_not raise_error(ArgumentError)
50
- end
45
+ it "accepts a triple argument" do
46
+ lambda { @queryable.query([nil, nil, nil]) }.should_not raise_error(ArgumentError)
47
+ end
51
48
 
52
- it "should accept a hash argument" do
53
- lambda { @queryable.query({}) }.should_not raise_error(ArgumentError)
54
- end
49
+ it "accepts a quad argument" do
50
+ lambda { @queryable.query([nil, nil, nil, nil]) }.should_not raise_error(ArgumentError)
51
+ end
55
52
 
56
- it "should not alter a given hash argument" do
57
- query = {:subject => @subject, :predicate => RDF::DOAP.name, :object => RDF::FOAF.Person}
58
- original_query = query.dup
59
- @queryable.query(query)
60
- query.should == original_query
61
- end
53
+ it "accepts a hash argument" do
54
+ lambda { @queryable.query({}) }.should_not raise_error(ArgumentError)
55
+ end
62
56
 
63
- it "should reject other kinds of arguments" do
64
- lambda { @queryable.query(nil) }.should raise_error(ArgumentError)
65
- end
66
- end
57
+ it "does not alter a given hash argument" do
58
+ query = {:subject => @subject, :predicate => RDF::DOAP.name, :object => RDF::FOAF.Person}
59
+ original_query = query.dup
60
+ @queryable.query(query)
61
+ query.should == original_query
62
+ end
67
63
 
68
- context "#query when called with a block" do
69
- it "should yield statements" do
70
- @queryable.query([nil, nil, nil]) do |statement|
71
- statement.should be_a_statement
64
+ it "rejects other kinds of arguments" do
65
+ lambda { @queryable.query(nil) }.should raise_error(ArgumentError)
72
66
  end
73
- end
74
- end
75
67
 
76
- context "#query when called without a block" do
77
- it "should return an enumerator" do
78
- @queryable.query([nil, nil, nil]).should be_an_enumerator
79
- end
68
+ context "with a block" do
69
+ it "yields statements" do
70
+ @queryable.query([nil, nil, nil]) do |statement|
71
+ statement.should be_a_statement
72
+ end
73
+ end
74
+ end
80
75
 
81
- it "should return an enumerable enumerator" do
82
- @queryable.query([nil, nil, nil]).should be_enumerable
83
- end
76
+ context "without a block" do
77
+ it "returns an enumerator" do
78
+ @queryable.query([nil, nil, nil]).should be_an_enumerator
79
+ end
84
80
 
85
- it "should return a queryable enumerator" do
86
- @queryable.query([nil, nil, nil]).should be_queryable
87
- end
81
+ it "returns an enumerable enumerator" do
82
+ @queryable.query([nil, nil, nil]).should be_enumerable
83
+ end
84
+
85
+ it "returns a queryable enumerator" do
86
+ @queryable.query([nil, nil, nil]).should be_queryable
87
+ end
88
+
89
+ it "returns statements" do
90
+ @queryable.query([nil, nil, nil]).each do |statement|
91
+ statement.should be_a_statement
92
+ end
93
+ end
94
+
95
+ it "returns the correct number of results for array queries" do
96
+ @queryable.query([nil, nil, nil]).size.should == @statements.size
97
+ @queryable.query([@subject, nil, nil]).size.should == File.readlines(@doap).grep(/^<http:\/\/rubygems\.org\/gems\/rdf>/).size
98
+ @queryable.query([RDF::URI("http://ar.to/#self"), nil, nil]).size.should == File.readlines(@doap).grep(/^<http:\/\/ar.to\/\#self>/).size
99
+ @queryable.query([@subject, RDF::DOAP.name, nil]).size.should == 1
100
+ #@queryable.query([@subject, RDF::DOAP.developer, nil]).size.should == @queryable.query([nil, nil, RDF::FOAF.Person]).size # FIXME: assumes too much about the doap.nt data
101
+ @queryable.query([nil, nil, RDF::DOAP.Project]).size.should == 1
102
+ end
88
103
 
89
- it "should return statements" do
90
- @queryable.query([nil, nil, nil]).each do |statement|
91
- statement.should be_a_statement
104
+ it "returns the correct number of results for hash queries" do
105
+ @queryable.query({}).size.should == @statements.size
106
+ @queryable.query(:subject => @subject) .size.should == File.readlines(@doap).grep(/^<http:\/\/rubygems\.org\/gems\/rdf>/).size
107
+ @queryable.query(:subject => @subject, :predicate => RDF::DOAP.name).size.should == 1
108
+ #@queryable.query(:subject => @subject, :predicate => RDF::DOAP.developer).size.should == @queryable.query(:object => RDF::FOAF.Person).size # FIXME: assumes too much about the doap.nt data
109
+ @queryable.query(:object => RDF::DOAP.Project).size.should == 1
110
+ end
92
111
  end
93
- end
94
112
 
95
- it "should return the correct number of results for array queries" do
96
- @queryable.query([nil, nil, nil]).size.should == File.readlines(@filename).size
97
- @queryable.query([@subject, nil, nil]).size.should == File.readlines(@filename).grep(/^<http:\/\/rubygems\.org\/gems\/rdf>/).size
98
- @queryable.query([@subject, RDF::DOAP.name, nil]).size.should == 1
99
- #@queryable.query([@subject, RDF::DOAP.developer, nil]).size.should == @queryable.query([nil, nil, RDF::FOAF.Person]).size # FIXME: assumes too much about the doap.nt data
100
- @queryable.query([nil, nil, RDF::DOAP.Project]).size.should == 1
101
- end
113
+ context "with specific patterns from SPARQL", :pending => "SPARQL compatibility" do
114
+ context "triple pattern combinations" do
115
+ it "?s p o" do
116
+ @queryable.query(:predicate => RDF::URI("http://example.org/p"), :object => RDF::Literal.new(1)).to_a.should ==
117
+ [RDF::Statement.new(RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1), RDF::Statement.new(RDF::URI("http://example.org/xi2"), RDF::URI("http://example.org/p"), 1)]
118
+ end
102
119
 
103
- it "should return the correct number of results for hash queries" do
104
- @queryable.query({}).size.should == File.readlines(@filename).size
105
- @queryable.query(:subject => @subject) .size.should == File.readlines(@filename).grep(/^<http:\/\/rubygems\.org\/gems\/rdf>/).size
106
- @queryable.query(:subject => @subject, :predicate => RDF::DOAP.name).size.should == 1
107
- #@queryable.query(:subject => @subject, :predicate => RDF::DOAP.developer).size.should == @queryable.query(:object => RDF::FOAF.Person).size # FIXME: assumes too much about the doap.nt data
108
- @queryable.query(:object => RDF::DOAP.Project).size.should == 1
120
+ it "s ?p o" do
121
+ @queryable.query(:subject => RDF::URI("http://example.org/xi2"), :object => RDF::Literal.new(1)).to_a.should ==
122
+ [RDF::Statement.new(RDF::URI("http://example.org/xi2"), RDF::URI("http://example.org/p"), 1)]
123
+ end
124
+ end
125
+
126
+ # From data-r2/expr-equals
127
+ context "data/r2/expr-equals" do
128
+ context "graph-1" do
129
+ before(:each) do
130
+ @solutions = @queryable.query(:predicate => RDF::URI("http://example.org/p"), :object => RDF::Literal::Integer.new(1)).to_a
131
+ end
132
+
133
+ it "has two solutions" do
134
+ @solutions.count.should == 2
135
+ end
136
+
137
+ it "has xi1 as a solution" do
138
+ @solutions.any? {|s| s.subject == RDF::URI("http://example.org/xi1")}.should be_true
139
+ end
140
+
141
+ it "has xi2 as a solution" do
142
+ @solutions.any? {|s| s.subject == RDF::URI("http://example.org/xi2")}.should be_true
143
+ end
144
+ end
145
+
146
+
147
+ context "graph-2" do
148
+ before(:each) do
149
+ @solutions = @queryable.query(:predicate => RDF::URI("http://example.org/p"), :object => RDF::Literal::Double.new("1.0e0")).to_a
150
+ end
151
+
152
+ it "has one solution" do
153
+ @solutions.count.should == 1
154
+ end
155
+
156
+ it "has xd1 as a solution" do
157
+ @solutions.any? {|s| s.subject == RDF::URI("http://example.org/xd1")}.should be_true
158
+ end
159
+ end
160
+ end
161
+ end
109
162
  end
110
163
  end
111
164
 
112
165
  ##
113
166
  # @see RDF::Queryable#query_pattern
167
+ describe "#query_pattern" do
168
+ it "responds to #query_pattern" do
169
+ @queryable.should respond_to(:query_pattern)
170
+ end
114
171
 
115
- it "should respond to #query_pattern" do
116
- @queryable.should respond_to(:query_pattern)
117
- end
172
+ context "when called" do
173
+ it "requires an argument" do
174
+ lambda { @queryable.send(:query_pattern) }.should raise_error(ArgumentError)
175
+ end
118
176
 
119
- context "#query_pattern when called" do
120
- it "should require an argument" do
121
- lambda { @queryable.send(:query_pattern) }.should raise_error(ArgumentError)
122
- end
177
+ it "yields to the given block" do
178
+ called = false
179
+ @queryable.send(:query_pattern, RDF::Query::Pattern.new) do |statement|
180
+ called = true
181
+ break
182
+ end
183
+ called.should be_true
184
+ end
123
185
 
124
- it "should call the given block" do
125
- called = false
126
- @queryable.send(:query_pattern, RDF::Query::Pattern.new) do |statement|
127
- called = true
128
- break
186
+ it "yields statements" do
187
+ @queryable.send(:query_pattern, RDF::Query::Pattern.new) do |statement|
188
+ statement.should be_a_statement
189
+ end
190
+ end
191
+
192
+ context "with specific patterns", :pending => "SPARQL compatibility" do
193
+ # Note that "01" should not match 1, per data-r2/expr-equal/sameTerm
194
+ {
195
+ [RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1])],
196
+ [RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), nil] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1])],
197
+ [RDF::URI("http://example.org/xi1"), nil, 1] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1])],
198
+ [nil, RDF::URI("http://example.org/p"), 1] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1]), RDF::Statement.from([RDF::URI("http://example.org/xi2"), RDF::URI("http://example.org/p"), 1])],
199
+ [nil, nil, 1] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1]), RDF::Statement.from([RDF::URI("http://example.org/xi2"), RDF::URI("http://example.org/p"), 1])],
200
+ [nil, RDF::URI("http://example.org/p"), RDF::Literal::Double.new("1.0e0")] => [RDF::Statement.from([RDF::URI("http://example.org/xd1"), RDF::URI("http://example.org/p"), RDF::Literal::Double.new("1.0e0")])],
201
+ }.each do |pattern, result|
202
+ pattern = RDF::Query::Pattern.from(pattern)
203
+ it "returns #{result.inspect} given #{pattern.inspect}" do
204
+ solutions = []
205
+ @queryable.send(:query_pattern, pattern) {|s| solutions << s}
206
+ solutions.should == result
207
+ end
208
+ end
129
209
  end
130
- called.should be_true
131
- end
132
210
 
133
- it "should yield statements" do
134
- @queryable.send(:query_pattern, RDF::Query::Pattern.new) do |statement|
135
- statement.should be_a_statement
211
+ context "with context" do
212
+ it "returns statements from all contexts with no context" do
213
+ pattern = RDF::Query::Pattern.new(nil, nil, nil, :context => nil)
214
+ solutions = []
215
+ @queryable.send(:query_pattern, pattern) {|s| solutions << s}
216
+ solutions.size.should == @statements.size
217
+ end
218
+
219
+ it "returns statements from named contexts with variable context", :pending => "SPARQL compatibility" do
220
+ pattern = RDF::Query::Pattern.new(nil, nil, nil, :context => :c)
221
+ solutions = []
222
+ @queryable.send(:query_pattern, pattern) {|s| solutions << s}
223
+ context_statements = @queryable.statements.select {|st| st.has_context?}.length
224
+ solutions.size.should == context_statements
225
+ end
226
+
227
+ it "returns statements from specific context with URI context" do
228
+ pattern = RDF::Query::Pattern.new(nil, nil, nil, :context => RDF::URI("http://ar.to/#self"))
229
+ solutions = []
230
+ @queryable.send(:query_pattern, pattern) {|s| solutions << s}
231
+ solutions.size.should == File.readlines(@doap).grep(/^<http:\/\/ar.to\/\#self>/).size
232
+ end
136
233
  end
137
234
  end
138
235
  end
139
236
 
140
237
  ##
141
238
  # @see RDF::Queryable#first
142
-
143
- it "should respond to #first" do
144
- @queryable.should respond_to(:first)
145
- end
146
-
147
- context "#first" do
239
+ describe "#first" do
148
240
  before :all do
149
241
  @failing_pattern = [RDF::Node.new] * 3
150
242
  end
151
243
 
152
- it "should be callable without a pattern" do
244
+ it "should respond to #first" do
245
+ @queryable.should respond_to(:first)
246
+ end
247
+
248
+ it "returns enumerator without a pattern" do
153
249
  lambda { @queryable.first }.should_not raise_error(ArgumentError)
154
250
  @queryable.first.should == @queryable.each.first # uses an Enumerator
155
251
  end
156
252
 
157
- it "should return the correct value when the pattern matches" do
253
+ it "returns the correct value when the pattern matches" do
158
254
  matching_patterns = [[nil, nil, nil], @queryable.each.first]
159
255
  matching_patterns.each do |matching_pattern|
160
256
  @queryable.first(matching_pattern).should == @queryable.query(matching_pattern).each.first
161
257
  end
162
258
  end
163
259
 
164
- it "should return nil when the pattern fails to match anything" do
260
+ it "returns nil when the pattern fails to match anything" do
165
261
  @queryable.first(@failing_pattern).should be_nil
166
262
  end
167
263
 
168
- it "should return nil when self is empty" do
264
+ it "returns nil when self is empty" do
169
265
  queryable = [].extend(RDF::Queryable)
170
266
  queryable.first.should be_nil
171
267
  queryable.first(@failing_pattern).should be_nil
@@ -174,33 +270,32 @@ share_as :RDF_Queryable do
174
270
 
175
271
  ##
176
272
  # @see RDF::Queryable#first_subject
177
-
178
- it "should respond to #first_subject" do
179
- @queryable.should respond_to(:first_subject)
180
- end
181
-
182
- context "#first_subject" do
273
+ describe "#first_subject" do
183
274
  before :all do
184
275
  @failing_pattern = [RDF::Node.new, nil, nil]
185
276
  end
186
277
 
187
- it "should be callable without a pattern" do
278
+ it "should respond to #first_subject" do
279
+ @queryable.should respond_to(:first_subject)
280
+ end
281
+
282
+ it "returns enumerator without a pattern" do
188
283
  lambda { @queryable.first_subject }.should_not raise_error(ArgumentError)
189
284
  @queryable.first_subject.should == @queryable.first.subject
190
285
  end
191
286
 
192
- it "should return the correct value when the pattern matches" do
287
+ it "returns the correct value when the pattern matches" do
193
288
  matching_patterns = [[nil, nil, nil], [@queryable.first.subject, nil, nil]]
194
289
  matching_patterns.each do |matching_pattern|
195
290
  @queryable.first_subject(matching_pattern).should == @queryable.query(matching_pattern).first.subject
196
291
  end
197
292
  end
198
293
 
199
- it "should return nil when the pattern fails to match anything" do
294
+ it "returns nil when the pattern fails to match anything" do
200
295
  @queryable.first_subject(@failing_pattern).should be_nil
201
296
  end
202
297
 
203
- it "should return nil when self is empty" do
298
+ it "returns nil when self is empty" do
204
299
  queryable = [].extend(RDF::Queryable)
205
300
  queryable.first_subject.should be_nil
206
301
  queryable.first_subject(@failing_pattern).should be_nil
@@ -210,32 +305,32 @@ share_as :RDF_Queryable do
210
305
  ##
211
306
  # @see RDF::Queryable#first_predicate
212
307
 
213
- it "should respond to #first_predicate" do
214
- @queryable.should respond_to(:first_predicate)
215
- end
216
-
217
- context "#first_predicate" do
308
+ describe "#first_predicate" do
218
309
  before :all do
219
310
  @failing_pattern = [nil, RDF::Node.new, nil]
220
311
  end
221
312
 
222
- it "should be callable without a pattern" do
313
+ it "should respond to #first_predicate" do
314
+ @queryable.should respond_to(:first_predicate)
315
+ end
316
+
317
+ it "returns enumerator without a pattern" do
223
318
  lambda { @queryable.first_predicate }.should_not raise_error(ArgumentError)
224
319
  @queryable.first_predicate.should == @queryable.first.predicate
225
320
  end
226
321
 
227
- it "should return the correct value when the pattern matches" do
322
+ it "returns the correct value when the pattern matches" do
228
323
  matching_patterns = [[nil, nil, nil], [nil, @queryable.first.predicate, nil]]
229
324
  matching_patterns.each do |matching_pattern|
230
325
  @queryable.first_predicate(matching_pattern).should == @queryable.query(matching_pattern).first.predicate
231
326
  end
232
327
  end
233
328
 
234
- it "should return nil when the pattern fails to match anything" do
329
+ it "returns nil when the pattern fails to match anything" do
235
330
  @queryable.first_predicate(@failing_pattern).should be_nil
236
331
  end
237
332
 
238
- it "should return nil when self is empty" do
333
+ it "returns nil when self is empty" do
239
334
  queryable = [].extend(RDF::Queryable)
240
335
  queryable.first_predicate.should be_nil
241
336
  queryable.first_predicate(@failing_pattern).should be_nil
@@ -245,32 +340,32 @@ share_as :RDF_Queryable do
245
340
  ##
246
341
  # @see RDF::Queryable#first_object
247
342
 
248
- it "should respond to #first_object" do
249
- @queryable.should respond_to(:first_object)
250
- end
251
-
252
- context "#first_object" do
343
+ describe "#first_object" do
253
344
  before :all do
254
345
  @failing_pattern = [nil, nil, RDF::Node.new]
255
346
  end
256
347
 
257
- it "should be callable without a pattern" do
348
+ it "should respond to #first_object" do
349
+ @queryable.should respond_to(:first_object)
350
+ end
351
+
352
+ it "returns enurator without a pattern" do
258
353
  lambda { @queryable.first_object }.should_not raise_error(ArgumentError)
259
354
  @queryable.first_object.should == @queryable.first.object
260
355
  end
261
356
 
262
- it "should return the correct value when the pattern matches" do
357
+ it "returns the correct value when the pattern matches" do
263
358
  matching_patterns = [[nil, nil, nil], [nil, nil, @queryable.first.object]]
264
359
  matching_patterns.each do |matching_pattern|
265
360
  @queryable.first_object(matching_pattern).should == @queryable.query(matching_pattern).first.object
266
361
  end
267
362
  end
268
363
 
269
- it "should return nil when the pattern fails to match anything" do
364
+ it "returns nil when the pattern fails to match anything" do
270
365
  @queryable.first_object(@failing_pattern).should be_nil
271
366
  end
272
367
 
273
- it "should return nil when self is empty" do
368
+ it "returns nil when self is empty" do
274
369
  queryable = [].extend(RDF::Queryable)
275
370
  queryable.first_object.should be_nil
276
371
  queryable.first_object(@failing_pattern).should be_nil
@@ -280,11 +375,11 @@ share_as :RDF_Queryable do
280
375
  ##
281
376
  # @see RDF::Queryable#first_literal
282
377
 
283
- it "should respond to #first_literal" do
378
+ it "returns to #first_literal" do
284
379
  @queryable.should respond_to(:first_literal)
285
380
  end
286
381
 
287
- context "#first_literal" do
382
+ describe "#first_literal" do
288
383
  before :each do
289
384
  # FIXME: these tests should be using the provided @queryable, if possible.
290
385
  @queryable = RDF::Graph.new do |graph|
@@ -296,23 +391,23 @@ share_as :RDF_Queryable do
296
391
  @failing_pattern = [nil, nil, RDF::Node.new]
297
392
  end
298
393
 
299
- it "should be callable without a pattern" do
394
+ it "returns a literal without a pattern" do
300
395
  lambda { @queryable.first_literal }.should_not raise_error(ArgumentError)
301
396
  @queryable.first_literal.should == @literal
302
397
  end
303
398
 
304
- it "should return the correct value when the pattern matches" do
399
+ it "returns the correct value when the pattern matches" do
305
400
  matching_patterns = [[nil, nil, nil], [@subject, nil, nil], [nil, RDF::DC.creator, nil], [nil, nil, @literal]]
306
401
  matching_patterns.each do |matching_pattern|
307
402
  @queryable.first_literal(matching_pattern).should == @literal
308
403
  end
309
404
  end
310
405
 
311
- it "should return nil when the pattern fails to match anything" do
406
+ it "returns nil when the pattern fails to match anything" do
312
407
  @queryable.first_literal(@failing_pattern).should be_nil
313
408
  end
314
409
 
315
- it "should return nil when self is empty" do
410
+ it "returns nil when self is empty" do
316
411
  queryable = [].extend(RDF::Queryable)
317
412
  queryable.first_literal.should be_nil
318
413
  queryable.first_literal(@failing_pattern).should be_nil
@@ -322,21 +417,21 @@ share_as :RDF_Queryable do
322
417
  ##
323
418
  # @see RDF::Queryable#first_value
324
419
 
325
- it "should respond to #first_value" do
326
- @queryable.should respond_to(:first_value)
327
- end
328
-
329
- context "#first_value" do
420
+ describe "#first_value" do
330
421
  before :all do
331
422
  @failing_pattern = [nil, nil, RDF::Node.new]
332
423
  end
333
424
 
334
- it "should be callable without a pattern" do
425
+ it "should respond to #first_value" do
426
+ @queryable.should respond_to(:first_value)
427
+ end
428
+
429
+ it "returns first literal without a pattern" do
335
430
  lambda { @queryable.first_value }.should_not raise_error(ArgumentError)
336
431
  @queryable.first_value.should == @queryable.first_literal.value
337
432
  end
338
433
 
339
- it "should return the correct value when the pattern matches" do
434
+ it "returns the correct value when the pattern matches" do
340
435
  matching_patterns = []
341
436
  @queryable.each do |statement|
342
437
  if statement.object.is_a?(RDF::Literal)
@@ -349,11 +444,11 @@ share_as :RDF_Queryable do
349
444
  end
350
445
  end
351
446
 
352
- it "should return nil when the pattern fails to match anything" do
447
+ it "returns nil when the pattern fails to match anything" do
353
448
  @queryable.first_value(@failing_pattern).should be_nil
354
449
  end
355
450
 
356
- it "should return nil when self is empty" do
451
+ it "returns nil when self is empty" do
357
452
  queryable = [].extend(RDF::Queryable)
358
453
  queryable.first_value.should be_nil
359
454
  queryable.first_value(@failing_pattern).should be_nil