- 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