- 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