Warning:
This wiki has been archived and is now read-only.

F2F9 Minutes

From RIF
Jump to: navigation, search

RIF Working Group Meeting Minutes, 21-22 February 2008

DRAFT. Currently Under Review

See also: IRC log day 1, IRC log day 2




Jeff Pan: JeffP has joined #rif
Chris Welty: Agenda: http://www.w3.org/2005/rules/wg/wiki/F2F9


(Scribe changed to Axel Polleres)

Christian de Sainte Marie: objective is finishing BLD

Gary Hallmark: GaryHallmark has joined #rif

... see agenda slides.

... next objective (if time) Core, PRD.

... agenda, see http://www.w3.org/2005/rules/wg/wiki/F2F9

Review of FLD+BLD reviews

Chris Welty: we start wih Igor's FLD review. http://lists.w3.org/Archives/Public/public-rif-wg/2008Feb/0048.html

Christian de Sainte Marie: XML serialization not present in the current draft. Do we want to publish without?

Harold Boley: I can easily add a paragraph.

Michael Kifer: in the next draft it will be extended.

Christian de Sainte Marie: maybe less critical, since we have XML in BLD.

... but we may get back to this in the extensibility discussion.

Sandro Hawke: the FLD document is not the right place, since this is only about logic dialects.

s/place,/place for the discussion of the XML syntax/ (failed)

Christian de Sainte Marie: comments on 2.0.2 alphabet ... done

... 2.0.4 Sigantures ... done.

... 2.0.5 ... done

Jeff Pan: JeffP has joined #rif

... 2.0.6 Symbol Spaces: some discussion about why we don't support all XML schema types.

Michael Kifer: some discussion at last f2f with jos.

Jos de Bruijn: we didn't discuss what "supports" means. the problem is that we haven't clear here what/how to extend the basic datatyes to the reader.

Dave Reynolds: DaveReynolds has joined #rif

Jos de Bruijn: suggest that we "support" all XML Schema types and "require" compliant engines to support a basic set.

Sandro Hawke: sandro_ has joined #rif

Sandro Hawke: (Can you type in your concern?)

Harold Boley: How do we cross-reference to other W3C specs in general in general and in this case in XML Schema?

s/in XML/to XML/ (failed)

Sandro Hawke: Uh oh, DaveReynolds....
Dave Reynolds: working on the phone line ... [Scribe assist by Hassan Aït-Kaci]
Sandro Hawke: DaveReynolds, us this one CONF1 for now.
Sandro Hawke: we're dialing now.

Jeff Pan: Some datatypes such as duration, entity are not realy "RDF-friendly"

s/realy/really/ (failed)

Chris Welty: How we came to our current list was that we wanted to suggest a core list for compliance and recommend support for all basic XML Schema types.

Jos de Bruijn: general confusion types that "RIF supports" vs. " are required to be supported by inference engines"

Dave Reynolds: Supporting an integer but not a decimal is vastly more likely!

Michael Kifer: e.g. an engine that doesn't understand integer, but decimal would be able to deal with integers.

Dave Reynolds: q+
Jeff Pan: ack DaveReynolds

Christian de Sainte Marie: instead of making this subtle difference, would it be easier to define in geeneral that consuming engines translate datatypes in to their datatypes which have the same semantics?

Dave Reynolds: that's the implementers' business, has nothing to do with RIF compliance/compatibility

... why should RIF in the spec separate what is in the engine and in the language. what is in the engine is irrelevant, if the engine has to take care of the translation.

(hope I got that more or less right, dave)

Sandro Hawke: so if you support short and somebody adds 50000+50000 you are outside short, but not if you internally translate it to integer.

... but if our error semantics is that it is undefined how you handle errors than it would be ok.

Dave Reynolds: if we have builtins for testing types (isShort) then it will change the semantics. [Scribe assist by Sandro Hawke]

Michael Kifer: maybe we should just delete the paragraph about what a RIF consumer engine is supposed to to about datatypes.

... the idea to put it in was to simplify the job of implementers

Jos de Bruijn: we don't really want to restrict the datatypes you are allowed to use, but we didn't want to impose all engine with the rif stamp to have to support all.

Christian de Sainte Marie: want to keep the paragraph.

Jos de Bruijn: also want to keep it.

Michael Kifer: RIF systems still have to support all the built-ins.

Dave Reynolds: -1 to keeping paragraph, see my review

Jos de Bruijn: the problem at the moment is the (editorial) use of the words supports, compliant, consuming, etc. needs to be clarified.

MiachelK (guest): we could spell out subtypes.

Christian de Sainte Marie: remove "compliant" but only distinguish "producing" and "consuming" engines.

Michael Kifer: possibly break out datatypes in a separate document, at least keep the discussion on datatypes in one place... now scattered.

harold/michaelK: could be part of builtins document.

sandro/chrisw: Core document would make sense.

Chris Welty: paula was currently editor of builtins, but she is leaving the WG.

Harold Boley: I took over.

Sandro Hawke: just say "RIF does not define semantics for xsd:Duration" [Scribe assist by Sandro Hawke]

Axel Polleres: what should now be part of core and what of extensibility?

PROPOSED: Move text on datatypes and symbol spaces to Core

Dave Reynolds: What is Core? What happened to Arch?

PROPOSED: Move text on datatypes and symbol spaces to Core

Chris Welty: What is Arch? (laugh) [Scribe assist by Sandro Hawke]
Dave Reynolds: Arch = Architecture, which was originally precisely were the menu of builtins, datatypes, core XML syntax etc were going to be defined :-)
Dave Reynolds: s/were/where/ (failed)

(some discussions on how to resize font on projector... ;-) )

Chris Welty: FLD covers a good part of what I understood was "arch"

... can we extend it?

Michael Kifer: easier to write something more specific.

Christian de Sainte Marie: The reason to have datatypes and builtins in Core, not Arch, is because it's a specific thing that has to be implemented in every dialect. [Scribe assist by Sandro Hawke]

Chris Welty: is there an active Core document.

Axel Polleres: no, because we stil discuss what should be in there.

s/discuss/need to discuss/ (failed)

Sandro Hawke: We need to clarify what core is actually gonna be.

