- From: Paul Vincent <pvincent@tibco.com>
- Date: Fri, 7 Dec 2007 00:54:36 -0800
- To: "Michael Kifer" <kifer@cs.sunysb.edu>, <axel@polleres.net>
- Cc: "Public-Rif-Wg \(E-mail\)" <public-rif-wg@w3.org>
- Message-ID: <8F4A4531BB49A74387A7C99C7D0B0E0503655226@NA-PA-VBE02.na.tibco.com>
> 1. It imposes additional axioms, which are not commonly accepted.
> 2. It is also not even defined for classes specified using function
terms
> (like list(?Foo)).
>
> Both arguments are also applicable to the RDF membership relationship.
>
> I am convinced that throwing out these primitives serves no purpose
and
> will just gratuitously cripple the BLD.
1. My take on this is that if there is at least one objection to using a
specific language definition (ie RDFS) for a RIF feature (ie BLD) then,
as RIF is meant to be language-neutral, then the language-specific
feature cannot be included as-is.
2. On an operational aspect, I assume we are still talking about "class
membership" as opposed to other "membership" aspects like list/array
membership. So this discussion does NOT impact PR rules like the
following:
If
Rulevariable Customer // TIBCO declaration, ILOG rule variable,
Blaze pattern, etc
Customer.accountNumber is a member of the array Fraudcases
Then
// actions on relevant Customer object
> > p.s.: Note that I have to send regrets for the next Telecon, since I
> > will be travelling most likely (could be I get connection from train
or
> > airport, but no guarantees.)
[My regrets too, as I have a conflict with an early OMG Tech Meeting on
Tues.]
Cheers
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 Michael Kifer
> Sent: 07 December 2007 05:54
> To: axel@polleres.net
> Cc: Public-Rif-Wg (E-mail)
> Subject: Re: Reminder: pending discussion "membership" (pending
discussion
> on ACTION-350)
>
>
>
>
> CSMA had an action to bug me about the ## feature :-)
> I thought that others might also be interested, so I am including my
> arguments below.
>
> First, one needs to be able to specify that one class is a subclass of
> another class **as part of the KB**. For instance,
>
> student##person.
> father(person)##person.
>
> In KB apps this is used for reasoning, not just as part of a data
> model. How would one specify this info otherwise?
>
> Here is a more sophisticated example: parametrised lists.
>
> list(?Subclass) ## list(?Super) :- ?Subclass ## ?Super.
>
> (List of FOOs is a subclass of lists of BARs if FOO is a subclass of
> BAR. We could have list(father(person)), for example.)
>
> RDF's subclassOf does not cut it because
>
> 1. It imposes additional axioms, which are not commonly accepted.
> 2. It is also not even defined for classes specified using function
terms
> (like list(?Foo)).
>
> Both arguments are also applicable to the RDF membership relationship.
>
> I am convinced that throwing out these primitives serves no purpose
and
> will just gratuitously cripple the BLD.
>
>
> --michael
>
>
>
> > Dear all,
> >
> > I was asked by Chris to remind again to forward again a reminder on
the
> > pending discussion about the special notation '#' for class
membership
> > and in RIF since this should be discussed in the upcoming Teleconf.
> >
> > In the last f2f I was asked to send a use case for this, where I
sent
> > the - obvious - RDF use case, see
> > http://lists.w3.org/Archives/Public/public-rif-wg/2007Sep/0184.html
> >
> > For your convenience I copy this here again:
> >
> > --------------------------------------------------------------------
> >
> > http://www.w3.org/2005/rules/wg/track/actions/350
> >
> > The class membership notation '#' is intended to reflect the common
> > feature of many rule and object oriented languages for being able to
> > express memebership of a class (or type?)
> >
> > A possible use for this is for RDF's rdf:type construct...
> >
> > To reflect this in the current RDF/RDFS embeddings, one could add to
> >
> > 1) Add to RDF embedding:
> >
> > Forall ?c,?o ?o#?c :- ?o[rdf:type -> ?c]
> >
> >
> > ------- ACTION done, what follows is additional discussion ;-)
--------
> >
> > This alone, obviously doesn't make too much sense, but in connection
> > with the additional subclass notation '##' one could safe two rules
> > in the RDFS embedding:
> >
> > 2) Add to RDFs embedding:
> >
> > Forall ?c1,?c2 ?c1##?c2 :- ?c1[rdfs:subclassOf-> ?c2]
> >
> > and remove:
> > Forall ?x,?y,?z ?z[rdf:type -> ?y] :- And (?x[rdfs:subClassOf ->
?y]
> > ?z[rdf:type -> ?x]),
> > Forall ?x,?y,?z ?x[rdfs:subClassOf -> ?z] :- And
(?x[rdfs:subClassOf
> > -> ?y] ?y[rdfs:subClassOf -> ?z]),
> >
> >
> > In total, the use of the special notation adds two rules and saves
us
> > two rules in the RDF/RDFS embedding.
> >
> > Pretty much equals out ;-)
> >
> > That's why I am absolutely neutral on whether we chould keep that
> > feature or no.
> >
> > Axel
> >
> > p.s.: Note that I have to send regrets for the next Telecon, since I
> > will be travelling most likely (could be I get connection from train
or
> > airport, but no guarantees.)
> >
> > --
> > Dr. Axel Polleres
> > email: axel@polleres.net url: http://www.polleres.net/
Received on Friday, 7 December 2007 08:55:01 UTC