[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