summaryrefslogtreecommitdiff
path: root/lib/utils/rdf/dataset.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/utils/rdf/dataset.rb')
-rw-r--r--lib/utils/rdf/dataset.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/utils/rdf/dataset.rb b/lib/utils/rdf/dataset.rb
index b2deeb8..ab720d7 100644
--- a/lib/utils/rdf/dataset.rb
+++ b/lib/utils/rdf/dataset.rb
@@ -32,7 +32,7 @@ module OpenTox
# Load data entries via RDF (slow)
# @param [String] uri Dataset uri
- # @return [Array] entries Data entries, ordered primarily over rows and secondarily over cols
+ # @return [Array] entries Data entries, ordered primarily over cols and secondarily over rows
def self.find_data_entries_rdf(rdf)
query = RDF::Query.new do
pattern [:data_entry, RDF::OLO.index, :cidx] # compound index: now a free variable
@@ -44,5 +44,18 @@ module OpenTox
query.execute(rdf).order_by(:fidx, :cidx).collect { |s| s.val.to_s }
end
+ # Query a dataset URI for ordered status
+ # by loading its metadata (OpenTox compliant)
+ # @param [String] uri Dataset uri
+ # @return [TrueClass,FalseClass] status Whether the dataset is ordered
+ def self.ordered?(uri)
+ ds = OpenTox::Dataset.new # dummy
+ ds.parse_rdfxml(RestClient.get([uri,"metadata"].join("/"),{:accept => "application/rdf+xml"}))
+ query = RDF::Query.new do
+ pattern [:dataset, RDF.type, RDF::OT.OrderedDataset]
+ end
+ query.execute(ds.rdf).size>0
+ end
+
end
end