rdf 1.0.7 → 1.0.8

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDhiOWNkYTQ3MGU2ZDJjZDYzM2E0NTg4ODdmODkyYjZmYTc3YWRhNQ==
4
+ ZjhkODc5NDgzOGExZWVlYWY3OGJkMDZlMDA2MGQ1ZGU0ODBiNTllZQ==
5
5
  data.tar.gz: !binary |-
6
- MDg3YzA1NjYzZjBiYmM5NGE4ODdmYjE2MDZmOGMxYjVjNzcwM2NkMg==
6
+ ZGQyMmQ4M2I2MjQ3OTM0MGUzNjVmMDNhNjkxNzFkODA4ODZlZDhmMw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZmY2MzBlOWNiYjMyY2YyMzUyODMzNzliMTM5M2M1YTRkZGNiMTNhOTY1NmE5
10
- YWNmMmFlZDY0NjlkY2JiNzY3OTFkNjllYzdmMTYzNzk5MmI1ZGRiOThlNjQ3
11
- ZDEyZmU5NTc5NWQ3ZDU5ODM4MjkyN2ZlOTY1NDg2YTMxOGVlMzE=
9
+ MDZmYzJhZDcxZGJkMTkxNzVmNTE0OTdmMTJiZWY0ZGQ4Yzg4NWQ4MzQxZjAy
10
+ MGMwMzkyNjU5MzY2OWQ1ZWMzYmQzNzk0YTQwYzQzN2M4MzE3ODk1YzcyNzVh
11
+ YTc0MTYxMWRlMWFlYTkwMzU1NzY5YmIxZThkMTM1Yjc4MDBlNTM=
12
12
  data.tar.gz: !binary |-
