- From: David Z. Hirtle <dhirtle@cs.uwaterloo.ca>
- Date: Thu, 6 Dec 2007 21:52:50 -0500
- To: "Adrian Giurca" <giurca@tu-cottbus.de>
- Cc: "Public-Rif-Wg (E-mail)" <public-rif-wg@w3.org>
Hi Adrian, > I read them but I don't see why <formula>, <declare> are necessary. I > understand the need for <op> and <object> for example... The <formula> and <declare> elements are there because the XML syntax is fully-striped (as explained at the beginning 2.1.1.6.). A stripe-skipped version of the XSDs is also possible, of course. > 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"/> I still don't think that will work because CONDITION and And are of different types. Have you tested it with, say, XSV? (http://www.w3.org/2001/03/webdata/xsv) Another advantage of groups is that they are nicely modular, and can be used with xs:redefine. Because the XSDs are so far stand-alone ("monolithic"), this hasn't been taken advantage of, but it may be important in the future. > I know the document but there is about DTD modularization and it might > not be the same case for an XMLS. See appendices A - C of the document for the XML Schemas. David On 12/5/07, Adrian Giurca <giurca@tu-cottbus.de> wrote: > 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 Friday, 7 December 2007 02:53:08 UTC