- From: Mark Proctor <mproctor@redhat.com>
- Date: Tue, 03 Aug 2010 11:01:30 +0100
- To: Christian De Sainte Marie <csma@fr.ibm.com>
- CC: kifer@cs.sunysb.edu, public-rif-wg@w3.org, public-rif-wg-request@w3.org
- Message-ID: <4C57E8FA.5030606@redhat.com>
On 20/04/2010 10:52, Christian De Sainte Marie wrote:
>
> (All of the following is with my PRD editor's hat; none of it wit hmy
> chair's hat)
> -----------------------
> Hi Michael,
>
> Thanx for your feedback. I am not surprised that you could not make
> sense of what I wrote: that is not unusual :-)
>
> For very good reasons, no doubt about that!
>
> But let us not throw away the baby with the bath water, and see if
> there is something we can do to improve both the form and the
> substance of this draft.
>
> Michael Kifer wrote on 20/04/2010 02:35:45:
> >
> > Your proposal [2]'s motivation/intro is completely disconnected from
> your
> > proposed semantics.
> > Worse, I had really hard time parsing your introduction and the
> > desiderata, and
> > some aspects of your desiderata indicate that what you are trying
> todo cannot
> > be given a model-theoretic semantics the way you have attempted.
>
> Ok, forget the introduction (I almost sent the draft without one:
> maybe that is what I should have done :-)
>
> What about the remainder of the document? Does the semantics make
> sense, or not even that (not that I would be surprised if it did not,
> mind you: as you know, I was never quite comfortable with that kind of
> stuff)?
>
> > I was trying to come up with a list of questions to you, but then I
> discovered
> > that I have a question about almost every sentence in you
> introduction because
> > most are extremely vague.
>
> Yep. We seem to speak different languages, definitely :-)
>
> Anyway, let me try to clarify.
>
> The main point is that the attributes-value pairs that are associated
> to a frame object are defined logically (by the rules), whereas the
> attributes that are associated with a program object are defined
> externally [1]; and that definition is part of the definition of a
> class ("program object" is the term I use in the draft as shorthand
> for "objects as we use them in object-oriented programming languages").
>
> As a consequence, a program object must be a member of a class, it
> must be associated with a value for each of the attribute defined for
> its class, and it cannot be associated with a value for an attribute
> that is not defined for its class.
>
> That is what I tried to formalize in making I<FV> a mapping from Dind
> to *partial* functions from Dind to Dind, with the domain of the
> function depending on the class. Is that what does not make sense in
> my attempt to give a model-theoretic semantics to the construct I
> propose?
>
> Another point is, indeed, that the (external) definition of a class
> also defines the cardinality and type of each of the attributes. That
> one is simplified, in my draft, by considering only single valued
> attributes, since this is, practically, the case in most of the OO
> languages; and by leaving the type out all together.
>
> The consequence of single valued attributes combined with objects
> being required to have always a value assigned to each of their
> attributes is that the (operational) semantics of asserting a value
> for an attribute (in PRD) is to replace the existing value, not to add
> a value (as it is with frames).
>
> One motivation for my proposal is that many widely used PR languages
> need that operation. The main motivation, however, is that frames
> cannot be generally translated into objects (e.g. Java objects), which
> makes a frame-based RIF difficult to use with object-oriented rule
> languages (at least PR languages).
>
> [1] At some point, eons ago, you wanted to have external frames, in
> RIF, and I did not understand what you were talking about (see, the
> relation is symmetrical :-). I realize, now, that it may have been
> related to what I am trying to do here (or maybe not...).
>
> > [...] it seems that you are talking about the simple mechanism of
> > cardinality constraints, which I proposed to add to BLD quite a
> while ago, but
> > nobody was interested. [...]
>
> I understand that program objects are only a specialization of frame
> objects, and that we could, therefore, do what I propose with
> specializing the existing frames.
>
> But that would not be much different from adding a whole new
> construct, and a new construct allows us to handle those field values
> as terms to be used in arbitrary formulas (whereas, with a frame, we
> have to introduce a dummy variable to bind to the frame's value if we
> want to use it in other formulas, since frames are formulas).
+1 to being able to do constraints without having to do bindings:
Person( age == 30)
instead of:
p : Person()
p.age == 30
Mark
>
> So, a third motivation for my proposal was to add that alternative to
> the way we can handle the values of objects' attributes; knowing that
> that alternative is esp. convenient for OO rule languages.
>
> And, then, of course, there is the questions of methods, that can be
> handled easily with the new construct.
>
> > I also have a procedural question here. I thought that we are in the
> > maintenance mode where we are trying to shepherd the existing
> documents to
> > the recommendation status. If we are going to introduce new
> documents and give
> > them our official blessing then there are much better worked out
> proposals,
> > which we could bless instead.
>
> Well, this is a tiny extension, and I think that it might be of
> interest to all dialects, not only PRD (which is why I propose it as
> an extension to Core).
>
> If the WG had not been extended, we would have discussed it within the
> PR community without W3C support; and we would have also discussed
> ways to give it an official status, if deemed useful (as I believe it
> is).
>
> But since we have another 6 months, I thought that it would be worth
> discussing.
>
> Cheers,
>
> Christian
>
> IBM
> 9 rue de Verdun
> 94253 - Gentilly cedex - FRANCE
> Tel. +33 1 49 08 35 00
> Fax +33 1 49 08 35 10
>
>
> Sauf indication contraire ci-dessus:/ Unless stated otherwise above:
> Compagnie IBM France
> Siege Social : 17 avenue de l'Europe, 92275 Bois-Colombes Cedex
> RCS Nanterre 552 118 465
> Forme Sociale : S.A.S.
> Capital Social : 611.451.766,20 EUR
> SIREN/SIRET : 552 118 465 03644
>
Received on Tuesday, 3 August 2010 10:02:19 UTC