Talk:Emblem

From Wikipedia, the free encyclopedia

[edit] Symbol/Emblem

Thus the distinction bteen a symbol and an emblem is that the thing identeified by an emblem in some sense "owns" or "knows about" its emblem. Or perhaps: a thing may generally have only one emblem (in a context), but any number of things may symbolise it. Or perhaps: an emblem directly refers to the thing it is the emblem of (it's dereference is intrinsic to it), whereas a symbol depends on who reads it. An emblem, of course, als needs to be read, but it's reasonable to say that a person who dereferences an emblem may do so wrongly.

class Symbol implements Thing { 
  // a symbol can be anything, but not everything is a symbol
  // although, maybe it can be
}
abstract class Referrer {
  abstract boolean knowsMeaningOf(Symbol s);
  abstract Thing deref(Symbol s);
}
abstract class HasEmblem {
  Emblem getEmblem();
}
class Emblem extends Symbol, Referrer {
  NamedThing thing;
  abstract boolean knowsMeaningOf(Symbol s) {
    return s == this;
  }
  NamedThing deref(Symbol s) { 
    if(s==this) return thing;
    throw "I don't know how to deref " + s;
  }
}
abstract class NamedThing {
  Emblem getEmblem();
}