rdf-rdfa 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,38 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
2
+ require 'rdf'
3
+
4
+ module RDF
5
+ ##
6
+ # **`RDF::RDFa`** is an RDFa plugin for RDF.rb.
7
+ #
8
+ # @example Requiring the `RDF::RDFa` module
9
+ # require 'rdf/rdfa'
10
+ #
11
+ # @example Parsing RDF statements from an XHTML+RDFa file
12
+ # RDF::RDFa::Reader.open("etc/foaf.html") do |reader|
13
+ # reader.each_statement do |statement|
14
+ # puts statement.inspect
15
+ # end
16
+ # end
17
+ #
18
+ # @example Serializing RDF statements into a XHTML+RDFa file
19
+ # RDF::RDFa::Writer.open("etc/test.xml") do |writer|
20
+ # reader.each_statement do |statement|
21
+ # writer << statement
22
+ # end
23
+ # end
24
+ #
25
+ # @see http://rdf.rubyforge.org/
26
+ # @see http://www.w3.org/TR/xhtml-rdfa-primer/
27
+ # @see http://www.w3.org/2010/02/rdfa/wiki/Main_Page
28
+ # @see http://www.w3.org/TR/2010/WD-rdfa-core-20100422/
29
+ # @see http://www.w3.org/TR/2010/WD-xhtml-rdfa-20100422/
30
+ #
31
+ # @author [Gregg Kellogg](http://kellogg-assoc.com/)
32
+ module RDFa
33
+ require 'rdfa/format'
34
+ autoload :Reader, 'rdf/rdfa/reader'
35
+ autoload :Writer, 'rdf/rdfa/writer'
36
+ autoload :VERSION, 'rdf/rdfa/version'
37
+ end
38
+ end\
@@ -0,0 +1,28 @@
1
+ module RDF::RDFa
2
+ ##
3
+ # RDFa format specification.
4
+ #
5
+ # @example Obtaining an RDFa format class
6
+ # RDF::Format.for(:rdfa) #=> RDF::RDFa::Format
7
+ # RDF::Format.for("etc/foaf.html")
8
+ # RDF::Format.for(:file_name => "etc/foaf.html")
9
+ # RDF::Format.for(:file_extension => "html")
10
+ # RDF::Format.for(:content_type => "text/html")
11
+ # RDF::Format.for(:content_type => "application/xhtml+xml")
12
+ #
13
+ # @example Obtaining serialization format MIME types
14
+ # RDF::Format.content_types #=> {"text/html" => [RDF::RDFa::Format]}
15
+ #
16
+ # @example Obtaining serialization format file extension mappings
17
+ # RDF::Format.file_extensions #=> {:xhtml => "application/xhtml+xml"}
18
+ #
19
+ # @see http://www.w3.org/TR/rdf-testcases/#ntriples
20
+ class Format < RDF::Format
21
+ content_type 'text/html', :extension => :html
22
+ content_type 'application/xhtml+xml', :extension => :xhtml
23
+ content_encoding 'utf-8'
24
+
25
+ reader { RDF::RDFa::Reader }
26
+ XMLNS = 'http://www.w3.org/1999/xhtml' # FIXME: This or XHV or none at all?
27
+ end
28
+ end
@@ -1,20 +1,15 @@
1
- require 'nokogiri'
1
+ require 'nokogiri' # FIXME: Implement using different modules as in RDF::TriX
2
2
  require 'rdf'
3
+ require 'rdf/rdfa/vocab'
3
4
 
4
5
  module RDF::RDFa
5
6
  ##
6
7
  # An RDFa parser in Ruby
7
8
  #
8
- # Based on processing rules described here:
9
- # file:///Users/gregg/Projects/rdf_context/RDFa%20Core%201.1.html#sequence
10
- #
11
- # Ben Adida
12
- # 2008-05-07
13
- # Gregg Kellogg
14
- # 2009-08-04
9
+ # @author [Gregg Kellogg](http://kellogg-assoc.com/)
15
10
  class Reader < RDF::Reader
