module RoadForest::AffordanceClient

Constants

Af

Public Instance Methods

affordance_node?(node, graph) click to toggle source
# File lib/roadforest/type-handlers/rdfa-writer/environment-decorator.rb, line 59
def affordance_node?(node, graph)
  query = ::RDF::Query.new do
    pattern [node, ::RDF.type, :type]
  end
  !!( query.execute(graph).find do |solution|
    all_affordances.include?(solution[:type])
  end)
end
affordance_present(aff) click to toggle source
# File lib/roadforest/type-handlers/rdfa-writer/environment-decorator.rb, line 25
def affordance_present(aff)
  ::RDF::Query.new do
    pattern [:any, ::RDF.type, aff ]
  end
end
affordance_type_in_graph?(node, type, graph) click to toggle source
# File lib/roadforest/type-handlers/rdfa-writer/environment-decorator.rb, line 68
def affordance_type_in_graph?(node, type, graph)
  #puts "\n#{__FILE__}:#{__LINE__} => \n#{graph.dump(:nquads)}"
  query_matches(has_affordance(node, type).tap{|value|
    #puts "#{__FILE__}:#{__LINE__} => #{[value.patterns,
    #value.execute(graph)].inspect}"
  }, graph).tap{|value|
    #puts "#{__FILE__}:#{__LINE__} => #{value.inspect}"
  }
end
affordances_in_graph?(graph) click to toggle source
# File lib/roadforest/type-handlers/rdfa-writer/environment-decorator.rb, line 52
def affordances_in_graph?(graph)
  all_affordances.each do |aff|
    return true if query_matches(affordance_present(aff), graph)
  end
  return false
end
all_affordances() click to toggle source
# File lib/roadforest/type-handlers/rdfa-writer/environment-decorator.rb, line 7
def all_affordances
  @all_affordances ||=
    [
      Af.Affordance,
      Af.Null,
      Af.Safe,
      Af.Idempotent,
      Af.Unsafe,
      Af.Navigate,
      Af.Embed,
      Af.Metadata,
      Af.Update,
      Af.Remove,
      Af.Create,
      Af.Mutate,
  ]
end
has_affordance(node, type) click to toggle source
# File lib/roadforest/type-handlers/rdfa-writer/environment-decorator.rb, line 31
def has_affordance(node, type)
  if type.is_a? Symbol
    type = Af[type]
  end
  ::RDF::Query.new do
    pattern([:node, ::RDF.type, type, nil])
    pattern([:node, Af.target, node, nil])
  end
end
parameterized_navigation_affordance_in_graph?(node, graph) click to toggle source
# File lib/roadforest/type-handlers/rdfa-writer/environment-decorator.rb, line 78
def parameterized_navigation_affordance_in_graph?(node, graph)
  return false #to be implemented
  query_matches(has_affordance(node, :Navigate) + payload_has_param(node), graph)
end
payload_has_param(node) click to toggle source
# File lib/roadforest/type-handlers/rdfa-writer/environment-decorator.rb, line 41
def payload_has_param(node)
  ::RDF::Query.new do
    pattern([:node, Af.payload, :context, nil])
    pattern([ :param, ::RDF.type, Af.Parameter, :context ])
  end
end
query_matches(query, graph) click to toggle source
# File lib/roadforest/type-handlers/rdfa-writer/environment-decorator.rb, line 48
def query_matches(query, graph)
  return (not graph.first(query).nil?)
end