16:02:21 RRSAgent has joined #rif 16:02:21 logging to http://www.w3.org/2008/11/24-rif-irc 16:02:39 zakim, this is rif 16:02:39 ok, DaveReynolds; that matches SW_RIF(CORE)11:00AM 16:03:13 LeoraMorgenstern has joined #rif 16:03:43 +LeoraMorgenstern 16:05:27 Michael_Kifer has joined #rif 16:05:44 +Gary 16:05:54 +kifer 16:06:16 Gary_Hallmark has joined #rif 16:07:15 ScribeNick: DaveReynolds 16:07:32 http://www.w3.org/2005/rules/wiki/index.php?title=Core&action=history 16:08:43 Michael: Shortened conformance section. 16:08:52 ... Things that were not defined before. 16:09:08 ... Issues 16:09:18 Dave; One by one. 16:09:30 Section 2.1: 16:10:18 ISSUE: Did we really decide that ## cannot occur at all or that it can occur only in the rule bodies? 16:10:18 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 . 16:11:16 Section 2.3 : 16:11:28 ISSUE: What was decided about external functions? 16:11:29 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 . 16:11:52 ROPOSED: Core should keep unrestricted equality and 16:11:54 external function and predicate calls in rule bodies and keep external 16:11:56 functions calls in rule heads. 16:12:27 s/ROPOSED: /PROPOSED: / 16:13:06 Michael: Will add to syntax. 16:13:31 But there is an issue with matching vs. unification. 16:13:44 Christian gave an example. 16:13:56 From: 16:14:03 ex:A(2) 16:14:09 ScribeNick: Harold 16:14:11 ex:A(?x) :- ex:A(?x - 1) 16:14:17 Infer: ex:A(3). 16:15:43 ex:A(?x) :- ex:A(External(?x - 1)) 16:16:01 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. 16:16:40 Because it goes strictly bottom-up. 16:16:56 ex:A(?x) :- ex:A(?y), subtract(?y, 1, ?x) 16:17:08 So ?x has no value in the premise. 16:18:02 Gary: Translator could do some rewriting. 16:18:34 Michael: Can we do better than putting things into implementation notes? 16:19:35 ... Dave's rewriting would work. 16:19:50 ... But may not be obvious to readers when it can be done like that. 16:20:16 Dave: Using equality? 16:20:51 Michael: Maybe add an example about how to implement this stuff. 16:21:07 ... (Better than an implementation notes.) 16:21:22 Gary: Are there non-tractable cases? 16:21:43 Michael: Blow-up correlates with # of built-ins per rule. 16:22:05 Gary: Still have to make sure that built-ins have kinds of inverses. 16:22:46 Michael: Always replace it with an equation; then see if further predicates can be introduced. 16:22:50 ex:A(?x) :- ex:A(?y), ?y=?x-1 16:23:23 Dave: Could restrict syntax. 16:23:39 TERM = Constant | Variable and Equal ::= TERM '=' (TERM | 'External' '(' Atom ')' ) 16:24:09 ... simplify to implement these restrictions. 16:24:26 Michael/Dave: No strong preference. 16:24:47 Alternatives: 16:25:10 1) Unrestricted use of external functions. 16:25:22 2) Prohibit external functions. 16:25:45 3) Only allow external functions in equalities in the premises. 16:26:18 Gary: Tricky part to solve those equations. 16:26:29 Michael: Not allowed in PRD. 16:26:53 Gary: It's ok there, but: Translator need to do some work. 16:27:15 ... have to start of with a 'pattern'. 16:27:40 ... then have to refer to variables bound in the pattern. 16:27:56 ... Above first solve ?x, then ?y. 16:28:47 ... If just cater for min translation, then Core becomes too small to be interesting. 16:29:14 Michael: Well, alternative 3) could be interesting. 16:29:30 ... puts burdon on translator. 16:29:49 ... In PRD you can express this anyway. 16:30:38 ... In Prolog you cannot embed functions anyway but use 'is' primitive. 16:30:53 ... Most logic languages work like that. 16:32:42 Dave: We could update the EBNF a bit. 16:32:46 Gary: Yes. 16:32:54 Michael: Yes. 16:33:27 Gary: One for fwd, one for bwd chaining. 16:34:12 Michael: If there is no (inverse) function like "-", then the problem doesn't come up. 16:34:23 ... Hence not a big deal. 16:34:53 Gary: The translator gets x on one side, y on the other side, then rephrases that. 16:35:17 ... In preparation for production rules. 16:35:32 ... Can always do that. That's fine. 16:35:46 ... Rest is pretty trivial compared to that. 16:36:12 ... Service we're doing is setting things up in a convertible way. 16:36:48 Michael: OK, problem doesn't go away. 16:37:29 ... Same things happens even if we just use predicates. 16:37:44 ... Then it would be binding patterns (modes). 16:38:18 ... Real qu is if all built-ins can be inverted. 16:38:38 ... A kind of requirement on DTB. 16:38:46 ... Or, other solution can be found. 16:39:00 ... Maybe explain it in upcoming PRD telecon. 16:39:36 ... Fine with all 'solutions', except they are not complete solutions. 16:40:00 .Dave: Since we have no binding patterns, it's a syntactic problem. 16:40:24 ... not in BLD, not in PRD, ... 16:41:16 Michael: In some cases there may be nothing better than raising errors. 16:41:39 .... Totally diff engines cannot totally interoperate. 16:41:53 ... EVery lang. need to do some synt. analysis. 16:42:45 Dave: Explain reordering for each target language?\ 16:43:19 Michael: We can keep it as is and in worst case give errors if no synt. analysis. 16:44:17 Gary: Just as easily as we can do y = x-1 we could also do 1 = x-y. 16:44:58 Typically only one variable should be free, all others bound. 16:45:20 Gary: How powerful an equ solver do we need/want. 16:46:14 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. 16:47:30 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. 16:47:47 s/Dave;/Dave:/ 16:48:14 ... Different classes of dialects.. 16:48:32 Let's look at both versions of text/EBNF. 16:48:38 At the moment we have: 16:48:39 Then compare and decide. 16:48:40 TERM ::= IRIMETA? (Const | Var | 'External' '(' Atom ')' ) 16:48:46 Equal ::= TERM '=' TERM 16:49:35 So option three would be: 16:49:44 > TERM ::= IRIMETA? (Const | Var) 16:49:55 Equal ::= TERM '=' (TERM | 'External' '(' Atom ')' ) 16:51:38 If we could have External on EITHER side, then would be still symmetric. 16:52:26 Equal ::= Equal ::= TERM '=' (TERM | 'External' '(' Atom ')' ) | (TERM | 'External' '(' Atom ')' ) '=' TERM 16:52:51 s/Equal ::= Equal/Equal / 16:53:53 Dave: Will change EBNF to reflect this, Michael change the text correspondingly. 16:54:02 ... Eds note 16:54:24 Michael: Will put it in. 16:55:40 Section 4 16:55:57 Re: ISSUE: sub might not be allowed. This depends on the resolution of the issue 16:56:18 regarding the subclass relationship. 16:56:37 Dave: Should be easy. 16:57:31 Section 5.1: 16:58:11 "A subformula of a condition formula is called disjunctive subformula if it appears within a Disjunction. " 16:58:35 Leora: Looks clearer now. 16:58:44 Dave: Fixed two places. 16:59:02 Michael: Shortened issue I wrote. 16:59:36 ... What does "non-disjunctive atomic subformula" really mean? 16:59:44 Dave: Was defined earlier. 17:00:10 ... Using "surrounding disjunction", so withIN. 17:00:28 ... Relevant for Safeness condition. 17:00:49 Michael: Does not really say it. 17:01:11 Leora: Nomenclature is kind of odd. Use more descriptive term. 17:01:46 .... Then attach the "disj" there. Would not require so much preparatory definitions. 17:02:16 .... Should be readable sequentially without need for remembering too many techn terms. 17:02:48 Michael: Sounds almost as if someone changed their mind in the middle of the psi/phi sentence. 17:03:05 ... Original one had psi only at the end of sentence. 17:03:57 Dave: Maybe drop phi. Will check. Better phrasing. 17:04:17 .... This evening. 17:05:00 Michael: Also my work this evening. 17:05:15 When to consolidate both edits? 17:06:14 Michael: Would be fine with Dave's edits. 17:06:56 Everyone should say what should still be done before freeze. 17:08:22 Michael: Current section on PRD is very early, so we need eds note its REALLY preliminary. 17:09:40 rrsagent, make minutes public 17:09:40 I'm logging. I don't understand 'make minutes public', DaveReynolds. Try /msg RRSAgent help 17:09:43 -Gary 17:10:09 -kifer 17:10:10 -LeoraMorgenstern 17:10:40 rrsagent, draft minutes 17:10:40 I have made the request to generate http://www.w3.org/2008/11/24-rif-minutes.html DaveReynolds 17:10:52 rrsagenta, make minutes public 17:10:57 rrsagent, make minutes public 17:10:57 I'm logging. I don't understand 'make minutes public', DaveReynolds. Try /msg RRSAgent help 17:11:07 rrsagent, make log public 17:11:25 rrsagent, draft minutes 17:11:25 I have made the request to generate http://www.w3.org/2008/11/24-rif-minutes.html DaveReynolds 17:11:46 zakim, who was present? 17:11:46 I don't understand your question, DaveReynolds. 17:13:01 zakim, who is here? 17:13:14 On the phone I see DaveReynolds, Harold 17:13:15 On IRC I see Michael_Kifer, LeoraMorgenstern, RRSAgent, DaveReynolds, Harold, sandro, trackbot, Zakim 17:13:16 zakim, list attendees 17:13:16 As of this point the attendees have been Harold, LeoraMorgenstern, Gary, kifer, DaveReynolds 17:13:23 rrsagent, draft minutes 17:13:23 I have made the request to generate http://www.w3.org/2008/11/24-rif-minutes.html DaveReynolds 17:14:02 Chair: Harold 17:14:04 rrsagent, draft minutes 17:14:04 I have made the request to generate http://www.w3.org/2008/11/24-rif-minutes.html DaveReynolds 17:14:21 -DaveReynolds 17:14:25 -Harold 17:14:27 SW_RIF(CORE)11:00AM has ended 17:14:28 Attendees were Harold, LeoraMorgenstern, Gary, kifer, DaveReynolds