- From: Chris Welty <cawelty@gmail.com>
- Date: Tue, 25 Sep 2007 13:39:48 -0400
- To: Michael Kifer <kifer@cs.sunysb.edu>
- CC: Sandro Hawke <sandro@w3.org>, public-rif-wg@w3.org
Jeez, I'm sure glad I didn't have Michael for a professor. The differences are pretty simple, though: A signature has a name and a set of expressions. A signature name is just a symbol used to reference the set of expressions. A signature expression is the standard sort of thing you might think of as a signature, like "(i) => bool", which should be a signature expression for unary predicates (unary predicates take one argument that is a symbol, and have a boolean "value") . So, again, a signature is just a set of valid signature expressions with a name. The idea of signatures being sets of signature expressions is because we want the basic framework to have the flexibility to define polymorphism, so that you can express the fact that some constants have different signatures in different syntactic contexts. -Chris Michael Kifer wrote: >> One of the parts that's really hard for me is the distinction between >> signature names, signatures, and signature expressions. I can't really >> keep them straight. > > Maybe you can explain what you find to be the problem in more detail? > > I do not quite understand why is it hard to see the difference between a > set and a name given to that set. You do not find it hard to understand the > distinction between the term 'integer' and the set {0, 1, -1, 2, -2, ...}. > So what is so hard about the difference between, say, the symbol 'foobar' > and a set like {i*i->i, i*i*i->bool}, which it might be denoting? > > > --michael > > > -- Dr. Christopher A. Welty IBM Watson Research Center +1.914.784.7055 19 Skyline Dr. cawelty@gmail.com Hawthorne, NY 10532 http://www.research.ibm.com/people/w/welty
Received on Tuesday, 25 September 2007 17:40:02 UTC