pho 0.7.5 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. data/CHANGES +21 -0
  2. data/Rakefile +1 -1
  3. data/doc/rdoc/classes/Pho.html +0 -5
  4. data/doc/rdoc/classes/Pho/CommandLine.html +108 -108
  5. data/doc/rdoc/classes/Pho/DatatypeProperty.html +15 -15
  6. data/doc/rdoc/classes/Pho/Enrichment/StoreEnricher.html +3 -3
  7. data/doc/rdoc/classes/Pho/Etags.html +36 -36
  8. data/doc/rdoc/classes/Pho/Facet/Results.html +1 -1
  9. data/doc/rdoc/classes/Pho/FieldPredicateMap.html +106 -106
  10. data/doc/rdoc/classes/Pho/FieldWeighting.html +14 -14
  11. data/doc/rdoc/classes/Pho/Job.html +67 -68
  12. data/doc/rdoc/classes/Pho/Jobs.html +62 -62
  13. data/doc/rdoc/classes/Pho/OAI/Records.html +7 -6
  14. data/doc/rdoc/classes/Pho/OAI/Statistics.html +194 -0
  15. data/doc/rdoc/classes/Pho/QueryProfile.html +86 -81
  16. data/doc/rdoc/classes/Pho/ResourceHash.html +1 -1
  17. data/doc/rdoc/classes/Pho/ResourceHash/Converter.html +36 -35
  18. data/doc/rdoc/classes/Pho/ResourceHash/SetAlgebra.html +2 -3
  19. data/doc/rdoc/classes/Pho/Snapshot.html +36 -36
  20. data/doc/rdoc/classes/Pho/Sparql/SparqlClient.html +3 -4
  21. data/doc/rdoc/classes/Pho/Status.html +26 -26
  22. data/doc/rdoc/classes/Pho/Store.html +257 -254
  23. data/doc/rdoc/classes/Pho/StoreSparqlClient.html +14 -14
  24. data/doc/rdoc/classes/Pho/Update/Changeset.html +5 -6
  25. data/doc/rdoc/classes/Pho/Update/Changesets.html +2 -3
  26. data/doc/rdoc/classes/Pho/Update/Statement.html +3 -4
  27. data/doc/rdoc/classes/String.html +1 -1
  28. data/doc/rdoc/created.rid +1 -1
  29. data/doc/rdoc/files/CHANGES.html +33 -4
  30. data/doc/rdoc/files/lib/pho/converter_rb.html +1 -8
  31. data/doc/rdoc/files/lib/pho/oai_rb.html +1 -1
  32. data/doc/rdoc/files/lib/pho/query_profile_rb.html +1 -1
  33. data/doc/rdoc/files/lib/pho/store_rb.html +1 -1
  34. data/doc/rdoc/files/lib/pho_rb.html +5 -3
  35. data/doc/rdoc/fr_class_index.html +0 -2
  36. data/doc/rdoc/fr_file_index.html +0 -1
  37. data/doc/rdoc/fr_method_index.html +132 -136
  38. data/lib/pho.rb +7 -3
  39. data/lib/pho/converter.rb +23 -30
  40. data/lib/pho/oai.rb +5 -4
  41. data/lib/pho/query_profile.rb +6 -1
  42. data/lib/pho/store.rb +17 -12
  43. data/tests/tc_changeset_builder.rb +2 -2
  44. data/tests/tc_converter.rb +3 -3
  45. data/tests/tc_oai.rb +1 -1
  46. data/tests/tc_query_profile.rb +37 -1
  47. data/tests/ts_pho.rb +0 -1
  48. metadata +5 -9
  49. data/doc/rdoc/classes/Pho/RDF.html +0 -120
  50. data/doc/rdoc/classes/Pho/RDF/Parser.html +0 -279
  51. data/doc/rdoc/files/lib/pho/rdf_rb.html +0 -108
  52. data/lib/pho/rdf.rb +0 -76
  53. data/tests/tc_rdf_parser.rb +0 -37
data/lib/pho.rb CHANGED
@@ -6,6 +6,12 @@ require 'date'
6
6
  require 'rexml/document'
