- From: Chris Welty <cawelty@gmail.com>
- Date: Wed, 07 Mar 2007 20:48:02 -0500
- To: Gerd Wagner <wagnerg@tu-cottbus.de>
- CC: 'Dave Reynolds' <der@hplb.hpl.hp.com>, 'RIF' <public-rif-wg@w3.org>
Gerd Wagner wrote: >> Given the discussions at F2F5 I thought it might be useful to add a >> glossary entry to capture the way we have been using the term >> "abstract syntax". I've tried to keep it brief. >> >> http://www.w3.org/2005/rules/wg/wiki/Abstract_Syntax >> >> Is this sort of thing useful? >> >> Does this entry capture our intent accurately and clearly enough? I really doubt discussing this will ever reach an end, but I'll give it a try. > You say that "Meta-models (see Meta-model) describe the structure > of models and so are closely related to the notion of an Abstract > Syntax". But, in fact, metamodels define a language by defining > their abstract syntax (together with well-formedness rules or > constraints). It is hard to tease out the differences between meta-models and abstract syntaxes, as they are mainly differences in style, emphasis, and expectations. A syntax must account for how statements in a language are going to be specified, and need not account for things that are implied (ie not explicit) in the syntax. In the f2f breakout we used the example of a graph in RDF - before sparql there was no syntactic notion of a graph but the semantics clearly talks about them and the ODM includes a class for graphs (not because of sparql). A meta-model as a model of a modeling language must account for all the things in a language that matter to tools, and need not account for everything in the syntax. > I don't see the problem that "In meta-modelling ... one would just > say that a constant has an associated sort without saying how that > sort gets defined". Of course, in a metamodel you can both declare > and use (or refer to) a language element (such as a rif:constant). > Typically, you declare the language element in one package and > you use (or refer to) it in another package. I think you may have misunderstood. This isn't a problem of declaring and using language elements, it is a difference in emphasis in general between metamodel and syntax. In syntax, you must be concerned with how a sort is defined. In a metamodel, you don't need to represent that (you CAN, of course), but you must represent that a language element has a sort. The problem with using a metamodel as an abstract syntax is that you must identify the parts of the model that don't actually have a syntactic construct. Again, take the notion of graph in RDF, if I used the ODM as a syntax for RDF, how would I say that there is no production for "graph"? So the UML diagrams you see for RIF are to be interpreted as visual representations of the syntax, such that a subclass is a syntactic disjunction an aggregation is syntactic concatenation, and multiplicity on aggregation is repetition. The tools that will generate the XML and BNF syntax specifications for RIF from the asn06 will use that assumption. I hope this helps, Chris > > -Gerd > > > -- 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 Thursday, 8 March 2007 01:48:02 UTC