tripod 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ActiveModel-style Ruby ORM for RDF Linked Data. Works with SPARQL 1.1 HTTP endpoints.
4
4
 
5
+ * [ActiveModel](https://github.com/rails/rails/tree/master/activemodel)-compliant interface.
6
+ * Inspired by [Durran Jordan's](https://github.com/durran) [Mongoid](http://mongoid.org/en/mongoid/) ORM for [MongoDB](http://www.mongodb.org/), and [Ben Lavender's](https://github.com/bhuga) RDF ORM, [Spira](https://github.com/ruby-rdf/spira).
7
+ * Uses [Ruby-RDF](https://github.com/ruby-rdf/rdf) to manage the data internally.
8
+
9
+ __Warning: Work still in progress / experimental. Not production ready!__
10
+
5
11
  ## Quick start, for using in a rails app.
6
12
 
7
13
  1. Install the gem:
@@ -62,8 +68,4 @@ ActiveModel-style Ruby ORM for RDF Linked Data. Works with SPARQL 1.1 HTTP endpo
62
68
 
63
69
  [Full Documentation](http://rubydoc.info/github/Swirrl/tripod/master/frames)
64
70
 
65
- __Warning: Work still in progress / experimental. Not production ready!__
66
-
67
- Inspired by [Durran Jordan's](https://github.com/durran) [Mongoid](http://mongoid.org/en/mongoid/) ORM for [MongoDB](http://www.mongodb.org/), and [Ben Lavender's](https://github.com/bhuga) RDF ORM, [Spira](https://github.com/ruby-rdf/spira).
68
-
69
71
  Copyright (c) 2012 [Swirrl IT Limited](http://swirrl.com). Released under MIT License
@@ -41,6 +41,8 @@ module Tripod::Attributes
41
41
  # @param [ String, RDF::URI ] predicate_uri The name of the attribute to update.
42
42
  # @param [ Object, Array ] value The values to set for the attribute. Can be an array, or single item. They should compatible with RDF::Terms
43
43
  def write_attribute(predicate_uri, objects)
44
+ raise Tripod::Errors::UriNotSet.new() unless @uri
45
+
44
46
  # remove existing
45
47
  remove_attribute(predicate_uri)
46
48
 
@@ -64,6 +66,8 @@ module Tripod::Attributes
64
66
  # @param [ String, RDF::URI ] predicate_uri The uri of the attribute to update.
65
67
  # @param [ Object ] value The values to append for the attribute. Should compatible with RDF::Terms
66
68
  def append_to_attribute(predicate_uri, object )
69
+ raise Tripod::Errors::UriNotSet.new() unless @uri
70
+
67
71
  @repository << RDF::Statement.new(@uri, RDF::URI.new(predicate_uri.to_s), object)
68
72
  end
69
73
 
@@ -66,29 +66,32 @@ module Tripod::Finders
66
66
  data[ r[uri_variable]["value"] ] = r[graph_variable]["value"]
67
67
  end
68
68
 
69
- uris_sparql_str = data.keys.map{ |u| "<#{u}>" }.join(" ")
70
-
71
- # 2. Do a big describe statement, and read the results into an in-memory repo
72
- triples = Tripod::SparqlClient::Query::describe("DESCRIBE #{uris_sparql_str}")
73
- triples_repository = RDF::Repository.new()
74
- RDF::Reader.for(:ntriples).new(triples) do |reader|
75
- reader.each_statement do |statement|
76
- triples_repository << statement
69
+ resources = []
70
+
71
+ if data.keys.length > 0
72
+
73
+ uris_sparql_str = data.keys.map{ |u| "<#{u}>" }.join(" ")
74
+
75
+ # 2. Do a big describe statement, and read the results into an in-memory repo
76
+ triples = Tripod::SparqlClient::Query::describe("DESCRIBE #{uris_sparql_str}")
77
+ triples_repository = RDF::Repository.new()
78
+ RDF::Reader.for(:ntriples).new(triples) do |reader|
79
+ reader.each_statement do |statement|
80
+ triples_repository << statement
81
+ end
77
82
  end
78
- end
79
83
 
80
- resources = []
81
- # 3. for each of our uris, make a resource, with a graph of triples for that uri from the in-mem repo
82
- data.each_pair do |u,g|
83
- r = self.new(u,g)
84
- data_graph = RDF::Graph.new
85
- triples_repository.query( [RDF::URI.new(u), :predicate, :object] ) do |statement|
86
- data_graph << statement
84
+ # 3. for each of our uris, make a resource, with a graph of triples for that uri from the in-mem repo
85
+ data.each_pair do |u,g|
86
+ r = self.new(u,g)
87
+ data_graph = RDF::Graph.new
88
+ triples_repository.query( [RDF::URI.new(u), :predicate, :object] ) do |statement|
89
+ data_graph << statement
90
+ end
91
+ r.hydrate!(data_graph)
92
+ resources << r
87
93
  end
88
- r.hydrate!(data_graph)
89
- resources << r
90
94
  end
91
-
92
95
  resources
93
96
 
94
97
  end
@@ -1,3 +1,3 @@
1
1
  module Tripod
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -11,7 +11,7 @@ RSpec.configure do |config|
11
11
  config.mock_with :rspec
12
12
 
13
13
  config.before(:each) do
14
- # delete from all named graphs.
14
+ # delete from all graphs.
15
15
  Tripod::SparqlClient::Update.update('
16
16
  # delete from default graph:
17
17
  DELETE {?s ?p ?o} WHERE {?s ?p ?o};
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tripod
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-28 00:00:00.000000000 Z
12
+ date: 2012-08-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
16
- requirement: &70121805448680 !ruby/object:Gem::Requirement
16
+ requirement: &70239804187140 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70121805448680
24
+ version_requirements: *70239804187140
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activemodel
27
- requirement: &70121805448140 !ruby/object:Gem::Requirement
27
+ requirement: &70239804186600 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '3.1'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70121805448140
35
+ version_requirements: *70239804186600
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: equivalent-xml
38
- requirement: &70121805447720 !ruby/object:Gem::Requirement
38
+ requirement: &70239804186180 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70121805447720
46
+ version_requirements: *70239804186180
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rdf
49
- requirement: &70121805447180 !ruby/object:Gem::Requirement
49
+ requirement: &70239804185640 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0.3'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70121805447180
57
+ version_requirements: *70239804185640
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rdf-rdfxml
60
- requirement: &70121805446760 !ruby/object:Gem::Requirement
60
+ requirement: &70239804185220 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70121805446760
68
+ version_requirements: *70239804185220
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rdf-n3
71
- requirement: &70121805446300 !ruby/object:Gem::Requirement
71
+ requirement: &70239804184760 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70121805446300
79
+ version_requirements: *70239804184760
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rdf-json
82
- requirement: &70121805445880 !ruby/object:Gem::Requirement
82
+ requirement: &70239804184340 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70121805445880
90
+ version_requirements: *70239804184340
91
91
  description: RDF ruby ORM
92
92
  email:
93
93
  - ric@swirrl.com