Sandro Hawke: (correction) We're getting a sense of what Core is actually going to be. BLD minus function terms, equality, and a few other things. [Scribe assist by Sandro Hawke]
Axel Polleres: What of datatypes are Core, and what are extensibility? [Scribe assist by Sandro Hawke]
Christian de Sainte Marie: The part of Datatypes that goes into Core is NOT the symbol spaces stuff (that's FLD), but the LIST OF DATATYPES goes into Core. [Scribe assist by Sandro Hawke]

Christian de Sainte Marie: definition od symbol spaces, datatypes in general belong to FLD.

Jos de Bruijn: but we don't want Core dependent on FLD! [Scribe assist by Sandro Hawke]

... core supported datatypes in Core.

Michael Kifer: nothing depends on FLD, we have XML datatypes, etc.

Jeff Pan: q?

Christian de Sainte Marie: how does putting the list of datatypes in Core make core dependent on FLD.

... and why is it a problem to depend on FLD, core IS a logic dialect.

Axel Polleres: in AnswerSet programming, they are thinking about an exchange format, I suggested they use RIF -- they said it was too complicated. [Scribe assist by Sandro Hawke]
Chris Welty: ACTION Axel! [Scribe assist by Sandro Hawke]
Axel Polleres: Harold and I were thinking about it. [Scribe assist by Sandro Hawke]
Axel Polleres: And it doesn't make sense to do it until the spec settles down. [Scribe assist by Sandro Hawke]
Axel Polleres: This community knows their semantics, they want to see our XML syntax. [Scribe assist by Sandro Hawke]
Christian de Sainte Marie: This is like the PRD draft. They syntax is described so that people who already know their semantics can just use it. [Scribe assist by Sandro Hawke]
Sandro Hawke: csma; This is different from FLD. This is how you present the syntax of a specific dialect.
Christian de Sainte Marie: The way the syntax is currently presented in BLD is probably a problem for the language developer, just trying to build a translator. [Scribe assist by Sandro Hawke]
Michael Kifer: I suspect the AnswerSet critique refers to the old version of BLD that was much more complex. [Scribe assist by Sandro Hawke]

Hassan Aït-Kaci: the documents are still too dense, we need some introductory document(s)

Sandro Hawke: not our job to explain it... others can write tutorials.

Gary Hallmark: testcases document would do a great part of that job already.

Sandro Hawke: (it's okay for us to explain it -- but it's not a requirement on us.) [Scribe assist by Sandro Hawke]

Chris Welty: it is more a question of bandwidth

Michael Kifer: we definitly need an entry-point document.

Adrian Paschke: testcases + XML content models of RIF + use cases showing examples

... a tutorial (as planned by harold,axel,me) is separate from that.

Adrian Paschke: add syntax to the use cases.

Christian de Sainte Marie: the style of syntax presentation at the moment is not the style which developers are used to.

Adrian Paschke: syntax can be writen as reference menu
Adrian Paschke: like a glossary
Dave Reynolds: The current syntax is not that precise, there are many boring details left out. A developer needs clearer presentation, with clearer and more comprehensive examples and test cases.

(No activity for 13 minutes)

(No activity for 17 minutes)

Sandro Hawke: DaveReynolds, tell us when you need us to call in again.
Scribe Error: GaryHallmark [Scribe assist by Gary Hallmark]

(Scribe changed to Gary Hallmark)

FLD/BLD reviews, continued

issue (guest): RIF dialect can introduce new datatypes

spec should be clear that list of datatypes can be extended

Chris Welty: dialects must support AT LEAST the listed datatypes

Christian de Sainte Marie: come back to this issue when discussing extensibility

Chris Welty: what is a closed rif formula (in entailment section 3.0.7)?

Michael Kifer: no free vars

... entailment defined when no free vars (or implicitly universally quantified)

in BLD it is an error to have free variables (there is a resolution about this)

Sandro Hawke: "The free variables in the rule can be optionally quantified with Forall outside of the rule (i.e., Forall ?vars (head :- body)). "
Adrian Paschke: but we can hardly restrict the BLD syntax not to contain free variables

action on mkifer to forbid free variables

ACTION: Michael to make sure that BLD requires explicit quantification

ACTION: Mkifer to make sure that BLD requires explicit quantification

trackbot-ng: Created Action 425 - Make sure that BLD requires explicit quantification [on Michael Kifer - due 2008-02-28].

(No activity for 6 minutes)

ACTION: Mkifer to list FLD datatype subtypes explicity

trackbot-ng: Created Action 426 - List FLD datatype subtypes explicity [on Michael Kifer - due 2008-02-28].

rulesets should be explained earlier in spec because it is used to define scope of rif:local

ACTION: Mkifer to make sure "ruleset" is used consistently in FLD/BLD

trackbot-ng: Created Action 427 - Make sure \"ruleset\" is used consistently in FLD/BLD [on Michael Kifer - due 2008-02-28].

define RIF-compliant processor

Christian de Sainte Marie: define compliant consumer/producer

Hassan Aït-Kaci: compliance is too strong a term

Sandro Hawke: we do mean compliance

Christian de Sainte Marie: "inference engine" is out of scope of definition

Sandro Hawke: need something specific like inference engine to define test cases

Christian de Sainte Marie: should focus on translation, not processing

Michael Kifer: compliance should go elsewhere

Jos de Bruijn: define compliance at dialect level

Michael Kifer: need to define generally what compliance means

... but it seems out of place in FLD currently

Michael Kifer: needs to be in Core

Chris Welty: realistically, will we have other docs?

Axel Polleres: current docs: FLD, BLD, SWC, UCR, PRD, (Core?). what else?

... last call for BLD in 2-3 months

Michael Kifer: move datatypes, builtins, and compliance to another doc

Chris Welty: symbol spaces stays in FLD

Michael Kifer: can move symbol spaces too

PROPOSED: Create a new Document with provisional titles "Data Types and Builtins"

PROPOSED: Create a new Document with provisional titles "Data Types and Builtins"

PROPOSED: Create a new Document with provisional title "Data Types and Builtins" to contain elements common to all dialects

PROPOSED: Create a new Document with provisional title "RIF Vulgar" to contain elements common to all dialects

much discusson about possible title and content, including "RIF Core" (again!)

PROPOSED: Create a new Document with provisional title "Data Types and Builtins" to contain elements common to all dialects

PROPOSED: Create a new Document with provisional title "Data Types and Builtins" to contain elements common to all dialects with Harold and Axel as editors

Harold and Axel will edit the new document

RESOLVED: Create a new Document with provisional title "Data Types and Builtins" to contain elements common to all dialects with Harold and Axel as editors

ACTION: axel to create DT&B document by Friday

trackbot-ng: Created Action 428 - Create DT&B document by Friday [on Axel Polleres - due 2008-02-28].

ACTION: mkifer to remove DT&B content from FLD

trackbot-ng: Created Action 429 - Remove DT&B content from FLD [on Michael Kifer - due 2008-02-28].

Michael Kifer: producer, consumer, etc. should be defined in a common place

... also notion of dialects

... overall processing model

... need a guide (overview) of all the docs

Christian de Sainte Marie: no time to create many new docs

Harold Boley: will we publish UCR?

Sandro Hawke: can do last call on UCR

Michael Kifer: I can write a 1 or 2 page overview (guide)

Sandro Hawke: can take BLD to last call without overview info

... sort of OK not to understand, as long as audience doesn't misunderstand

Sandro Hawke: RIF Overview Document --- explaining why and how RIF is useful to people.
Christian de Sainte Marie: "A Common XML Serialization for Rule Languages" [Scribe assist by Sandro Hawke]
Sandro Hawke: Yes, it would be very useful to have a document which technical people can be pointed to, to convince them why they should use RIF, and point them to the details they need. [Scribe assist by Sandro Hawke]

... sort of OK not to understand, as long as audience doesn't misunderstand

Chris Welty: ...continuing with DaveR's review: primitive data types will be fixed with new resolution
Sandro Hawke: No, but we can dial in DaveReynolds if you want.

BLD reviews

Jos de Bruijn: need single defn of

... BLD

Christian de Sainte Marie: specialization of BLD from FLD should be appendix

Michael Kifer: direct (standalone) spec should be normative

Sandro Hawke: both can be normative

PROPOSED: make "specialization of FLD" sections (of BLD) appendices

PROPOSED: make "specialization of FLD" sections (of BLD) appendices, with both normative

PROPOSED: make "specialization of FLD" sections (of BLD) appendices, leaving standalone sections in place, and making both normative

PROPOSED: make "specialization of FLD" sections (of BLD) appendices, leaving standalone sections in place, and making both standalone and specialization normative

Axel Polleres: example -- many people use RDF non-normative rule-based semantics. [Scribe assist by Sandro Hawke]

RESOLVED: make "specialization of FLD" sections (of BLD) appendices, leaving standalone sections in place, and making both normative

Chris Welty: correction ---

RESOLVED: make "specialization of FLD" sections (of BLD) appendices, leaving standalone sections in place, and making both standalone and specialization normative

Christian de Sainte Marie: And that shows why they should both me normative, so if there is an error, it's the spec that is in error, not those folks and their implementation. [Scribe assist by Sandro Hawke]

ACTION: mkifer to move specialization sections to appendices

trackbot-ng: Created Action 430 - Move specialization sections to appendices [on Michael Kifer - due 2008-02-28].

issue (guest): xml syntax is too loosely specified

Chris Welty: dave, didn't hear your input during that proposed resolution - did it address your comment???

Michael Kifer: what does loose mean?

Chris Welty: yes, I was proposing the appendix/body be the other way round but the proposal is ok [Scribe assist by Dave Reynolds]

Jos de Bruijn: presentation to xml translation table too informal

Christian de Sainte Marie: table is not enough

Jos de Bruijn: 2 issues: want self-contained description of XML and want better translation table

Christian de Sainte Marie: e.g. which elements are required, optional, etc.

Michael Kifer: but xml schema appendix gives more info

Christian de Sainte Marie: likes PRD style

Dave Reynolds: EBNF is not "totally precise" !!

Harold Boley: ebnf is precise

Dave Reynolds: my comments critique the xml schema, too

Sandro Hawke: Discussing http://lists.w3.org/Archives/Public/public-rif-wg/2008Feb/0077.html

Dave Reynolds: most of my comments are relatively minor but are important to ensure interop

... distinguish between IRIs and CURIes

Dave Reynolds: why equality in rule bodies in CORE?

Michael Kifer: because it is easy if just in bodies

... sugar for equal(?x ?x)

Sandro Hawke: but what about classical negation and = ?

Jos de Bruijn: datalog + classical negation => disjunctive datalog

Jos de Bruijn: IE disjunctive datalog. [Scribe assist by Sandro Hawke]
Michael Kifer: you can define equal(?x,?x) [Scribe assist by Sandro Hawke]

consensus is to remove equality from core to prevent problems with future extensions of core

Adrian Paschke: if strong negation is only defined in the body you don't run into conflicts between positive and negative conclusions
Christian de Sainte Marie: is this a real Resolution? [Scribe assist by Sandro Hawke]
Axel Polleres: Just as it comes to my head:
Axel Polleres: do we want to allow unsafe rules in CORE?

Michael Kifer: to prove not(equal(1,3)) you must have such a fact

Axel Polleres: safe = all variables in head must be bound by a (non-built-in) presicate in the body (if disjunction in the body additional care is needed)
Axel Polleres: s/unsafe/safe (succeeded, 1 lines ago)

(No activity for 62 minutes)

Mike Dean: is there a telecon dialin? Zakim didn't recognize RIFWG#

(No activity for 9 minutes)

Chris Welty: i'm here
Axel Polleres: I'm there
Sandro Hawke: I'm not
Chris Welty: France makes us all existential
Chris Welty: (by default)
Chris Welty: mike, the code is 26631
Chris Welty: mike, u there?

(No activity for 6 minutes)

Sandro Hawke: mdean???

(Scribe changed to Adrian Paschke)

SWC

Jos de Bruijn: Explains the four different entailment regimes fro RDF integration

Jos de Bruijn: Explains difference of OWL DL and OWL Full compatibility in RIF

Jos de Bruijn: OWL Full a[subckass->b] OWL DL: all b(x) :- a(x) [Scribe assist by Sandro Hawke]
Jos de Bruijn: So we read things with a special semantics. a[rdf:type->b]  : b(a) [Scribe assist by Sandro Hawke]
Jos de Bruijn: and a[p->b]  : p(a,b) [Scribe assist by Sandro Hawke]

Jos de Bruijn: a [p -> b]: p(a,b)

Jos de Bruijn: p might be a variable

Jos de Bruijn: Syntactically in blf frames, p could be variable. [Scribe assist by Sandro Hawke]
Sandro Hawke: s/blf/bld/ (failed)

Jos de Bruijn: interpretation of frames for the OWL Full compatibility workaround solution is different from the interpration in RIF FLD

Jos de Bruijn: a[p->b] <-> a[q->b]

Jos de Bruijn: i.e. q equivalent to p

Sandor (guest): distinguish the different interpretations of frames in RIF FLD and OWL compatibility also syntactically

Jos de Bruijn: RDFS: a sc b

Jos de Bruijn: RIF d [type -> a]

Jos de Bruijn: q[q->d] <- x [type -> b]

Jos de Bruijn: OWL DL: you can not use this rules anymore

Jos de Bruijn: In general frame syntax is incompatble from predicate syntax

Sandro Hawke: Expressions from OWL DL could be translated into both syntaxes

Sandro Hawke: How can you read it differently?

Jos de Bruijn: It is defined in the semantics

Sandro Hawke: We need something more concrete

Jos de Bruijn: I |= a[type -> b] if I |= b(a)

Sandro Hawke: How can this processed in the software

Jos de Bruijn: I imagine that somewhere in the rule set it is made explicitly

Jeff Pan: Why do we need to worry about rewriting a particular OWL statement

Jos de Bruijn: We don't rewrite

Jos de Bruijn: In RDFS the syntax can be frames

Jos de Bruijn: But in OWL DL they are classes

Jos de Bruijn: We want to use the same syntax for both

Jos de Bruijn: Use frame syntax as unifier

Jeff Pan: but you change the semantics

Jeff Pan: if you want to use different ontologies you will change the semantics

Sandro Hawke: So, I'm satisfied with Jos' explanation of why we need the two syntaxes and how they relate, but I think the document is going to [somehow] have to be a lot clearer here. [Scribe assist by Sandro Hawke]
Jos de Bruijn: Yeah. [Scribe assist by Sandro Hawke]

Harold Boley: we can use different way to write it syntactically

Adrian Paschke: if we are only talking about instance and subclass we can use a typed logic syntax

Chris Welty: the choices are binary predicate syntax or frames

Chris Welty: For a user, there's an awkward choice between using frame vs predicate syntax. There's no real guidance as to whether to chose one over the other. [Scribe assist by Sandro Hawke]

Jos de Bruijn: then use onyl frames with different semantic interpretation

Sandro Hawke: (joking) it'll be easy -- frames will be slower [Scribe assist by Sandro Hawke]
Michael Kifer: (taking it serously) not with good indexing [Scribe assist by Sandro Hawke]
Gary Hallmark: (also seriously) Java impls may just use the VM to do it, and be faster than predicates. [Scribe assist by Sandro Hawke]

s/subcalls/subclass (succeeded, 7 lines ago)

Jos de Bruijn: BLD: I |= a[b->c] if <aI,cI> in Iframe (bI)

Jos de Bruijn: That is the semantics of BLD

Michael Kifer: Yes, it captures the meaning

s/Mikeal/Michael (succeeded, 1 lines ago)

Jeff Pan: I'm in favor of a syntactical destinction instead of a different semantic interpretation of frames when using OWL DL

Michael Kifer: The problem is with extensions

Chris Welty: What about just having this modified frame semantics in BLD? that's where MK said problem with extensions [Scribe assist by Sandro Hawke]
Michael Kifer: we put predicates out of the domain, to be precisely like first-order-logic (even though it would be first order, anyway) [Scribe assist by Sandro Hawke]

Michael Kifer: We wanted to stay close to first order

Michael Kifer: We need an explanation of frames in the OWL compatibiltiy section

Sandro Hawke: RIF FAQ #4: Why do you have Frames and Predicates, and why aren't they equivalent? [Scribe assist by Sandro Hawke]
Jos de Bruijn: example with domain of size one. in OWL DL, it's not true that all classes are now the same. [Scribe assist by Sandro Hawke]

Jeff Pan: Let the users define which sort of semantics they would like to go for

Axel Polleres: Jeff, do I interpret you right, you said: Everything is fine except ... OWL DL? ;)

Jeff Pan: There is only one semantics for OWL DL

Chris Welty: no and OWL DL ontology can be also interpreted with OWL Full semantics

Sandro Hawke: Chris/Jos: OWL DL has this implicit choice (are you using OWL DL or OWL Full semantics), and that carries through to RIF, when you use RIF+OWL.

Jeff Pan: You can specify the semantics by an additional attribute

Sandro Hawke: s/Jeff/Jeff (succeeded, 1 lines ago)

s/Jess/Jeff (succeeded, 1 lines ago)