7
7
  require 'md5'
8
8
 
9
+ #RDF.rb
10
+ require 'rdf'
11
+ require 'rdf/json'
12
+ #this requires raptor parser
13
+ require 'rdf/raptor'
14
+
9
15
  require 'pho/etags'
10
16
  require 'pho/store'
11
17
  require 'pho/snapshot'
@@ -23,10 +29,8 @@ require 'pho/changeset'
23
29
  require 'pho/sparql'
24
30
  require 'pho/enrichment'
25
31
  require 'pho/command_line'
26
- #Following depend on redland
27
- require 'pho/converter'
28
- require 'pho/rdf'
29
32
  require 'pho/oai'
33
+ require 'pho/converter'
30
34
 
31
35
  if RUBY_VERSION < "1.8.7"
32
36
  class String
@@ -1,18 +1,8 @@
1
1
  module Pho
2
2
 
3
3
  #Resource Hashes
4
- #
5
- #Dependent on the redland ruby bindings
6
4
  module ResourceHash
7
-
8
- #TODO wrap Redland exceptions. Parser/Serializer contruction as well as parsing errors
9
-
10
- begin
11
- require 'rdf/redland'
12
- rescue LoadError
13
- $stderr.puts "WARNING: Unable to load redland-ruby bindings. Changeset support unavailable"
14
- end
15
-
5
+
16
6
  #Class for converting to and from resource hashes
17
7
  class Converter
18
8
 
@@ -27,42 +17,45 @@ module Pho
27
17
  #Parse a string containing RDF/XML into a resource hash
28
18
  #
29
19
  # rdfxml: a String containing RDF/XML
30
- def Converter.parse_rdfxml(rdfxml, base_uri)
31
- return Converter.parse(rdfxml, base_uri, "rdfxml")
20
+ def Converter.parse_rdfxml(rdfxml)
21
+ return Converter.parse(rdfxml, :rdfxml)
32
22
  end
33
23
 
34
24
  #Parse a string containing N-Triples into a resource hash
35
25
  #
36
26
  # ntriples:: a String containing N-Triples
37
- def Converter.parse_ntriples(ntriples, base_uri)
38
- return Converter.parse(ntriples, base_uri, "ntriples")
27
+ def Converter.parse_ntriples(ntriples)
28
+ return Converter.parse(ntriples, :ntriples)
39
29
  end
40
30
 
41
31
  #Parse a string containing Turtle into a resource hash
42
32
  #
43
33
  # ntriples:: a String containing Turtle
44
- def Converter.parse_turtle(turtle, base_uri)
45
- return Converter.parse(turtle, base_uri, "turtle")
34
+ def Converter.parse_turtle(turtle)
35
+ return Converter.parse(turtle, :turtle)
46
36
  end
47
37
 
48
38
  #Convert specified format into a ResourceHash
49
39
  #
50
- # format:: one of rdfxml, ntriples, turtle
40
+ # format:: one of :rdfxml, :ntriples, :turtle
51
41
  # data:: String containing the data to be parsed
52
- # base_uri:: base uri of the data
53
- def Converter.parse(data, base_uri, format="rdfxml")
54
- model = Redland::Model.new()
55
- case format
56
- when "rdfxml" then mime="application/rdf+xml"
57
- when "json" then mime="application/json"
58
- else mime=""
42
+ def Converter.parse(data, format=:rdfxml)
43
+ graph = RDF::Graph.new()
44
+ io = StringIO.new( data )
45
+
46
+ RDF::Reader.for(format).new(io) do |reader|
47
+ reader.each_statement do |statement|
48
+ graph << statement
49
+ end
50
+ end
51
+
52
+ json = StringIO.new()
53
+
54
+ RDF::Writer.for(:json).new(json) do |writer|
55
+ writer << graph
59
56
  end
60
57
 
61
- parser = Redland::Parser.new(format, mime)
62
- parser.parse_string_into_model(model, data, base_uri)
63
- serializer = Redland::Serializer.new( "json", "application/json" )
64
- json = serializer.model_to_string(Redland::Uri.new(base_uri), model)
65
- return Converter.parse_json( json )
58
+ return Converter.parse_json( json.string )
66
59
  end
