diff options
author | Andreas Maunz <andreas@maunz.de> | 2012-10-30 16:02:28 +0100 |
---|---|---|
committer | Andreas Maunz <andreas@maunz.de> | 2012-10-30 16:02:28 +0100 |
commit | 931e7f00c8a5df5d5c8ea4ae6d8fdd841ec63c90 (patch) | |
tree | 10ecad664abb8a481c96e4ec72bfd03e072f766f /lib/dataset.rb | |
parent | 19582925f0496e4cb07e71ead8aea1261abf0bc8 (diff) |
Loading entries by sparql (mv'd 4store.rb), ordered status via rdf
Diffstat (limited to 'lib/dataset.rb')
-rw-r--r-- | lib/dataset.rb | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/lib/dataset.rb b/lib/dataset.rb index e700ad0..8d135a6 100644 --- a/lib/dataset.rb +++ b/lib/dataset.rb @@ -28,25 +28,28 @@ module OpenTox end def get(force_no_backend_query=false) - super() unless (force_no_backend_query and @rdf.size>0) + have_rdf = (force_no_backend_query and @rdf.size>0) + super() unless have_rdf + ordered = (have_rdf or OpenTox::Dataset.ordered?(@uri)) @features = [] @compounds = [] @data_entries = [] - query = RDF::Query.new do - pattern [:uri, RDF.type, RDF::OT.OrderedDataset] - end - s=query.execute(@rdf) # AM: read ordered dataset from RDF - if s.first - @uri = s[0].uri.to_s if force_no_backend_query # AM: must rewrite URI + 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) numeric_features = @features.collect{|f| f.get f[RDF.type].include?(RDF::OT.NumericFeature) or f[RDF.type].include?(RDF::OT.Substructure) } - table = OpenTox::Dataset.find_data_entries_rdf(@rdf) + if have_rdf + table = OpenTox::Dataset.find_data_entries_rdf(@rdf) + else + values = OpenTox::Dataset.find_data_entries_sparql(@uri) + table = values + Array.new(@compounds.size*@features.size-values.size, "") + end clim=(@compounds.size-1) cidx = fidx = 0 num=numeric_features[fidx] |