Re: Reminder: pending discussion "membership" (pending discussion on ACTION-350)

Michael Kifer wrote:

> The reason for having # and ## is that if we introduced frames then we
> should complete the cycle and define the most basic object-oriented
> concepts as first class citizens (at the cost of only a few lines in the
> document). Namely, class membership and hierarchies.  This will allow to
> round-trip important classes of object-oriented rule-sets.
> 
> What was the reason to include frames if not to allow object-oriented
> round-tripping? After all, all these things are syntactic sugars. An
> alternative would be to define a bare-bones Datalog and let other people
> worry about embedding their languages into Datalog.

I think that is a good basis for reframing the discussion.

Apart from F-logic are there other object-oriented logic rule languages, 
and thus a case for RIF supporting inter-operation between them?  If the 
answer is yes then I suggest that should be a separate dialect which 
would include frames, #/## and presumably the domain/range declarations 
that Michael previously proposed. We would then have:

    Core  -->  BLD  -->  BLD + OO
       |
       `---->  PRD

Presumably BLD + OO is pretty much an F-Logic dialect. I suggest that 
this is a phase 2 dialect.

The question then is whether frames are needed in Core or in BLD or 
whether, given Michael's argument that it makes little sense to have 
them on their own, it would be better to remove them.

Currently frames are used as the basis of the RDF embedding. This is 
simply syntactic sugar and we could drop frames and introduce a three 
place predicate rif:frame(s, p, o) for the RDF embedding to use instead.

One question would then be what parts of the OO extension are needed in 
PRD. Does PRD need frames or would a simple predicate suffice?


As an aside I think this example highlights a problem we have with our 
linear notion of extension. The OO extension is just one example of a 
component which might be wanted in multiple dialects. An extensibility 
notion that is more like "mixins" than "extensions" might be better - 
but not in the remaining time!

Dave
-- 
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England

Received on Tuesday, 11 December 2007 11:18:44 UTC