67
60
 
68
61
  #Serialize a resource hash as RDF-in-JSON
@@ -67,7 +67,8 @@ module Pho
67
67
  end
68
68
  records = []
69
69
  responseDate = doc.root.get_elements("responseDate")[0].text
70
- from = DateTime.parse( doc.root.get_elements("request")[0].attributes["from"] )
70
+ from = doc.root.get_elements("request")[0].attributes["from"]
71
+ from = DateTime.parse( from ) unless from == nil
71
72
  to = doc.root.get_elements("request")[0].attributes["until"]
72
73
  to = DateTime.parse( to ) unless to == nil
73
74
  REXML::XPath.each( doc.root, "//oai:header", {"oai" => "http://www.openarchives.org/OAI/2.0/"} ) do |header|
@@ -100,14 +101,14 @@ module Pho
100
101
  # records = store.list_records
101
102
  # while records != nil
102
103
  # #do something with retrieved records
103
- # records = Records.read_next_records(store, records.resumption_token
104
+ # records = Records.read_next_records(store, records.resumption_token)
104
105
  # end
105
106
  #
106
107
  #store:: the store
107
- #records:: previously retrieved resumption_token
108
+ #resumption_token:: previously retrieved resumption_token
108
109
  def Records.read_next_records(store, resumption_token)
109
110
  #list is already complete
110
- if records.resumption_token = nil
111
+ if resumption_token == nil
111
112
  return nil
112
113
  end
113
114
  return Records.read_from_store(store, nil, nil, token)
@@ -60,7 +60,12 @@ module Pho
60
60
 
61
61
  json = JSON.parse( resp.content )
62
62
 
63
- label = json[qp_uri]["http:\/\/www.w3.org\/2000\/01\/rdf-schema#label"][0]["value"]
63
+ labels = json[qp_uri]["http:\/\/www.w3.org\/2000\/01\/rdf-schema#label"]
64
+ if labels != nil && labels.length > 0
65
+ label = labels[0]["value"]
66
+ else
67
+ label = "query profile"
68
+ end
64
69
  qp = QueryProfile.new(qp_uri, label)
65
70
 
66
71
  field_weights = json[qp_uri]["http:\/\/schemas.talis.com\/2006\/bigfoot\/configuration#fieldWeight"]
@@ -193,7 +193,7 @@ module Pho
193
193
  u = self.build_uri("/services/sparql")
194
194
  end
195
195
 
196
- sparql_client = StoreSparqlClient.new(@self, u, @client)
196
+ sparql_client = StoreSparqlClient.new(self, u, @client)
197
197
  sparql_client.supports_rdf_json = true
198
198
  sparql_client.supports_sparql_json = true
199
199
 
@@ -446,22 +446,27 @@ module Pho
446
446
  # OAI
447
447
  #############
448
448
 
449
- def list_records(from=nil, to=nil, resumption_token=nil)
449
+ def list_records(from=nil, to=nil, resumption_token=nil)
450
450
  u = build_uri("/services/oai-pmh")
451
- params = {"verb" => "ListRecords", "metadataPrefix" => "oai_dc"}
452
- if from != nil
453
- params["from"] = from.strftime("%Y-%m-%dT%H:%M:%SZ") if from.respond_to? :strftime
454
- params["from"] = from.to_s if !from.respond_to? :strftime
455
- end
456
- if to != nil
457
- params["until"] = to.strftime("%Y-%m-%dT%H:%M:%SZ") if to.respond_to? :strftime
458
- params["until"] = to.to_s if !to.respond_to? :strftime
451
+
452
+ params = {"verb" => "ListRecords"}
453
+ if resumption_token==nil then
454
+ params["metadataPrefix"] = "oai_dc"
455
+ if from != nil
456
+ params["from"] = from.strftime("%Y-%m-%dT%H:%M:%SZ") if from.respond_to? :strftime
457
+ params["from"] = from.to_s if !from.respond_to? :strftime
458
+ end
459
+ if to != nil
460
+ params["until"] = to.strftime("%Y-%m-%dT%H:%M:%SZ") if to.respond_to? :strftime
461
+ params["until"] = to.to_s if !to.respond_to? :strftime
462
+ end
463
+ else
464
+ params["resumptionToken"] = resumption_token if resumption_token != nil
459
465
  end
