diff options
author | Andreas Maunz <andreas@maunz.de> | 2012-10-30 16:51:22 +0100 |
---|---|---|
committer | Andreas Maunz <andreas@maunz.de> | 2012-10-30 16:51:22 +0100 |
commit | 3c7161c8c7ff4193245eb4a7b428712def99b22e (patch) | |
tree | 90aab511a6d938889bca03274895ed090fdc7c5d /lib | |
parent | 6c680de98c58ab1628adbf851741f59433cb130e (diff) |
rdf tools turned to dynamic
Diffstat (limited to 'lib')
-rw-r--r-- | lib/dataset.rb | 6 | ||||
-rw-r--r-- | lib/utils/rdf/dataset.rb | 12 |
2 files changed, 9 insertions, 9 deletions
diff --git a/lib/dataset.rb b/lib/dataset.rb index 8d135a6..4351dc5 100644 --- a/lib/dataset.rb +++ b/lib/dataset.rb @@ -38,14 +38,14 @@ module OpenTox # AM: read ordered dataset from RDF if ordered @uri = s[0].uri.to_s if have_rdf # AM: must rewrite URI - @compounds = OpenTox::Dataset.find_compounds_rdf(@rdf) - @features = OpenTox::Dataset.find_features_rdf(@rdf) + @compounds = find_compounds_rdf + @features = find_features_rdf numeric_features = @features.collect{|f| f.get f[RDF.type].include?(RDF::OT.NumericFeature) or f[RDF.type].include?(RDF::OT.Substructure) } if have_rdf - table = OpenTox::Dataset.find_data_entries_rdf(@rdf) + table = find_data_entries_rdf else values = OpenTox::Dataset.find_data_entries_sparql(@uri) table = values + Array.new(@compounds.size*@features.size-values.size, "") diff --git a/lib/utils/rdf/dataset.rb b/lib/utils/rdf/dataset.rb index ab720d7..e101b67 100644 --- a/lib/utils/rdf/dataset.rb +++ b/lib/utils/rdf/dataset.rb @@ -11,29 +11,29 @@ module OpenTox # Load features via RDF (slow) # @param [String] uri Dataset URI # @return [Array] features Features in order - def self.find_features_rdf(rdf) + def find_features_rdf query = RDF::Query.new do pattern [:uri, RDF.type, RDF::OT.Feature] pattern [:uri, RDF::OLO.index, :idx] end - query.execute(rdf).sort_by{|s| s.idx}.collect{|s| OpenTox::Feature.new(s.uri.to_s)} + query.execute(@rdf).sort_by{|s| s.idx}.collect{|s| OpenTox::Feature.new(s.uri.to_s)} end # Load compounds via RDF (slow) # @param [String] uri Dataset URI # @return [Array] compounds Compounds in order - def self.find_compounds_rdf(rdf) + def find_compounds_rdf query = RDF::Query.new do pattern [:uri, RDF.type, RDF::OT.Compound] pattern [:uri, RDF::OLO.index, :idx] end - query.execute(rdf).sort_by{|s| s.idx}.collect{|s| OpenTox::Compound.new(s.uri.to_s)} + query.execute(@rdf).sort_by{|s| s.idx}.collect{|s| OpenTox::Compound.new(s.uri.to_s)} end # Load data entries via RDF (slow) # @param [String] uri Dataset uri # @return [Array] entries Data entries, ordered primarily over cols and secondarily over rows - def self.find_data_entries_rdf(rdf) + def find_data_entries_rdf query = RDF::Query.new do pattern [:data_entry, RDF::OLO.index, :cidx] # compound index: now a free variable pattern [:data_entry, RDF::OT.values, :vals] @@ -41,7 +41,7 @@ module OpenTox pattern [:f, RDF::OLO.index, :fidx] pattern [:vals, RDF::OT.value, :val] end - query.execute(rdf).order_by(:fidx, :cidx).collect { |s| s.val.to_s } + query.execute(@rdf).order_by(:fidx, :cidx).collect { |s| s.val.to_s } end # Query a dataset URI for ordered status |