16
- autoload :Namespace, 'rdfa/reader/namespace'
17
- autoload :VERSION, 'rdfa/reader/version'
11
+ format Format
12
+ autoload :VERSION, 'rdf/rdfa/version'
18
13
 
19
14
  NC_REGEXP = Regexp.new(
20
15
  %{^
@@ -29,24 +24,8 @@ module RDF::RDFa
29
24
  $},
30
25
  Regexp::EXTENDED)
31
26
 
32
- #XML_LITERAL = Literal::Encoding.xmlliteral
33
27
  XML_LITERAL = RDF['XMLLiteral']
34
28
 
35
-
36
- # FIXME: use RDF::URI.qname instead
37
- RDF_NS = Namespace.new("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf")
38
- RDFA_NS = Namespace.new("http://www.w3.org/ns/rdfa#", "rdfa")
39
- RDFS_NS = Namespace.new("http://www.w3.org/2000/01/rdf-schema#", "rdfs")
40
- XHV_NS = Namespace.new("http://www.w3.org/1999/xhtml/vocab#", "xhv")
41
- XML_NS = Namespace.new("http://www.w3.org/XML/1998/namespace", "xml")
42
- XSD_NS = Namespace.new("http://www.w3.org/2001/XMLSchema#", "xsd")
43
- XSI_NS = Namespace.new("http://www.w3.org/2001/XMLSchema-instance", "xsi")
44
- XH_MAPPING = {"" => Namespace.new("http://www.w3.org/1999/xhtml/vocab\#", nil)}
45
-
46
-
47
- require 'rdfa/format'
48
- format RDFa::Format
49
-
50
29
  attr_reader :debug
51
30
 
52
31
  ##
@@ -124,8 +103,6 @@ module RDF::RDFa
124
103
  end
125
104
  end
126
105
 
127
-
128
-
129
106
  # Parse XHTML+RDFa document from a string or input stream to closure or graph.
130
107
  #
131
108
  # If the parser is called with a block, triples are passed to the block rather
@@ -159,8 +136,6 @@ module RDF::RDFa
159
136
  @base_uri = RDF::URI.parse(@base_uri) if @base_uri.is_a?(String)
160
137
  @named_bnodes = {}
161
138
  @@vocabulary_cache ||= {}
162
- @nsbinding = {}
163
- @uri_binding = {}
164
139
 
165
140
  @doc = case input
166
141
  when Nokogiri::HTML::Document then input
@@ -183,14 +158,13 @@ module RDF::RDFa
183
158
  @host_defaults = {}
184
159
  @host_defaults = case @host_language
185
160
  when :xhtml
186
- bind(XHV_NS)
187
161
  {
188
- :vocabulary => XHV_NS.uri,
189
- :prefix => XHV_NS,
162
+ :vocabulary => RDF::XHV["uri"],
163
+ :prefix => "xhv",
190
164
  :term_mappings => %w(
191
165
  alternate appendix bookmark cite chapter contents copyright first glossary help icon index
192
166
  last license meta next p3pv1 prev role section stylesheet subsection start top up
193
- ).inject({}) { |hash, term| hash[term] = XHV_NS.send("#{term}_"); hash },
167
+ ).inject({}) { |hash, term| hash[term] = RDF::XHV[term]; hash },
194
168
  }
195
169
  else
196
170
  {}
@@ -203,6 +177,7 @@ module RDF::RDFa
203
177
  end
204
178
 
205
179
 
180
+ # XXX Invoke the parser, and allow add_triple to make the callback?
206
181
  ##
207
182
  # Iterates the given block for each RDF statement in the input.
208
183
  #
@@ -224,27 +199,6 @@ module RDF::RDFa
224
199
  def each_triple(&block)
225
200
  @graph.each_triple(&block)
226
201
  end