460
- params["resumptionToken"] = resumption_token if resumption_token != nil
461
466
  response = @client.get(u, params)
462
467
  return response
463
468
  end
464
-
469
+
465
470
  #############
466
471
  # CONFIG
467
472
  #############
@@ -252,8 +252,8 @@ class ChangesetBuilderTest < Test::Unit::TestCase
252
252
  end
253
253
 
254
254
  def test_batch_changeset_with_list
255
- coll_hash = Pho::ResourceHash::Converter.parse_rdfxml(COLLECTION, "http://www.example.com")
256
- short_coll_hash = Pho::ResourceHash::Converter.parse_rdfxml(SHORT_COLLECTION, "http://www.example.com")
255
+ coll_hash = Pho::ResourceHash::Converter.parse_rdfxml(COLLECTION)
256
+ short_coll_hash = Pho::ResourceHash::Converter.parse_rdfxml(SHORT_COLLECTION)
257
257
  changesets = Pho::Update::ChangesetBuilder.build_batch(coll_hash, short_coll_hash, "Bob Bobson", "Because I can" )
258
258
  #2 because we've updated the head and tail of the list
259
259
  assert_equal(2, changesets.length)
@@ -43,7 +43,7 @@ class ConverterTest < Test::Unit::TestCase
43
43
 
44
44
  def test_parse_rdfxml
45
45
 
46
- hash = Pho::ResourceHash::Converter.parse_rdfxml(SINGLE_RESOURCE_RDFXML, "http://www.example.org")
46
+ hash = Pho::ResourceHash::Converter.parse_rdfxml(SINGLE_RESOURCE_RDFXML)
47
47
  assert_not_nil(hash)
48
48
  assert_not_nil(hash["http://www.example.org"])
49
49
 
@@ -56,7 +56,7 @@ class ConverterTest < Test::Unit::TestCase
56
56
 
57
57
  def test_parse_ntriples
58
58
 
59
- hash = Pho::ResourceHash::Converter.parse_ntriples(SINGLE_RESOURCE_NTRIPLES, "http://www.example.org")
59
+ hash = Pho::ResourceHash::Converter.parse_ntriples(SINGLE_RESOURCE_NTRIPLES)
60
60
  assert_not_nil(hash)
61
61
  assert_not_nil(hash["http://www.example.org"])
62
62
 
@@ -70,7 +70,7 @@ class ConverterTest < Test::Unit::TestCase
70
70
 
71
71
  def test_parse_turtle
72
72
 
73
- hash = Pho::ResourceHash::Converter.parse_ntriples(SINGLE_RESOURCE_TURTLE, "http://www.example.org")
73
+ hash = Pho::ResourceHash::Converter.parse_ntriples(SINGLE_RESOURCE_TURTLE)
74
74
  assert_not_nil(hash)
75
75
  assert_not_nil(hash["http://www.example.org"])
76
76
 
@@ -105,7 +105,7 @@ EOL
105
105
  def test_request_with_token
106
106
  mc = mock()
107
107
  mc.expects(:set_auth)
108
- mc.expects(:get).with("http://api.talis.com/stores/testing/services/oai-pmh", {"verb" => "ListRecords", "metadataPrefix" => "oai_dc", "resumptionToken" => "abc"} ).returns(
108
+ mc.expects(:get).with("http://api.talis.com/stores/testing/services/oai-pmh", {"verb" => "ListRecords", "resumptionToken" => "abc"} ).returns(
109
109
  HTTP::Message.new_response(LIST_RECORDS))
110
110
 
111
111
  store = Pho::Store.new("http://api.talis.com/stores/testing", "user", "pass", mc)
@@ -26,6 +26,26 @@ class QueryProfileTest < Test::Unit::TestCase
26
26
  }
27
27
  }
