- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Tue, 27 Feb 2007 04:43:39 +0000
- To: Dave Reynolds <der@hplb.hpl.hp.com>
- CC: Adrian GIURCA <giurca@tu-cottbus.de>, RIF WG <public-rif-wg@w3.org>
Dave Reynolds wrote:
>
> 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).
Sigh, of course that should have been either function/Asort or
predicate/Bsort ... definitely too late ...
Dave
>
> 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:44:05 UTC