Sandro Hawke: :-)

Jos de Bruijn: Semantics is defined for the combinations

Jos de Bruijn: RIF-OWL Full; RIF-OWL DL

Chris Welty: You choose by using a tool

Chris Welty: You get potential different results depending which reasoner you use

Mike Dean: my other meeting is about to start - i'll try to call in again tomorrow - thanks!

Hassan Aït-Kaci: Think of Datalog and Prolog interpreters

bye Mike

Sandro Hawke: We can not solve this problems between OWL DL and OWL Full in our group

Chris Welty: Next step?

Sandro Hawke: ... but the difference in entailments is, in practice, unimportant. [Scribe assist by Sandro Hawke]

Jos de Bruijn: wether and how do we point to RDF graphs

Jos de Bruijn: which entailment regime to use

Axel Polleres: define imports of RDF data by using owl:import

Axel Polleres: option: define an RDF thing like owl:imports for importing a ruleset from inside RDF. [Scribe assist by Sandro Hawke]

reviews to RDF/OWL compatibility documents

Axel Polleres: Review of Axel

Axel Polleres: some editorial issues

Axel Polleres: imports of OWL ontologies

Axel Polleres: bi-directional or uni-directional imports

Chris Welty: it is reasonable that RIF can import anything

Axel Polleres: number 10 : example in section 2

Axel Polleres: number 11: is there a way to have it defined for standard RDF graphs instead of extende RDF graphs

Axel Polleres: make a distinction in the examples

Axel Polleres: <http://a> <http://p> <http://b> .
Axel Polleres: <http://a> "http://p"^^rif:iri "http://b"^^rif:iri .
Axel Polleres: "http://a"^^rif:iri <http://p> "http://b"^^rif:iri .

(No activity for 11 minutes)

Axel Polleres: comment 22

Axel Polleres: do you get ill-typed literals with using RIF-RDF

Chris Welty: p(1). p(a). + (x,1) -> p(x)

Michael Kifer: that is not ill-typed

ACTION: Axel to do what he just said

trackbot-ng: Created Action 431 - Do what he just said [on Axel Polleres - due 2008-02-28].

ACTION: axel to make a strange use case to generate ill-typed literals

trackbot-ng: Created Action 432 - Make a strange use case to generate ill-typed literals [on Axel Polleres - due 2008-02-28].

Axel Polleres: comment 24

Axel Polleres: comment 25

Axel Polleres: comment 26

Axel Polleres: comment 28: replace condition 4 by condition 4'

break!

(No activity for 22 minutes)

Christian de Sainte Marie: Dave, we reconvene
Sandro Hawke: DaveReynolds, you want to call in?
Sandro Hawke: okay, DaveReynolds
Hassan Aït-Kaci: Review of MK's BLD document...

(No activity for 5 minutes)

Sandro Hawke: let's take out the section on SubDialects of BLD. It's not something you need to know to implement BLD. [Scribe assist by Sandro Hawke]
Chris Welty: Yeah, it's touting the power of the framework. [Scribe assist by Sandro Hawke]
Hassan Aït-Kaci: Discussing syntactic equality ... Should we remove it from BLD (because of pbs with constructive negation)?
Sandro Hawke: Or maybe move it to an appendix. [Scribe assist by Sandro Hawke]
Christian de Sainte Marie: Need to make precise what is BLD and what is "core"... [Scribe assist by Hassan Aït-Kaci]
Sandro Hawke: we/re talking about http://www.w3.org/2005/rules/wg/draft/ED-rif-bld-20080219/#head-b19db0cd1e4a596ea80c534c9e481ccc4fde020d
Harold Boley: or put it in an overview. [Scribe assist by Sandro Hawke]
Hassan Aït-Kaci: ChrisW - suggests to remove all mention of sub-dialiects in BLD - perhaps could be in FLD?...
Michael Kifer: do we - or not - need to define a core? [Scribe assist by Hassan Aït-Kaci]
Hassan Aït-Kaci: Sandro and CSMA: propose to ask for feedbakc from eventual reviewers of the published document
Hassan Aït-Kaci: s/feedbakc/feedback/ (failed)
Michael Kifer: who is going to take this up (i.e. core) - Sandro? [Scribe assist by Hassan Aït-Kaci]
Chris Welty: Let's go with an Appendix. [Scribe assist by Sandro Hawke]
Sandro Hawke: (move 2.0.9 into an appendix.)
Michael Kifer: core is BLD minus some stuff ... [Scribe assist by Hassan Aït-Kaci]

ACTION: mkifer to move 2.0.9 to an appendix

trackbot-ng: Created Action 433 - Move 2.0.9 to an appendix [on Michael Kifer - due 2008-02-28].
Hassan Aït-Kaci: Issues ...
Chris Welty: we were close to an agreement on named arguments ... [Scribe assist by Hassan Aït-Kaci]
Chris Welty: if a system does not support named args, what can they do (knowing that they are the majority)? [Scribe assist by Hassan Aït-Kaci]
Chris Welty: one way is to take named args as sytactic sugar... [Scribe assist by Hassan Aït-Kaci]
Hassan Aït-Kaci: s/sytactic/syntactic/ (failed)
Chris Welty: All args *must* mys either named or positional, and none must be missing [Scribe assist by Hassan Aït-Kaci]
Hassan Aït-Kaci: s/mys/be/ (failed)
Chris Welty: (on board) Arg.Names are not necessarily distinct. [Scribe assist by Sandro Hawke]
Michael Kifer: we could make them distinct. [Scribe assist by Sandro Hawke]
Chris Welty: order of names does not matter [Scribe assist by Hassan Aït-Kaci]
Chris Welty: (on board) P( a->b a->c ) == P( a->c a->b ) right? MichaelKifer: Yes. [Scribe assist by Sandro Hawke]
Michael Kifer: proposing to define dialects in a modular way extending BLD [Scribe assist by Hassan Aït-Kaci]
Christian de Sainte Marie: why not use a cononical rep (say, by sorting the names)? [Scribe assist by Hassan Aït-Kaci]
Hassan Aït-Kaci: s/cononical/canonical/ (failed)
Chris Welty: So the NUMBER of repeatable argument names has to be constant? MichaelKifer: Yes. [Scribe assist by Sandro Hawke]

PROPOSED: make argument names distinct

RESOLVED: make argument names distinct

Sandro Hawke: (in France, they supply bottles of wine, on which to toast our resolutions!)
Chris Welty: lexical ordering? MichaelKifer: but they are not strings. [Scribe assist by Sandro Hawke]
Chris Welty: P(a->b c->d) = P(b d) Sandro: isn't it P'  ? [Scribe assist by Sandro Hawke]
Jos de Bruijn: I'd like them to be the same. [Scribe assist by Sandro Hawke]
Hassan Aït-Kaci: That means names are useless! [Scribe assist by Sandro Hawke]
Sandro Hawke: Sandro,Gary: They are just comments.
Harold Boley: There are several Use Cases for Named Arguments:
Hassan Aït-Kaci: If arguments could be omitted, and predicates could be overloaded, THEN this would be useful. [Scribe assist by Sandro Hawke]
Harold Boley: * ISO Common Logic
Harold Boley: * CLIPS
Harold Boley: * Relational Tables
Harold Boley: * CycL
Harold Boley: * OO jDREW
Harold Boley: * Python
Michael Kifer: named args exist in FLD but there may be dialects other than BLD where names could be meaningful and/or optional [Scribe assist by Hassan Aït-Kaci]
Christian de Sainte Marie: likes the fact named args are not anything special to support - just a convenience [Scribe assist by Hassan Aït-Kaci]
Dave Reynolds: Harold - I'm not sure CLIPS named argument are compatible with RIF named arguments, I thought you could omit arguements in CLIPS.
Michael Kifer: it would be wrong to say P(b->c a->d) = P(d c) because in a more-useful dialect you'll want to do other things with them. [Scribe assist by Sandro Hawke]
Harold Boley: If you do not support named arguments in your system, then positionalize them using lexical order of the argument names.
Michael Kifer: this is a bad idea ... because extending BLD for dialects that treat them differently would be ruled out as extensions of BLD [Scribe assist by Hassan Aït-Kaci]
Harold Boley: (that's what I got from Chris' due dilligence)

if we don't enforce that RIF users always specifiy explicitly all the signatures of the public functions of a RIF rule set, named args are a good way to to make an "unkown" RIF rule set accessable to new users

Christian de Sainte Marie: I would rather have the producer of a RIF document positionalize them, so the burden is onthe one who support them, not on the ones who do not...
Chris Welty: Okay, then: A RIF consumer that does not support named arguments MUST treat them as position arguments in the lexical order of the argument names. [Scribe assist by Sandro Hawke]
Christian de Sainte Marie: a RIF consumer system that does not support named arguments replace them by positions [Scribe assist by Hassan Aït-Kaci]
Christian de Sainte Marie: How about the producer has to put them in order! [Scribe assist by Sandro Hawke]
Hassan Aït-Kaci: s/CSMA/ChrisW/ (failed)
Sandro Hawke: csma, the ordering may be significant to users. [Scribe assist by Sandro Hawke]
Christian de Sainte Marie: sandro, agreed; that may be significant if the processor is not an engine, but a browser, an editor etc

if we simply skip them and don't implement them in the RIF XML schema it will be very hard for RIF users who need named arguments to extend the RIF schema with named arguments. But if we make them optional in the schema the users can choose if they need them or not

Harold Boley: Dave, it would be better to support a special case of named arguments (without 'rests') of any languages (CLIPS, ...) than none at all.
Michael Kifer: in BLD there are no declarations so round-tripping is impossible [Scribe assist by Hassan Aït-Kaci]
Christian de Sainte Marie: s/processor/producer/ (failed)
Axel Polleres: if we had the signature as MetaData then it would be possible [Scribe assist by Hassan Aït-Kaci]

PROPOSED: We settled named arguments with: A RIF consumer that does not support named arguments MUST treat them as position arguments in the lexical order of the argument names (as pair of symbol-space name, and lexical representation of that order)

Jos de Bruijn: Is anyone still opposed to getting rid of named args? [Scribe assist by Hassan Aït-Kaci]

PROPOSED: We settled named arguments with: A RIF consumer that does not support named arguments MUST treat them as positional arguments (of a different predicate) in the lexical order of the argument names (as pair of symbol-space name, and lexical representation of that order)

PROPOSED: We settled named arguments with: A RIF consumer that does not support named arguments MUST treat them as positional arguments (of a different predicate, formed in a defined-by-BLD-way) in the lexical order of the argument names (as pair of symbol-space name, and lexical representation of that order)

PROPOSED: We settled named arguments with: A RIF consumer that does not support named arguments MUST treat them as positional arguments (of a different predicate, formed in a defined-by-BLD-way) in the lexical order of the argument names (sorted as a pair of symbol-space name, and lexical representation of that order)

Chris Welty: it something is "easy" to deal with (e.g., named args) then we should make that explicitly clear and how [Scribe assist by Hassan Aït-Kaci]
Hassan Aït-Kaci: s/it so/if so/ (failed)
Jos de Bruijn: what is the syntax for args names [Scribe assist by Hassan Aït-Kaci]
Hassan Aït-Kaci: s/names/names?/ (failed)
Michael Kifer: just names - sequences of chars [Scribe assist by Hassan Aït-Kaci]
Hassan Aït-Kaci: s/chars/unicode chars/ (failed)
Sandro Hawke: Ah -- so we don't need the symbol-space name.
Jos de Bruijn: shouldn't names be consts [Scribe assist by Hassan Aït-Kaci]
Hassan Aït-Kaci: s/consts/consts?/ (failed)
Chris Welty: they would be no problem if they could be optional ... [Scribe assist by Hassan Aït-Kaci]
Christian de Sainte Marie: +1