28
28
  EOL
29
+
30
+ QP_JSON_NO_LABEL = <<-EOL
31
+ {
32
+ "http:\/\/api.talis.com\/stores\/testing\/config\/queryprofiles\/1" : {
33
+ "http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type" : [ { "value" : "http:\/\/schemas.talis.com\/2006\/bigfoot\/configuration#QueryProfile", "type" : "uri" } ],
34
+ "http:\/\/schemas.talis.com\/2006\/bigfoot\/configuration#fieldWeight" : [
35
+ { "value" : "http:\/\/api.talis.com\/stores\/testing\/config\/queryprofiles\/1#name", "type" : "uri" },
36
+ { "value" : "http:\/\/api.talis.com\/stores\/testing\/config\/queryprofiles\/1#nick", "type" : "uri" }
37
+ ]
38
+ },
39
+ "http:\/\/api.talis.com\/stores\/testing\/config\/queryprofiles\/1#nick" : {
40
+ "http:\/\/schemas.talis.com\/2006\/bigfoot\/configuration#weight" : [ { "value" : "1.0", "type" : "literal" } ],
41
+ "http:\/\/schemas.talis.com\/2006\/frame\/schema#name" : [ { "value" : "nick", "type" : "literal" } ]
42
+ },
43
+ "http:\/\/api.talis.com\/stores\/testing\/config\/queryprofiles\/1#name" : {
44
+ "http:\/\/schemas.talis.com\/2006\/bigfoot\/configuration#weight" : [ { "value" : "2.0", "type" : "literal" } ],
45
+ "http:\/\/schemas.talis.com\/2006\/frame\/schema#name" : [ { "value" : "name", "type" : "literal" } ]
46
+ }
47
+ }
48
+ EOL
29
49
 
30
50
  def setup
31
51
  @qp = Pho::QueryProfile.new("http://api.talis.com/stores/testing/config/queryprofiles/default", "test query profile")
@@ -134,7 +154,23 @@ EOL
134
154
  assert_expected_field_weighting(sorted[0], "name", "http://api.talis.com/stores/testing/config/queryprofiles/1#name", "2.0")
135
155
  assert_expected_field_weighting(sorted[1], "nick", "http://api.talis.com/stores/testing/config/queryprofiles/1#nick", "1.0")
136
156
  end
137
-
157
+
158
+ def test_read_from_store_no_label
159
+ mc = mock()
160
+ mc.expects(:set_auth)
161
+ mc.expects(:get).with("http://api.talis.com/stores/testing/config/queryprofiles/1", anything,
162
+ {"Accept" => "application/json"}).returns( HTTP::Message.new_response(QP_JSON_NO_LABEL) )
163
+
164
+ store = Pho::Store.new("http://api.talis.com/stores/testing", "user", "pass", mc)
165
+ qp = Pho::QueryProfile.read_from_store(store)
166
+
167
+ assert_not_nil(qp)
168
+
169
+ assert_equal("http://api.talis.com/stores/testing/config/queryprofiles/1", qp.uri)
170
+ assert_equal("query profile", qp.label)
171
+
172
+ end
173
+
138
174
  def test_get_by_name
139
175
 
140
176
  assert_expected_field_weighting(@qp.get_by_name("abstract"), "abstract", "http://api.talis.com/stores/testing/config/queryprofiles/default#abstract", 5.0)
@@ -22,6 +22,5 @@ require 'tc_changeset.rb'
22
22
  require 'tc_changesets.rb'
23
23
  require 'tc_converter.rb'
24
24
  require 'tc_enrichment.rb'
25
- require 'tc_rdf_parser.rb'
26
25
  require 'tc_command_line.rb'
27
26
  require 'tc_oai.rb'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pho
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 5
10
- version: 0.7.5
9
+ - 7
10
+ version: 0.7.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Leigh Dodds
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-01 00:00:00 +01:00
18
+ date: 2010-10-11 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -110,7 +110,6 @@ files:
110
110
  - doc/rdoc/files/lib/pho/snapshot_rb.html
111
111
  - doc/rdoc/files/lib/pho/file_manager_rb.html
