diff options
author | Christoph Helma <helma@in-silico.ch> | 2010-09-08 14:03:32 +0200 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2010-09-08 14:03:32 +0200 |
commit | da9582a7d176358cf4240972a423a011cbaac132 (patch) | |
tree | a5c4a3c2e7d80aa78770ff39423dae902f560c47 /lib | |
parent | 3c3b13f024a7d5e5b94c772be9ca4d9b99988743 (diff) |
string concatination with << instead of +=, speeds things up for order of magnitudes
Diffstat (limited to 'lib')
-rw-r--r-- | lib/owl.rb | 25 |
1 files changed, 15 insertions, 10 deletions
@@ -1,3 +1,4 @@ +require 'open3' # RDF namespaces RDF = Redland::Namespace.new 'http://www.w3.org/1999/02/22-rdf-syntax-ns#' OWL = Redland::Namespace.new 'http://www.w3.org/2002/07/owl#' @@ -257,7 +258,11 @@ module OpenTox def rdf #@model.to_string - @triples + #stdin, stdout, stderr = Open3.popen3('rapper -I test.org -i ntriples -o rdfxml -') + #stdin.puts @triples + #stdout + File.open("/tmp/d","w+") {|f| f.puts @triples} + `rapper -i ntriples -o rdfxml /tmp/d` end # returns the first object for subject:root_node and property @@ -338,8 +343,8 @@ module OpenTox # ot:Model,rdf:type,owl:Class def set_type(ot_class, current_node=@root_node) #@triples += "#{ot_class.to_s} #{RDF_TYPE.to_s} #{current_node.to_s}" - @triples += "#{current_node} #{RDF_TYPE} #{node(ot_class).to_s}.\n".gsub(/\[/,'<').gsub(/\]/,'>') - @triples += "#{node(ot_class).to_s} #{RDF_TYPE} #{OWL_TYPE_CLASS}.\n".gsub(/\[/,'<').gsub(/\]/,'>') + @triples << "#{current_node} #{RDF_TYPE} #{node(ot_class).to_s}.\n".gsub(/\[/,'<').gsub(/\]/,'>') + @triples << "#{node(ot_class).to_s} #{RDF_TYPE} #{OWL_TYPE_CLASS}.\n".gsub(/\[/,'<').gsub(/\]/,'>') #@model.add current_node, RDF_TYPE, node(ot_class) #@model.add node(ot_class), RDF_TYPE, OWL_TYPE_CLASS end @@ -350,8 +355,8 @@ module OpenTox def set_literal(literal_name, literal_value, literal_datatype, current_node=@root_node) #@triples += "#{current_node} #{node(literal_name)} #{Redland::Literal.create(literal_value, literal_datatype)}.\n".gsub(/\[/,'<').gsub(/\]/,'>') #TODO: add datatype - @triples += "#{current_node} #{node(literal_name)} \"#{literal_value}\".\n".gsub(/\[/,'<').gsub(/\]/,'>') - @triples += "#{node(literal_name)} #{RDF_TYPE} #{OWL_TYPE_LITERAL}.\n".gsub(/\[/,'<').gsub(/\]/,'>') + @triples << "#{current_node} #{node(literal_name)} \"#{literal_value}\".\n".gsub(/\[/,'<').gsub(/\]/,'>') + @triples << "#{node(literal_name)} #{RDF_TYPE} #{OWL_TYPE_LITERAL}.\n".gsub(/\[/,'<').gsub(/\]/,'>') #@model.add current_node, node(literal_name), Redland::Literal.create(literal_value, literal_datatype) #@model.add node(literal_name), RDF_TYPE, OWL_TYPE_LITERAL end @@ -362,11 +367,11 @@ module OpenTox # algorihtm_xy,rdf:type,ot:Algorithm # ot:Algorithm,rdf:type,owl:Class def set_object_property(property, object, object_class, current_node=@root_node) -# object_node = Redland::Resource.new(object) -# @triples += "#{current_node} #{node(property)} #{object_node}.\n".gsub(/\[/,'<').gsub(/\]/,'>') -# @triples += "#{node(property)} #{RDF_TYPE} #{OWL_TYPE_OBJECT_PROPERTY}.\n".gsub(/\[/,'<').gsub(/\]/,'>') -# @triples += "#{object_node} #{RDF_TYPE} #{node(object_class)}.\n".gsub(/\[/,'<').gsub(/\]/,'>') -# @triples += "#{node(object_class)} #{RDF_TYPE} #{OWL_TYPE_CLASS}.\n".gsub(/\[/,'<').gsub(/\]/,'>') + object_node = Redland::Resource.new(object) + @triples << "#{current_node} #{node(property)} #{object_node}.\n".gsub(/\[/,'<').gsub(/\]/,'>') + @triples << "#{node(property)} #{RDF_TYPE} #{OWL_TYPE_OBJECT_PROPERTY}.\n".gsub(/\[/,'<').gsub(/\]/,'>') + @triples << "#{object_node} #{RDF_TYPE} #{node(object_class)}.\n".gsub(/\[/,'<').gsub(/\]/,'>') + @triples << "#{node(object_class)} #{RDF_TYPE} #{OWL_TYPE_CLASS}.\n".gsub(/\[/,'<').gsub(/\]/,'>') #@model.add current_node, node(property), object_node #@model.add node(property), RDF_TYPE, OWL_TYPE_OBJECT_PROPERTY #@model.add object_node, RDF_TYPE, node(object_class) |