PROPOSED: Removed named arguments.  :-)

Harold Boley: -1
Jos de Bruijn: +1

PROPOSED: Make named arguments optional

Michael Kifer: they do not make sense in BLD because of unique name signatures [Scribe assist by Hassan Aït-Kaci]
Harold Boley: Optional?

PROPOSED: We settled named arguments with: A RIF consumer that does not support named arguments MUST treat them as positional arguments (of a different predicate, formed in a stable but implementation-dependent way) in the lexical order of the argument names.

Harold Boley: +1

PROPOSED: We keep named arguments, explaining in BLD that: A RIF consumer that does not support named arguments MUST treat them as positional arguments (of a different predicate, formed in a stable but implementation-dependent way) in the lexical order of the argument names.

Harold Boley: +1

+1 for Sandros proposal (Prova does not support named arguments anyway for efficiency reasons - and where I realy need them, e.g. in inductive logic programming, I simulate them via a meta programing interpreter)

Harold Boley: E.g., P(b->?Y a->?X) treated as P'(?X ?Y).
Sandro Hawke: Right.
Sandro Hawke: (note that the second one is P-prime)
Harold Boley: Yes, P-prime could be a reserved name for every P.
Harold Boley: (as Hassan just mentioned -- for round-tripping)
Hassan Aït-Kaci: ChrisW and CSMA: keep the metadata for translation and recover the original on roundtripping
Sandro Hawke: (on board) for P' you can use P__b__a(....) [Scribe assist by Sandro Hawke]
Harold Boley: Metadata will be needed for provenance information anyway.

PROPOSED: We keep named arguments, explaining in BLD that: A RIF consumer that does not support named arguments can implement them, with relative ease, by treated them as positional arguments (of a different predicate, formed in a stable but implementation-dependent way) in the lexical order of the argument names.

Scribe Error: Jeff [Scribe assist by Christian de Sainte Marie]

(Scribe changed to Jeff Pan)

Chris Welty: let's describe how easy it is in the doc, since MichaelK said it is easy

Axel Polleres: How do I rewrite P__a(b->c)

Michael Kifer: My only concern is that whether it is be in the main part of a document or in an informative appendix

Chris Welty: it should not only be in examples, it should be in spec

Harold Boley: Generally, if the named arguments of P are, lexicographically ordered, aL1, aL2, ..., LaN, then the predicate name is P__aL1__aL2__...__LaN.
Sandro Hawke: so, this breaks if you have two translators from RIF to some local language. But that's not a critical use case. [Scribe assist by Sandro Hawke]

Sandro Hawke: why does it affect comformance, ChrisW?

(ChrisW has to go)

Sandro Hawke: some other Implemtation Techniques we could include: rewriting away existentials and disjunction in conditions. [Scribe assist by Sandro Hawke]

Christian de Sainte Marie: we might need to write implementation hints in some of the docs

PROPOSED: We keep named arguments, explaining in BLD that: A RIF consumer that does not support named arguments can implement them, with relative ease, by treating them as positional arguments (of a different predicate, formed in a stable but implementation-dependent way) in the lexical order of the argument names.

s/treated/treating (succeeded, 1 lines ago)

Christian de Sainte Marie: we close Issue 44

PROPOSED: We keep named arguments, explaining in BLD that: A RIF consumer that does not support named arguments can implement them, with relative ease, by treating them as positional arguments (of a different predicate, formed in a stable but implementation-dependent way) in the lexical order of the argument names. (Closing ISSUE-44)

Jos de Bruijn: -0
Jos de Bruijn: (abstain)
Dave Reynolds: -0
Gary Hallmark: -0

RESOLVED: We keep named arguments, explaining in BLD that: A RIF consumer that does not support named arguments can implement them, with relative ease, by treating them as positional arguments (of a different predicate, formed in a stable but implementation-dependent way) in the lexical order of the argument names. (Closing ISSUE-44)

Harold Boley: +1

abstain (guest): josb, DaveR, GaryH

Christian de Sainte Marie: why can a term be a frame?

... why did we change from only counting const, var and func as terms?

Michael Kifer: once the framework is there, all this becomes possible

... in the new version, the semantics is simpler in some sense

Michael Kifer: unnesting used to be in there as v1: a[b->c[d->e]] could be rewriten as v2: a[b->c]^c[d->e] no longer the same, because: [Scribe assist by Sandro Hawke]

... now a(b->c(d->e)) is no longer the same as a(b->c) ^ c(d->e)

Dave Reynolds: !!

... now the whole term c(d->e) is the value, rather than c is the value

... the new semantics allows reifications

Sandro Hawke: Any standard in the F-Logic community on this? [Scribe assist by Sandro Hawke]
Michael Kifer: No. Slightly different syntaxes for each form. [Scribe assist by Sandro Hawke]

Christian de Sainte Marie: what is the consequence when you use frames

Sandro Hawke: how about variables?

Jos de Bruijn: why to make the language more complex?

Michael Kifer: the language is the same

Christian de Sainte Marie: what is the consequence when you use frames to represent objects? [Scribe assist by Christian de Sainte Marie]
Michael Kifer: It used to be that p(a[b->c]) meant the same as p(a)^a[b->c] [Scribe assist by Sandro Hawke]
Jos de Bruijn: No, frames were terms. This makes the language more complicated. [Scribe assist by Sandro Hawke]

jobs (guest): allowing equalities and frames as terms makes the language more complex

Michael Kifer: In this version, p(a[b->c]) introduces a reified term. [Scribe assist by Sandro Hawke]

PROPOSED: equality, frames, subclass, membership are not terms in BLD

Michael Kifer: I don't want unnesting in BLD. [Scribe assist by Sandro Hawke]
Axel Polleres: I tend to agree that reification looks like possibly causing pain...

Sandro Hawke: agree with csma and josb

Christian de Sainte Marie: this is a major change in BLD

Harold Boley: the reviewers were fine with it

Christian de Sainte Marie: maybe people overlooked it

Sandro Hawke: Sandro,csma,Jos: The reviewers didn't notice it.

... we should ask the reviewers

Jos de Bruijn: I thought it was a typo. [Scribe assist by Sandro Hawke]
Sandro Hawke: I am deeply suspicious of reification in here. [Scribe assist by Sandro Hawke]

Christian de Sainte Marie: what's DaveR's opition?

Dave Reynolds: I missed that

Axel Polleres: ... I have to think about it, to be honest. [Scribe assist by Axel Polleres]
Dave Reynolds: I also didn't notice. I assumed the language hadn't changed. [Scribe assist by Sandro Hawke]

... the new approach does seem to be a worry for me

Michael Kifer: This reification is in the framework. [Scribe assist by Sandro Hawke]

Christian de Sainte Marie: being in the framework is different from being in BLD

Axel Polleres: The question to me is more whether we can, with this, "deify" reified statements again by rule application.
on-board (guest): a=(b=c) [Scribe assist by Sandro Hawke]
Michael Kifer: a = [ some object ] [Scribe assist by Sandro Hawke]

Michael Kifer: a=(b=c) does not entail b=c

Axel Polleres: looks like, yes we can "deify" .... john[doe->X] :- f(X). f(a[b->c]).
Sandro Hawke: So "=" is both a predicate and a function. [Scribe assist by Sandro Hawke]
Sandro Hawke: I have a problem with <Equal> in the XML being used when no equality is involved. [Scribe assist by Sandro Hawke]
Michael Kifer: But that's the beauty of reification. [Scribe assist by Sandro Hawke]
Harold Boley: The kind of reification created by frames embedded into other frames as terms (which can no longer be unnested) may be an answer to RDF's problems with 'subject/property/object' reification, and it is a bridge to ISO Common Logic.

PROPOSED: equality, frames, subclass, membership are not terms in BLD

Sandro Hawke: If we're going to have = be terms, then we should definitely have Ruel be term as well. [Scribe assist by Sandro Hawke]
Michael Kifer: Yes. I just didn't get that far. [Scribe assist by Sandro Hawke]
Dave Reynolds: No. That is not "the" problem with with RDF reification. The RDF Core WG explicitly chose between approach and the one it chose and the decision was based on use cases from community feedback.
Dave Reynolds: s/between/between this/ (failed)

PROPOSED: equality, frames, subclass, membership are not terms in BLD

Michael Kifer: I just want to make it clear, don't have problem disallowing them in BLD

StrawPoll (guest): equality, frames, subclass, membership are not terms in BLD (IE no reification). [Scribe assist by Sandro Hawke]

... in BLD many good things don't make much sense

Dave Reynolds: +1
Sandro Hawke: in favor: 6
Sandro Hawke: (plus DR)
Axel Polleres: 0
Hassan Aït-Kaci: 0
opposed (guest): (wants reification in BLD): [Scribe assist by Sandro Hawke]
abstain (guest): 4 [Scribe assist by Sandro Hawke]
Sandro Hawke: (MK and Harold abstain).
Christian de Sainte Marie: consensus against reification. [Scribe assist by Sandro Hawke]
Harold Boley: Do we really want to get rid of nested terms? [Scribe assist by Sandro Hawke]
Harold Boley: Do we really want to get rid of nested frames? [Scribe assist by Sandro Hawke]

Michael Kifer: it wont be back to the last version due to nesting

... I agree that BLD should be simple

... a group is needed to have a dialect extending BLD with reification

Axel Polleres: I would like to try for a use case for RDF which uses that feature, i.e. "deifying" reified statements in RDF.

... with reification the semantics is simpler

PROPOSED: No reification in BLD. This is like WD1, except no nested frames. A change from 18-Feb draft: Equality, frames, subclass, membership are no longer terms.

Axel Polleres: p.s.: Gary just clarified that "deify" means "worship as a god"... fits, because I meant to accept a reified statement as truth.
Harold Boley: Implementation Hint -- producers can pre-flatten nested frames. [Scribe assist by Sandro Hawke]
Dave Reynolds: Axel - the choice of RDF to use reification for so called "statings" rather than "statements" was quite deliberate, if you want to reverse you'd need to address the use cases that originally motivated that choice.
Michael Kifer: No - producers will know how to do it. [Scribe assist by Sandro Hawke]
abstain (guest): hassan, mkifer [Scribe assist by Sandro Hawke]

RESOLVED: No reification in BLD. This is like WD1, except no nested frames. A change from 18-Feb draft: Equality, frames, subclass, membership are no longer terms.

2 abstain

Sandro Hawke: ADJOURN.
Sandro Hawke: reconvene at 9am.
Dave Reynolds: bye - have a good evening

bye, Dave

Sandro Hawke: Ciao, DaveReynolds !
Harold Boley: Ciao, Dave
Sandro Hawke: http://maps.google.com/maps?ie=UTF-8&oe=utf-8&rls=com.ubuntu:en-US:official&client=firefox-a&um=1&q=51+rue+du+commerce,+75015&near=Paris,+France&fb=1&cid=0,0,5730491396441972763&sa=X&oi=local_result&resnum=1&ct=image

(No activity for 11 minutes)

Christian de Sainte Marie: Le Café du Commerce du 15ème
Christian de Sainte Marie: 51, rue du Commerce 75015
Tel (guest): 01-45-75-03-27 [Scribe assist by Christian de Sainte Marie]
Christian de Sainte Marie: Avenue Emile Zola

(No activity for 23 minutes)

(No activity for 867 minutes)

