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.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/utils/rdf/dataset.rb b/lib/utils/rdf/dataset.rb
index e101b67..2cb32a9 100644
--- a/lib/utils/rdf/dataset.rb
+++ b/lib/utils/rdf/dataset.rb
@@ -47,7 +47,7 @@ module OpenTox
# 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
+ # @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"}))
@@ -57,5 +57,17 @@ module OpenTox
query.execute(ds.rdf).size>0
end
+ # Load dataset URI from given RDF (slow)
+ # @param [String] rdf RDF
+ # @return [String] uri URI
+ def self.uri_from_rdf(rdf)
+ ds = OpenTox::Dataset.new # dummy
+ ds.parse_rdfxml(rdf)
+ query = RDF::Query.new do
+ pattern [:dataset, RDF.type, RDF::OT.Dataset]
+ end
+ query.execute(ds.rdf).collect { |s| s.dataset.to_s }[0]
+ end
+
end
end