- From: Gary Hallmark <gary.hallmark@oracle.com>
- Date: Thu, 14 Feb 2008 17:06:20 -0800
- To: W3C RIF WG <public-rif-wg@w3.org>
- Message-ID: <47B4E58C.70702@oracle.com>
This covers approx. the first half of the spec, up to but not including
2.2.
Hopefully I'll be able to finish tomorrow (and it won't invalidate the
following :-)
General comment: in the wiki-tr version, most of the links are broken, I
think because they are relative and thus link to, e.g.,
http://burns.w3.org/2005/rules/wg/wiki/CamelCase
The comments below are organized by section number.
1.
One thing to add to the overview is what kind of semantics PRD will have.
1.2.
RIF-PRD doesn't strictly extend RIF-BLD condition language (e.g. no
logical functions)
1.2.2
I don't know what compatibility of PRD and BLD means. Presumably there
is some common core. I think this core will be small and simple enough
that signatures does not come into play. The less said about
signatures, the better.
The terms "individual" and "constant" sometimes seem to be used
interchangeably, but really "object" is meant for individual..
"Individual" should be defined (or use object, which is probably more
familiar to PR folk)
If we do say something about signatures, I think "However, dialects
extending RIF-BLD will be allowed" should be "However, dialects
extending RIF-PRD will be allowed".
1.2.3.
BLD has no structure diagrams and XML is derived from the presentation
syntax. Why diverge here?
1.3.1
This looks like another "stylistic" divergence from BLD that needs to be
reconciled.
[ and ] are used to form groups -- I think you need to escape the [ and
] because it renders as a hyperlink
2.
[ RIF-Core ] should be a hyperlink, but it isn't.
2.1.
In the diagram, some lines that cross at right angles connect, and some
don't. This is confusing.
if PRD and BLD could agree on how to represent the syntax, it would be
easier to verify (refute) the assertion that PRD's condition language
extends BLD's. It would also avoid repetition.
To the extent that PRD conditions are a superset of BLD's, then we
should just describe the extensions (naf, aggregation) and not repeat
the BLD descriptions, just point to BLD. E.g., BLD recently renamed
ATOMIC to COMPOUND. Because we have repeated descriptions and syntax,
we have many places to update in PRD.
2.1.1.
In preventing logical functions (Uniterm TERMs), have we also prevented
nested frames (Frame TERMS)? That's not good...
2.1.1.1.
exactly the same as BLD, right?
2.1.1.2.
I think ..--.. is a valid NMTOKEN, so I'm not sure this restriction
helps much.
I don't think ? is legal in an NMTOKEN (but since the spec uses hex
chars, I didn't exhaustively check)
2.1.1.3.
builtin function, evaluated function, or fixed interpretation function,
... need consistent terminology
Isn't the syntax 'Builtin(' Uniterm ')'
The syntax and semantics should be exactly the same as BLD.
Why is the op a TERM rather than a Const?
2.1.2.2.
consistent terms: builtin, evaluated, or fixed interpretation relation
I prefer Const op only.
links are broken, e.g. [X F&O]
not defining behavior when args are out of domain hinders interoperability
2.1.2.3.
most PR systems have builtin equality (sides must be bound) and builtin
assignment (in actions). This "logical equals" is something more.
2.1.2.4.
object and class makes more sense to me, too.
My PR system has a builtin # predicate and a builtin "new" function that
takes a (constant) class as an argument and returns a new object. This
"logical #" is something more.
2.1.2.5.
My PR system has a builtin ## predicate and a builtin class declaration
function that takes a (constant) class as an argument and returns a new
subclass. This "logical ##" is something more.
2.1.2.6.
slotKey might be a case where a Uniterm TERM makes sense, if it can
represent a frame "method".
I don't think the syntax diagram in 2.1 allows nested frames (disagrees
with the presentation syntax here)
2.1.3.4.
My PR system is forward chaining. It doesn't prove anything. The
informal semantics is simply that its truth value is the opposite of the
truth value of its CONDITION.
according the syntax, there can be no empty NAF.
2.1.3.5.
is this needed in addition to 2.1.4.2.?
2.1.4.
I suspect that aggregation is at least as important in logic dialects as
in production rules. That is because logic based languages are
frequently used for querying, and querying frequently uses aggregation.
Consider SQL and, to a lesser extent, prolog.
I would rather wait a bit and work to make sure we don't diverge too
much here. I find the linking of aggregation and quantification
confusing. I guess a SUM doesn't exist if there isn't anything to sum,
but the COUNT exists and is zero if there isn't anything to count. But
maybe your intent was simply to reuse the <declare>. May Aggregation
should be a QUANTIFICATION? (I suspect my questions are adequately
reflecting my confusion :-)
--
Oracle <http://www.oracle.com>
Gary Hallmark | Architect | +1.503.525.8043
Oracle Server Technologies
1211 SW 5th Avenue, Suite 800
Portland, OR 97204
Received on Friday, 15 February 2008 01:19:31 UTC