- From: Adrian Giurca <giurca@tu-cottbus.de>
- Date: Thu, 06 Dec 2007 00:35:31 +0100
- To: "David Z. Hirtle" <david.hirtle@gmail.com>
- CC: "Public-Rif-Wg (E-mail)" <public-rif-wg@w3.org>
Hi David,
David Z. Hirtle wrote:
> Hi Adrian,
>
>
>> 1. How was the proposed XML Schema ( see
>> http://www.w3.org/TR/rif-bld/#Specification ) derived from the EBNF for
>> the Presentation Syntax of the RIF-BLD Condition Language
>> http://www.w3.org/TR/rif-bld/#head-10450be66b637feddd430658ce562ef518ca5b05
>> ? There is any normative specification of the mapping from EBNF to XML
>> Schema? or Is the XML Schema normative?
>> Seems that in the Schema appears a number of elements such as <declare>
>> , <formula> and is not clear how they are derived from EBNF
>>
>
> You may want to look at the following subsections, not only the EBNF one:
>
> 2.1.1.6. XML Syntax
> 2.1.1.7. Translation Between the Presentation and the XML Syntaxes
>
> The latter in particular should make the mapping clear, e.g. showing
> where <declare> and <formula> fit in.
>
I read them but I don't see why <formula>, <declare> are necessary. I
understand the need for <op> and <object> for example...
However is a pitty that the EBNF does not clarify this in a manner
similar with OWL abstract syntax. Anyway we may live also with this
syntax if this one is normative. Is it?
>
>
>> 2. The second question is related with the intended meaning of xs:group
>> which in my opinion is designed to handle collections:
>> For example we have:
>> CONDITION ::= 'And' ' ( ' CONDITION* ' ) ' |
>> 'Or' ' ( ' CONDITION* ' ) ' |
>> 'Exists' Var+ ' ( ' CONDITION ' ) ' |
>> ATOMIC
>>
>> which means that And is a CONDITION i.e. any instance of an And is an
>> instance of CONDITION.
>> If so it might be better to implement as
>>
>> <xs:element name="CONDITION" abstract="true">
>> <xs:complexType>
>> <xs:choice>
>> <xs:element ref="And"/>
>> <xs:element ref="Or"/>
>> <xs:element ref="Exists"/>
>> <xs:element ref="ATOMIC"/>
>> </xs:choice>
>> </xs:complexType>
>> </xs:element>
>>
>> and then
>>
>> <xs:element name="And" substitutionGroup="CONDITION">
>> <xs:complexType>
>> <xs:sequence>
>> <xs:element ref="CONDITION" minOccurs="0" maxOccurs="unbounded"/>
>>
>> </xs:sequence>
>> </xs:complexType>
>> </xs:element>
>>
>> etc.
>>
>> In this case roles such as <formula> are not needed.
>>
>
> I'm not an expert with substitution groups, but they seem to require
> that the substituted-in elements (e.g. And) have the same type as the
> "head" element (in this case, CONDITION), so this probably wouldn't
> work.
>
> http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/#SubsGroups
>
>
You are right. I was in hurry and therefore wrong. Below is the proposed
design:
<xs:element name="CONDITION" type="CONDITION.type" abstract="true"/>
<xs:complexType name="CONDITION.type" abstract="true"/>
<xs:element name="And" type="And.Type" substitutionGroup="CONDITION"/>
<xs:complexType name="And.Type">
<xs:complexContent>
<xs:extension base="CONDITION.type">
<xs:sequence>
<xs:element ref="CONDITION" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Or" type="Or.Type" substitutionGroup="CONDITION"/>
<xs:complexType name="Or.Type">
<xs:complexContent>
<xs:extension base="CONDITION.type">
<xs:sequence>
<xs:element ref="CONDITION" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ATOMIC" type="ATOMIC.Type" abstract="true"
substitutionGroup="CONDITION"/>
<xs:complexType name="ATOMIC.Type" abstract="true">
<xs:complexContent>
<xs:extension base="CONDITION.type"/>
</xs:complexContent>
</xs:complexType>
....
> In any case, I think using groups is the more tried-and-true method
> for this kind of thing. For example, XHTML uses groups for such
> "content models" (see http://www.w3.org/TR/xhtml-modularization).
>
I know the document but there is about DTD modularization and it might
not be the same case for an XMLS. Following XML Schema recommendation
the meaning of xs:group is a container for content. I believe that
CONDITION is the superclass of And and that's why I propose the above
design. Moreover, in this case, supplementary roles such as <formula>
and <declare> are not necessary.
There are also discrepancies in meaning such as:
<Frame>
<object>inst</object>
<slot>key1 filler1</slot>
. . .
<slot>keyn fillern</slot>
</Frame>
Here the content of <object> is the object itself while below the same
object is content of object/member/lower:
<Frame>
<object>
<Member>
<lower>inst</lower>
<upper>class</upper>
</Member>
</object>
<slot>key1 filler1</slot>
. . .
<slot>keyn fillern</slot>
</Frame>
and later <lower> is used to markup a class (i.e. sub):
<Frame>
<object>
<Subclass>
<lower>sub</lower>
<upper>super</upper>
</Subclass>
</object>
<slot>key1 filler1</slot>
. . .
<slot>keyn fillern</slot>
</Frame>
I guess this come from the goal to avoid attributes. But is usual that
the same element markup the same content (in case of <upper> for example).
I understand that object/subclass/upper is different from
object/member/upper but I guess is anyway hard...
Anyway, actually I am interested to know just if the syntax is normative
otherwise I have to wait
> David
>
Regards,
Adrian
>
> On Dec 4, 2007 10:14 AM, Adrian Giurca <giurca@tu-cottbus.de> wrote:
>
>> Dear all,
>> The REWERSE working group I1 has some experience in implementing
>> translators
>> <http://oxygen.informatik.tu-cottbus.de/rewerse-i1/?q=translators> for
>> interchange. We consider to start building a number of RIF translators
>> but we need help to understand a number of issues:
>>
>> 1. How was the proposed XML Schema ( see
>> http://www.w3.org/TR/rif-bld/#Specification ) derived from the EBNF for
>> the Presentation Syntax of the RIF-BLD Condition Language
>> http://www.w3.org/TR/rif-bld/#head-10450be66b637feddd430658ce562ef518ca5b05
>> ? There is any normative specification of the mapping from EBNF to XML
>> Schema? or Is the XML Schema normative?
>> Seems that in the Schema appears a number of elements such as <declare>
>> , <formula> and is not clear how they are derived from EBNF
>>
>> 2. The second question is related with the intended meaning of xs:group
>> which in my opinion is designed to handle collections:
>> For example we have:
>> CONDITION ::= 'And' ' ( ' CONDITION* ' ) ' |
>> 'Or' ' ( ' CONDITION* ' ) ' |
>> 'Exists' Var+ ' ( ' CONDITION ' ) ' |
>> ATOMIC
>>
>> which means that And is a CONDITION i.e. any instance of an And is an
>> instance of CONDITION.
>> If so it might be better to implement as
>>
>> <xs:element name="CONDITION" abstract="true">
>> <xs:complexType>
>> <xs:choice>
>> <xs:element ref="And"/>
>> <xs:element ref="Or"/>
>> <xs:element ref="Exists"/>
>> <xs:element ref="ATOMIC"/>
>> </xs:choice>
>> </xs:complexType>
>> </xs:element>
>>
>> and then
>>
>> <xs:element name="And" substitutionGroup="CONDITION">
>> <xs:complexType>
>> <xs:sequence>
>> <xs:element ref="CONDITION" minOccurs="0" maxOccurs="unbounded"/>
>> </xs:sequence>
>> </xs:complexType>
>> </xs:element>
>>
>> etc.
>>
>> In this case roles such as <formula> are not needed.
>>
>> -Adrian
>>
>>
>
Received on Wednesday, 5 December 2007 23:35:58 UTC