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

I agree with Michael and Dave that frames and #/## go hand in hand.
However, instead of Dave's suggestion:

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

I would suggest defining a BLD profile, BLD-OO:

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

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

Also, since BLD (with OO) is mostly specified, I would rather keep it in
phase 1. Defining BLD-OO is then much simpler (as turned out to be with Core).

Regards,
Igor

Dave Reynolds wrote:
> 
> 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

Received on Tuesday, 11 December 2007 14:12:04 UTC