Christian de Sainte Marie: [12:19]
skribenik (guest): MichaelKifer [Scribe assist by Michael Kifer]
scribenik (guest): MichaelKifer [Scribe assist by Michael Kifer]
Michael Kifer: scribenik
Michael Kifer: action review
breakouts (guest): PRD, error handling [Scribe assist by Michael Kifer]
Michael Kifer: FLD+BLD
Michael Kifer: extensibility
Michael Kifer: test cases
16-18 (guest): 00 - mop up of pending issues [Scribe assist by Michael Kifer]

(No activity for 6 minutes)

Michael Kifer: Action 274: Adrian takes over from DavidH
Michael Kifer: Adrian will finish Action 274 by Feb29

(Scribe changed to Michael Kifer)

Action 292: Axel+Harold take over

(No activity for 9 minutes)

Action 373: to be discussed this afternoon

Action 375: dropped

s/scribenik/scribenick/ (failed)

Action 382: to be discussed this afternoon

Action 384: keep open (reincarnated as aggregates)

Action 404: handle off-line

Action 405: this afternoon

Action 407: closed

Action 411: closed

Action 413: this afternoon

Action 419 - 422: closed

Action 423: Axel+Harold - generic syntax of builtins; 2 weeks

breakouts (guest): builtins/datatypes, error handling, PRD,

(No activity for 5 minutes)

(Scribe changed to John Hall)

Sandro Hawke: no pint in using model theoretic structures

Christian de Sainte Marie: what is best way, given target audience?

Adrian Paschke: can at least describe language in first order

Christian de Sainte Marie: my first question

Gary Hallmark: will developers want to read BLD

Gary Hallmark: developers will need more tutorial material

Gary Hallmark: wouild like to see us in same positions as BLD

Christian de Sainte Marie: disagrees, developers want to see schema and be told how it works

Christian de Sainte Marie: most people in PR environment are developers

Sandro Hawke: [Scribe assist by Axel Polleres]

Christian de Sainte Marie: would be worried to have presentation that is too formal

Axel Polleres: sandro, here the link to the starting document: http://www.w3.org/2005/rules/wg/wiki/List_of_BLD_built-ins
Sandro Hawke: thanks, AxelPolleres
Axel Polleres: ... pls covert to mediawiki with all three subpages: 1.
Axel Polleres: Functions and Operators on Numerics
Axel Polleres: 2.
Axel Polleres: Functions on Strings
Axel Polleres: 3.
Axel Polleres: Functions and Operators on Dates and Times
Axel Polleres: ... thanks!

Christian de Sainte Marie: unambiguous, concise, normative, easy to undersstand, as for BLD yesterday

Gary Hallmark: problems with consistency with different presentations

Gary Hallmark: consistent and wrong better than correct and inconsistent?

Gary Hallmark: should look like it was all designed with big picture

Christian de Sainte Marie: easy step - overlap, same BNF

Christian de Sainte Marie: would work with grammar rather than presentation syntax

Gary Hallmark: want non-trivial common core, maybe PR programmer has to learn it

Christian de Sainte Marie: who will make decision that PRD is format to adopt

Gary Hallmark: business people

Christian de Sainte Marie: not here, business people will ask programmers

Gary Hallmark: only ILOG?

Christian de Sainte Marie: ILOG, Fair Isaac and JBoss covers what ILOG marketing dept cares about

Adrian Paschke: risk of ambiguity

Christian de Sainte Marie: can be unambiguous without being formal in math sense

Adrian Paschke: we need a formal description to avoid ambiguous definitions and interpretations of what we mean [Scribe assist by Adrian Paschke]

Christian de Sainte Marie: we disagree, but we could try a better way, err on the formal side?

Gary Hallmark: PR engines disagree on transition rules

Christian de Sainte Marie: would be easy to change the (small) parts that are about states and transitions

Christian de Sainte Marie: another thing, if built-ins and data types are in new document - do not have to explain here

Gary Hallmark: Harold's idea to reuse syntax would be valuable

Christian de Sainte Marie: syntax would be easy to extract to use in different documents

Christian de Sainte Marie: but architecture is moving towards self-contained documents

Sandro Hawke: if core is part of BLD that PR vendors can implement, PR vendors should be able to read BLD, then PRD for small additions

Sandro Hawke: PRD - syntax of retract, and here's what happen when you retract

Adrian Paschke: that can be described as state transition semantics [Scribe assist by Adrian Paschke]

Christian de Sainte Marie: preference would be to read PRD without having to read Core, then final section points to subset that can be interchanged

Christian de Sainte Marie: as a specifier, other may work better

Sandro Hawke: PR vendors should understand Core

Christian de Sainte Marie: two ways - by itself, or as a subset of PRD

Christian de Sainte Marie: developers will probably develop from tutorials, books, etc. - not from spec

Sandro Hawke: DaveReynolds, we're in breakouts. The phone is in the PRD breakout.

Christian de Sainte Marie: from F2F8, reference manual style was preferred

Christian de Sainte Marie: include by reference built-ins, data types, syntax ...

Gary Hallmark: only syntax is needed

Gary Hallmark: will not agree on semantics, but will on test cases

Christian de Sainte Marie: extract from PRD, remove negation, aggregation and all actions but Assert

Gary Hallmark: add Retract and semantics will break

gary; add priority and retract

Adrian Paschke: dynamic logic programs define semantics with update actions (assert, retract) [Scribe assist by Adrian Paschke]

Christian de Sainte Marie: did not suggest that we will have a model theory

Sandro Hawke: DaveReynolds, I'm not quite sure, but I think so. It might be 1pm paris time.
Sandro Hawke: DaveReynolds, (and the chairs are both busy right now)

Christian de Sainte Marie: operational semantics of PRD, includin retract, negation

... write rules that contain only Assert

... will bet the same fact base as for Core

gary; how does that help?

Christian de Sainte Marie: one way - take Core and add those constructs (with semantics) and agree on Core. Do not re-decribe core.

... other, re-describe Core in PRD style

... from spec viewpoint, first way is best, and is preferred in this group.

Adrian Paschke: yes, core should be shared by both groups

Christian de Sainte Marie: propose to leav aggregation for the moment, but include negation

Christian de Sainte Marie: already a big risk that we are dismissed as semantic web people

Gary Hallmark: but we have to start somewhere with something that is usable

Christian de Sainte Marie: use NAF because it seemed acceptable in Boston

... leave aggregation, include Core by reference

Gary Hallmark: just the syntax?

Adrian Paschke: the problem with naf is that it add loops in combination with retract [Scribe assist by Adrian Paschke]

Christian de Sainte Marie: probably agrees with what I meant by 'overall semantics'

Adrian Paschke: hence you need some mechansims to handle this
Adrian Paschke: and the definition of a precise transition semantics becomes complex

Christian de Sainte Marie: if we start from assumption that we have is correct but less than useful, we have a specification

... the problem is to present it in a way that is precise and easy to read

Adrian Paschke: even more if we only a operational semantics it will be very hard to define an oprerational semantics which handels conflicts which will be general for most production rule systems
Adrian Paschke: there are many approaches (priorities, argumentation, translation, reductions, ...)

Christian de Sainte Marie: so rewrite according to this discussion, leave out aggregation, but include retraction and negation

Gary Hallmark: is hard to follow, like a long proof without a summary up front

Christian de Sainte Marie: 'data source' went to 'WM'

Gary Hallmark: missed that

Christian de Sainte Marie: should change name of WM, and separate built-ins and data types

Christian de Sainte Marie: which formalisms to use? Plotkin, others?

Adrian Paschke: Plotkin is too general for us

... but use one that exists, don't invent a new one

Sandro Hawke: Harold, Axel - http://www.w3.org/2005/rules/wiki/DTB is ready for you.

Christian de Sainte Marie: can float a new version before OMG meeting (Mrach)

Adrian Paschke: tailoring the Semantics of Plotkin to production rule systems would need a lot of extensions
Sandro Hawke: (with the four pages on builtins from mediawiki migrated)

Mrach - March

Christian de Sainte Marie: minimum is that it agree with Core on subset of syntax

Christian de Sainte Marie: how far do we allow flexible, idiosyncratic representations?

Christian de Sainte Marie: order to fire rules, how to control loops ... lost of small differences

Gary Hallmark: can compare how systems (as represented in same formalism) work, then look at how to reconcile

Harold Boley: Sandro, Thanks for DTB.

Christian de Sainte Marie: this (hard) part is not in current draft

Gary Hallmark: but is what we have to address

Adrian Paschke: we need to ensure that the "input - output" semantics is the same for two production rule systems
Adrian Paschke: i.e. you get similar results from an interchanged production rule system

Christian de Sainte Marie: work done in Core and BLD has helped in developing PRD

Adrian Paschke: --> interchange production rule set

... showing where we have to focus

Gary Hallmark: there is no agenda for this (transition, etc)

Christian de Sainte Marie: should start discussion by emial, focused on appraoch

emial - email

Christian de Sainte Marie: What is approach - does RIF include specification language or not?

Christian de Sainte Marie: need to start by understanding the major differences

... one - essential for ILOG, FI, JBOss that RIF addresses a significant part of theur legacy

Adrian Paschke: maybe both a state transition semantics and a description of an abstract core production rule systems in pseudo code (adressing conflict handling, agenda,...)

Gary Hallmark: but your legacy should not be forced on to me

Christian de Sainte Marie: did not say that but for example 'else' should be handled even if not in RIF

Adrian Paschke: Pseudo-Code for Abstract Core Production Rule, i.e. describing how certain constructs or attributes in PRD should be handeled

... have to have recursive condition, or move it all into the 'if'

Adrian Paschke: but we would need a thorough discussion about this abstract core production rule system
Adrian Paschke: s/through/thorough (succeeded, 1 lines ago)

(No activity for 18 minutes)

Sandro Hawke: can you paste the link again to the new wiki page? I lost the irc connection. [Scribe assist by Axel Polleres]
Sandro Hawke: AxelPolleres, http://www.w3.org/2005/rules/wiki/DTB

(No activity for 20 minutes)

(Scribe changed to Harold Boley)

Sandro Hawke: approach 3 - monte carlo - can use logical guards

Chris Welty: Prefers appr. 3

... Hassan not to lock into one appr. (abstain).

... Jos: 2

Michael Kifer: torn between approaches.

Hassan Aït-Kaci: s/Hassan not/Hassan prefers not/ (failed)

Christian de Sainte Marie: Implementation-dependent?

Michael Kifer: no.

Sandro Hawke: How to guard overflow?

Hassan Aït-Kaci: fail or error?

Chris Welty: Either we model what happens or we handle it outside.

Sandro Hawke: Not what systems really do.

Michael Kifer: Arbitrary precision arithmetics can also not really be implemented.

Sandro Hawke: easiest case: divide by zero.

Sandro Hawke: it's essential that errors be flagged as errors. Conforming implementations should report an error. This is orthogonal from the model-theory issue. [Scribe assist by Sandro Hawke]

Harold Boley: Approach 2 looks unsound. Appr. 3 is most 'neutral', so favor it.

... huge amount of work, e.g. in algebraic data types: let's be careful not to reinvent the wheel.

Christian de Sainte Marie: Coming back to divide by zero example:

... XPath F&O says something here.

Adrian Paschke: yes, an many modern rule languages allow to handle errors (e.g. thrown by procedural attachments) to be handeled within the rule program, i.e. define a rule which applies in case the normal rule can not be executed due to an error

... Gives C Error Summary

Chris Welty: But doesnt have a model theory.

Michael Kifer: We cannot rely on 'the other side'.

... RIF cannot guarantee that results on both sides are the same.

Christian de Sainte Marie: OK, but we cannot just import from X F&O.

Axel Polleres: Solution to introduce a predicate to test if an error might have occurred.

Jeff Pan: Unlike for real computer systems, for reasoners it's not so dangerous if divide by zero example occurs

