[Yarv-devel] Newby question: NODE_DASGN error
Richard Cole
rcole at itee.uq.edu.au
Fri May 6 01:55:30 EDT 2005
Hi, I'm a bit confused by the following error:
/home/rcole/Source/griff/cass_browser/concept_lattice_formats_ds.rb:92:
NODE_DASGN error
As far as I can see line 92 is at the end of
concept_lattice_formats_ds.rb. What does this error mean?
Here's the line that I used to run the program:
$ ruby1.9 -rite \
-I ~/Source/griff/cass_browser/ \
~/Source/griff/cass_browser/calculate_stats_from_xml.rb \
"fig8-diagrams.xml" "fig8-stats.xml"
I've attached the source code for concept_lattice_formats_ds.rb at the
end if that is any help in diagnosis. I get the same error when I try to
run just that file.
regards,
Richard.
----
require 'concept_lattice'
require 'formal_context_formats'
require 'ds'
def index_array_to_bit_set(array, lex)
bset = make_default_set(lex)
array.each { |x| bset.bit_set.set(x, 1) }
return bset
end
def copy_rep_into_bit_set(ds_rep, bit_set)
ds_rep.each { |x|
bit_set.bit_set.set(x, 1)
}
end
def load_concept_lattice_from_ds(filename)
loader = DS::create_cache()
ds_lattice = loader[filename]
interp_context = load_formal_context_from_ds(ds_lattice.context, loader)
context = interp_context.context
ds_extents = loader[ds_lattice.extent]
ds_intents = loader[ds_lattice.intent]
ds_upset = loader[ds_lattice.upset]
ds_downset = loader[ds_lattice.downset]
ds_uppercovers = loader[ds_lattice.uppercovers]
ds_lowercovers = loader[ds_lattice.lowercovers]
lattice = ConceptLattice.new
# load the concepts
for i in 1..ds_extents.map.size do
extent = index_array_to_bit_set(ds_extents.map[i], context.objects.lex)
intent = index_array_to_bit_set(ds_intents.map[i],
context.attributes.lex)
concept = Concept.new(extent, intent)
lattice.concept_lex.index(concept)
end
# load the upper and lower covers, upsets and downsets
for i in 1..ds_extents.map.size do
lattice.index_lex.index(i)
copy_rep_into_bit_set(ds_upset.map[i], lattice.upset[i])
copy_rep_into_bit_set(ds_downset.map[i], lattice.downset[i])
copy_rep_into_bit_set(ds_uppercovers.map[i], lattice.upper_covers[i])
copy_rep_into_bit_set(ds_lowercovers.map[i], lattice.lower_covers[i])
end
lattice.compute_top_bottom
return [lattice, interp_context]
end
def write_lattice_rep_as_ds(rep_name, lattice, meth)
File.open(rep_name, "w") { |file|
for x in lattice do
ys = lattice.send(meth)[x]
ys_str = ys.to_a.sort.join(" ")
if ys.count == 0 then
file.puts "-"
else
raise "Program Error" if (ys_str.length == 0)
file.puts ys_str
end
end
}
end
def write_concept_lattice_as_ds(basename, context_name, lattice)
File.open(basename + ".lattice", 'w') { |file|
file.puts "context=" + context_name
file.puts "extent=" + basename + ".extent.rep"
file.puts "intent=" + basename + ".intent.rep"
file.puts "upset=" + basename + ".upset.rep"
file.puts "downset=" + basename + ".downset.rep"
file.puts "uppercovers=" + basename + ".uppercovers.rep"
file.puts "lowercovers=" + basename + ".lowercovers.rep"
}
write_lattice_rep_as_ds(basename + ".extent.rep", lattice, :extent)
write_lattice_rep_as_ds(basename + ".intent.rep", lattice, :intent)
write_lattice_rep_as_ds(basename + ".upset.rep", lattice, :upset)
write_lattice_rep_as_ds(basename + ".downset.rep", lattice, :downset)
write_lattice_rep_as_ds(basename + ".lowercovers.rep", lattice,
:lower_covers)
write_lattice_rep_as_ds(basename + ".uppercovers.rep", lattice,
:upper_covers)
end
More information about the Yarv-devel
mailing list