- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Tue, 27 Feb 2007 04:38:55 +0000
- To: Adrian GIURCA <giurca@tu-cottbus.de>
- CC: RIF WG <public-rif-wg@w3.org>
I like some of the better names but I don't quite see how this version of the sort sub-diagram solves the issues. Though that might just be the lateness of the hour :-) First, Constants include things like numbers and dates, so they can't uniformly have an xs:anyURI id. You could split Constants into Symbols and Literals (or TypedValues or something) - Symbols could have an id (xs:anyURI) whereas TypedValues would have a lexicalForm (an xs:string). Second, just considering Symbols I don't see how this resolves the divergence between the metamodel reading and the abstract syntax reading. Your BNF suggests that you intend this to have an abstract syntax reading but I don't think we are saying that a Symbol used in a predicate position (for example) would have an ASort specification inline in the syntax at the point of use (at least I hope not). Dave Adrian GIURCA wrote: > Dear F2F participants, > Find below our proposal for the MOF metamodel of the RIF Core. This > proposal considers all concepts from the RIF Core Positive Language. We > try to find good names which are proposed by using /better-name/ > property. After the MOF/UML class diagram you'll find a proposal for a > mapping from MOF to (E)BNF. The EBNF conforms to ISO/IEC 14977:1996 > (similar with OWL abstract syntax). > > > Mapping rules: > > 1. Any abstract class (italic name in the diagram) translates into > EBNF non-terminal using capitals (ex. /Condition /translates into > CONDITION) > 2. Any concrete class translates into EBNF terminal (ex. And > translates into 'And') > 3. Any composition is captured using round brackets as terminals > 4. As in OWL abstract syntax using curly brackets { and } denotes 0..* > 5. Right brackets [ ] are used to indicate 0..1 > > According with these rules we obtain the the following EBNF: > > CONDITION ::= 'And' '(' {CONDITION} ')' | > > 'Or' '(' {CONDITION} ')' | > > 'Exists' '(' 'declare('Var {Var}')' CONDITION ')' | > > POSITIVE > > POSITIVE ::= 'Equal' '(' TERM TERM ')' | 'Uniterm' '(' 'functor' '(' Const ')' 'arguments' '(' {TERM} ')' ')' > > TERM ::= Var | Const | 'Uniterm' '(' 'functor' '(' Const ')' 'arguments' '(' {TERM} ')' ')' > > Var ::= 'Var' '(' name ['type' '(' SORT ')'] ')' > > Const ::= 'Const' '(' id ['type' '(' SORT ')'] ')' > > SORT ::= PSORT | 'ASort' '(' SORT {SORT} ')' | BSort > > PSORT ::= xs:integer | xs:decimal | xs:time | xs:dateTime | xs:string > > name::= NCNameRef > > id ::= URIref > > You may notice our proposal for using xs:NCName for local names and > xs:anyURI for constants. > Also there is a question which arise: > Why the symbol set Const is not subclassed by (possibly overlapping) > subclasses IndividualName, FunctionSymbol and PredicateSymbol? > > Looking forward to your comments, > > Adrian > > Chris Welty wrote: >> >> >> We had to do a little reorganization of the agenda to deal with the >> problems created by the weather here, and the new agenda for the f2f >> is now on the wiki. Of course things may change further as we uncover >> new issues. If someone who plans to attend the meeting remotely is >> planning on attending for a specific session they should let us know. >> >> -CC&S >> >> > > ------------------------------------------------------------------------ >
Received on Tuesday, 27 February 2007 04:39:31 UTC