Adrian Paschke: The solution proposed by Axel is actually implemented by Prova;

Michael Kifer: If we adopt appr. 2 we need to have everyone adopt our exact semantics.

... Thats why appr. 3 is more acceptable.

Hassan Aït-Kaci: Distinction betw. model theory (where it is false as argued by Jeff), but there is also an operational meaning, which signals that something is wrong.

Michael Kifer: If I dont use guards, things go wrong.

Sandro Hawke: It's important that, outside of the model theory, we have some conformance/operational statement about what happens when you encounter a rule set with an error (eg if 7 > "hello" ...) [to general statements of agreement ] [Scribe assist by Sandro Hawke]
Adrian Paschke: yes, I agree with Sandro. We might event like to handle this error within our rule set, i.e. define a rule which treats the error
Adrian Paschke: e.g. we call a built-in which adds two number values with two String values + "1" "1"
Adrian Paschke: in the error handling rule we translate the Strings to number values (by another built-in call) and then apply the add built-in again

(Scribe changed to Harold Boley)

Chris Welty: Hear majority seems to favor appr. 3

... all mappings are total.

Michael Kifer: Still true or false.

Hassan Aït-Kaci: Three possible outcomes. Two values. False w/o error, False w error, True.

Jeff Pan: May break fixed interpretation.

Michael Kifer: RIF-compliant systems must decide.

Hassan Aït-Kaci: s/Two values/Two truth values/ (failed)

Jeff Pan: RIF would not require implementations to have fixed interpretations.

Michael Kifer: Ok, but would not tell you which one.

... practically better: when you transmit rule set, guaranteed that receiver will have exact same answers.

... if not you have no way of knowing what other system would do.

Jeff Pan: What are guards here?

Michael Kifer: E.g. is-integer, is-string

... they are (testing) builtins.

Hassan Aït-Kaci: Burden would be shifted on users, who would need to pre-edit their rule sets.

Chris Welty: We can only choose between appr 2 and appr 3 because of time restrictions.

Sandro Hawke: approach 2 - Jeff, Jos

Show of hands:

appr 2:

0

Sandro Hawke: apprach 3 - eight others

appr 3:

8

No objections against appr 3.

Adrian Paschke: I would even go one step further and would say that errors are added to the model adding new information (so we have updates ;-) )

PROPOSED: BLD Spec does not require that builting predicates return F on error, just that they have a truth value. BD spec recommends using guards with builtins, to give predictability. Without guards, rules may behave unpredictability.

s/0/2/ (failed)

Hassan Aït-Kaci: s/builting / / (failed)

PROPOSED: (Approach 3) Function on error return an error element that is in the domain. BLD Spec does not require that predicates return F on error, just that they have a truth value. BD spec recommends using guards with builtins, to give predictability. Without guards, rules may behave unpredictability.

PROPOSED: (Approach 3) Function on error return an error element that is in the domain. BLD Spec does not require that predicates return F on error, just that they have a truth value. BDL spec recommends using guards with builtins, to give predictability. Without guards, rules may behave unpredictability.

Axel Polleres: Guards are type-checkers.

mikifer (guest): For every builtin, we should make sure there is an appropriate guard predicate. [Scribe assist by Sandro Hawke]
Hassan Aït-Kaci: This will make things very inefficient. [Scribe assist by Sandro Hawke]
Sandro Hawke: s/very// (failed)

No objections

RESOLVED: (Approach 3) Function on error return an error element that is in the domain. BLD Spec does not require that predicates return F on error, just that they have a truth value. BDL spec recommends using guards with builtins, to give predictability. Without guards, rules may behave unpredictability.

Axel Polleres: Jeff, what I meant...
Axel Polleres: in SPARQL, I can have a FILTER expression
Axel Polleres: not ( builtin(x) and builtin(y) )
Axel Polleres: now imagine builtin() returns error on x and true on y. so, following approach 2... it seems that you'd get here true as a result, whereas the SPARQL result of that filter expression would be an error ie following approach 2 false ... contradiction. q.e.d ;-)
abstain (guest): need more time to think about the consequence of using approach 3 [Scribe assist by Jeff Pan]
Hassan Aït-Kaci: I abstain for the reason that it puts the burden on would-be BLD-users and adding typing guards will introduce uselessly repeated checks at runtime...
Sandro Hawke: Note that all docs are now migrated to MediaWiki, and that UCR has a ton of changes since the last WD. [Scribe assist by Sandro Hawke]

Builtins

Adrian Paschke: Hassan is right and it heavily blows up the size of serialized RIF rule set. That might be critical for many systems if they want to interchange rule sets in a real-world application szenario
Sandro Hawke: apaschke, what alternative is there?
Adrian Paschke: thinking only operationally: introduce an extra built-in which captures errors and allow to treat them like as if they are new facts

(Scribe changed to Harold Boley)

Sandro Hawke: so we need a namespace for op, like http://www.w3.org/2008/xop [Scribe assist by Sandro Hawke]

Axel Polleres: Reports from Types and Builtins breakout session.

... There is no op namespace definition.

Sandro Hawke: We can define rifop.

Axel Polleres: We would not define op:Equal, op:dayTimeEqual, ... but define it generically.

... as in SPARQL.

... (overloading)

... Just want generic less-than.

... Not have four versions, all to be mentioned in a rule (or four rules).

Sandro Hawke: My sense is that RIF writers should have to say op:numeric-less-than, since xpath doesn't give us an op:less-than [Scribe assist by Sandro Hawke]

Sandro Hawke: First impression: keep original X F&O names, even if less generic.

... (basic ones)

Sandro Hawke: For now. Extend to have general-less-than some day. [Scribe assist by Sandro Hawke]

Jos de Bruijn: Against doing everything generically -- e.g., not require everyone to implement boolean-less-than

ACTION: sandro to request 2008/xop or whatever for F&O op

trackbot-ng: Created Action 435 - Request 2008/xop or whatever for F&O op [on Sandro Hawke - due 2008-02-29].

Axel Polleres: Current list of builtins is missing some ops.

Christian de Sainte Marie: It should be a non-controversial list.

ACTION: axel to propose list of builtins including type checking and casting

trackbot-ng: Created Action 436 - Propose list of builtins including type checking and casting [on Axel Polleres - due 2008-02-29].

Harold Boley: Will come back to syntax (e.g., ExtTerm, Extterm, Exterm).

ACTION: michael to add builtins to semantics of BLD and FLD

ACTION: mkifer to add builtins to semantics of BLD and FLD

trackbot-ng: Created Action 437 - Add builtins to semantics of BLD and FLD [on Michael Kifer - due 2008-02-29].

Axel Polleres: Guard, Cast, ...

Gary Hallmark: is-not-string etc. would be good.

... for all guards.

Harold Boley: Special kind of negation.

Adrian Paschke: Do we really want to define a guard for every argument we use in a function
Adrian Paschke: if we use guards for type checking we define a very strange and obviously inefficient dynamic type system in terms of guards
Sandro Hawke: I think isNotString(+(a,1)) is TRUE.

Harold Boley: What after flattening to And( ?x= +(a,1) isNotString(?x))?

Axel Polleres: Can someone paste the resolution again? I dropped out of IRC
Sandro Hawke: have guards isError and isNotError [Scribe assist by Sandro Hawke]
Axel Polleres: I have severe worries that we sneak in a form of negation by the is-non-X "guards". [Scribe assist by Axel Polleres]
Sandro Hawke: AxelPolleres, the resolution was: (Approach 3) Function on error return an error element that is in the domain. BLD Spec does not require that predicates return F on error, just that they have a truth value. BDL spec recommends using guards with builtins, to give predictability. Without guards, rules may behave unpredictability.
Axel Polleres: so, the resolution doesn't say anything about errors in guards.
Adrian Paschke: what happens if the variable is free in "isString(?X)" - we have a new error produced by the guard
Adrian Paschke: so we need a guard for the guard and so on
Axel Polleres: Why doe we need guards?

Michael Kifer: isNotString(?x) is equivalent to And(Not(isString(?x)) Not(isError(?x))).

Gary Hallmark: W

hat about having two predicates: isError and isNotError.

Chris Welty: agrees.

Jos de Bruijn: We dont want people to start 'programming' with these predicates.

Hassan Aït-Kaci: How many people will use this setup.

Michael Kifer: You dont NEED to use it.

Axel Polleres: we *enforce* people to program with these... if I want to implement the SPARQL filter stuff in RIF now, I need to "program" it.

Jeff Pan: How does it work.

Michael Kifer: It's like try-catch.

... has model theory.

Axel Polleres: try-catch? did someone say we don't want people to program? ;-)

Gary Hallmark: Need not be done in the expression tree, can be done at its root.

Harold Boley: Agree, dont want this proliferation of builtins.

Michael Kifer: we need k+2n builtins, where k is the numbe of builtins and n is the number of datatypes (for each of which we need a isType and isNotType guard-builtin) [Scribe assist by Axel Polleres]

Adrian Paschke: Think of later extensions by new positive builtins: negative ones will also need to be added.

Michael Kifer: Simpler to duplicate the builtins.

... isNotError(err) returns false.

Adjurn until 2PM.

(No activity for 48 minutes)

Axel Polleres: This one is alsovery close in Galway and has a nice golf course! http://www.glenlo.com/acc_rates.htm

(No activity for 45 minutes)

Chris Welty: hello?
Chris Welty: Dave, you want to join?
Axel Polleres: rssagent is also missing!!!!!
Axel Polleres: so, (how) will we have minutes?

(Scribe changed to Hassan Aït-Kaci)

Axel Polleres: or is this trackbot?
Dave Reynolds: q-

Discussing forward compatibility of BLD - what should implementers need to know

the "traditional" way is to ignore what they need and provide extensions they need

"features", such as equality and named args, would be specified per variation of a dialect departing from BLD

XML annotations tags could be used to specified the features in a "a la carte" fashion to create an extension of BLD

s/annotations/annotation/ (failed)

If a feature is not implemented, some transformation is applied and comments/tags included to mention that fact (e.g., if named args are not implemented, they are transformed as positional and comments are generated saying so

s/saying so/saying so)/ (failed)

s/tags /tags are / (failed)

Sandro keeps on describing his transformation scheme to adapt missing features into others supported

This is "poor man" fallback mechanism could be used to specify how to adapt missing features using existing ones

s/This is/This/ (failed)

Axel Polleres: you could even use xquery... more convenient than xslt

This mechanism could be a preprocessor or a filter

Chris Welty: will this part of the specs?

Sandro Hawke: non-normative, perhaps...

