RE: fulfilment of my action of today <-- Rumblings on why we need classification terms in RIF (and why RDF's vocab should not be used)

Michael - you are correct - IF I had a PR system that included a data model, AND I wanted to use RIF's data modelling to transport the data + model (vs say an XML / XSL definition), then subclassOf would be a requirement for the data model transport in RIF.

Note that many (most?) PR engines / BREs include basic internal object modelling constructs. However, these capabilities are used sparingly in practice (in my experience) as most users want internal data to be persisted externally ie via XML or DB + standardization on external object model formats such as XML, Java etc. 

Gary / Christian / Hassan / Bob et al - this is a question for the Oracle / Blaze / Ilog camps: I had assumed that the PR use cases were to interchange rules + an external (typically XML) data model. Do we want to consider a role for RIF whereby I can also send any internal object model definitions INSIDE RIF? [Seems to me this would still not allow universal interchange, is outside the main use cases, and is possibly something we should consider for "a Phase 3" issue]

Paul Vincent
TIBCO | ETG/Business Rules 
 

> -----Original Message-----
> From: kifer@cs.sunysb.edu [mailto:kifer@cs.sunysb.edu]
> Sent: 16 August 2007 14:13
> To: Paul Vincent
> Cc: Gary Hallmark; Chris Welty; RIF WG
> Subject: Re: fulfilment of my action of today <-- Rumblings on why we need
> classification terms in RIF (and why RDF's vocab should not be used)
> 
> 
> > Gary, Michael: memberOf and instanceOf relationship queries make sense
> > for PR. But subclass relationships (where you are testing the underlying
> > schema of your data model) is more of a metamodel rule: do you have any
> > examples of where this might be used in a *conventional* PR system's
> > rules? I can't think of any good ones, as rules are written against
> > (/with knowledge of) the underlying object model.
> 
> This may not be how you intend to use a PR system, but imagine that
> somebody gives me a package, which includes a PR system. I might want to
> run queries in order to determine the exact schema in order to use your
> package.  Even CORBA provides such facilities (not subclassOf, I think,
> but
> the ability to find out the names of the attributes; determining the class
> hierarchy is just a tiny next step).
> 
> 
> 	--michael
> 
> 
> > [Obviously, this comment pertains to current PR systems only. I guess
> one
> > could argue that the concept of "subclass" is not very good semantically
> > / for the semantic web anyway, as subclass is just one type of
> > relationship and really represents "typeOf" (vs partOf) - but I'll leave
> > that discussion to the relevant experts if needed]
> >
> > Paul Vincent
> > TIBCO | ETG/Business Rules
> >
> > > -----Original Message-----
> > > From: Gary Hallmark [mailto:gary.hallmark@oracle.com]
> > > Sent: 16 August 2007 06:48
> > > To: Paul Vincent
> > > Cc: Chris Welty; Michael Kifer; RIF WG
> > > Subject: Re: fulfilment of my action of today <-- Rumblings on why we
> need
> > > classification terms in RIF (and why RDF's vocab should not be used)
> > >
> > > Paul,
> > >
> > > I have seen users try to write rules like this
> > >
> > > IF c is an instance of Car and c.weight > 6000 or t is an instance of
> > > Truck and t.weight > 6000
> > > THEN assert TooHeavy(c); assert TooHeavy(t);
> > >
> > > Unfortunately the above doesn't work very well because for each rule
> > > firing, c or t may be unbound.
> > >
> > > An obvious "fix" is to split the above into 2 rules.
> > >
> > > In some ways (e.g. easier to maintain), a better fix is to set up the
> > > data model so that Car is a subclass of Vehicle, and Truck is a
> subclass
> > > of Vehicle.  Now the rule becomes
> > >
> > > IF v is an instance of Vehicle and v.weight > 6000
> > > THEN assert TooHeavy(v);
> > >
> > > Oracle Business Rules uses Java semantics for "is an instance of" and
> > > "is a subclass of".  I would like this in RIF.  Otherwise, I don't see
> > > how I can translate the above rule very easily and have it fire on a
> > > Truck weighing in excess of 6000.  I would need some way to restrict
> the
> > > very general rif:subClassOf (and presumably rif:instanceOf) to Java
> > > semantics.  I hope that's possible...
> > >
> > > Paul Vincent wrote:
> > > > Out of interest (and apologies for the naïve qu's):
> > > > 1. what would be an example rule here?
> > > > eg: C1 is a subclass of C0
> > > > [and by implication C1 inherits properties, maybe default values for
> > > such properties, from C0, and inherits method definitions, all subject
> to
> > > any intermediate subclass definition overrides]?
> > > >
> > > > 2. note that for a PR, as discussed in the call yesterday, the most
> > > likely equivalents would be:
> > > > - do a class membership query on some instance in a rule condition
> [not
> > > really a subclass test as class relationships are metamodel
> constructs]
> > > > - allocate an instance to some new class [not supported in most PR
> > > engines due to their Java object model base]
> > > >
> > > > The above might explain why for the PR community the question on
> whether
> > > RIF supports this construct is somewhat irrelevant. I can't think how
> a PR
> > > translator would handle such a construct without recreating/simulating
> an
> > > OO model semantics dynamically or getting into code generation...
> > > >
> > > > [My 2cents contribution is that RDF vocab should only be used if RDF
> is
> > > the only "rule language / data model" requiring this feature OR RDF
> vocab
> > > is a sufficient abstraction of all "rule language / data model"s
> requiring
> > > this feature].
> > > >
> > > > Paul Vincent
> > > > TIBCO | ETG/Business Rules
> > > >
> > > >
> > > >> -----Original Message-----
> > > >> From: public-rif-wg-request@w3.org [mailto:public-rif-wg-
> > > request@w3.org]
> > > >> On Behalf Of Chris Welty
> > > >> Sent: 15 August 2007 02:26
> > > >> To: Michael Kifer
> > > >> Cc: RIF WG
> > > >> Subject: Re: fulfilment of my action of today
> > > >>
> > > >>
> > > >>
> > > >>
> > > >> Michael Kifer wrote:
> > > >>
> > > >>> Rumblings on why we need classification terms in RIF
> > > >>> (and why RDF's vocab should not be used)
> > > >>> ===================================================
> > > >>>
> > > >>> Two issues: whether we should define facilities for expressing
> some
> > > data
> > > >>> model stuff and whether we should use rdfs for this.
> > > >>>
> > > >>> Rationale:
> > > >>>    If we do not have such constructs then everybody will be
> inventing
> > > >>>
> > > >> their
> > > >>
> > > >>>    own. People will not be able to specify any part of their data
> > > model
> > > >>>
> > > >> in RIF
> > > >>
> > > >>>    which will reduce the usefulness of RIF as an exchange
> language.
> > > >>>
> > > >>> Why it is not good to use RDF's facilities to define class
> > > hierarchies.:
> > > >>>    RDF is a foreign language whose semantics is burdened with non-
> > > >>>
> > > >> standard
> > > >>
> > > >>>    things. For instance, subclass is reflexive.
> > > >>>
> > > >>>    This is bad because not every language out there uses reflexive
> > > >>>
> > > >> subclasses.
> > > >>
> > > >>>    For instance, if we map, say, FLORA-2's subclass relationship
> to
> > > >>>
> > > >> RDFS's then
> > > >>
> > > >>>    in the translation (RIF) the query whether foo is a subclass of
> foo
> > > >>>
> > > >> will
> > > >>
> > > >>>    say "yes" but in FLORA-2 it will say "no".
> > > >>>
> > > >> </chair>
> > > >> No, no - translating flora2:subclass into rdfs:subclass would be
> > > >> incorrect, because they have different semantics.  For me, this is
> the
> > > >> stronger point in favor of rif:subclass - since so few systems use
> the
> > > >> rdfs semantics for subclass, very few systems when translating into
> > > >> RIF would use it in their translations.
> > > >>
> > > >> Same for below.  You shouldn't translate ilog:subclass into
> > > >> rdfs:subclass.  So, in fact, as far as we know, only rdfs based
> > > >> systems would ever use rdfs:subclass when translating through rif,
> and
> > > >> everyone else would have to invent their own.
> > > >> <chair>
> > > >>
> > > >>
> > > >>>    Let's look at some other examples, like ILOG. From my limited
> > > >>>
> > > >> experience
> > > >>
> > > >>>    with it, I remember that it uses Java as its data model. So,
> > > suppose
> > > >>>    there is a class foo in ILOG, which comes from Java. An ILOG
> set of
> > > >>>    rules must not derive "foo sub foo" because this is not true in
> the
> > > >>>
> > > >> data
> > > >>
> > > >>>    model. However, it we translate Java subclass relationship into
> > > >>>    rdfs:subclassOf then the resulting RIF translation should
> generate
> > > >>>
> > > >> "foo
> > > >>
> > > >>>    sub foo". (In truth, as I recall, ILOG does not have "sub" in
> the
> > > >>>
> > > >> heads
> > > >>
> > > >>>    of the rules, but it is easy to imagine that next year ILOG is
> > > >>>
> > > >> extended
> > > >>
> > > >>>    with something like a query facility. Then their stock will
> plummet
> > > >>>    because their rule sets will not be faithfully exchangeable
> through
> > > >>>
> > > >> RIF
> > > >>
> > > >>>    :-)
> > > >>>
> > > >>
> > > >> --
> > > >> Dr. Christopher A. Welty                    IBM Watson Research
> Center
> > > >> +1.914.784.7055                             19 Skyline Dr.
> > > >> cawelty@gmail.com                           Hawthorne, NY 10532
> > > >> http://www.research.ibm.com/people/w/welty
> > > >>
> > > >
> > > >
> > > >
> >
> >
> 

Received on Thursday, 16 August 2007 14:54:20 UTC