227
-
228
- # Bind namespace to store, returns bound namespace
229
- def bind(namespace)
230
- # Over-write an empty prefix
231
- uri = namespace.uri.to_s
232
- @uri_binding.delete(uri)
233
- @nsbinding.delete_if {|prefix, ns| namespace.prefix == prefix}
234
-
235
- @uri_binding[uri] = namespace
236
- @nsbinding[namespace.prefix.to_s] = namespace
237
- end
238
-
239
- # Namespace for prefix
240
- def namespace(prefix)
241
- @nsbinding[prefix.to_s]
242
- end
243
-
244
- # Prefix for namespace
245
- def prefix(namespace)
246
- namespace.is_a?(Namespace) ? @uri_binding[namespace.uri.to_s].prefix : @uri_binding[namespace].prefix
247
- end
248
202
 
249
203
  private
250
204
 
@@ -266,26 +220,19 @@ module RDF::RDFa
266
220
  @debug << "#{node_path(node)}: #{message}" if @debug.is_a?(Array)
267
221
  end
268
222
 
269
- # add a triple, object can be literal or URI or bnode
270
- #
271
- # If the parser is called with a block, triples are passed to the block rather
272
- # than added to the graph.
223
+ # add a statement, object can be literal or URI or bnode
273
224
  #
274
225
  # @param [Nokogiri::XML::Node, any] node:: XML Node or string for showing context
275
- # @param [URI, BNode] subject:: the subject of the triple
276
- # @param [URI] predicate:: the predicate of the triple
277
- # @param [URI, BNode, Literal] object:: the object of the triple
278
- # @return [Array]:: An array of the triples (leaky abstraction? consider returning the graph instead)
279
- # @raise [Error]:: Checks parameter types and raises if they are incorrect if parsing mode is _strict_.
226
+ # @param [URI, BNode] subject:: the subject of the statement
227
+ # @param [URI] predicate:: the predicate of the statement
228
+ # @param [URI, BNode, Literal] object:: the object of the statement
229
+ # @return [Statement]:: Added statement
230
+ # @raise [Exception]:: Checks parameter types and raises if they are incorrect if parsing mode is _strict_.
280
231
  def add_triple(node, subject, predicate, object)
281
- triple = RDF::Statement.new(subject, predicate, object)
282
- add_debug(node, "triple: #{triple}")
283
- if @callback
284
- @callback.call(triple) # Perform yield to saved block
285
- else
286
- @graph << triple
287
- end
288
- triple
232
+ statement = RDF::Statement.new(subject, predicate, object)
233
+ add_debug(node, "statement: #{statement}")
234
+ @graph << statement
235
+ statement
289
236
  # FIXME: rescue RdfException => e
290
237
  rescue Exception => e
291
238
  add_debug(node, "add_triple raised #{e.class}: #{e.message}")
@@ -355,9 +302,9 @@ module RDF::RDFa
355
302
 
356
303
  # If one of the objects is not a Literal or if there are additional rdfa:uri or rdfa:term
357
304
  # predicates sharing the same subject, no mapping is created.
358
- uri = props[RDFA_NS.uri.to_s]
359
- term = props[RDFA_NS.term_.to_s]
360
- prefix = props[RDFA_NS.prefix_.to_s]
305
+ uri = props[RDF::RDFA["uri"].to_s]
306
+ term = props[RDF::RDFA["term"].to_s]
307
+ prefix = props[RDF::RDFA["prefix"].to_s]
361
308
  add_debug(element, "extract_mappings: uri=#{uri.inspect}, term=#{term.inspect}, prefix=#{prefix.inspect}")
362
309
 
363
310
  next if !uri || (!term && !prefix)
@@ -377,12 +324,12 @@ module RDF::RDFa
377
324
  # object literal of the rdfa:uri predicate. Add or update this mapping in the local list of
378
325
  # URI mappings after transforming the 'prefix' component to lower-case.
379
326
  # For every extracted
380
- um[prefix.to_s.downcase] = bind(Namespace.new(uri.to_s, prefix.to_s.downcase)) if prefix
327
+ um[prefix.to_s.downcase] = RDF::URI.new(uri) if prefix
381
328
 
382
329
  # triple that is the common subject of an rdfa:term and an rdfa:uri predicate, create a
383
330
  # mapping from the object literal of the rdfa:term predicate to the object literal of the
384
331
  # rdfa:uri predicate. Add or update this mapping in the local term mappings.
