owlim-ruby 0.9.9 → 0.9.9.1

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 (5) hide show
  1. data/README.rdoc +24 -1
  2. data/bin/owlim +8 -1
  3. data/gemspec.rb +1 -1
  4. data/lib/owlim.rb +55 -17
  5. metadata +4 -7
data/README.rdoc CHANGED
@@ -75,6 +75,10 @@ If not specified, format will be guessed from the file name suffix for import.
75
75
 
76
76
  === Query commands
77
77
 
78
+ Show list of prefixes which are automatically added to SPARQL.
79
+
80
+ owlim prefix
81
+
78
82
  SPARQL query against a repository.
79
83
 
80
84
  owlim query repository "SPARQL" [format]
@@ -106,6 +110,8 @@ Result will be printed in a tabular text format by default.
106
110
  owlim clear hoge
107
111
  owlim drop hoge
108
112
 
113
+ owlim prefix
114
+
109
115
  owlim query hoge 'select * where { ?s ?p ?o . } limit 1000'
110
116
  owlim query hoge 'select * where { ?s ?p ?o . } limit 1000' json
111
117
  owlim query hoge 'select * where { ?s ?p ?o . } limit 1000' xml
@@ -128,7 +134,7 @@ Create a server object. Argument is a URI of the OWLIM endpoint.
128
134
 
129
135
  Show the endpoint URI.
130
136
 
131
- puts owlim.sesame_url
137
+ puts owlim.host
132
138
 
133
139
  Show all repositories.
134
140
 
@@ -182,6 +188,23 @@ finds all relevant triples sharing the same subject.
182
188
 
183
189
  owlim.find(repository, keyword) {|x| print x}
184
190
 
191
+ Show formatted SPARQL prefixes.
192
+
193
+ puts owlim.prefix
194
+
195
+ Access current SPARQL prefixes.
196
+
197
+ owlim.prefix_hash.each {|pfx, uri| puts "PREFIX #{pfx}: <#{uri}>"}
198
+
199
+ Add a SPARQL prefix.
200
+
201
+ owlim.prefix_hash["vcard"] = "http://www.w3.org/2006/vcard/ns#"
202
+
203
+ Delete a SPARQL prefix.
204
+
205
+ owlim.prefix_hash.delete("skos")
206
+
207
+
185
208
  == Authors
186
209
 
187
210
  * Toshiaki Katayama (DBCLS; ktym@dbcls.jp)
data/bin/owlim CHANGED
@@ -57,6 +57,9 @@ Query commands:
57
57
  * "json" for "application/sparql-result+json"
58
58
  * "xml" for "application/sparql-result+xml".
59
59
 
60
+ # Show list of prefixes which are automatically added to SPARQL
61
+ > owlim prefix
62
+
60
63
  # SPARQL query against a repository
61
64
  > owlim query repository "SPARQL" [format]
62
65
 
@@ -95,6 +98,8 @@ Examples:
95
98
  > owlim clear hoge
96
99
  > owlim drop hoge
97
100
 
101
+ > owlim prefix
102
+
98
103
  > owlim query hoge 'select * where { ?s ?p ?o . } limit 1000'
99
104
  > owlim query hoge 'select * where { ?s ?p ?o . } limit 1000' json
100
105
  > owlim query hoge 'select * where { ?s ?p ?o . } limit 1000' xml
@@ -115,9 +120,11 @@ arguments = ARGV
115
120
 
116
121
  case command
117
122
  when "host"
118
- puts serv.sesame_url
123
+ puts serv.host
119
124
  when "list"
120
125
  puts serv.list
126
+ when "prefix"
127
+ puts serv.prefix
121
128
  when "size"
122
129
  if repository
123
130
  puts serv.size(repository)
data/gemspec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'owlim-ruby'
3
- s.version = "0.9.9"
3
+ s.version = "0.9.9.1"
4
4
  s.license = "Ruby's"
5
5
 
6
6
  s.authors = ["Toshiaki Katayama", "Tatsuya Nishizawa"]
data/lib/owlim.rb CHANGED
@@ -4,27 +4,28 @@ require "uuid"
4
4
  require "erb"
5
5
  require "net/http"
6
6
  require "cgi"
7
- #require "yaml"
8
7
  require "json"
9
8
  require "rexml/document"
10
9
 
11
10
  class OWLIM
12
11
 
12
+ attr :prefix_hash
13
+
13
14
  def initialize(url)
14
- sesame_url(url)
15
+ @endpoint = url
16
+ uri = URI.parse(url)
17
+
18
+ @host = uri.host
19
+ @port = uri.port
20
+ @path = uri.path
21
+
22
+ @prefix_hash = prefix_default
23
+
15
24
  Net::HTTP.version_1_2
16
25
  end
17
26
 
18
- def sesame_url(url = nil)
19
- if url
20
- @server = url
21
- @uri = URI.parse(url)
22
- @host = @uri.host
23
- @port = @uri.port
24
- @path = @uri.path
25
- else
26
- return @server
27
- end
27
+ def host
28
+ return @endpoint
28
29
  end
29
30
 
30
31
  def list
@@ -36,7 +37,6 @@ class OWLIM
36
37
  result = response.body
37
38
  end
38
39
 
39
- #hash = YAML.load(result)
40
40
  hash = JSON.parse(result)
41
41
 
42
42
  hash["results"]["bindings"].map {|b| b["id"]["value"]}
@@ -124,6 +124,8 @@ class OWLIM
124
124
  end
125
125
 