Christian de Sainte Marie: The specs should define RIF Core so as anything that is not in it be rejected (using Sandro's device)

Questions (guest): what does 80% sound mean?

Sandro Hawke: this is based on the level of severity (i.e., ignore, warning, error)

Jos de Bruijn: then this should not be soundness but completeness

Sandro Hawke: the mechanism is there to allow degrees of severity

Dave Reynolds: One example "partial soundness" might be in terms of error behaviour - well typed data leads to the same results but ill-typed data may be let through.

Sandro Hawke: the intention is to "minimize" some overall severity level by composing them

Gary Hallmark: I doubt that BR people would be happy to see their rules changed behind their back - they would rather do this sort of things themselves - not the machine

Sandro Hawke: the spec say what features should or must be there; and some graceful fallback mechanism

Harold Boley: I think this is an interesting start for RIF Interoperability Technology.

Chris Welty: So what do we do?

Sandro Hawke: XTAN (XML Transform As Needed) can be a tool on its own (not just for RIF)

Sandro Hawke: I.e., a specific document should describe it

Axel Polleres: 26-28 of may

(Scribe changed to John Hall)

(Scribe changed to Axel Polleres)

(Scribe changed to Axel Polleres)

Harold Boley: finitelty nested functions can be translated to Datalog.

... if nesting depth can be limited.

(we have a corporate rate of 89 EUR from NUIG at westwood hotel BTW, for f2f10)

Sandro Hawke: Atom + Expr => UniTerm

jos/michaelK: discussion naming uniterms vs atomic formulae

I am lost!!!!

3 strands of discussion going on.

Jos de Bruijn: problems with functions predicates uniterms.

josb/sandro: make explicit in the syntax

Christian de Sainte Marie: context not enough to decide?

Sandro Hawke: It's much easier to write "I don't support logic function" than "I don't support Uniterms within Uniterms". [Scribe assist by Sandro Hawke]

michealK (guest): I find it srange just to make changes just to make it easier to implement a certain tool.

Jos de Bruijn: it is confusing because all is a term.

Chris Welty: it can stil look the same but we can call the syntactic construct

... in the syntax tree different

s/term/construct (succeeded, 2 lines ago)

Harold Boley: we have this since years and now and it passed many reviews.

... will not chang it because one python tool doesn't work.

... prolog and f-logic tools like Flora have this implemented.

Jos de Bruijn: that's not the point. a pred is a pred a func is a func.

Chris Welty: This is changing the grammar, not the syntax. [Scribe assist by Sandro Hawke]
Gary Hallmark: Yes -- call a function a function and a term and term, rather than calling them both Uniterm and getting confused. [Scribe assist by Sandro Hawke]

Axel Polleres: not the same for a prolog programmer who think in terms of functors

gary, chrisw: doesn't affect the language, just the grammar.

Christian de Sainte Marie: we can make the move without loosing anything.

Harold Boley: FOL is too restrictive for the SW.

Axel Polleres: the uniterm stuff also caused difficulties for the metamodel attempt which I did.

it shouldn't make a differnce to name them differently.

Jos de Bruijn: There is always a difference. Atomic Formula are mapped to T/F; Terms are mapping to elements in the domain. [Scribe assist by Sandro Hawke]

Michael Kifer: it is basically a change of grammar only, I agree.

Harold Boley: you also change the mathematics.

Sandro Hawke: s/mathematic/mathematical english/ (failed)

miachaelK (guest): slight chane in the english description and the grammar necessary, not more.

ChrisW going to paint something on the flipchart.

Adrian Paschke: in favor of uniterm.

Adrian Paschke: uniterm more clear than "function"

Chris Welty: there was a change from compaund to uniterm yesterday

Harold Boley: ... as it used to be.

Christian de Sainte Marie: no, COMPOUND stays there.

Christian de Sainte Marie: we replace compound by uniterm.

... in terms

Chris Welty: ho to distinguish funcrtions from predicates.

jos running faster than gary to write the solution on the whiteboard

Adrian Paschke: as an example: typical directives and built-ins in the ISO Prolog STANDARD such as assert(p(X)), findall(X,p(X),List), derive(p(X))
Adrian Paschke: although we don't support them yet in RIF, a Prolog implementer would need them to write meaningful rule programs
Adrian Paschke: How do we serialize p(X), with which constructs? , clearly p(X) is a term here, but should we really serialize it as a function
Sandro Hawke: On paper: ATOM := Pred '(' TERM* | -> ')'
Sandro Hawke: On paper: Atom := Pred '(' TERM* | -> ')'
Sandro Hawke: On paper: Expr := Fun '(' TERM* | -> ')'

Harold Boley: In the first section of BLD we often talk about Terms, where uniterms are referred.

... we need to change it.

Jos de Bruijn: not one word needs to change.

Gary Hallmark: we didn't get rid of uniterm, it is still there, but with two concrete distinctions.

Sandro Hawke: Jos and others: Assert/Retract are connectives/operators NOT predicates
Sandro Hawke: ... so it's okay that their arguments are Atom

Michael Kifer: Ideally we should have one gorund for the BNF and one for the XML.

Sandro Hawke: one schema for all RIF? and then specializations for BLD, Core, PRD, etc.?

Michael Kifer: we need to work it out, don't know if it is possible. but maybe to early for the BNF to change it now.

Christian de Sainte Marie: if we start something that's shaky now, we put WD2 at risk

Sandro Hawke: I undserstand it is a lot of work.

Jos de Bruijn: i don't

Chris Welty: it is not about that change, but on whether int terms of a more severe change on the framework, it is useful to change the bnf now, which will change anyway later on for the framework.

Michael Kifer: let's wait for the framework to change the bnf adhoc now.

Harold Boley: Through our Uniterms we can have practically important features such as higher-order syntactic sugar at no extra cost.
Examples (guest): [Scribe assist by Harold Boley]
Harold Boley: product[R,S](X,Z)  :- R(X,Y), S(Y,Z).

s/to change/instead of changing/ (failed)

Harold Boley: The above is the product of two relations R and S.

Sandro Hawke: framework is not critical path and a new XML syntax will take at least a day in f2f to get it through

Harold Boley: The relation is a term used as a predicate name.

... puts wd2 at risk.

Jos de Bruijn: there is a clear distinction between atomic and functions in FLD document.

Sandro Hawke: Ciao DaveReynolds

... it is very unlikely that we need to reverse anything if we do this change now.

harold explaining what he just pasted in the IRC.

Jos de Bruijn: product(R,S) is a Predicate Name, not a Function Name. The distinction remains. [Scribe assist by Sandro Hawke]
Adrian Paschke: and this restricted form of high order logic and also in many meta programming approaches the clear distinction between atomic formulas and functions breaks
Jeff Pan: bye Dave

s/[R,S]/(R,S)/ (failed)

Adrian Paschke: a typical example: deafeasible logic

josb/MichaelK discussion how to specialize BNFs.

Axel Polleres: would be easy with an abstract model instead :-)

Jos de Bruijn: I can do the BNF change.

Harold Boley: No, we could do it, but we need to think about it.

Harold Boley: In the example product(R,S) is a complex Predicate Name, consisting of a function name, product, applied to to R and S.

Michael Kifer: I don't want to do it for the WD because there is no rush. Proposals should be made explicit and discused for the next draft.

Jos de Bruijn: will make a proposal for the BNF for telecon in a week and a half.

Sandro Hawke: I am going assume we'll do the uniterm split, and have XTAN not have to follow the grammar. If I hear otherwise, I sure hope it's soon, or XTAN is at risk. [Scribe assist by Sandro Hawke]

ACTION: jdebruij2 to create a new BNF for FLD and BLD (distinguishing atoms and preds) by Monday 3rd of March

trackbot-ng: Created Action 438 - Create a new BNF for FLD and BLD (distinguishing atoms and preds) by Monday 3rd of March [on Jos de Bruijn - due 2008-02-29].
Harold Boley: Such a COMPLEX Predicate Name is not allowed in FOL, where Predicate Names must be simple (PCDATA-like) strings.

(BREAK)

TestCases

Sandro Hawke: http://www.w3.org/2007/OWL/wiki/TC4

scribnick (guest): AdrianP

(Scribe changed to Adrian Paschke)

Scribe Error: Adrian Paschke [Scribe assist by Axel Polleres]

RIF Test Cases

Sandro Hawke: http://www.w3.org/2005/rules/wg/wiki/Arch/Test_Cases

Sandro Hawke: shows test case on the WIKI

