Re: Glossary entry: Abstract syntax

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