126
126
  def drop(repository)
127
+ clear(repository)
128
+
127
129
  rdftransaction = drop_repository(repository)
128
130
 
129
131
  Net::HTTP.start(@host, @port) do |http|
@@ -133,6 +135,13 @@ class OWLIM
133
135
  end
134
136
  end
135
137
 
138
+ def prefix
139
+ ary = @prefix_hash.map { |key, value|
140
+ "PREFIX #{key}: <#{value}>"
141
+ }
142
+ return ary.join("\n")
143
+ end
144
+
136
145
  def query(repository, sparql, opts={}, &block)
137
146
  result = ""
138
147
 
@@ -144,18 +153,21 @@ class OWLIM
144
153
  else # tabular text
145
154
  format = "application/sparql-results+json"
146
155
  end
156
+
157
+ sparql_str = CGI.escape(prefix + sparql)
147
158
 
148
159
  Net::HTTP.start(@host, @port) do |http|
149
- path = "#{@path}/repositories/#{repository}?query=#{CGI.escape(sparql)}"
160
+ path = "#{@path}/repositories/#{repository}?query=#{sparql_str}"
150
161
  http.get(path, {"Accept" => "#{format}"}) { |body|
151
- if block and opts[:format]
162
+ if block and opts[:format] # xml or json
152
163
  yield body
153
- else
164
+ else # tabular text
154
165
  result += body
155
166
  end
156
167
  }
157
168
  end
158
169
 
170
+ # generate tabular text (not reached if opts[:format] is defined)
159
171
  if table = format_json(result)
160
172
  if block
161
173
  yield table
@@ -172,6 +184,33 @@ class OWLIM
172
184
 
173
185
  private
174
186
 
187
+ def prefix_default
188
+ @prefix_hash = {
189
+ "rdf" => "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
190
+ "rdfs" => "http://www.w3.org/2000/01/rdf-schema#",
191
+ "owl" => "http://www.w3.org/2002/07/owl#",
192
+ "xsd" => "http://www.w3.org/2001/XMLSchema#",
193
+ "pext" => "http://proton.semanticweb.org/protonext#",
194
+ "psys" => "http://proton.semanticweb.org/protonsys#",
195
+ "xhtml" => "http://www.w3.org/1999/xhtml#",
196
+ "dc" => "http://purl.org/dc/elements/1.1/",
197
+ "dcterms" => "http://purl.org/dc/terms/",
198
+ "foaf" => "http://xmlns.com/foaf/0.1/",
199
+ "skos" => "http://www.w3.org/2004/02/skos/core#",
200
+ "void" => "http://rdfs.org/ns/void#",
201
+ "dbpedia" => "http://dbpedia.org/resource/",
202
+ "dbp" => "http://dbpedia.org/property/",
203
+ "dbo" => "http://dbpedia.org/ontology/",
204
+ "yago" => "http://dbpedia.org/class/yago/",
205
+ "fb" => "http://rdf.freebase.com/ns/",
206
+ "sioc" => "http://rdfs.org/sioc/ns#",
207
+ "geo" => "http://www.w3.org/2003/01/geo/wgs84_pos#",
208
+ "geonames" => "http://www.geonames.org/ontology#",
209
+ "bibo" => "http://purl.org/ontology/bibo/",
210
+ "prism" => "http://prismstandard.org/namespaces/basic/2.1/",
211
+ }
212
+ end
213
+
175
214
  def content_type(format)
176
215
  case format
177
216
  when "ttl", "turtle"
@@ -196,7 +235,6 @@ class OWLIM
196
235
 
197
236
  def format_json(json)
198
237
  begin
199
- #hash = YAML.load(json)
200
238
  hash = JSON.parse(json)
201
239
  head = hash["head"]["vars"]
202
240
  body = hash["results"]["bindings"]
metadata CHANGED
@@ -6,7 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 0
7
7
  - 9
8
8
  - 9
9
- version: 0.9.9
9
+ - 1
10
+ version: 0.9.9.1
10
11
  platform: ruby
11
12
  authors:
12
13
  - Toshiaki Katayama
@@ -15,14 +16,13 @@ autorequire: owlim
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2012-05-15 00:00:00 +09:00
19
+ date: 2012-06-01 00:00:00 +09:00
19
20
  default_executable: owlim
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
22
23
  name: uuid
23
24
  prerelease: false
24
25
  requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
@@ -35,7 +35,6 @@ dependencies:
35
35
  name: json
36
36
  prerelease: false
37
37
  requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
38
  requirements:
40
39
  - - ">="
41
40
  - !ruby/object:Gem::Version
@@ -69,7 +68,6 @@ rdoc_options: []
69
68
  require_paths:
70
69
  - lib
71
70
  required_ruby_version: !ruby/object:Gem::Requirement
72
- none: false
73
71
  requirements:
74
72
  - - ">="
75
73
  - !ruby/object:Gem::Version
@@ -77,7 +75,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
77
75
  - 0
78
76
  version: "0"
79
77
  required_rubygems_version: !ruby/object:Gem::Requirement
80
- none: false
81
78
  requirements:
82
79
  - - ">="
83
80
  - !ruby/object:Gem::Version
@@ -87,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
84
  requirements: []
88
85
 
89
86
  rubyforge_project: owlim-ruby
90
- rubygems_version: 1.3.7
87
+ rubygems_version: 1.3.6
91
88
  signing_key:
92
89
  specification_version: 3
93
90
  summary: OWLIM client library for Ruby