Re: Datamodel Strawman (ACTION-298)

Gary Hallmark wrote:
> 
> Xpath expressions returns a list of nodes, and nodes can be elements, 
> attributes, and typed literal values.  So we'd need at minimum some kind 
> of list in RIF (which we've talked about quite a bit), and I don't know 
> what you do about elements and attributes.  Forbid them?  Introduce an 
> opaque nodeId?
> 
> My worry is that a big component of a data model is the relationships 
> among the types/classes.  I would expect to be able to reason about 
> those relationships using rules.  E.g. find the mothers of twins in a 
> family tree expressed in an xml document.  I don't know how to do that 
> if all I can do is pick out typed literal values (leaves) from that xml 
> document using an xpath builtin.

Interesting. Is that really done in XML rule processing at the moment? 
(Where "that" = run-time consultation of a type hierarchy in a XML 
Schema document)

Personally I would, of course, map the data into RDF, and perform the 
reasoning there. That way there is a clear separation between the 
syntactic form (the XML schema) and the interpretation.

So how do existing rule languages handle this at the moment?
Does everyone have their own data modelling language which they map XML 
onto? If so what do those modelling languages look like?

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


> Dave Reynolds wrote:
> 
>>
>> Gary Hallmark wrote:
>>
>>>
>>> You think adding xpath to RIF is easier than adding generic lists and 
>>> frame types?  
>>
>>
>> No. But it may be easier than adding a type/class system for typed 
>> frames that is compatible with both RDFS/OWL classes and XMLSchema 
>> complex types without giving an appearance of duplication.
>>
>>> Does xpath have a model theory?  
>>
>>
>> No, I don't think so, but it is not a logic language so one wouldn't 
>> expect it to.
>>
>>> If it did, would it be compatible with RIF's?
>>
>>
>> Doesn't need to be. The Xpath accessors would simply be builtins 
>> working over an opaque datatype, pure side-effect-free functions, no 
>> worries :-)
>>
>> Dave
>>
>>>
>>> Christian de Sainte Marie wrote:
>>>
>>>> Gary,
>>>>
>>>> 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).
>>>>
>>>>
>>>> During F2F6, in Innsbruck, there seemed to be broad agreement that 
>>>> RIF should not invent its own data model/schema language, as Dave 
>>>> and Paul point out.
>>>>
>>>> The action to "show how to use an XML schema for ADM" was seen as 
>>>> necessary because it was felt that, although several participants 
>>>> (including myself) contented that being able to use a data model 
>>>> specified in an XML Schema (or DTD) was a requirement, nobody seemed 
>>>> to have a precise idea of what it meant.
>>>>
>>>> As I understand it, there are basically two places where we may need 
>>>> the reference to an external, or application data model:
>>>>
>>>> 1. when specifying the type of a variable beyond the builtin types 
>>>> (and of a slot if we decide that RIF should allow type checking);
>>>>
>>>> 2. when navigating a data source, that is, to specify data accessors.
>>>>
>>>> As regards case 1, I suppose that a QName is all we need (in 
>>>> addition to  the metadata that will tell us what this ruleset 
>>>> requires, e.g. a data model represented by an XML schema, the URI of 
>>>> that schema etc).
>>>>
>>>> As regards case 2, as I understand it, it is the 'op' property of an 
>>>> UNITERM that specifies the path to the data to be accessed, where 
>>>> the 'args' give the context.
>>>>
>>>> E.g., suppose that the data model is specified by the XML Schema in 
>>>> [1], and that there is a rule that says (informally) (taken from the 
>>>> MISMO POC [2]:
>>>>
>>>> Forall ?R: Root()
>>>> If ?R.division="wholesale" and ?R.occupancy="Investors"
>>>> Then r.occupancyAdjustment = 0.95d
>>>>
>>>> The RIF XML could be (probably not compliant with Sandro's proposed 
>>>> rules, but that is not the purpose):
>>>>
>>>> <Ruleset xmlns:mismo="(the URL in [1]">
>>>> ...
>>>>   <Rule>
>>>>      <Forall>
>>>>         <declare>
>>>>            <Var>
>>>>               <name>?R</name>
>>>>               <type>mismo:root</type>
>>>>            </Var>
>>>>         </declare>
>>>>      <if>
>>>>         <And>
>>>>            <Equal>
>>>>               <side>
>>>>                  (*) Here we would like something like an XPath expr 
>>>> selecting the "division" element where the value of ?R is the context
>>>>               </side>
>>>>               <side>"wholesale"</side>
>>>>  ...
>>>>
>>>> (*) E.g. <Uniterm><op>mismo:division</op><arg>?R</arg></Uniterm>, 
>>>> where the arg could itself be another uniterm if we needed to 
>>>> navigate deeper; or a single 'op' could be a complete XPath 
>>>> expression; etc. The slotted syntax may be more appropriate for that 
>>>> case, btw.
>>>>
>>>> The question is: if there is a standard way, associated to the data 
>>>> model, to navigate the source - e.g. XPath if the data model is an 
>>>> DTD or XML Schema,etc -, should that be the syntax for accessors 
>>>> (and thus the syntax for accessor 'op's or slots may vary depending 
>>>> on the data model? Or does RIF need to define a RIF "data source 
>>>> navigation language" that works for, e.g., XML-S, RDF-S OWL, etc?
>>>>
>>>> Christian
>>>>
>>>> [1] 
>>>> http://anonsvn.labs.jboss.com/labs/jbossrules/contrib/apocrif/jrules/src/test/resources/xsd/mismo.xsd 
>>>>
>>>> [2] 
>>>> http://anonsvn.labs.jboss.com/labs/jbossrules/contrib/apocrif/jrules/src/test/resources/irl/mismo2.irl 
>>>>
>>>>
>>>
>>
> 

Received on Monday, 23 July 2007 11:19:59 UTC