Class: CamTool::ProvJSONtoRGL
Instance Attribute Summary collapse
Instance Method Summary
collapse
#parse_json, #prefix, #read_json_file, #read_log_file, #relation
Constructor Details
Returns a new instance of ProvJSONtoRGL.
12
13
14
15
16
|
# File 'lib/camtool/provjson_to_rgl.rb', line 12
def initialize
@dg = RGL::DirectedAdjacencyGraph.new @map = Hash.new
@edges = Hash.new
end
|
Instance Attribute Details
#dg ⇒ Object
Returns the value of attribute dg.
8
9
10
|
# File 'lib/camtool/provjson_to_rgl.rb', line 8
def dg
@dg
end
|
#edges ⇒ Object
Returns the value of attribute edges.
10
11
12
|
# File 'lib/camtool/provjson_to_rgl.rb', line 10
def edges
@edges
end
|
#map ⇒ Object
Returns the value of attribute map.
9
10
11
|
# File 'lib/camtool/provjson_to_rgl.rb', line 9
def map
@map
end
|
Instance Method Details
#activity(k, v) ⇒ Object
22
23
24
|
# File 'lib/camtool/provjson_to_rgl.rb', line 22
def activity k, v
@map[k] = v
end
|
#agent(k, v) ⇒ Object
26
27
28
|
# File 'lib/camtool/provjson_to_rgl.rb', line 26
def agent k, v
@map[k] = v
end
|
#entity(k, v) ⇒ Object
18
19
20
|
# File 'lib/camtool/provjson_to_rgl.rb', line 18
def entity k, v
@map[k] = v
end
|
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# 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 ⇒ Object
84
85
86
|
# File 'lib/camtool/provjson_to_rgl.rb', line 84
def jpg
@dg.write_to_graphic_file('jpg')
end
|
#list(types) ⇒ Object
92
93
94
95
96
97
98
99
100
101
|
# 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|
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 ⇒ Object
88
89
90
|
# File 'lib/camtool/provjson_to_rgl.rb', line 88
def png
@dg.write_to_graphic_file('png')
end
|
#svg ⇒ Object
80
81
82
|
# File 'lib/camtool/provjson_to_rgl.rb', line 80
def svg
@dg.write_to_graphic_file('svg')
end
|
#used(k, v) ⇒ Object
30
31
32
33
|
# 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 ⇒ Object
75
76
77
78
|
# 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) ⇒ Object
50
51
52
53
54
|
# 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) ⇒ Object
40
41
42
43
|
# 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) ⇒ Object
35
36
37
38
|
# 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
|
45
46
47
48
|
# 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
|