Re: instead of "Pure Prolog" (H-Prolog and SH-Prolog ?)

> Sandro Hawke wrote:
> > >From WG discussions it seems like the right term is probably "Sequential
> > Horn Clauses with Prolog Syntax", 
> 
> What means for a clause to bew "sequential" or not to be "sequential"? A
> clause is a piece of text, and text is always "sequential", isn't it?
> 
> Are you not referring instead to how the clauses are processed? Eg to a
> proof calculus or proof method?

Yes, the naming is not perfect.  The word "Sequential" is in there to
indicate that the order of clauses and the order of atoms within clauses
are significant.   I'm not sure how significant they should be.

1.  Test case for answer ordering:

    Input ruleset (in SH-Prolog)

       x(a).
       x(b).

    Answers to query: x(X)

       X = a;
       X = b;
       no

    Answers must be in that order.

2.  Test case for looping

    Input ruleset

       foo.
       bar :- bar.
       bar :- foo.

    Query: bar

    In normal (SLD-Resolution) Prologs, that query does not terminate.
    In tabled Prologs like XSB, the answer is "yes".

So, I don't really know which kind of language SH-Prolog should be to be
a suitable, simple, early example for RIF.

Maybe we should have "SH-Prolog" which is like traditional Prologs on
the above tests, and "H-Prolog" in which order does not matter.
H-Prolog could be handled by XSB easily or re-written into depth-limited
rules for use in a normal Prolog engine and run with iterative
deepening.  (That might not have 100% correct semantics, though.)

Thoughts?

       -- Sandro

Received on Tuesday, 9 May 2006 20:11:50 UTC