class CamTool::ProvJSONtoRGL
Attributes
dg[R]
edges[R]
map[R]
Public Class Methods
new()
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 12 def initialize @dg = RGL::DirectedAdjacencyGraph.new # initialise the graph structure @map = Hash.new @edges = Hash.new end
Public Instance Methods
activity(k, v)
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 22 def activity k, v @map[k] = v end
agent(k, v)
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 26 def agent k, v @map[k] = v end
entity(k, v)
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 18 def entity k, v @map[k] = v end
information()
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 56 def information str = "Graph:\n" if @dg.directed? str += "directed\n" else str += "not directed\n" end if @dg.acyclic? str += "acyclic\n" else str += "not acyclic\n" end str += @dg.num_edges.to_s() +" edges.\n" str += @dg.num_vertices.to_s() +" vertices.\n" str += (@dg.num_edges.to_f/@dg.num_vertices).to_s() + " edges/vertices ratio.\n" end
jpg()
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 84 def jpg @dg.write_to_graphic_file('jpg') end
list(types)
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 92 def list types a = @dg.topsort_iterator.to_a a_type = types.split(',') a.each do |v| next unless !@map[v].nil? if a_type.include?(@map[v]['prov:type']) || types.nil? puts v + ' ' + @map[v]['prov:label'] unless @map[v]['prov:label'].nil? puts v + ' no label' unless !@map[v]['prov:label'].nil? end end end
png()
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 88 def png @dg.write_to_graphic_file('png') end
svg()
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 80 def svg @dg.write_to_graphic_file('svg') end
used(k, v)
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 30 def used k, v @dg.add_edge v['prov:activity'], v['prov:entity'] @edges[v['prov:activity']+v['prov:entity']] = v end
validate()
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 75 def validate abort 'Graph is not directed!' unless @dg.directed? abort 'Graph is not acyclic!' unless @dg.acyclic? end
wasAssociatedWith(k, v)
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 50 def wasAssociatedWith k, v @dg.add_edge v['prov:activity'], v['prov:agent'] @edges[v['prov:activity']+v['prov:agent']] = v @dg.add_edge v['prov:agent'], v['prov:plan'] unless !v.key? 'prov:plan' end
wasDerivedFrom(k, v)
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 40 def wasDerivedFrom k, v @dg.add_edge v['prov:generatedEntity'], v['prov:usedEntity'] @edges[v['prov:generatedEntity']+v['prov:usedEntity']] = v end
wasGeneratedBy(k, v)
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 35 def wasGeneratedBy k, v @dg.add_edge v['prov:entity'], v['prov:activity'] @edges[v['prov:entity']+v['prov:activity']] = v end
wasInformedBy(k, v)
click to toggle source
# File lib/camtool/provjson_to_rgl.rb, line 45 def wasInformedBy k, v @dg.add_edge v['prov:informed'], v['prov:informant'] @edges[v['prov:informed']+v['prov:informant']] = v end