112
112
  - doc/rdoc/files/lib/pho/etags_rb.html
113
- - doc/rdoc/files/lib/pho/rdf_rb.html
114
113
  - doc/rdoc/files/lib/pho/converter_rb.html
115
114
  - doc/rdoc/files/lib/pho/changeset_rb.html
116
115
  - doc/rdoc/files/lib/pho/sparql_rb.html
@@ -139,7 +138,6 @@ files:
139
138
  - doc/rdoc/classes/Pho/CommandLine.html
140
139
  - doc/rdoc/classes/Pho/Enrichment.html
141
140
  - doc/rdoc/classes/Pho/FileManagement.html
142
- - doc/rdoc/classes/Pho/RDF/Parser.html
143
141
  - doc/rdoc/classes/Pho/Namespaces.html
144
142
  - doc/rdoc/classes/Pho/DatatypeProperty.html
145
143
  - doc/rdoc/classes/Pho/Update/LiteralStatement.html
@@ -156,12 +154,12 @@ files:
156
154
  - doc/rdoc/classes/Pho/QueryProfile.html
157
155
  - doc/rdoc/classes/Pho/JobUpdate.html
158
156
  - doc/rdoc/classes/Pho/ResourceHash.html
159
- - doc/rdoc/classes/Pho/RDF.html
160
157
  - doc/rdoc/classes/Pho/Analyzers.html
161
158
  - doc/rdoc/classes/Pho/ResourceHash/SetAlgebra.html
162
159
  - doc/rdoc/classes/Pho/ResourceHash/Converter.html
163
160
  - doc/rdoc/classes/Pho/FieldPredicateMap.html
164
161
  - doc/rdoc/classes/Pho/OAI/Record.html
162
+ - doc/rdoc/classes/Pho/OAI/Statistics.html
165
163
  - doc/rdoc/classes/Pho/OAI/Records.html
166
164
  - doc/rdoc/classes/Pho/StoreSparqlClient.html
167
165
  - doc/rdoc/classes/Pho/Status.html
@@ -182,7 +180,6 @@ files:
182
180
  - tests/tc_status.rb
183
181
  - tests/tc_store_util.rb
184
182
  - tests/tc_command_line.rb
185
- - tests/tc_rdf_parser.rb
186
183
  - tests/tc_etags.rb
187
184
  - tests/tc_resource_hash.rb
188
185
  - tests/tc_facet.rb
@@ -216,7 +213,6 @@ files:
216
213
  - lib/pho/file_management.rb
217
214
  - lib/pho/job.rb
218
215
  - lib/pho/oai.rb
219
- - lib/pho/rdf.rb
220
216
  - lib/pho/converter.rb
221
217
  - lib/pho/resource_hash.rb
222
218
  - lib/pho/file_manager.rb
@@ -1,120 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Module: Pho::RDF</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Module</strong></td>
53
- <td class="class-name-in-header">Pho::RDF</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/pho/rdf_rb.html">
59
- lib/pho/rdf.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- </table>
66
- </div>
67
- <!-- banner header -->
68
-
69
- <div id="bodyContent">
70
-
71
-
72
-
73
- <div id="contextContent">
74
-
75
- <div id="description">
76
- <p>
77
- Module containing general <a href="RDF.html">RDF</a> utilities and classes
78
- </p>
79
- <p>
80
- Dependent on the redland ruby bindings
81
- </p>
82
-
83
- </div>
84
-
85
-
86
- </div>
87
-
88
-
89
- </div>
90
-
91
-
92
- <!-- if includes -->
93
-
94
- <div id="section">
95
-
96
- <div id="class-list">
97
- <h3 class="section-bar">Classes and Modules</h3>
98
-
99
- Class <a href="RDF/Parser.html" class="link">Pho::RDF::Parser</a><br />
100
-
101
- </div>
102
-
103
-
104
-
105
-
106
-
107
-
108
-
109
- <!-- if method_list -->
110
-
111
-
112
- </div>
113
-
114
-
115
- <div id="validator-badges">
116
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
117
- </div>
118
-
119
- </body>
120
- </html>