Re: Datamodel Strawman (ACTION-298)

[Sorry I'm going to top post rather than do a point-by-point comment 
because I seem to be suffering from context failure.]

At Innsbruck the chairs pointed out that RIF should not invent yet 
another schema language. For that reason when we adopted the Frames 
proposal several people (myself included) opposed the Classification 
proposal. Though we didn't formally reject the Classification proposal 
either.

This RIF data model seems to be based broadly on the Classification 
approach, or at least on strongly typed frames, and seems to replicate 
parts of XML Schema into RIF.

Is this necessary?

Could we just have untyped frames in RIF plus a mapping from those to 
XML, leaving all syntactic type validation to the XML schema processing?

Or could we have a set of builtins for navigating XML data from within 
RIF (for example, XPath like)?

Dave
-- 
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England

Gary Hallmark wrote:
> The statement for this action reads "Show how to use XML Schema for App 
> Data Model".
> This begs the question: what is an "App Data Model"?  I believe that we 
> must define such a thing in RIF, and only then can we define a mapping 
> between XML Schema (or relational databases, or OWL, or RDFS, etc.) and 
> this RIF Data Model (RDM).
> 
> *RIF Data Model
> 
> *Informally, a RDM is a set of "frame types".  A frame type specifies 
> the type (URI) of the frame and the names and types of the slots. A slot 
> type is one of the RIF-supported XML Schema datatypes, the name of a 
> frame, or is unspecified (meaning "any type").
> 
> *Abstract Syntax
> *
> class FrameType
>     property type : Const
>     property slots : List of SlotType
> 
> class SlotType
>     property name : Const
>     subclass SingletonSlotType
>         property type : Const?
>     subclass ListSlotType
>         property elementType : Const?
> 
> At this point, I'm not exactly sure what we decided on in Innsbruck for 
> the ASN for frames, so I'll make assumptions here:
> 
> class Frame
>     property oid: TERM
>     property type: Const
>     property slots: list of Slot
> 
> class Slot
>     property name: TERM
>     property value: TERM
> 
> *Semantics
> *
> A Frame's type may be the same as a FrameType's type.  If so, then the 
> Frame's slots must agree in number, name, and type with the FrameType's 
> slots.
> 
> *Lists
> 
> *XML Schemas define lots of 1-to-many relationships using the 
> "maxOccurs" attribute.  This is modeled in RDM using generic lists. A 
> generic list has an optional type parameter to constrain the type of the 
> list elements.
> 
> *Friendly Syntax
> *
> FrameType ::= 'type' CONSTNAME '[' (CONSTNAME '->' SlotTypeName)* ']'
> SlotTypeName ::= SORTNAME | 'list' ['<' SORTNAME '>']
> 
> *Examples
> 
> *type book [ author->string title->string ]
> 
> wd1#book [ author->?X title->LeRif ]        // ?X must unify with a string
> 
> type bookshelf [ contents->list<book> ]
> 
> mybooks#bookshelf [ contents->list( wd1#book [author->Christian 
> title->LeRif] wd2#book [author->ChrisW title->"The RIF Book"]) ]
> 
> *XML Schema
> 
> *I believe that frame types as described above with the addition of a 
> generic list type are sufficient to model most complexTypes of XML 
> Schema.  Additional mechanism is needed to model the "facets" of simple 
> types such as value space restriction using enumeration, regex, and 
> numeric range restriction.
> 
> Note the XML Schema specification is complex and "real world" mapping 
> technologies such as JAXB 2.0 [1] have specifications that are well over 
> 300 pages long.  It is unlikely RIF can handle all the "corner cases".
> 
> [1] http://jcp.org/aboutJava/communityprocess/pfd/jsr222/index.html

Received on Monday, 16 July 2007 08:00:36 UTC