summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/opentox.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/opentox.rb b/lib/opentox.rb
index 211fc7b..305b5d9 100644
--- a/lib/opentox.rb
+++ b/lib/opentox.rb
@@ -133,7 +133,9 @@ module OpenTox
@metadata[RDF.type] ||= eval("RDF::OT."+self.class.to_s.split('::').last)
@metadata[RDF::DC.date] ||= DateTime.now
@metadata.each do |predicate,values|
- [values].flatten.each { |value| @rdf << [RDF::URI.new(@uri), predicate, value] }
+ [values].flatten.each do |value|
+ predicate =~ /#{RDF::DC.date}|#{RDF::DC.title}|#{RDF::DC.description}/ ? @rdf.update([RDF::URI.new(@uri), predicate, value]) : @rdf << [RDF::URI.new(@uri), predicate, value]
+ end
end
@parameters.each do |parameter|
p_node = RDF::Node.new
@@ -158,7 +160,7 @@ module OpenTox
send :define_method, "to_#{format}".to_sym do
create_rdf
RDF::Writer.for(format).buffer(:encoding => Encoding::ASCII) do |writer|
- @rdf.each{|statement| writer << statement}
+ writer << @rdf
end
end
end
@@ -167,8 +169,8 @@ module OpenTox
prefixes = {:rdf => "http://www.w3.org/1999/02/22-rdf-syntax-ns#"}
['OT', 'DC', 'XSD', 'OLO'].each{|p| prefixes[p.downcase.to_sym] = eval("RDF::#{p}.to_s") }
create_rdf
- RDF::Turtle::Writer.for(:turtle).buffer(:prefixes => prefixes) do |writer|
- @rdf.each{|statement| writer << statement}
+ RDF::Writer.for(:turtle).buffer(:prefixes => prefixes) do |writer|
+ writer << @rdf
end
end