summaryrefslogtreecommitdiff
path: root/lib/opentox.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/opentox.rb')
-rw-r--r--lib/opentox.rb30
1 files changed, 29 insertions, 1 deletions
diff --git a/lib/opentox.rb b/lib/opentox.rb
index d3b73fb..2c4578f 100644
--- a/lib/opentox.rb
+++ b/lib/opentox.rb
@@ -50,6 +50,30 @@ module OpenTox
append predicate.to_s, values
end
+ def parameters
+ params = {}
+ query = RDF::Query.new({
+ :parameter => {
+ RDF.type => RDF::OT.Parameter,
+ :property => :value,
+ }
+ })
+ query.execute(@rdf).each do |solution|
+ params[solution.parameter] = {} unless params[solution.parameter]
+ params[solution.parameter][solution.property.to_s] = solution.value.to_s
+ end
+ params.values
+ end
+
+ def parameters=(parameters)
+ parameters.each do |param|
+ p_node = RDF::Node.new
+ @rdf << [RDF::URI.new(@uri), RDF::OT.parameters, p_node]
+ @rdf << [p_node, RDF.type, RDF::OT.Parameter]
+ param.each{ |p,o| @rdf << [p_node, p, o] }
+ end
+ end
+
# Append object metadata
# @param [String] Predicate URI
# @param [Array, String] Predicate value(s)
@@ -131,7 +155,11 @@ module OpenTox
end
end
- {:title => RDF::DC.title, :dexcription => RDF::DC.description}.each do |method,predicate|
+ {
+ :title => RDF::DC.title,
+ :dexcription => RDF::DC.description,
+ :type => RDF.type
+ }.each do |method,predicate|
send :define_method, method do
self.[](predicate)
end