Class: Rena::Graph
- Inherits:
-
Object
- Object
- Rena::Graph
- Defined in:
- lib/rena/graph.rb
Instance Attribute Summary collapse
-
#nsbinding ⇒ Object
Returns the value of attribute nsbinding.
-
#triples ⇒ Object
Returns the value of attribute triples.
Instance Method Summary collapse
- #<<(triple) ⇒ Object
- #[](item) ⇒ Object
-
#add_triple(s, p, o) ⇒ Array
Adds a triple to a graph directly from the intended subject, predicate, and object.
- #bind(namespace) ⇒ Object
- #each ⇒ Object
- #each_with_subject(subject) ⇒ Object
- #get_bnode_by_identifier(bnodeid) ⇒ Object
- #get_by_type(object) ⇒ Object
- #get_resource(subject) ⇒ Object
- #has_bnode_identifier?(bnodeid) ⇒ Boolean
-
#initialize ⇒ Graph
constructor
A new instance of Graph.
- #join(graph) ⇒ Object
-
#namespace(uri, short) ⇒ Namespace
Creates a new namespace given a URI and the short name and binds it to the graph.
- #size ⇒ Object
-
#to_ntriples ⇒ String
Exports the graph to RDF in N-Triples form.
Constructor Details
#initialize ⇒ Graph
Returns a new instance of Graph.
11 12 13 14 |
# File 'lib/rena/graph.rb', line 11 def initialize @triples = [] @nsbinding = {} end |
Instance Attribute Details
#nsbinding ⇒ Object
Returns the value of attribute nsbinding.
9 10 11 |
# File 'lib/rena/graph.rb', line 9 def nsbinding @nsbinding end |
#triples ⇒ Object
Returns the value of attribute triples.
9 10 11 |
# File 'lib/rena/graph.rb', line 9 def triples @triples end |
Instance Method Details
#<<(triple) ⇒ Object
78 79 80 81 |
# File 'lib/rena/graph.rb', line 78 def << (triple) # self.add_triple(s, p, o) @triples += [ triple ] end |
#[](item) ⇒ Object
24 25 26 |
# File 'lib/rena/graph.rb', line 24 def [] (item) @triples[item] end |
#add_triple(s, p, o) ⇒ Array
60 61 62 |
# File 'lib/rena/graph.rb', line 60 def add_triple(s, p, o) @triples += [ Triple.new(s, p, o) ] end |
#bind(namespace) ⇒ Object
120 121 122 123 124 125 126 |
# File 'lib/rena/graph.rb', line 120 def bind(namespace) if namespace.class == Namespace @nsbinding["#{namespace.short}"] = namespace else raise end end |
#each ⇒ Object
20 21 22 |
# File 'lib/rena/graph.rb', line 20 def each @triples.each { |value| yield value } end |
#each_with_subject(subject) ⇒ Object
28 29 30 31 32 |
# File 'lib/rena/graph.rb', line 28 def each_with_subject(subject) @triples.each do |value| yield value if value.subject == subject end end |
#get_bnode_by_identifier(bnodeid) ⇒ Object
144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/rena/graph.rb', line 144 def get_bnode_by_identifier(bnodeid) temp_bnode = BNode.new(bnodeid) each do |triple| if triple.subject == temp_bnode return triple.subject end if triple.object == temp_bnode return triple.object end end return false end |
#get_by_type(object) ⇒ Object
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
# File 'lib/rena/graph.rb', line 157 def get_by_type(object) out = [] each do |t| next unless t.is_type? next unless case object when String object == t.object.to_s when Regexp object.match(t.object.to_s) else object == t.object end out << t.subject end return out end |
#get_resource(subject) ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/rena/graph.rb', line 34 def get_resource(subject) temp = [] each_with_subject(subject) do |value| temp << subject end if temp.any? Resource.new(temp) end end |
#has_bnode_identifier?(bnodeid) ⇒ Boolean
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/rena/graph.rb', line 128 def has_bnode_identifier?(bnodeid) temp_bnode = BNode.new(bnodeid) returnval = false @triples.each { |triple| if triple.subject.eql?(temp_bnode) returnval = true break end if triple.object.eql?(temp_bnode) returnval = true break end } return returnval end |
#join(graph) ⇒ Object
174 175 176 177 178 179 180 181 182 |
# File 'lib/rena/graph.rb', line 174 def join(graph) if graph.class == Graph graph.each { |t| self << t } else raise "join requires you provide a graph object" end end |
#namespace(uri, short) ⇒ Namespace
116 117 118 |
# File 'lib/rena/graph.rb', line 116 def namespace(uri, short) self.bind Namespace.new(uri, short) end |
#size ⇒ Object
16 17 18 |
# File 'lib/rena/graph.rb', line 16 def size @triples.size end |
#to_ntriples ⇒ String
94 95 96 97 98 |
# File 'lib/rena/graph.rb', line 94 def to_ntriples @triples.collect do |t| t.to_ntriples end * "\n" end |