Re: [PRD] New version of RIF-PRD on the wiki


(all the following is without my chair's hat, of course; some of it is 
even with only my "tÍte de lard" -lardhead?- on; never mind anything I 
say or write in that mode :-)

Michael Kifer wrote:

> This is not an exhaustive review of PRD, but a list of comments on things
> that I managed to spot.

Thanx, Michael. All comments, exhaustive or not, help.

>    There are numerous references to "informal" semantics, but no actual
>    semantics.
>    There is also a section, 1/2 page long, titled "Operational Semantics",
>    but it contains neither semantics nor is it operational :-)

I knew that our minds were made quite differently, but I did not think 
it would go as far as not counting pages the same way: I have 15 pages 
under three different "Operational Semantics" sections...


Are you sure you looked at the latest version?

Re whether these pages contain semantics and are operational, I do not 
know: I propose to call them "blue globobglumol" instead, to avoid any 
confusion with real semantics. I will add an explanation in the 
conformance section (to be written) to the effect that, "to allow 
meaningful interchange, implementation must conform to the RIF-PRD blue 

(Of course, I am joking: what did you think :-)

> 2. There is reference to Naf as if this is not controvercial in PR.
>    First, most PR systems, including ILOG (AFAIK), Jess, Drools, and
>    whatnot, DO NOT USE NAF.  What they use is called "inflational negation"
>    - a thingie investigated by Kolaitis and Co.

I will read that paper. Thanx for the pointer.

I did not use "NAF" as the name for that construct in the first 
strawman, knowing that it would be controversial. I (mis)understood in 
Boston that Naf was ok.

>    In most PR systems, if you assume that something is false and keep deriving
>    things, you may later derive the very thing that you earlier assumed to
>    be false. So, the derivations based on that assumption are unfounded,
>    but the PR systems will happily plow ahead.

Hmmm. That is looking as PR systems as if they were logic engines, isn't 
it? A commonly held view is that a PR system may assume that something 
is false in a state of facts, and then produce another state of facts 
where it is not false anymore.

Things like that happen: e.g.
If you are not a gold member in your preferred frequent flyer programme 
then fly 60,000 miles
If you have flown 60,000 miles, then you are a gold member

>    However, there are smarter PR systems. For instance, the Haley engine will
>    reconsider its earlier decision and will undo unfounded derivations.
>    This is not based on any model theory, but it feels "smarter". It is
>    also sound with respect to the well-founded semantics (if no delete
>    actions in the head).

You are refering to the truth maintenance feature found in most of the 
standard PR systems, right? Yes, we may want to consider that for PRD. 
See reply to Gary's comments [1], section 3.


>    What I am driving at is that the inclusion of the inflationary negation
>    into the core PR dialect is a bad idea, as it precludes other
>    (&semantically better) engines to join.

Ok. But, on the other hand, who will care to implement PRD without negation?

>    You might say that Kolaitis & Papadimitriou will not do things that make
>    no sense, but one point of their paper was to find conditions
>    when inflationary negation does not run into the problems that many
>    production engines run into.

Ok. As I said, I will read the paper.

> 3. The doc introduces ExtTerms, but keeps Uniterms "for compatibility".
>    Not clear why  a new kind of terms is needed and what "compatibility"
>    here means.

I am confused: aren't ExtTerm in BLD as well (under that name or another)?

> 4. Universal quantification.
>    You mean in the rule body, right? I wonder what that means in PR.
>    You cannot get away with "informal semantics" here.

No, I mean universal quantification of rule variables. I do not think I 
tried to get away with informal semantics anywhere: the idea of adding a 
short "informal semantics" section when describing the syntax was 
suggested in Boston, and I (mis)understood that it made consensus, there.

>    If you mean that the rules themselves are universally quantified, then
>    this has no meaning for PR, AFAIK.

Do you mean that the semantics described in section is flawed, 
or that it does not work for PR system, or something else again?

>    The following statement, apart from being self-contradictory, seems to
>    indicate that you mean the latter option, which has no meaning.


>        [...]
>    Then, in the Rules section, you say:
>        The Forall construct is used to represent universally quantified
>        conditional statements and rules.
>    That is, forall can occur in conditions. This requires serious explaining.

Oh! Ok. That is only my command of the english language that is flawed, 
then :-)

With conditional statements, I meant if-then statements, not conditions. 
Actually, I should probably have written only that "the Forall construct 
is used to represend universally quantified rules". I will check why I 
wrote it the way I wrote it instead, and propose another, less 
ambiguous, wording.

> 5. Aggregation.
>    It is understandable that you want to rush something useful into the
>    specification, but it is better to fix numerous problems with the core
>    language of PRD first. 
>    When it comes to aggregation, we might want to use the same concepts for
>    the logic rules and for PRD. One important issue in aggregation, 
>    is grouping-by, and this needs to be carefully defined.
>    Your "informal semantics" for that is really badly explained. It does
>    raise even to the level of an informal description, but in this matter
>    "informal" is not even good enough.

Yep. That's on purpose. Experimenting with how bad I can write 
explanations before your head explodes.

Beside that: any constructive suggestions?

> 6. Const ::= LITERAL '^^' TYPE [ '@' LANGUAGE_ID ]
>    diverges from BLD.

Sorry. I will check how it is in BLD and correct that. It was in the BLD 
working version when I copy/pasted it from there.

> 7. You do not need to say anything about signatures, since BLD does not
>    have them. If you work out a framework for PR dialects, like FLD, then
>    you might want to talk about signatures there, but probably not, and I
>    doubt that they will appear explicitly in any concrete dialect.

Ok. I was not sure whether it was needed for compatibility with Core.

> 8. The section on actions is very tentative, so I will not comment much,
>    but it seems that the action of updating is ill-defined.

Agreed. I propose that PRD should not have it.

> 9. In the compatibility section, you say:
>        Based on Fitting's paper on fixpoint semantics of rule language, it
>        should be easy that the result set of RIF-Core rules has the same
>        semantics as the original set of RIF-PRD rules;
>    This is true, but has nothing to do with Fitting's paper. You probably
>    meant Kowalski & van Emden.

You mean I wrote something that was true? Ok, I was wrong, but, however 
inadvertantly, I wrote something true... Wow! I cannot believe it!


You are right: I wrote "Fitting" because I had fixpoint semantics in 
mind, but I meant Vianu's paper titled "Rule-based languages".



Received on Tuesday, 19 February 2008 15:31:08 UTC