- From: Gary Hallmark <gary.hallmark@oracle.com>
- Date: Sun, 15 Jul 2007 16:16:07 -0700
- To: RIF WG <public-rif-wg@w3.org>
- Message-ID: <469AAAB7.9050808@oracle.com>
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 Sunday, 15 July 2007 23:16:17 UTC