W3C

- DRAFT -

SV_MEETING_TITLE

24 Nov 2008

See also: IRC log

Attendees

Present
Harold, LeoraMorgenstern, Gary, kifer, DaveReynolds
Regrets
Chair
SV_MEETING_CHAIR
Scribe
DaveReynolds, Harold

Contents


 

 

<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.


.Dave: Since we have no binding patterns, it's a syntactic problem.
... not in BLD, not in PRD, ...

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

Summary of Action Items

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.133 (CVS log)
$Date: 2008/11/24 17:13:28 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
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]