summaryrefslogtreecommitdiff
path: root/lib/dataset.rb
diff options
context:
space:
mode:
authorAndreas Maunz <andreas@maunz.de>2012-10-30 16:02:28 +0100
committerAndreas Maunz <andreas@maunz.de>2012-10-30 16:02:28 +0100
commit931e7f00c8a5df5d5c8ea4ae6d8fdd841ec63c90 (patch)
tree10ecad664abb8a481c96e4ec72bfd03e072f766f /lib/dataset.rb
parent19582925f0496e4cb07e71ead8aea1261abf0bc8 (diff)
Loading entries by sparql (mv'd 4store.rb), ordered status via rdf
Diffstat (limited to 'lib/dataset.rb')
-rw-r--r--lib/dataset.rb19
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]