W3C home > Mailing lists > Public > public-rif-wg@w3.org > February 2010

Re: [RIF-RDF-OWL/Core] ## vs. rdfs:subClassOf (Fwd: A technical RIF question)

From: Sandro Hawke <sandro@w3.org>
Date: Thu, 25 Feb 2010 18:25:47 -0500
To: Christian De Sainte Marie <csma@fr.ibm.com>
cc: Gary Hallmark <gary.hallmark@oracle.com>, Axel Polleres <axel.polleres@deri.org>, kifer@cs.sunysb.edu, RIF <public-rif-wg@w3.org>, ivan@w3.org
Message-ID: <21921.1267140347@waldron>

> In PRD, ## can occur in conditions, but not in conclusions. That is
> because we did not want a rule to be able to change the class hierarchy
> (which RETE rule engine cannot do; at least not the OO ones).
> 
> For the same reason, we did not want a rule to be able to change the class 
> of an object, which is why we restricted the use of # in conclusions to
> New objects.
> 
> The use of # or ## is not restricted in PRD conditions: so, I do not think 
> that PRD requirements are the reason why Core does not have ##, except if
> ## would have been useful in Core only if allowed in the conclusion. But I 
> remember Dave being rather against ## (I was not so much in favor myself,
> but that may have been for different reasons: from my -chair's hat off- OO 
> point of view, I do not see the use case for testing the class hierarchy).

I check class membership all the time in my programming.  (I know some
people consider it bad OO practice, and I would never do it in C++, but
in Python, or when doing doing hybrid stuff, like working with
uncontrolled data, I think it's essential.)

One of the issues I've been torn about in designing the mapping to RDF
of the RIF syntax is whether to make class information a part of the
mapping, so And and Or are only distinguished by the class, or to give
their properties different names so that class information can be
ignored.  (I'm leaning, right now, toward keeping class information as
essential, because it's closer to how the RIF syntax is currently
conceived.)

I think our decisions around # and ## were not done particularly well.
I don't think we've ever had a clear story about when or how people
should use them, especially in the presence of rdf:type and
rdfs:subClassOf.  I think, in the moment, some of us may have supported
restrictions on their use in Core in order to essentially kill them, and
force people to just use rdf:type and rdfs:subClassOf -- about which
there is now a fair-sized body of experience and advice.  (I wont quite
confess to that particular motivation, since I don't actually remember
what I was thinking at the time, but it seems plausible.)

    -- Sandro
Received on Thursday, 25 February 2010 23:25:49 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 25 February 2010 23:25:51 GMT