385
- tm[term.to_s] = RDF::URI.new(uri.to_s) if term
332
+ tm[term.to_s] = RDF::URI.new(uri) if term
386
333
  end
387
334
  rescue ParserException
388
335
  add_debug(element, "extract_mappings: profile subject #{subject.to_s}: #{e.message}")
@@ -406,7 +353,7 @@ module RDF::RDFa
406
353
  element.namespaces.each do |attr_name, attr_value|
407
354
  begin
408
355
  abbr, prefix = attr_name.split(":")
409
- uri_mappings[prefix.to_s.downcase] = bind(Namespace.new(attr_value, prefix.to_s.downcase)) if abbr.downcase == "xmlns" && prefix
356
+ uri_mappings[prefix.to_s.downcase] = RDF::URI.new(attr_value) if abbr.downcase == "xmlns" && prefix
410
357
  # FIXME: rescue RdfException => e
411
358
  rescue Exception => e
412
359
  add_debug(element, "extract_mappings raised #{e.class}: #{e.message}")
@@ -425,7 +372,7 @@ module RDF::RDFa
425
372
  next unless prefix.match(/:$/)
426
373
  prefix.chop!
427
374
 
428
- uri_mappings[prefix] = bind(Namespace.new(uri, prefix))
375
+ uri_mappings[prefix] = RDF::URI.new(uri)
429
376
  end
430
377
 
431
378
  add_debug(element, "uri_mappings: #{uri_mappings.values.map{|ns|ns.to_s}.join(", ")}")
@@ -481,7 +428,7 @@ module RDF::RDFa
481
428
  # Set default_vocabulary to host language default
482
429
  @host_defaults.fetch(:voabulary, nil)
483
430
  else
484
- vocab.to_s
431
+ RDF::URI.new(vocab)
485
432
  end
486
433
  add_debug(element, "[Step 2] traverse, default_vocaulary: #{default_vocabulary.inspect}")
487
434
  end
@@ -498,8 +445,8 @@ module RDF::RDFa
498
445
  # attribute in no namespace must be ignored for the purposes of determining the element's
499
446
  # language.
500
447
  language = case
501
- when element.at_xpath("@xml:lang", "xml" => XML_NS.uri.to_s)
502
- element.at_xpath("@xml:lang", "xml" => XML_NS.uri.to_s).to_s
448
+ when element.at_xpath("@xml:lang", "xml" => RDF::XML["uri"].to_s)
449
+ element.at_xpath("@xml:lang", "xml" => RDF::XML["uri"].to_s).to_s
503
450
  when element.at_xpath("lang")
504
451
  element.at_xpath("lang").to_s
505
452
  else
@@ -735,7 +682,7 @@ module RDF::RDFa
735
682
  add_debug(element, "process_uri: #{value} => CURIE => <#{uri}>")
736
683
  else
737
684
  #FIXME: uri = URIRef.new(value, evaluation_context.base)
738
- uri = RDF::URI.new(value)
685
+ uri = RDF::URI.new(evaluation_context.base + value)
739
686
  add_debug(element, "process_uri: #{value} => URI => <#{uri}>")
740
687
  end
741
688
  uri
@@ -756,7 +703,7 @@ module RDF::RDFa
756
703
  options[:term_mappings][value.to_s.downcase]
757
704
  when options[:vocab]
758
705
  # Otherwise, if there is a local default vocabulary the URI is obtained by concatenating that value and the term.
759
- options[:vocab] + value
706
+ options[:vocab].join(value)
760
707
  else
761
708
  # Finally, if there is no local default vocabulary, the term has no associated URI and must be ignored.
762
709
  nil
@@ -765,7 +712,7 @@ module RDF::RDFa
765
712
 
766
713
  # From section 6. CURIE Syntax Definition
767
714
  def curie_to_resource_or_bnode(element, curie, uri_mappings, subject)
768
- # URI mappings for CURIEs default to XH_MAPPING, rather than the default doc namespace
715
+ # URI mappings for CURIEs default to XHV, rather than the default doc namespace
769
716
  prefix, reference = curie.to_s.split(":")
