- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Thu, 14 Aug 2008 15:45:57 -0400
- To: Gary Hallmark <gary.hallmark@oracle.com>
- Cc: RIF WG <public-rif-wg@w3.org>
Gary,
sorry for not being clear. You can NEVER deskolemize into a valid BLD.
For instance,
Forall X,Y p(X,Y) :- q(f(X,Y))
is deskolemized into
Forall X,Y Exists Z p(X,Y) :- q(Z).
Note that this is NOT the same as the following valid BLD:
Forall X,Y p(X,Y) :- Exists Z q(Z).
The latter is equivalent to
Forall X,Y,Z p(X,Y) :- q(Z).
Deskolemization always results into an existential in the head, which is not
legal in BLD.
--michael
On Thu, 14 Aug 2008 10:03:56 -0700
Gary Hallmark <gary.hallmark@oracle.com> wrote:
>
> Ok, if I can ask one last thing in this thread: could you please comment
> on the following:
>
> PROPOSAL
>
> PRD supports logical functions with the following restriction:
>
> It must be possible to deskolemize each logical function f into an
> existentially quantified variable ?v such that either:
> a. the resulting syntax is legal BLD/PRD, i.e., f occurs only in the
> body of a single rule (in BLD/PRD, Exists ?v may appear only in the body
> of a rule), or
> b. the original syntax "matches" And(f(...)#T f(...)[...]) :- ... (i.e.
> a skolemized existential in the head used for object creation)
>
> If a PRD translator encounters a logical function which does not obey
> the restriction, then it SHOULD/MUST raise an error.
>
> Michael Kifer wrote:
> > Gary,
> > it looks like we are loosing focus. You asked:
> >
> > >> Can you give an example of a ruleset with a logical function that occurs
> > >> only the head or the body (not both) of a single rule but is not a
> > >> skolem function (i.e. cannot be replaced with an existentially
> > >> quantified variable)?
> >
> > and I gave you an example. If you wanted to ask something else, then please do
> > so :-)
> >
> > If you are thinking of a case when there is **only one** function per rule then
> > it can always be deskolemized.
> >
> > In any case, the point I raised was that Skolem or not Skolem we run into a
> > possible non-termination if we allow that (even with one function).
> >
> > I have nothing against your desire to make Core into an intersection. I just
> > pointed out that this desire clashes with some other views that were expressed
> > in the telecon (people wanted termination).
> >
> >
> > --michael
> >
> >
> > On Wed, 13 Aug 2008 16:14:53 -0700
> > Gary Hallmark <gary.hallmark@oracle.com> wrote:
> >
> >
> >> Michael Kifer wrote:
> >>
> >>> On Wed, 13 Aug 2008 13:47:57 -0700
> >>> Gary Hallmark <gary.hallmark@oracle.com> wrote:
> >>>
> >>>
> >>>
> >>>> Can you give an example of a ruleset with a logical function that occurs
> >>>> only the head or the body (not both) of a single rule but is not a
> >>>> skolem function (i.e. cannot be replaced with an existentially
> >>>> quantified variable)?
> >>>>
> >>>>
> >>> my pint was that almost every function symbol can be treated as a
> >>> Skolem. Here is an example where it cannot be (I think):
> >>>
> >>> Forall X,Y,Z: p(f(X,Z),g(Y,Z)) :- q(X,Y,Z).
> >>>
> >>> If we deskolemize f then we get:
> >>>
> >>> Forall X,Z Exists V Forall Y: p(V,g(Y,Z)) :- q(X,Y,Z).
> >>>
> >>>
> >> I would not try to deskolemize f or g because they do not include all 3
> >> in-scope universally quantified variables as arguments. I would regard
> >> your rule as not in PRD, because neither can be deskolemized with my
> >> (probably too simple-minded) notion of skolem function.
> >>
> >> If we suppose the following rule instead:
> >>
> >> Forall X,Y,Z: p(f(X,Y,Z),g(X,Y,Z)) :- q(X,Y,Z).
> >>
> >> It can be deskolemized as
> >>
> >> Forall X,Y,Z Exists V,W: p(V,W) :- q(X,Y,Z).
> >>
> >> However, I would regard this as not in PRD either because V and W are in
> >> a head but are not in the object position of a classification (or frame)
> >>
> >>> Now, we cannot deskolemize g because the quantification prefix is linear.
> >>> We need to somewho have something like
> >>>
> >>> Forall Y,Z Exists W (that W is to replace f(Y,Z)), but we cannot squeeze that
> >>> Forall Y,Z Exists W into what we already have (Forall X,Z Exists V Forall Y)
> >>> without changing the meaning of the already deskolemized function f).
> >>>
> >>>
> >>>
> >>>> I was hoping to "support" skolem functions (but no other logical
> >>>> functions) in PRD by translating skolems in the head (only those that
> >>>> occur in the "object" position of a classification) to a call to the
> >>>> class constructor, and translating skolems in the body to an
> >>>> existentially quantified variable.
> >>>>
> >>>>
> >>> I think you also need to allow existentials in the object position in the
> >>> frames.
> >>>
> >> yes, but in that case there must also be the same existential in the
> >> object position of a classification so I know what class constructor to
> >> invoke to create the new object.
> >>
> >>> But in any case, you can construct non-terminating examples even with
> >>> just the classification unless further restrictions are placed.
> >>> I think it is getting too cumbersome. But if we do not limit ourselves to the
> >>> core (which some people want to have decidable -- I do not care personally)
> >>> then there is no problem.
> >>>
> >>>
> >> I suggested that Core be operationally defined as the intersection of
> >> real dialects (e.g. BLD and PRD and ??) -- but apparently there are
> >> those among us who want to define it "standalone" although I don't know
> >> why. My motivation here is to have the intersection of BLD and PRD as
> >> large as practically possible, and it would be good to include (simple)
> >> skolem functions so that rules that express object creation using skolem
> >> functions can be interchanged between production and derivation rule
> >> systems.
> >>
> >> It sounds like we agree that this should be possible.
> >>
> >>
> >>
> >>
>
>
Received on Thursday, 14 August 2008 19:46:45 UTC