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 13:13:40 UTC