770
717
 
771
718
  # consider the bnode situation
@@ -776,18 +723,18 @@ module RDF::RDFa
776
723
  elsif curie.to_s.match(/^:/)
777
724
  # Default prefix
778
725
  if uri_mappings[""]
779
- uri_mappings[""].send("#{reference}_")
726
+ uri_mappings[""].join(reference)
780
727
  elsif @host_defaults[:prefix]
781
- @host_defaults[:prefix].send("#{reference}_")
728
+ @host_defaults[:prefix].join(reference)
782
729
  end
783
730
  elsif !curie.to_s.match(/:/)
784
731
  # No prefix, undefined (in this context, it is evaluated as a term elsewhere)
785
732
  nil
786
733
  else
787
- # XXX Spec Confusion, are prefixes always downcased?
734
+ # Prefixes always downcased
788
735
  ns = uri_mappings[prefix.to_s.downcase]
789
736
  if ns
790
- ns + reference
737
+ ns.join(reference)
791
738
  else
792
739
  add_debug(element, "curie_to_resource_or_bnode No namespace mapping for #{prefix.downcase}")
793
740
  nil
@@ -1,8 +1,8 @@
1
1
  module RDFa
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 1
5
- TINY = 0
4
+ MINOR = 0
5
+ TINY = 2
6
6
  EXTRA = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY].join('.')
