See also: IRC log
<DaveReynolds> ScribeNick: DaveReynolds
<Harold> http://www.w3.org/2005/rules/wiki/index.php?title=Core&action=history
<Harold> Michael: Shortened conformance section.
<Harold> ... Things that were not defined before.
<Harold> ... Issues
<Harold> Dave; One by one.
<Harold> Section 2.1:
<Harold> ISSUE: Did we really decide that ## cannot occur at all or that it can occur only in the rule bodies?
<trackbot> Created ISSUE-84 - Did we really decide that ## cannot occur at all or that it can occur only in the rule bodies? ; please complete additional details at http://www.w3.org/2005/rules/wg/track/issues/84/edit .
<Harold> Section 2.3 :
<Harold> ISSUE: What was decided about external functions?
<trackbot> Created ISSUE-85 - What was decided about external functions? ; please complete additional details at http://www.w3.org/2005/rules/wg/track/issues/85/edit .
PROPOSED: Core should keep unrestricted equality and
external function and predicate calls in rule bodies and keep external
functions calls in rule heads.
<Harold> Michael: Will add to syntax.
<Harold> But there is an issue with matching vs. unification.
<Harold> Christian gave an example.
<Michael_Kifer> From:
<Michael_Kifer> ex:A(2)
<scribe> ScribeNick: Harold
<Michael_Kifer> ex:A(?x) :- ex:A(?x - 1)
<Michael_Kifer> Infer: ex:A(3).
ex: A(?x) :- ex:A(External(?x - 1))
<Michael_Kifer> No way a PRD implementation can pass that test case, as far as I can see, because, PRD does not allow binding ?x to 3, in that case.
Because it goes strictly bottom-up.
<DaveReynolds> ex:A(?x) :- ex:A(?y), subtract(?y, 1, ?x)
So ?x has no value in the premise.
Gary: Translator could do some rewriting.
Michael: Can we do better than
putting things into implementation notes?
... Dave's rewriting would work.
... But may not be obvious to readers when it can be done like
that.
Dave: Using equality?
Michael: Maybe add an example
about how to implement this stuff.
... (Better than an implementation notes.)
Gary: Are there non-tractable cases?
Michael: Blow-up correlates with # of built-ins per rule.
Gary: Still have to make sure that built-ins have kinds of inverses.
Michael: Always replace it with an equation; then see if further predicates can be introduced.
<Michael_Kifer> ex:A(?x) :- ex:A(?y), ?y=?x-1
Dave: Could restrict syntax.
<DaveReynolds> TERM = Constant | Variable and Equal ::= TERM '=' (TERM | 'External' '(' Atom ')' )
Dave: simplify to implement these restrictions.
Michael/Dave: No strong preference.
Alternatives:
1) Unrestricted use of external functions.
2) Prohibit external functions.
3) Only allow external functions in equalities in the premises.
Gary: Tricky part to solve those equations.
Michael: Not allowed in PRD.
Gary: It's ok there, but:
Translator need to do some work.
... have to start of with a 'pattern'.
... then have to refer to variables bound in the pattern.
... Above first solve ?x, then ?y.
... If just cater for min translation, then Core becomes too
small to be interesting.
Michael: Well, alternative 3)
could be interesting.
... puts burdon on translator.
... In PRD you can express this anyway.
... In Prolog you cannot embed functions anyway but use 'is'
primitive.
... Most logic languages work like that.
Dave: We could update the EBNF a bit.
Gary: Yes.
Michael: Yes.
Gary: One for fwd, one for bwd chaining.
Michael: If there is no (inverse)
function like "-", then the problem doesn't come up.
... Hence not a big deal.
Gary: The translator gets x on
one side, y on the other side, then rephrases that.
... In preparation for production rules.
... Can always do that. That's fine.
... Rest is pretty trivial compared to that.
... Service we're doing is setting things up in a convertible
way.
Michael: OK, problem doesn't go
away.
... Same things happens even if we just use predicates.
... Then it would be binding patterns (modes).
... Real qu is if all built-ins can be inverted.
... A kind of requirement on DTB.
... Or, other solution can be found.
... Maybe explain it in upcoming PRD telecon.
... Fine with all 'solutions', except they are not complete
solutions.
Michael: In some cases there may
be nothing better than raising errors.
... Totally diff engines cannot totally interoperate.
... EVery lang. need to do some synt. analysis.
Dave: Explain reordering for each target language?\
Michael: We can keep it as is and in worst case give errors if no synt. analysis.
Gary: Just as easily as we can do y = x-1 we could also do 1 = x-y.
Typically only one variable should be free, all others bound.
Gary: How powerful an equ solver do we need/want.
We need to keep in mind all things we want to add to Core will also need to make it to BLD (LC) and PRD.
Dave: Semantics of BLD is fine.
In practice you could not have a complete implementation. Same
for PRD. It's 'only' a matter of implementations.
... Different classes of dialects..
Let's look at both versions of text/EBNF.
<DaveReynolds> At the moment we have:
Then compare and decide.
<DaveReynolds> TERM ::= IRIMETA? (Const | Var | 'External' '(' Atom ')' )
<DaveReynolds> Equal ::= TERM '=' TERM
<DaveReynolds> So option three would be:
<DaveReynolds> > TERM ::= IRIMETA? (Const | Var)
<DaveReynolds> Equal ::= TERM '=' (TERM | 'External' '(' Atom ')' )
If we could have External on EITHER side, then would be still symmetric.
Equal ::= TERM '=' (TERM | 'External' '(' Atom ')' ) | (TERM | 'External' '(' Atom ')' ) '=' TERM
Dave: Will change EBNF to reflect
this, Michael change the text correspondingly.
... Eds note
Michael: Will put it in.
Section 4
Re: ISSUE: sub might not be allowed. This depends on the resolution of the issue
regarding the subclass relationship.
Dave: Should be easy.
Section 5.1:
"A subformula of a condition formula is called disjunctive subformula if it appears within a Disjunction. "
Leora: Looks clearer now.
Dave: Fixed two places.
Michael: Shortened issue I
wrote.
... What does "non-disjunctive atomic subformula" really
mean?
Dave: Was defined earlier.
... Using "surrounding disjunction", so withIN.
... Relevant for Safeness condition.
Michael: Does not really say it.
Leora: Nomenclature is kind of
odd. Use more descriptive term.
... Then attach the "disj" there. Would not require so much
preparatory definitions.
... Should be readable sequentially without need for
remembering too many techn terms.
Michael: Sounds almost as if
someone changed their mind in the middle of the psi/phi
sentence.
... Original one had psi only at the end of sentence.
Dave: Maybe drop phi. Will check.
Better phrasing.
... This evening.
Michael: Also my work this evening.
When to consolidate both edits?
Michael: Would be fine with Dave's edits.
Everyone should say what should still be done before freeze.
Michael: Current section on PRD is very early, so we need eds note its REALLY preliminary.
<DaveReynolds> rrsagenta, make minutes public
This is scribe.perl Revision: 1.133 of Date: 2008/01/18 18:48:51 Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/ Guessing input format: RRSAgent_Text_Format (score 1.00) Succeeded: s/ROPOSED: /PROPOSED: / Succeeded: s/Dave;/Dave:/ Succeeded: s/Equal ::= Equal/Equal / Found ScribeNick: DaveReynolds Found ScribeNick: Harold Inferring Scribes: DaveReynolds, Harold Scribes: DaveReynolds, Harold ScribeNicks: DaveReynolds, Harold WARNING: No "Topic:" lines found. Default Present: Harold, LeoraMorgenstern, Gary, kifer, DaveReynolds Present: Harold LeoraMorgenstern Gary kifer DaveReynolds WARNING: No meeting title found! You should specify the meeting title like this: <dbooth> Meeting: Weekly Baking Club Meeting WARNING: No meeting chair found! You should specify the meeting chair like this: <dbooth> Chair: dbooth Got date from IRC log name: 24 Nov 2008 Guessing minutes URL: http://www.w3.org/2008/11/24-rif-minutes.html People with action items: WARNING: No "Topic: ..." lines found! Resulting HTML may have an empty (invalid) <ol>...</ol>. Explanation: "Topic: ..." lines are used to indicate the start of new discussion topics or agenda items, such as: <dbooth> Topic: Review of Amy's report[End of scribe.perl diagnostic output]