13
- NjJiMmQ2MjA1MWQ1OGM0ZmE1ZDM5NmJhNzY1Y2IwYjg2ZGEzYTdhYzZjODI5
14
- MTU4NjJiN2ZiN2FmYWRiYTRjYzhjNmRiYWI4NDEzNjQ4ZTc1ODU4YTg4Zjdh
15
- NmVjNDk4NDgzODIxYzYwMWYyNThiMGUyNWUyYWU3OWJmNTRmMTI=
13
+ NTAwZWFlMDYwMDNhZmU2NDI1NTdjMDZlZDEzZTllNmZjNGQ0Yzg2ZjhlMGY2
14
+ MTI2ZmFlMWJmYzY2NDNhZTUzNjU1NGQ1YzFmM2Y2MzQxZjBkYTQwNjc5MmIy
15
+ NmUxNGNmM2UwODgxODEzNDg3YTkxMTc1Njk3ODVkZTVkODM5N2I=
data/README CHANGED
@@ -17,7 +17,7 @@ This is a pure-Ruby library for working with [Resource Description Framework
17
17
  * 100% pure Ruby with minimal dependencies and no bloat.
18
18
  * 100% free and unencumbered [public domain](http://unlicense.org/) software.
19
19
  * Provides a clean, well-designed RDF object model and related APIs.
20
- * Supports parsing and serializing N-Triples out of the box, with more
20
+ * Supports parsing and serializing [N-Triples][] and [N-Quads][] out of the box, with more
21
21
  serialization format support available through add-on plugins.
22
22
  * Includes in-memory graph and repository implementations, with more storage
23
23
  adapter support available through add-on plugins.
@@ -41,7 +41,7 @@ This is a pure-Ruby library for working with [Resource Description Framework
41
41
  When installed, RDF.rb includes a `rdf` shell script which acts as a wrapper to perform a number of different
42
42
  operations on RDF files using available readers and writers.
43
43
 
44
- * `serialize`: Parse an RDF input and re-serializing to N-Triples or another available format using `--output-format` option.
44
+ * `serialize`: Parse an RDF input and re-serializing to [N-Triples][] or another available format using `--output-format` option.
45
45
  * `count`: Parse and RDF input and count the number of statements.
46
46
  * `subjects`: Returns unique subjects from parsed input.
47
47
  * `objects`: Returns unique objects from parsed input.
@@ -52,7 +52,7 @@ operations on RDF files using available readers and writers.
52
52
  require 'rdf'
53
53
  include RDF
54
54
 
55
- ### Writing RDF data using the N-Triples format
55
+ ### Writing RDF data using the [N-Triples][] format
56
56
 
57
57
  require 'rdf/ntriples'
58
58
  graph = RDF::Graph.new << [:hello, RDF::DC.title, "Hello, world!"]
@@ -62,7 +62,7 @@ or
62
62
 
63
63
  RDF::Writer.open("hello.nt") { |writer| writer << graph }
64
64
 
65
- ### Reading RDF data in the N-Triples format
65
+ ### Reading RDF data in the [N-Triples][] format
66
66
 
67
67
  require 'rdf/ntriples'
68
68
  graph = RDF::Graph.load("http://ruby-rdf.github.com/rdf/etc/doap.nt")
@@ -359,6 +359,8 @@ This is free and unencumbered public domain software. For more information,
359
359
  see <http://unlicense.org/> or the accompanying {file:UNLICENSE} file.
360
360
 
361
361
  [RDF]: http://www.w3.org/RDF/
362
+ [N-Triples]: http://www.w3.org/TR/n-triples/
363
+ [N-Quads]: http://www.w3.org/TR/n-quads/
362
364
  [YARD]: http://yardoc.org/
363
365
  [YARD-GS]: http://rubydoc.info/docs/yard/file/docs/GettingStarted.md
364
366
  [PDD]: http://lists.w3.org/Archives/Public/public-rdf-ruby/2010May/0013.html
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.7
1
+ 1.0.8
data/etc/doap.nt CHANGED
@@ -1,85 +1,85 @@
1
+ <http://rubygems.org/gems/rdf> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://usefulinc.com/ns/doap#Project> .
2
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#name> "RDF.rb" .
3
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#homepage> <http://rubygems.org/gems/rdf> .
4
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#license> <http://creativecommons.org/licenses/publicdomain/> .
5
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#shortdesc> "A Ruby library for working with Resource Description Framework (RDF) data."@en .
6
+ <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 .
7
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#created> "2007-10-23" .
8
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#platform> "Ruby" .
9
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#category> <http://dbpedia.org/resource/Resource_Description_Framework> .
10
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#category> <http://dbpedia.org/resource/Ruby_(programming_language)> .
11
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/TR/rdf-concepts/> .
12
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/TR/n-quads/> .
13
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/TR/n-triples/> .
14
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#download-page> <http://rubyforge.org/projects/rdf/> .
15
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#bug-database> <http://github.com/ruby-rdf/rdf/issues> .
16
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://ar.to/> .
17
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://blog.datagraph.org/> .
18
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#vendor> <http://datagraph.org/> .
19
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://ar.to/#self> .
20
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://bhuga.net/#ben> .
21
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://greggkellogg.net/foaf#me> .
22
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://ar.to/#self> .
23
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://bhuga.net/#ben> .
24
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://greggkellogg.net/foaf#me> .
25
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://ar.to/#self> .
26
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://bhuga.net/#ben> .
27
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://greggkellogg.net/foaf#me> .
28
+ _:g70186318075540 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
29
+ _:g70186318075540 <http://xmlns.com/foaf/0.1/name> "Călin Ardelean" .
30
+ _:g70186318075540 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "274bd18402fc773ffc0606996aa1fb90b603aa29" .
31
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:g70186318075540 .
32
+ _:g70186318591960 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
33
+ _:g70186318591960 <http://xmlns.com/foaf/0.1/name> "Danny Gagne" .
34
+ _:g70186318591960 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "6de43e9cf7de53427fea9765706703e4d957c17b" .
35
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:g70186318591960 .
36
+ _:g70186318228820 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
37
+ _:g70186318228820 <http://xmlns.com/foaf/0.1/name> "Joey Geiger" .
38
+ _:g70186318228820 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "f412d743150d7b27b8468d56e69ca147917ea6fc" .
39
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:g70186318228820 .
40
+ _:g70186318408440 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
41
+ _:g70186318408440 <http://xmlns.com/foaf/0.1/name> "Fumihiro Kato" .
42
+ _:g70186318408440 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "d31fdd6af7a279a89bf09fdc9f7c44d9d08bb930" .
43
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:g70186318408440 .
44
+ _:g70186318725620 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
45
+ _:g70186318725620 <http://xmlns.com/foaf/0.1/name> "Naoki Kawamukai" .
46
+ _:g70186318725620 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "5bdcd8e2af4f5952aaeeffbdd371c41525ec761d" .
47
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:g70186318725620 .
48
+ _:g70186319866820 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
49
+ _:g70186319866820 <http://xmlns.com/foaf/0.1/name> "Hellekin O. Wolf" .
50
+ _:g70186319866820 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "c69f3255ff0639543cc5edfd8116eac8df16fab8" .
51
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:g70186319866820 .
52
+ _:g70186321042840 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
53
+ _:g70186321042840 <http://xmlns.com/foaf/0.1/name> "John Fieber" .
54
+ _:g70186321042840 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "f7653fc1ac0e82ebb32f092389bd5fc728eaae12" .
55
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:g70186321042840 .
56
+ _:g70186319319640 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
57
+ _:g70186319319640 <http://xmlns.com/foaf/0.1/name> "Keita Urashima" .
58
+ _:g70186319319640 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "2b4247b6fd5bb4a1383378f325784318680d5ff9" .
59
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:g70186319319640 .
60
+ _:g70186321063140 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
61
+ _:g70186321063140 <http://xmlns.com/foaf/0.1/name> "Pius Uzamere" .
62
+ _:g70186321063140 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "bedbbf2451e5beb38d59687c0460032aff92cd3c" .
63
+ <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:g70186321063140 .
64
+ <http://rubygems.org/gems/rdf> <http://xmlns.com/foaf/0.1/maker> <http://ar.to/#self> .
65
+ <http://rubygems.org/gems/rdf> <http://purl.org/dc/terms/creator> <http://ar.to/#self> .
1
66
  <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> .
67
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/name> "Arto Bendiken" .
5
68
  <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox> <mailto:arto@bendiken.net> .
6
69
  <http://ar.to/#self> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "a033f652c84a4d73b8c26d318c2395699dd2bdfb" .
7
70
  <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" .
71
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/homepage> <http://ar.to/> .
72
+ <http://ar.to/#self> <http://xmlns.com/foaf/0.1/made> <http://rubygems.org/gems/rdf> .
73
+ <http://ar.to/#self> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://datagraph.org/bendiken/foaf> .
9
74
  <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/> .
75
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/name> "Ben Lavender" .
12
76
  <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/mbox> <mailto:blavender@gmail.com> .
13
77
  <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" .
78
+ <http://bhuga.net/#ben> <http://xmlns.com/foaf/0.1/homepage> <http://bhuga.net/> .
79
+ <http://bhuga.net/#ben> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://datagraph.org/bhuga/foaf> .
15
80
  <http://greggkellogg.net/foaf#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
16
- <http://greggkellogg.net/foaf#me> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://greggkellogg.net/foaf> .
17
- <http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/homepage> <http://greggkellogg.net/> .
81
+ <http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
18
82
  <http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/mbox> <mailto:gregg@greggkellogg.net> .
19
83
  <http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/mbox_sha1sum> "35bc44e6d0070e5ad50ccbe0d24403c96af2b9bd" .
20
- <http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
21
- <http://rubygems.org/gems/rdf> <http://purl.org/dc/terms/creator> <http://ar.to/#self> .
22
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://ar.to/> .
23
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://blog.datagraph.org/> .
24
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#bug-database> <http://github.com/ruby-rdf/rdf/issues> .
25
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#category> <http://dbpedia.org/resource/Resource_Description_Framework> .
26
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#category> <http://dbpedia.org/resource/Ruby_(programming_language)> .
27
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#created> "2007-10-23" .
28
- <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 .
29
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://ar.to/#self> .
30
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://bhuga.net/#ben> .
31
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#developer> <http://greggkellogg.net/foaf#me> .
32
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://ar.to/#self> .
33
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://bhuga.net/#ben> .
34
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#documenter> <http://greggkellogg.net/foaf#me> .
35
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#download-page> <http://rubyforge.org/projects/rdf/> .
36
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid1 .
37
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid2 .
38
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid3 .
39
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid4 .
40
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid5 .
41
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid6 .
42
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid7 .
43
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid8 .
44
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#helper> _:genid9 .
45
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#homepage> <http://rubygems.org/gems/rdf> .
46
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://sw.deri.org/2008/07/n-quads/> .
47
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/2001/sw/RDFCore/ntriples/> .
48
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/TR/rdf-concepts/> .
49
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#license> <http://creativecommons.org/licenses/publicdomain/> .
50
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://ar.to/#self> .
51
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://bhuga.net/#ben> .
52
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#maintainer> <http://greggkellogg.net/foaf#me> .
53
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#name> "RDF.rb" .
54
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#platform> "Ruby" .
55
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#shortdesc> "A Ruby library for working with Resource Description Framework (RDF) data."@en .
56
- <http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#vendor> <http://datagraph.org/> .
57
- <http://rubygems.org/gems/rdf> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://usefulinc.com/ns/doap#Project> .
58
- <http://rubygems.org/gems/rdf> <http://xmlns.com/foaf/0.1/maker> <http://ar.to/#self> .
59
- _:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
60
- _:genid1 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "274bd18402fc773ffc0606996aa1fb90b603aa29" .
61
- _:genid1 <http://xmlns.com/foaf/0.1/name> "C\u0103lin Ardelean" .
62
- _:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
63
- _:genid2 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "6de43e9cf7de53427fea9765706703e4d957c17b" .
64
- _:genid2 <http://xmlns.com/foaf/0.1/name> "Danny Gagne" .
65
- _:genid3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
66
- _:genid3 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "f412d743150d7b27b8468d56e69ca147917ea6fc" .
67
- _:genid3 <http://xmlns.com/foaf/0.1/name> "Joey Geiger" .
68
- _:genid4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
69
- _:genid4 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "d31fdd6af7a279a89bf09fdc9f7c44d9d08bb930" .
70
- _:genid4 <http://xmlns.com/foaf/0.1/name> "Fumihiro Kato" .
71
- _:genid5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
72
- _:genid5 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "5bdcd8e2af4f5952aaeeffbdd371c41525ec761d" .
73
- _:genid5 <http://xmlns.com/foaf/0.1/name> "Naoki Kawamukai" .
74
- _:genid6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
75
- _:genid6 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "c69f3255ff0639543cc5edfd8116eac8df16fab8" .
76
- _:genid6 <http://xmlns.com/foaf/0.1/name> "Hellekin O. Wolf" .
77
- _:genid7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
78
- _:genid7 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "f7653fc1ac0e82ebb32f092389bd5fc728eaae12" .
79
- _:genid7 <http://xmlns.com/foaf/0.1/name> "John Fieber" .
80
- _:genid8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
81
- _:genid8 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "2b4247b6fd5bb4a1383378f325784318680d5ff9" .
82
- _:genid8 <http://xmlns.com/foaf/0.1/name> "Keita Urashima" .
83
- _:genid9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
84
- _:genid9 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "bedbbf2451e5beb38d59687c0460032aff92cd3c" .
85
- _:genid9 <http://xmlns.com/foaf/0.1/name> "Pius Uzamere" .
84
+ <http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/homepage> <http://greggkellogg.net/> .
85
+ <http://greggkellogg.net/foaf#me> <http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://greggkellogg.net/foaf> .
data/lib/rdf.rb CHANGED
@@ -149,10 +149,28 @@ module RDF
149
149
  Vocabulary.create(uri)
150
150
  end
151
151
 
152
- ##
153
- # @return [URI]
154
- def self.type
155
- self[:type]
152
+ # RDF Vocabulary terms
153
+ %w(
154
+ Alt
155
+ Bag
156
+ first
157
+ HTML
158
+ langString
159
+ List
160
+ nil
161
+ object
162
+ predicate
163
+ Property
164
+ rest
165
+ Seq
166
+ Statement
167
+ subject
168
+ type
169
+ value
170
+ XMLLiteral
171
+ ).each do |term|
172
+ define_method(term) {self[term.to_sym]}
173
+ module_function term.to_sym
156
174
  end
157
175
 
158
176
  ##
data/lib/rdf/format.rb CHANGED
@@ -405,14 +405,14 @@ module RDF
405
405
  @@content_types[type] << self unless @@content_types[type].include?(self)
406
406
 
407
407
  if extensions = (options[:extension] || options[:extensions])
408
- extensions = [extensions].flatten.map(&:to_sym)
408
+ extensions = Array(extensions).map(&:to_sym)
409
409
  extensions.each do |ext|
410
410
  @@file_extensions[ext] ||= []
411
411
  @@file_extensions[ext] << self unless @@file_extensions[ext].include?(self)
412
412
  end
413
413
  end
414
414
  if aliases = (options[:alias] || options[:aliases])
415
- aliases = [aliases].flatten.each do |a|
415
+ aliases = Array(aliases).each do |a|
416
416
  @@content_types[a] ||= []
417
417
  @@content_types[a] << self unless @@content_types[a].include?(self)
418
418
  end
@@ -19,16 +19,27 @@ module RDF
19
19
  #
20
20
  # @example Querying for statements having a given predicate
21
21
  # queryable.query([nil, RDF::DOAP.developer, nil])
22
- # queryable.query(:predicate => RDF::DOAP.developer)
22
+ # queryable.query(:predicate => RDF::DOAP.developer) do |statement|
23
+ # puts statement.inspect
24
+ # end
25
+ #
26
+ # @example Querying for solutions from a BGP
27
+ # query = RDF::Query.new {pattern [:s, :p, :o]}
28
+ # queryable.query(query) do |solution|
29
+ # puts solution.inspect
30
+ # end
23
31
  #
24
32
  # @param [RDF::Query, RDF::Statement, Array(RDF::Term), Hash] pattern
33
+ # @param [Hash{Symbol => Object}] options ({})
34
+ # Any other options passed to {#query_pattern} or {#query_execute}
25
35
  # @yield [statement]
26
36
  # each matching statement
27
- # @yieldparam [RDF::Statement] statement
37
+ # @yieldparam [RDF::Statement, RDF::Query::Solution] statement
38
+ # Statement or Solution
28
39
  # @yieldreturn [void] ignored
29
40
  # @return [Enumerator]
30
41
  # @see RDF::Queryable#query_pattern
31
- def query(pattern, &block)
42
+ def query(pattern, options = {}, &block)
32
43
  raise TypeError, "#{self} is not readable" if respond_to?(:readable?) && !readable?
33
44
 
34
45
  case pattern
@@ -36,7 +47,11 @@ module RDF
36
47
  when Query
37
48
  if block_given?
38
49
  before_query(pattern) if respond_to?(:before_query)
39
- query_execute(pattern, &block)
50
+ if method(:query_execute).arity == 1
51
+ query_execute(pattern, &block)
52
+ else
53
+ query_execute(pattern, options, &block)
54
+ end
40
55
  after_query(pattern) if respond_to?(:after_query)
41
56
  end
42
57
  enum_for(:query_execute, pattern)
@@ -63,7 +78,13 @@ module RDF
63
78
 
64
79
  # Otherwise, we delegate to `#query_pattern`:
65
80
  else # pattern.variable?
66
- query_pattern(pattern, &block) if block_given?
81
+ if block_given?
82
+ if self.method(:query_pattern).arity == 1
83
+ query_pattern(pattern, &block)
84
+ else
85
+ query_pattern(pattern, options, &block)
86
+ end
87
+ end
67
88
  enum_for(:query_pattern, pattern)
68
89
  end
69
90
  after_query(pattern) if block_given? && respond_to?(:after_query)
@@ -85,6 +106,8 @@ module RDF
85
106
  #
86
107
  # @param [RDF::Query] query
87
108
  # the query to execute
109
+ # @param [Hash{Symbol => Object}] options ({})
110
+ # Any other options passed to `query.execute`
88
111
  # @yield [solution]
89
112
  # @yieldparam [RDF::Query::Solution] solution
90
113
  # @yieldreturn [void] ignored
@@ -92,12 +115,12 @@ module RDF
92
115
  # @see RDF::Queryable#query
93
116
  # @see RDF::Query#execute
94
117
  # @since 0.3.0
95
- def query_execute(query, &block)
118
+ def query_execute(query, options = {}, &block)
96
119
  # By default, we let RDF.rb's built-in `RDF::Query#execute` handle BGP
97
120
  # query execution by breaking down the query into its constituent
98
121
  # triple patterns and invoking `RDF::Query::Pattern#execute` on each
99
122
  # pattern.
100
- query.execute(self).each(&block)
123
+ query.execute(self, options).each(&block)
101
124
  end
102
125
  protected :query_execute
103
126
 
@@ -111,6 +134,8 @@ module RDF
111
134
  #
112
135
  # @param [RDF::Query::Pattern] pattern
113
136
  # the query pattern to match
137
+ # @param [Hash{Symbol => Object}] options ({})
138
+ # Any other options
114
139
  # @yield [statement]
115
140
  # @yieldparam [RDF::Statement] statement
116
141
  # @yieldreturn [void] ignored
@@ -118,7 +143,7 @@ module RDF
118
143
  # @see RDF::Queryable#query
119
144
  # @see RDF::Query::Pattern#execute
120
145
  # @since 0.2.0
121
- def query_pattern(pattern, &block)
146
+ def query_pattern(pattern, options = {}, &block)
122
147
  # By default, we let Ruby's built-in `Enumerable#grep` handle the
123
148
  # matching of statements by iterating over all statements and calling
124
149
  # `RDF::Query::Pattern#===` on each statement.
@@ -366,19 +366,6 @@ module RDF
366
366
  end
367
367
  end
368
368
 
369
- ##
370
- # Returns a copy of this literal converted into its canonical lexical
371
- # representation.
372
- #
373
- # Subclasses should override `#canonicalize!` as needed and appropriate,
374
- # not this method.
375
- #
376
- # @return [RDF::Literal]
377
- # @since 0.2.1
378
- def canonicalize
379
- self.dup.canonicalize!
380
- end
381
-
382
369
  ##
383
370
  # Converts this literal into its canonical lexical representation.
384
371
  #
@@ -50,7 +50,7 @@ module RDF; class Literal
50
50
  i, f, e = ('%.15E' % @object.to_f).split(/[\.E]/)
51
51
  f.sub!(/0*$/, '') # remove any trailing zeroes
52
52
  f = '0' if f.empty? # ...but there must be a digit to the right of the decimal point
53
- e.sub!(/^\+?0+(\d)$/, '\1') # remove the optional leading '+' sign and any extra leading zeroes
53
+ e.sub!(/^(?:\+|(\-))?0+(\d+)$/, '\1\2') # remove the optional leading '+' sign and any extra leading zeroes
54
54
  "#{i}.#{f}E#{e}"
55
55
  end
56
56
  @object = Float(@string) unless @object.nil?
@@ -41,7 +41,7 @@ module RDF; class Literal
41
41
  end
42
42
 
43
43
  ##
44
- # Returns the successor value of `self`.
44
+ # Returns the predecessor value of `self`.
45
45
  #
46
46
  # @return [RDF::Literal]
47
47
  # @since 0.2.3
@@ -50,7 +50,7 @@ module RDF; class Literal
50
50
  end
51
51
 
52
52
  ##
53
- # Returns the predecessor value of `self`.
53
+ # Returns the successor value of `self`.
54
54
  #
55
55
  # @return [RDF::Literal]
56
56
  # @since 0.2.3
@@ -22,7 +22,7 @@ module RDF; class Literal
22
22
  @string ||= value if value.is_a?(String)
23
23
  @object = case
24
24
  when value.is_a?(::Time) then value
25
- when value.respond_to?(:to_time) then value.to_time # Ruby 1.9+
25
+ when value.respond_to?(:to_time) then value.to_time rescue ::Time.parse(value.to_s)
26
26
  else ::Time.parse(value.to_s)
27
27
  end rescue nil
28
28
  end
@@ -127,10 +127,10 @@ module RDF
127
127
  ##
128
128
  # @return [Boolean]
129
129
  def valid?
130
- has_subject? && subject.valid? &&
131
- has_predicate? && predicate.valid? &&
132
- has_object? && object.valid? &&
133
- (has_context? ? context.valid? : true )
130
+ has_subject? && subject.resource? && subject.valid? &&
131
+ has_predicate? && predicate.uri? && predicate.valid? &&
132
+ has_object? && object.term? && object.valid? &&
133
+ (has_context? ? context.resource? && context.valid? : true )
134
134
  end
135
135
 
136
136
  ##
@@ -256,6 +256,32 @@ module RDF
256
256
  alias_method :to_a, :to_triple
257
257
  alias_method :to_ary, :to_triple
258
258
 
259
+ ##
260
+ # Canonicalizes each unfrozen term in the statement
261
+ #
262
+ # @return [RDF::Statement] `self`
263
+ # @since 1.0.8
264
+ # @raise [ArgumentError] if any element cannot be canonicalized.
265
+ def canonicalize!
266
+ self.subject.canonicalize! if has_subject? && !self.subject.frozen?
267
+ self.predicate.canonicalize! if has_predicate? && !self.predicate.frozen?
268
+ self.object.canonicalize! if has_object? && !self.object.frozen?
269
+ self.context.canonicalize! if has_context? && !self.context.frozen?
270
+ self.validate!
271
+ self
272
+ end
273
+
274
+ ##
275
+ # Returns a version of the statement with each position in canonical form
276
+ #
277
+ # @return [RDF::Statement] `self` or nil if statement cannot be canonicalized
278
+ # @since 1.0.8
279
+ def canonicalize
280
+ self.dup.canonicalize!
281
+ rescue ArgumentError
282
+ nil
283
+ end
284
+
259
285
  ##
260
286
  # Returns the terms of this statement as a `Hash`.
261
287
  #
data/lib/rdf/model/uri.rb CHANGED
@@ -224,16 +224,6 @@ module RDF
224
224
  self
225
225
  end
226
226
 
227
- ##
228
- # Returns a copy of this URI converted into its canonical lexical
229
- # representation.
230
- #
231
- # @return [RDF::URI]
232
- # @since 0.3.0
233
- def canonicalize
234
- self.dup.canonicalize!
235
- end
236
-
237
227
  ##
238
228
  # Converts this URI into its canonical lexical representation.
239
229
  #
@@ -156,6 +156,27 @@ module RDF
156
156
  end
157
157
  alias_method :validate, :validate!
158
158
 
159
+ ##
160
+ # Returns a copy of this value converted into its canonical
161
+ # representation.
162
+ #
163
+ # @return [RDF::Value]
164
+ # @since 1.0.8
165
+ def canonicalize
166
+ self.dup.canonicalize!
167
+ end
168
+
169
+ ##
170
+ # Converts this value into its canonical representation.
171
+ #
172
+ # Should be overridden by concrete classes.
173
+ #
174
+ # @return [RDF::Value] `self`
175
+ # @since 1.0.8
176
+ def canonicalize!
177
+ self
178
+ end
179
+
159
180
  ##
160
181
  # Returns an `RDF::Value` representation of `self`.
161
182
  #
data/lib/rdf/nquads.rb CHANGED
@@ -17,7 +17,7 @@ module RDF
17
17
  # RDF::Format.for(:content_type => "application/n-quads")
18
18
  # RDF::Format.for(:content_type => "text/x-nquads")
19
19
  #
20
- # @see http://sw.deri.org/2008/07/n-quads/#mediatype
20
+ # @see http://www.w3.org/TR/n-quads/
21
21
  # @since 0.4.0
22
22
  class Format < RDF::Format
23
23
  content_type 'application/n-quads', :extension => :nq, :alias => ['text/x-nquads']
@@ -80,7 +80,7 @@ module RDF
80
80
  subject = read_uriref || read_node || fail_subject
81
81
  predicate = read_uriref(:intern => true) || fail_predicate
82
82
  object = read_uriref || read_node || read_literal || fail_object
83
- context = read_uriref || read_node || read_literal
83
+ context = read_uriref || read_node
84
84
  if validate? && !read_eos
85
85
  raise RDF::ReaderError, "expected end of statement in line #{lineno}: #{current_line.inspect}"
86
86
  end
data/lib/rdf/ntriples.rb CHANGED
@@ -32,9 +32,8 @@ module RDF
32
32
  # @example Requiring the `RDF::NTriples` module explicitly
33
33
  # require 'rdf/ntriples'
34
34
  #
35
- # @see http://www.w3.org/TR/rdf-testcases/#ntriples
35
+ # @see http://www.w3.org/TR/n-triples/
36
36
  # @see http://en.wikipedia.org/wiki/N-Triples
37
- # @see http://librdf.org/ntriples/
38
37
  #
39
38
  # @author [Arto Bendiken](http://ar.to/)
40
39
  module NTriples
@@ -175,6 +175,23 @@ module RDF::NTriples
175
175
  end
176
176
  end
177
177
 
178
+ ##
179
+ # Initializes the writer.
180
+ #
181
+ # @param [IO, File] output
182
+ # the output stream
183
+ # @param [Hash{Symbol => Object}] options
184
+ # any additional options. See {RDF::Writer#initialize}
185
+ # @option options [Boolean] :validate (true)
186
+ # whether to validate terms when serializing
187
+ # @yield [writer] `self`
188
+ # @yieldparam [RDF::Writer] writer
189
+ # @yieldreturn [void]
190
+ def initialize(output = $stdout, options = {}, &block)
191
+ options = {:validate => true}.merge(options)
192
+ super
193
+ end
194
+
178
195
  ##
179
196
  # Outputs an N-Triples comment line.
180
197
  #
@@ -77,7 +77,7 @@ module RDF
77
77
  # @return [void]
78
78
  def self.load(filenames, options = {}, &block)
79
79
  self.new(options) do |repository|
80
- [filenames].flatten.each do |filename|
80
+ Array(filenames).each do |filename|
81
81
  repository.load(filename, options)
82
82
  end
83
83
 
data/lib/rdf/writer.rb CHANGED
@@ -198,7 +198,9 @@ module RDF
198
198
  # the encoding to use on the output stream (Ruby 1.9+).
199
199
  # Defaults to the format associated with `content_encoding`.
200
200
  # @option options [Boolean] :canonicalize (false)
201
- # whether to canonicalize literals when serializing
201
+ # whether to canonicalize terms when serializing
202
+ # @option options [Boolean] :validate (false)
203
+ # whether to validate terms when serializing
202
204
  # @option options [Hash] :prefixes (Hash.new)
203
205
  # the prefix mappings to use (not supported by all writers)
204
206
  # @option options [#to_s] :base_uri (nil)
@@ -308,6 +310,24 @@ module RDF
308
310
  end
309
311
  end
310
312
 
313
+ ##
314
+ # Returns `true` if statements and terms should be validated.
315
+ #
316
+ # @return [Boolean] `true` or `false`
317
+ # @since 1.0.8
318
+ def validate?
319
+ @options[:validate]
320
+ end
321
+
322
+ ##
323
+ # Returns `true` if terms should be canonicalized.
324
+ #
325
+ # @return [Boolean] `true` or `false`
326
+ # @since 1.0.8
327
+ def canonicalize?
328
+ @options[:canonicalize]
329
+ end
330
+
311
331
  ##
312
332
  # Flushes the underlying output buffer.
313
333
  #
@@ -361,15 +381,21 @@ module RDF
361
381
  ##
362
382
  # @param [RDF::Statement] statement
363
383
  # @return [void] `self`
384
+ # @raise [RDF::WriterError] if validating and attempting to write an invalid {RDF::Statement} or if canonicalizing a statement which cannot be canonicalized.
364
385
  def write_statement(statement)
386
+ statement = statement.canonicalize! if canonicalize?
387
+ raise RDF::WriterError, "Statement #{statement.inspect} is invalid" if validate? && statement.invalid?
365
388
  write_triple(*statement.to_triple)
366
389
  self
390
+ rescue ArgumentError => e
391
+ raise WriterError, e.message
367
392
  end
368
393
  alias_method :insert_statement, :write_statement # support the RDF::Writable interface
369
394
 
370
395
  ##
371
396
  # @param [Array<Array(RDF::Resource, RDF::URI, RDF::Term)>] triples
372
397
  # @return [void] `self`
398
+ # @raise [RDF::WriterError] if validating and attempting to write an invalid {RDF::Term}.
373
399
  def write_triples(*triples)
374
400
  triples.each { |triple| write_triple(*triple) }
375
401
  self
@@ -381,6 +407,7 @@ module RDF
381
407
  # @param [RDF::Term] object
382
408
  # @return [void] `self`
383
409
  # @raise [NotImplementedError] unless implemented in subclass
410
+ # @raise [RDF::WriterError] if validating and attempting to write an invalid {RDF::Term}.
384
411
  # @abstract
385
412
  def write_triple(subject, predicate, object)
386
413
  raise NotImplementedError.new("#{self.class}#write_triple") # override in subclasses
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arto Bendiken
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-06-15 00:00:00.000000000 Z
13
+ date: 2013-09-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: addressable
@@ -60,14 +60,14 @@ dependencies:
60
60
  requirements:
61
61
  - - ! '>='
62
62
  - !ruby/object:Gem::Version
63
- version: '2.12'
63
+ version: '2.14'
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - ! '>='
69
69
  - !ruby/object:Gem::Version
70
- version: '2.12'
70
+ version: '2.14'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: yard
73
73
  requirement: !ruby/object:Gem::Requirement
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  version: '0'
193
193
  requirements: []
194
194
  rubyforge_project: rdf
195
- rubygems_version: 2.0.3
195
+ rubygems_version: 2.0.5
196
196
  signing_key:
197
197
  specification_version: 4
198
198
  summary: A Ruby library for working with Resource Description Framework (RDF) data.