@@ -0,0 +1,7 @@
1
+ module RDF
2
+ class RDFA < Vocabulary("http://www.w3.org/ns/rdfa#"); end
3
+ class XHV < Vocabulary("http://www.w3.org/1999/xhtml/vocab#"); end
4
+ class XML < Vocabulary("http://www.w3.org/XML/1998/namespace"); end
5
+ class XSI < Vocabulary("http://www.w3.org/2001/XMLSchema-instance"); end
6
+ class OWL < Vocabulary("http://www.w3.org/2002/07/owl#"); end
7
+ end
@@ -0,0 +1 @@
1
+ /*.gem
@@ -0,0 +1,195 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{rdf-rdfa}
8
+ s.version = "0.0.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Gregg Kellogg", "Nicholas Humfrey"]
12
+ s.date = %q{2010-06-03}
13
+ s.description = %q{ RDF::RDFa is an RDFa parser for Ruby using the RDF.rb library suite.
14
+ }
15
+ s.email = %q{gregg@kellogg-assoc.com}
16
+ s.extra_rdoc_files = [
17
+ "AUTHORS",
18
+ "History.txt",
19
+ "README.rdoc"
20
+ ]
21
+ s.files = [
22
+ "AUTHORS",
23
+ "History.txt",
24
+ "README.rdoc",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "etc/foaf.html",
28
+ "etc/xhv.html",
29
+ "example.rb",
30
+ "lib/rdf/rdfa.rb",
31
+ "lib/rdf/rdfa/format.rb",
32
+ "lib/rdf/rdfa/reader.rb",
33
+ "lib/rdf/rdfa/reader/exceptions.rb",
34
+ "lib/rdf/rdfa/version.rb",
35
+ "lib/rdf/rdfa/vocab.rb",
36
+ "pkg/.gitignore",
37
+ "rdf-rdfa.gemspec",
38
+ "script/console",
39
+ "spec/rdfa-triples/0001.nt",
40
+ "spec/rdfa-triples/0006.nt",
41
+ "spec/rdfa-triples/0007.nt",
42
+ "spec/rdfa-triples/0008.nt",
43
+ "spec/rdfa-triples/0009.nt",
44
+ "spec/rdfa-triples/0010.nt",
45
+ "spec/rdfa-triples/0011.nt",
46
+ "spec/rdfa-triples/0012.nt",
47
+ "spec/rdfa-triples/0013.nt",
48
+ "spec/rdfa-triples/0014.nt",
49
+ "spec/rdfa-triples/0015.nt",
50
+ "spec/rdfa-triples/0017.nt",
51
+ "spec/rdfa-triples/0018.nt",
52
+ "spec/rdfa-triples/0019.nt",
53
+ "spec/rdfa-triples/0020.nt",
54
+ "spec/rdfa-triples/0021.nt",
55
+ "spec/rdfa-triples/0023.nt",
56
+ "spec/rdfa-triples/0025.nt",
57
+ "spec/rdfa-triples/0026.nt",
58
+ "spec/rdfa-triples/0027.nt",
59
+ "spec/rdfa-triples/0029.nt",
60
+ "spec/rdfa-triples/0030.nt",
61
+ "spec/rdfa-triples/0031.nt",
62
+ "spec/rdfa-triples/0032.nt",
63
+ "spec/rdfa-triples/0033.nt",
64
+ "spec/rdfa-triples/0034.nt",
65
+ "spec/rdfa-triples/0035.nt",
66
+ "spec/rdfa-triples/0036.nt",
67
+ "spec/rdfa-triples/0037.nt",
68
+ "spec/rdfa-triples/0038.nt",
69
+ "spec/rdfa-triples/0039.nt",
70
+ "spec/rdfa-triples/0040.nt",
71
+ "spec/rdfa-triples/0041.nt",
72
+ "spec/rdfa-triples/0042.nt",
73
+ "spec/rdfa-triples/0046.nt",
74
+ "spec/rdfa-triples/0047.nt",
75
+ "spec/rdfa-triples/0048.nt",
76
+ "spec/rdfa-triples/0049.nt",
77
+ "spec/rdfa-triples/0050.nt",
78
+ "spec/rdfa-triples/0051.nt",
79
+ "spec/rdfa-triples/0052.nt",
80
+ "spec/rdfa-triples/0053.nt",
81
+ "spec/rdfa-triples/0054.nt",
82
+ "spec/rdfa-triples/0055.nt",
83
+ "spec/rdfa-triples/0056.nt",
84
+ "spec/rdfa-triples/0057.nt",
85
+ "spec/rdfa-triples/0058.nt",
86
+ "spec/rdfa-triples/0059.nt",
87
+ "spec/rdfa-triples/0060.nt",
88
+ "spec/rdfa-triples/0061.nt",
89
+ "spec/rdfa-triples/0062.nt",
90
+ "spec/rdfa-triples/0063.nt",
91
+ "spec/rdfa-triples/0064.nt",
92
+ "spec/rdfa-triples/0065.nt",
93
+ "spec/rdfa-triples/0066.nt",
94
+ "spec/rdfa-triples/0067.nt",
95
+ "spec/rdfa-triples/0068.nt",
96
+ "spec/rdfa-triples/0069.nt",
97
+ "spec/rdfa-triples/0070.nt",
98
+ "spec/rdfa-triples/0071.nt",
99
+ "spec/rdfa-triples/0072.nt",
100
+ "spec/rdfa-triples/0073.nt",
101
+ "spec/rdfa-triples/0074.nt",
102
+ "spec/rdfa-triples/0075.nt",
103
+ "spec/rdfa-triples/0076.nt",
104
+ "spec/rdfa-triples/0077.nt",
105
+ "spec/rdfa-triples/0078.nt",
106
+ "spec/rdfa-triples/0079.nt",
107
+ "spec/rdfa-triples/0080.nt",
108
+ "spec/rdfa-triples/0081.nt",
109
+ "spec/rdfa-triples/0082.nt",
110
+ "spec/rdfa-triples/0083.nt",
111
+ "spec/rdfa-triples/0084.nt",
112
+ "spec/rdfa-triples/0085.nt",
113
+ "spec/rdfa-triples/0086.nt",
114
+ "spec/rdfa-triples/0087.nt",
115
+ "spec/rdfa-triples/0088.nt",
116
+ "spec/rdfa-triples/0089.nt",
117
+ "spec/rdfa-triples/0090.nt",
118
+ "spec/rdfa-triples/0091.nt",
119
+ "spec/rdfa-triples/0092.nt",
120
+ "spec/rdfa-triples/0093.nt",
121
+ "spec/rdfa-triples/0094.nt",
122
+ "spec/rdfa-triples/0099.nt",
123
+ "spec/rdfa-triples/0100.nt",
124
+ "spec/rdfa-triples/0101.nt",
125
+ "spec/rdfa-triples/0102.nt",
126
+ "spec/rdfa-triples/0103.nt",
127
+ "spec/rdfa-triples/0104.nt",
128
+ "spec/rdfa-triples/0105.nt",
129
+ "spec/rdfa-triples/0106.nt",
130
+ "spec/rdfa-triples/0107.nt",
131
+ "spec/rdfa-triples/0108.nt",
132
+ "spec/rdfa-triples/0109.nt",
133
+ "spec/rdfa-triples/0110.nt",
134
+ "spec/rdfa-triples/0111.nt",
135
+ "spec/rdfa-triples/0112.nt",
136
+ "spec/rdfa-triples/0113.nt",
137
+ "spec/rdfa-triples/0114.nt",
138
+ "spec/rdfa-triples/0115.nt",
139
+ "spec/rdfa-triples/0116.nt",
140
+ "spec/rdfa-triples/0117.nt",
141
+ "spec/rdfa-triples/0118.nt",
142
+ "spec/rdfa-triples/0119.nt",
143
+ "spec/rdfa-triples/0120.nt",
144
+ "spec/rdfa-triples/0121.nt",
145
+ "spec/rdfa-triples/0122.nt",
146
+ "spec/rdfa-triples/0123.nt",
147
+ "spec/rdfa-triples/0124.nt",
148
+ "spec/rdfa-triples/0125.nt",
149
+ "spec/rdfa-triples/0126.nt",
150
+ "spec/rdfa-triples/1001.nt",
151
+ "spec/rdfa_helper.rb",
152
+ "spec/rdfa_reader_spec.rb",
153
+ "spec/spec.opts",
154
+ "spec/spec_helper.rb"
155
+ ]
156
+ s.homepage = %q{http://github.com/gkellogg/rdf-rdfa}
157
+ s.rdoc_options = ["--charset=UTF-8"]
158
+ s.require_paths = ["lib"]
159
+ s.rubygems_version = %q{1.3.7}
160
+ s.summary = %q{RDFa parser for RDF.rb.}
161
+ s.test_files = [
162
+ "spec/rdfa_helper.rb",
163
+ "spec/rdfa_reader_spec.rb",
164
+ "spec/spec_helper.rb"
165
+ ]
166
+
167
+ if s.respond_to? :specification_version then
168
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
169
+ s.specification_version = 3
170
+
171
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
172
+ s.add_runtime_dependency(%q<rdf>, [">= 0.1.6"])
173
+ s.add_runtime_dependency(%q<nokogiri>, [">= 1.3.3"])
174
+ s.add_runtime_dependency(%q<patron>, [">= 0.4.6"])
175
+ s.add_development_dependency(%q<rspec>, [">= 0"])
176
+ s.add_development_dependency(%q<rdf-spec>, [">= 0"])
177
+ s.add_development_dependency(%q<activesupport>, [">= 2.3.0"])
178
+ else
179
+ s.add_dependency(%q<rdf>, [">= 0.1.6"])
180
+ s.add_dependency(%q<nokogiri>, [">= 1.3.3"])
181
+ s.add_dependency(%q<patron>, [">= 0.4.6"])
182
+ s.add_dependency(%q<rspec>, [">= 0"])
183
+ s.add_dependency(%q<rdf-spec>, [">= 0"])
184
+ s.add_dependency(%q<activesupport>, [">= 2.3.0"])
185
+ end
186
+ else
187
+ s.add_dependency(%q<rdf>, [">= 0.1.6"])
188
+ s.add_dependency(%q<nokogiri>, [">= 1.3.3"])
189
+ s.add_dependency(%q<patron>, [">= 0.4.6"])
190
+ s.add_dependency(%q<rspec>, [">= 0"])
191
+ s.add_dependency(%q<rdf-spec>, [">= 0"])
192
+ s.add_dependency(%q<activesupport>, [">= 2.3.0"])
193
+ end
194
+ end
195
+