His comments were sent to the SWI-Prolog mailing list [1], and I'm
forwarding them with permission. His main point seems to be that he
doesn't see any value to RIF given all the similar efforts. Perhaps we
could address this with some more text where we explain our relationship
to, eg, KIF.
I'm hoping we'll get more technical comments from him in the future,
given his expertise in practical logic programming.
-- Sandro
[1] https://mailbox.iai.uni-bonn.de/mailman/public/swi-prolog/2008/000357.html
His initial quick comment:
Forwarded message 1
On 27 Aug 2008, at 9:23 am, Sandro Hawke wrote:
> Since the common core (intersection) is so small, we've decided to
> pick
> a few points of standardization, or "dialects". We're now done with
> the
> design of the first of these, which we call the "basic logic dialect"
> (BLD).
It's "so small" that it takes 35 pages to specify it?
I'm trying to think of any non-trivial set of rules that I would be
content to have treated either by Prolog or by a production system,
and coming up with nothing.
This looks to me like a classic case of filling a much needed gap.
I'm a little puzzled to see no reference to KIF,
especially given the existence of
http://www.w3.org/2000/07/hs78/KIF.html
Make that "I am astounded to see no reference".
Forwarded message 2
>
> On 27 Aug 2008, at 9:23 am, Sandro Hawke wrote:
> > Since the common core (intersection) is so small, we've decided to
> > pick
> > a few points of standardization, or "dialects". We're now done with
> > the
> > design of the first of these, which we call the "basic logic dialect"
> > (BLD).
> >
> > http://www.w3.org/TR/rif-bld/
>
> It's "so small" that it takes 35 pages to specify it?
It takes a lot of text to specify a language precisely. This document
also includes examples and a fairly long XML Schema which isn't really
meant for human consumption.
If you have suggestions for how to improve the specification, we'd like
to hear them.
> I'm trying to think of any non-trivial set of rules that I would be
> content to have treated either by Prolog or by a production system,
> and coming up with nothing.
How about data mapping rules? This intersection is datalog with
builtins, right?
Not very interesting stuff for a prolog programmer, but still useful for
some applications.
Also, as I say, we don't consider this intersection to be powerful
enough, so that's why we have dialects other than "Core", including this
one (BLD) which includes things like function terms. There are some
plans for adding things like (gasp) Negation.
> This looks to me like a classic case of filling a much needed gap.
Well, time will tell on that one. A number of us have put a lot of work
into this believing it will be useful. I hope it turns out to be.
> I'm a little puzzled to see no reference to KIF,
> especially given the existence of
> http://www.w3.org/2000/07/hs78/KIF.html
>
> Make that "I am astounded to see no reference".
>
I see your point. Would it help to have a section in the introduction
which listed related work and spent a paragraph relating RIF BLD to
each of them? Other than KIF, what would you suggest is important?
(Obvously, Prolog would be good to list in such a section. I'm not sure
which versions/references to make. I haven't personally followed the
work on ISO Prolog, being happy to just use SWI Prolog. I suspect some
others in the group know more than I do on this.)
-- Sandro
Forwarded message 3
Whoops. I wasn't looking at enough.
According to http://www.w3.org/TR/2008/WD-rif-ucr-20080730/
"RIF is designed as a family of RIF dialects."
There are *separate* RIF dialects for Horn clauses and
production rules.
On 27 Aug 2008, at 4:08 pm, Sandro Hawke wrote:
>> I'm trying to think of any non-trivial set of rules that I would be
>> content to have treated either by Prolog or by a production system,
>> and coming up with nothing.
>
> How about data mapping rules? This intersection is datalog with
> builtins, right?
Production rules work by making changes to working memory.
To quote something I'm sure you can find on the web:
"Rules are different from the conditional operation ‘if p then q’.
Rules are telling you to do something, rather than what logically
follows."
The left hand side of a production rule is often non-atomic, and
may assert new facts, remove old facts, modify properties, print stuff
&c.
>> This looks to me like a classic case of filling a much needed gap.
>
> Well, time will tell on that one. A number of us have put a lot of
> work
> into this believing it will be useful. I hope it turns out to be.
We already *have* KIF and SPARQL. Why do we need, not another
'knowledge interchange format', but another family of dialects
of such things?
>
>
>> I'm a little puzzled to see no reference to KIF,
>> especially given the existence of
>> http://www.w3.org/2000/07/hs78/KIF.html
>>
>> Make that "I am astounded to see no reference".
>>
>
> I see your point. Would it help to have a section in the introduction
> which listed related work and spent a paragraph relating RIF BLD to
> each of them? Other than KIF, what would you suggest is important?
The "mapping between RIF-BLD and KIF" information doesn't have to be
in the RIF-BLD specification, but it should *exist* and the RIF-BLD
specification should point to it and explain briefly why KIF won't do.
The other really obvious candidate is SPARQL. According to
http://blogs.zdnet.com/web2explorer/?p=430
``Tim Berners-Lee went so far as to suggest that;
"Trying to use the Semantic Web without SPARQL is like trying
to use a relational database without SQL."''
(That may have been a joke. Almost all the alternatives to SQL
are much easier to use.)
The "mapping between RIF-BLD and SPARQL" information doesn't have
to be in the RIF-BLD specification, but it should *exist* and the
RIF-BLD specification should point to it and explain briefly why
SPARQL won't do.
> (Obvously, Prolog would be good to list in such a section. I'm not
> sure
> which versions/references to make. I haven't personally followed the
> work on ISO Prolog, being happy to just use SWI Prolog. I suspect
> some
> others in the group know more than I do on this.)
I surely can't be the only person in this list who remembers the
Peirce project? The international Conceptual Graphs project? The
one that RDF owes so much to? There is a web site,
http://conceptualgraphs.org/
in which we read
"There is a proposed standard, nearing its final stages, for the
Conceptual Graphs Interchange Format (CGIF). This standard is being
developed in conjunction with the ISO Common Logic Project, which
seeks to standardize a form of logic for knowledge interchange,
and includes three syntaxes for Common Logic, one of which is CGIF
in Annex B. Comments and suggestions on the entire standard are
welcome; see the web site for more details."
The words "ISO Common Logic Project" are a link.
ISO standard 24707 was published in October 2007,
but by following that link you get one free copy.
I think an ISO standard for logic interchange *has* to
be cited by the RIF specifications. Especially given
its requirement
"5.1.3 Common Logic should be easy and natural for use on the Web".
It's there, it's clear, it's free (one copy for personal use),
and it was designed to be web-friendly. Why do we need RIF as well?
In a later private message he included this bit which is essentially an
addendum to that:
> It may be worth noting that the ISO "Common Logic" standard
> "defines an *abstract* syntax and an associated model-theoretic
> semantics
> for a specific extension of first-order logic", so it looks very much as
> though a good way of specifying RIF would be by mapping it to that
> abstract syntax (and thus getting the associated semantics for free).
> CL has three concrete syntaxes:
> Annex A: CLIF, historically derived from KIF.
> Annex B: CGIF, a version of Conceptual Graphs.
> Annex C: XCL, an application of XML.
> There is clearly room for more notations in this framework.