- From: Boley, Harold <Harold.Boley@nrc-cnrc.gc.ca>
- Date: Mon, 10 Sep 2007 10:41:58 -0400
- To: "Sandro Hawke" <sandro@w3.org>
- Cc: "RIF WG" <public-rif-wg@w3.org>, "Michael Kifer" <kifer@cs.sunysb.edu>
The Resolution from the 5th F2F Meeting > RESOLVED: Equal aggregates 2 Terms (one association with multiplicity = 2 in Core condition language diagram) <http://www.w3.org/2005/rules/wg/wiki/WG_Resolutions> asked to rename the two roles 'lhs' and 'rhs' into the neutral role 'side' (I felt this wasn't a great idea because at one point we'll want to express oriented equations, so we would again need to be capable of distinguishing the left-hand side from the right-hand side). Since asn has only had an n-ary 'list of', the spec had to make this assumption since then: > The multiplicity of the side property (role) of the Equal class is assumed to be exactly 2. <http://www.w3.org/2005/rules/wg/wiki/Core/Positive_Conditions?action=re call&rev=261> In EBNF this was trivial to formalize -- an example of avoiding unresolved dependencies. There were more assumptions in the Slotted Conditions, e.g.: > The above asn06 is generalized with a fixed-arity list constructor (complementing the unfixed-arity list of constructor) so that the multiplicity of the side property (role) of the Equal class no longer requires the assumption of being exactly 2 (the 2 TERMs are just listed). ... Also, optional of and subproperty constructs are assumed. <http://www.w3.org/2005/rules/wg/wiki/Core/Slotted_Conditions?action=rec all&rev=75> All of them were removed by just using widely-known constructs from EBNF. As discussed, the mapping is from the Abstract EBNF to the Concrete EBNF without building in tokens such as '='. Instead, it uses facts for the token table and equations for the algorithm, both known from our own BLD formalism. It specifies the mapping between Abstract and Concrete parameterized by a token table, which also insulates the 7 tokens used in the Concrete EBNF for possible updates: class2token('Equal','=') class2token('type','^^') class2token('Var','?') class2token('Implies',':-') class2token('slot','->') class2token('Instance','#') class2token('Subclass','##') The wiki presentation has meanwhile been updated. Your work on asn06, asn07, sbnf, ... has greatly helped us to understand the relevant concepts and issues. -- Harold -----Original Message----- From: public-rif-wg-request@w3.org [mailto:public-rif-wg-request@w3.org] On Behalf Of Sandro Hawke Sent: Monday, September 10, 2007 9:00 AM To: Michael Kifer Cc: Sandro Hawke; RIF WG Subject: Re: [TED] Abstract Syntax and Abstract-to-Concrete Mappings kifer@cs.sunysb.edu (Michael Kifer) writes: > > Sandro, you are looking in a wrong place. Look at the abstract syntax. > Instead, you are looking at a translation algorithm! No, I don't think so. Yes, I could have compared the abstract syntax. In that case I would have compared what's in the BLD draft... Equal ::= 'Equal' '(' 'side' '->' TERM 'side' '->' TERM ')' to some asn07 like this: class Equal property left: Term property right: Term in which case I also have a strong preference for the asn07. But, no, instead I chose to focus on the specification of the mapping from abstract syntax to presentation syntax. For that, I quoted the BLD text which specifies the mapping for Equal and showed it with the a single line of sbnf which performs the same function. (The fact that the text in BLD shows more of how to one might perform that transformation, instead of *just* specifying it -- that surely accounts for why it is so much more complicated -- but I don't see that as a benefit.) -- Sandro > > kifer@cs.sunysb.edu (Michael Kifer) writes: > > > > > > "Sandro Hawke" <sandro@w3.org> wrote: > > > > > > > > "Boley, Harold" <Harold.Boley@nrc-cnrc.gc.ca> writes: > > > > > > > > > > Based on the recent discussions, I updated the Abstract Syntax by also > > > > > just using EBNF and introduced Abstract-to-Concrete Mappings for: > > > > > > > > > > http://www.w3.org/2005/rules/wg/wiki/Core/Positive_Conditions > > > > > http://www.w3.org/2005/rules/wg/wiki/Core/Horn_Rules > > > > > http://www.w3.org/2005/rules/wg/wiki/Core/Slotted_Conditions > > > > > > > > > > Thus, unresolved dependencies on a future metalanguage for defining > > > > > the RIF Syntax were removed, especially in the Slotted Conditions. > > > > > This can now contribute to speeding up our editorial BLD WD2 work. > > > > > > > > What's the advantage of this formalism over SBNF? It seems much more > > > > complicated to me. > > > > > > > > - s > > > > > > As far as I can see, this is a slight elaboration (and, perhaps, a visually > > > more convenient form) of your own proposal of a couple of weeks ago. > > > Can you explain where do you see the differences? > > > > If you find this: > > > > class2token('Equal','=') > > abs2con4g('Equal' > > '(' > > 'side' '->' TERM1 > > 'side' '->' TERM2 > > ')', > > TokenTable) > > = > > TERM1 lookup('Equal',TokenTable) TERM2 > > > > more "visually convenient" than this: > > > > Equal ::= left::Term '=' right::Term > > > > then I have no idea where to begin this discussion. > > > > > (Your syntax was at times at odds with the formal syntax, and that has been > > > fixed. > > > > I think I was trying to match the BNF not the formal syntax, but that > > was just for illustration purposes anyway. > > > > > Otherwise, the two seem basically isomorphic to me.) > > > > They appear equalent in some essential ways -- a bit like C++ and > > assembly are equivalent, I guess. I have a pretty strong preference for > > one style over the other. > > > > -- Sandro >
Received on Monday, 10 September 2007 14:42:28 UTC