Sandro Hawke: http://www.w3.org/2007/OWL/wiki/TC4a
Sandro Hawke: There are some tools on the WIKI to describe/document test cases [Scribe assist by Adrian Paschke]
Jeff Pan: We would need test cases to test our implementations [Scribe assist by Adrian Paschke]
Jeff Pan: This is a general requirement for implementers of RIF [Scribe assist by Adrian Paschke]
Harold Boley: There are some test cases in the appendix of BLD specification [Scribe assist by Adrian Paschke]
Harold Boley: http://www.jdrew.org/rif/wd2/RIFPosCondExample.rif
Harold Boley: follow the link to the online directory [Scribe assist by Adrian Paschke]
Harold Boley: Only for testing the syntax [Scribe assist by Adrian Paschke]
Harold Boley: http://www.jdrew.org/rif/wd2/RIFPosHornExample.rif
Harold Boley: http://www.jdrew.org/rif/wd2/RIFSlotCondExample.rif
Harold Boley: The above are 3 test cases for XSD validation (with XSV), linked to from http://www.jdrew.org/rif/wd2, linked to from http://www.w3.org/2005/rules/wiki/BLD#Appendix:_Specification
Adrian Paschke: A use case applying test-driven development to safeguard rule interchange which I had proposed when we started RIF
Adrian Paschke: http://www.w3.org/2005/rules/wg/wiki/Rule_Interchange_Through_Test-Driven_Verification_and_Validation
Gary Hallmark: I want to test the RIF implementation [Scribe assist by Adrian Paschke]
Gary Hallmark: Want to use a test case to test the received RIF rule sets [Scribe assist by Adrian Paschke]
Gary Hallmark: Maybe you want to evaluate different RIF implementation with test cases [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: I don't understand this [Scribe assist by Adrian Paschke]
Gary Hallmark: I want to know which RIF compatible engines pass the most tests [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: I see the point [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: I had different use cases for test cases in mind [Scribe assist by Adrian Paschke]
Chris Welty: Implementers will advertise the passed RIF compliance tests [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: This is out of scope for us [Scribe assist by Adrian Paschke]
Gary Hallmark: e.g. if we use the condition language as query language [Scribe assist by Adrian Paschke]
Chris Welty: this still assumes that there will be implementers which use and really implement RIF allowing answers and queries [Scribe assist by Adrian Paschke]
Chris Welty: implement query response RIF systems [Scribe assist by Adrian Paschke]
Gary Hallmark: It would be nice to have query facility [Scribe assist by Adrian Paschke]
Gary Hallmark: most engines have a query feature [Scribe assist by Adrian Paschke]
Jeff Pan: In the test case you might have a set of rules, and with the condition language you can have some queries [Scribe assist by Adrian Paschke]
Jeff Pan: and we need to provide the output as well [Scribe assist by Adrian Paschke]
Chris Welty: this is not our job to provide an API [Scribe assist by Adrian Paschke]
Gary Hallmark: I would like to get some output [Scribe assist by Adrian Paschke]
Harold Boley: Gary, we could do this a la http://esw.w3.org/topic/SparqlEndpointDescription
Harold Boley: All what we need to do would be a something like a SPARQL endpoint [Scribe assist by Adrian Paschke]
Sandro Hawke: Why not integrate RIF into SPARQL? [Scribe assist by Adrian Paschke]
Axel Polleres: you can not query predicates [Scribe assist by Adrian Paschke]
Axel Polleres: what about that?
Jeff Pan: We are writting some kind of parser [Scribe assist by Adrian Paschke]
Axel Polleres: SELECT ?X
Axel Polleres: FROM ruleset
Axel Polleres: WHERE { RIF_CONDITION_WITH_FREE variable ?X
}
Axel Polleres: and SPARQL-result format as output-format?
Adrian Paschke: Harold; Hassan has implemented 2 years ago
Harold Boley: (We could also use Rule Responder: http://responder.ruleml.org)
Adrian Paschke: RuleResponder is like a SPARQL endpoint for arbitraryrule inference services
Axel Polleres: We can use the SPARQL query syntax to ask queries and send back answers [Scribe assist by Adrian Paschke]
Sandro Hawke: Where clause presentation syntax? [Scribe assist by Adrian Paschke]
Axel Polleres: presentation syntax [Scribe assist by Adrian Paschke]
Axel Polleres: I don't want to reinvent a new query syntax [Scribe assist by Adrian Paschke]
Axel Polleres: If we propose something why not close to SPARQL [Scribe assist by Adrian Paschke]
Gary Hallmark: like in Prolog [Scribe assist by Adrian Paschke]
Gary Hallmark: use a head less rule [Scribe assist by Adrian Paschke]
Sandro Hawke: We don't standardize the API [Scribe assist by Adrian Paschke]
Sandro Hawke: If you want to write an engine you can do that, but we don't standardize that [Scribe assist by Adrian Paschke]
Sandro Hawke: folks can do presentation syntax and this query syntax in a WG note. [Scribe assist by Sandro Hawke]
Gary Hallmark: right now without a standard we can not safely write queries and get responses, e.g. to apply test cases [Scribe assist by Adrian Paschke]
Michael Kifer: conditions can be used as queries [Scribe assist by Adrian Paschke]
Michael Kifer: rules without queries are useless [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: What does it take for us to use the OWL template for test cases [Scribe assist by Adrian Paschke]
Sandro Hawke: Copy it and start using it [Scribe assist by Adrian Paschke]
Adrian Paschke: The current test cases are syntactical test cases [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: Test cases for entailment testing [Scribe assist by Adrian Paschke]
Sandro Hawke: Look at the OWL example test case [Scribe assist by Adrian Paschke]
Harold Boley: We have different kind of results [Scribe assist by Adrian Paschke]
Premise (guest): p(a->1 b->2) [Scribe assist by Sandro Hawke]
Sandro Hawke: Conclusion
Conclusion (guest): p(b->2 a->1) [Scribe assist by Sandro Hawke]
Adrian Paschke: We would need a query
Adrian Paschke: Take a look at this use case:
Adrian Paschke: <apaschke> A use case applying test-driven development to safeguard rule interchange which I had proposed when we started RIF
Adrian Paschke: <apaschke> http://www.w3.org/2005/rules/wg/wiki/Rule_Interchange_Through_Test-Driven_Verification_and_Validation
Christian de Sainte Marie: You ask your rule engine if the test is true [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: this is out of scope [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: of our working group [Scribe assist by Adrian Paschke]
Adrian Paschke: Action; AdrianPaschke: add some test cases to the WIKI page

ACTION: jeffp to post test cases for RIF

ACTION: jpan2 to post test cases fir RIF

trackbot-ng: Created Action 439 - Post test cases fir RIF [on Jeff Pan - due 2008-02-29].

ACTION: AdrianPaschke add some test cases to the WIKI page

Harold Boley: There are five Examples in http://www.w3.org/2005/rules/wiki/BLD#XML_Serialization_for_the_Interchange_of_RIF-BLD and three Test Cases in http://www.jdrew.org/rif/wd2.

ACTION: adrian paschke add some test cases to the WIKI page

ACTION: apaschke add some test cases to the WIKI page about test cases

trackbot-ng: Created Action 440 - Add some test cases to the WIKI page about test cases [on Adrian Paschke - due 2008-02-29].
Chris Welty: topic "Metadata" [Scribe assist by Adrian Paschke]
Jos de Bruijn: explains extensions of the syntax for Rulesets [Scribe assist by Adrian Paschke]
Jos de Bruijn: controversial where Directives [Scribe assist by Adrian Paschke]
Chris Welty: the valid directives are fixed and need to be implemented by a compliant engine [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: We would need to add a lot of elements [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: because we can not forsee all use cases [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: Normally I would support the idea that the directive would be part of the syntax, since it cannot be ignored. But if they can be included in lots of places in the syntax, then it's better to have it as meta syntax. [Scribe assist by Sandro Hawke]
Christian de Sainte Marie: you want to use different fact bases [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: either we can refer to external dataset from anywhere or it is a meta information at any level [Scribe assist by Adrian Paschke]
Axel Polleres: you want to have contextual rules [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: I want ?X to bind to DB1 and ?Y to bind to DB2 [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: If directives are at the meta level, they are allowed everywhere [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: or we can say import is a built-in used - [Scribe assist by Adrian Paschke]
Chris Welty: The issue is do we need this directive construct [Scribe assist by Adrian Paschke]
Jos de Bruijn: second controversal thing is MetadataStatement [Scribe assist by Adrian Paschke]
Axel Polleres: I see there are two issues, basically repflecting rule/dataset and named rule/dataset imports in christian's proposal.
Axel Polleres: ... this is similar to FROM and FROM NAMED in SAPRQL.
Adrian Paschke: in this context we should also consider constructive views used for scoping
Jos de Bruijn: with the metadatastatement you can something about the predicates you are using [Scribe assist by Adrian Paschke]
Axel Polleres: We need something like modules (in rulesystems like e.g. FLORA typically referred to by '@' after (atomic) formula.
Axel Polleres: and in SPARQL you get something similar with the GRAPH keyword...
Christian de Sainte Marie: Why is this not metadata [Scribe assist by Adrian Paschke]
Sandro Hawke: because it is a triple [Scribe assist by Adrian Paschke]
Chris Welty: all metadata is binary [Scribe assist by Adrian Paschke]
Chris Welty: a statement about rulesets or rules [Scribe assist by Adrian Paschke]
Chris Welty: where the ruleset or rule would be the subject [Scribe assist by Adrian Paschke]
Axel Polleres: why not specifiy medata statements in an external RDF document [Scribe assist by Adrian Paschke]
Axel Polleres: MetadataStatement can be defined outside of a RIF document and refered [Scribe assist by Adrian Paschke]
Harold Boley: you could link to the external document from the place where the property/predicate is used [Scribe assist by Adrian Paschke]
Harold Boley: you would centralize it [Scribe assist by Adrian Paschke]
Axel Polleres: MetadataStatement duplicates RDF [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: MetadataStatement is meta data and should not be used [Scribe assist by Adrian Paschke]
Christian de Sainte Marie: If we put that into RIF it means you need to implement RDF [Scribe assist by Adrian Paschke]
Gary Hallmark: I'm fine with metadata, but directives are interpreted differntly by different engines [Scribe assist by Adrian Paschke]
Sandro Hawke: How about having rif:Document can have rif:Ruleset and rif:AuxiaryRuleset, which are linked by URI (xml:id) [Scribe assist by Sandro Hawke]
Gary Hallmark: that needs to be clearly thought off [Scribe assist by Adrian Paschke]
Sandro Hawke: (one man's metadata is another man's data.) [Scribe assist by Sandro Hawke]
Gary Hallmark: needs to be clearly specified (maybe even as part of the semantics) [Scribe assist by Adrian Paschke]
Axel Polleres: the mapping looks very familiar to me... look RDF <-> XML mapping in http://www.w3.org/2005/rules/wg/wiki/AbstractModel?highlight=%28abstract%29
Axel Polleres: If we write RIF in RDF, we can indeed put metadata anywhere! :-)
Christian de Sainte Marie: RIF also needs to provide a way to specifiy metadata [Scribe assist by Adrian Paschke]
Sandro Hawke: something like html's rel=meta
Chris Welty: It would be strange to seperate metadata from the rules in two documents [Scribe assist by Adrian Paschke]
Sandro Hawke: need an import for bind to external data [Scribe assist by Adrian Paschke]
Sandro Hawke: ... but we can do that later. [Scribe assist by Sandro Hawke]
Michael Kifer: better to have metadata in our RIF language [Scribe assist by Adrian Paschke]
Jos de Bruijn: don't want to give a semantics to metadata [Scribe assist by Adrian Paschke]
Michael Kifer: they could be facts [Scribe assist by Adrian Paschke]
Michael Kifer: mayb a different namespace [Scribe assist by Adrian Paschke]
Michael Kifer: we only need to come up with a convention [Scribe assist by Adrian Paschke]
Harold Boley: we wanted a scope notion [Scribe assist by Adrian Paschke]
Chris Welty: I would object to have the metadata in the domain [Scribe assist by Adrian Paschke]
Michael Kifer: then you can not process it [Scribe assist by Adrian Paschke]
Sandro Hawke: have a flag on import [Scribe assist by Adrian Paschke]
Axel Polleres: would the IRI default to the base IRI? Can we define something like a base IRI?
Chris Welty: objections to IRIs? [Scribe assist by Adrian Paschke]
Axel Polleres: Can we have a base IRI [Scribe assist by Adrian Paschke]

ACTION: hboley add IRIs to presentation syntax

trackbot-ng: Created Action 441 - Add IRIs to presentation syntax [on Harold Boley - due 2008-02-29].
Axel Polleres: Seeing Jos XML example, I confirm the claim that we need a way to define the BASE IRI in the XML syntax.
Axel Polleres: As we do need to be able to define prefixes and base iris in the presentation syntax.
Jos de Bruijn: metadata can be only defined within a Rule tag [Scribe assist by Adrian Paschke]
Harold Boley: the other way would be to use Forall [Scribe assist by Adrian Paschke]
Axel Polleres: BTW, what if I give 2 rules the same IRI (and different metadata?)
Axel Polleres: ... weird.
Gary Hallmark: what about a set of facts. I don't want to wrap them all in rule tags [Scribe assist by Adrian Paschke]
Jos de Bruijn: you have to wrap them in a rule to allow metadata [Scribe assist by Adrian Paschke]
Harold Boley: Axel, maybe there is a solution for your issue: global IRIs for Ruleset local IRIs (#-QNames) for rules etc.
Christian de Sainte Marie: leave directives and MetadataStatements out of the next working draft [Scribe assist by Adrian Paschke]

ACTION: Harold2 Make proposal for adding metadata into BLD syntax.

Axel Polleres: You mean IDs?

ACTION: Harold4 Make proposal for adding metadata into BLD syntax.

Axel Polleres: (document unique)
Chris Welty: topic "publication plan" [Scribe assist by Adrian Paschke]

ACTION: Harold Make proposal for adding metadata into BLD syntax.

trackbot-ng: Created Action 442 - Make proposal for adding metadata into BLD syntax. [on Harold Boley - due 2008-02-29].
Chris Welty: review actions wrt publication [Scribe assist by Adrian Paschke]

(No activity for 7 minutes)

Adrian Paschke: publication date is March 21st
Adrian Paschke: March 21st publication date for BLD
Christian de Sainte Marie: FLD-BLD freeze date is March 11th
Christian de Sainte Marie: FLD-BLD review by March 18th -> decision at telecon
Christian de Sainte Marie: FLD-BLD publication date is XXX
Christian de Sainte Marie: SWC freeze March 14th
Christian de Sainte Marie: SWC reviews by March 18th
Christian de Sainte Marie: SWC publication date is March 21st
Christian de Sainte Marie: s/XXX/March 21st/ (failed)
Christian de Sainte Marie: DTB (Data Types and Builtins) freeze March 11th
Christian de Sainte Marie: DTB reviews by March 25th

(No activity for 5 minutes)

Christian de Sainte Marie: UCR freeze March 14th
Christian de Sainte Marie: s/14/11/ (failed)
Christian de Sainte Marie: UCR reviews by 18th
Christian de Sainte Marie: UCR publication is March 21st
Christian de Sainte Marie: PRD next internal draft March 7th
Christian de Sainte Marie: PRD telecon to be set up the week after
Christian de Sainte Marie: PRD decisions in my mind: [Scribe assist by Sandro Hawke]
Sandro Hawke: ... next draft will built on Core syntax, by reference
Sandro Hawke: ... no aggregated, no binding pattersn
Sandro Hawke: .... semantics rewritten based on states and transitions.
Sandro Hawke: ... actions limitted to ASSERT and RETRACT.
Sandro Hawke: ... will not include agenda/priorites in this draft --- but they will be in FPWD.

(No activity for 5 minutes)