Provenance Working Group Teleconference

Minutes of 31 January 2013

Agenda
http://www.w3.org/2011/prov/wiki/Meetings:Telecon2013.01.31
Seen
Curt Tilmes, Daniel Garijo, Graham Klyne, Hook Hua, Ivan Herman, James Cheney, Khalid Belhajjame, Luc Moreau, Paolo Missier, Paul Groth, Simon Miles, Stian Soiland-Reyes, Timothy Lebo, Tom De Nies, Trung Huynh
Regrets
Simon Miles, Tom De Nies
Chair
Luc Moreau
Scribe
Paolo Missier
IRC Log
Original and Editable Wiki Version
Resolutions
  1. the Minutes of Jan. 24, 2013 link
  2. http://www.w3.org/2011/prov/wiki/ResponsesToPublicCommentsCR#ISSUE-617 as a Working Group Response link
Topics
  1. Admin

  2. WG Implementations

    Paul updated the group on implementation surveys. We are now meeting the CR exit criteria set for prov-o. For prov-n, all features but six are exchanged by an interoperability pair in which the two implementations are software systems; all features are exchanged by an interoperability pair in which the "producer" is a document, and the consumer a software system. All prov-constraint test cases except one are passed by two independent applications. The last test case, using bnodes in turtle, will be rewritten with explicit URIs. While the group welcomes further implementation surveys, the group considers that it has met the CR exit criteria: Paul and Dong will begin drafting the implementation report.

  3. cr exit

    We discussed the contents of the implementation report. Dong will try to generate table from WBS data; Paul will draft the prose introducing the tables. We reviewed outstanding tasks on the recommendation track documents. No outstanding issue for prov-dm and prov-n. Formal issues on prov-o have been addressed, but minor editorial issues (concerning examples) remain to be addressed. A few explanatory remarks are planned to be added to prov-constraints. Plan is to complete changes by next teleconference, or shortly afterwards. We also discussed the note-track documents: prov-dc are planning a revised version for internal review next week. The group is invited to submit issues if they want changes addressed to the remaining documents. All documents will have to add prov-dictionary to the "status of this document" paragraph.

  4. PROV-O

    The group endorsed the response as to why some constraints are not implemented in PROV-O. Paul will feedback to reviewers.

  5. PROV-AQ

    Editors are still working through the reviewer's feedback. They are invited to initiate debate by email on outstanding issues, with a view to vote on some of them shortly.

  6. PROV-XML

    Luc left the call at that point. The group discussed outstanding issues informally.

15:53:14 <RRSAgent> logging to http://www.w3.org/2013/01/31-prov-irc

RRSAgent IRC Bot: logging to http://www.w3.org/2013/01/31-prov-irc

15:53:16 <trackbot> RRSAgent, make logs world

Trackbot IRC Bot: RRSAgent, make logs world

15:53:18 <trackbot> Zakim, this will be PROV

Trackbot IRC Bot: Zakim, this will be PROV

15:53:18 <Zakim> ok, trackbot; I see SW_(PROV)11:00AM scheduled to start in 7 minutes

Zakim IRC Bot: ok, trackbot; I see SW_(PROV)11:00AM scheduled to start in 7 minutes

15:53:19 <trackbot> Meeting: Provenance Working Group Teleconference
15:53:19 <trackbot> Date: 31 January 2013
15:53:19 <Luc> Zakim, this will be PROV

Luc Moreau: Zakim, this will be PROV

15:53:20 <Zakim> ok, Luc; I see SW_(PROV)11:00AM scheduled to start in 7 minutes

Zakim IRC Bot: ok, Luc; I see SW_(PROV)11:00AM scheduled to start in 7 minutes

15:53:34 <Luc> Agenda: http://www.w3.org/2011/prov/wiki/Meetings:Telecon2013.01.31
15:53:43 <Luc> Chair: Luc Moreau
15:53:49 <Luc> rrsagent, make logs public

Luc Moreau: rrsagent, make logs public

15:54:02 <Luc> Regrets: Simon Miles, Tom De Nies
15:57:30 <Zakim> SW_(PROV)11:00AM has now started

Zakim IRC Bot: SW_(PROV)11:00AM has now started

15:57:37 <Zakim> +[IPcaller]

Zakim IRC Bot: +[IPcaller]

15:57:40 <pgroth> Zakim, who is on the phone?

Paul Groth: Zakim, who is on the phone?

15:57:40 <Zakim> On the phone I see [IPcaller]

Zakim IRC Bot: On the phone I see [IPcaller]

15:57:48 <pgroth> Zakim, [IPcaller] is me

Paul Groth: Zakim, [IPcaller] is me

15:57:48 <Zakim> +pgroth; got it

Zakim IRC Bot: +pgroth; got it

15:57:57 <Zakim> +[IPcaller]

Zakim IRC Bot: +[IPcaller]

15:59:13 <Paolo> do you still need a scribe

Paolo Missier: do you still need a scribe

15:59:19 <Zakim> +Luc

Zakim IRC Bot: +Luc

15:59:38 <Luc> yes paolo

Luc Moreau: yes paolo

15:59:42 <Paolo> ok

Paolo Missier: ok

15:59:45 <Zakim> +[IPcaller.a]

Zakim IRC Bot: +[IPcaller.a]

15:59:54 <Luc> can you do it? it's all set up

Luc Moreau: can you do it? it's all set up

16:00:03 <Luc> scribe: Paolo Missier

(Scribe set to Paolo Missier)

16:00:05 <stain> Zakim, [IPcaller.a] is me

Stian Soiland-Reyes: Zakim, [IPcaller.a] is me

16:00:07 <Zakim> +stain; got it

Zakim IRC Bot: +stain; got it

16:00:18 <ivan> zakim, dial ivan-voip

Ivan Herman: zakim, dial ivan-voip

16:00:19 <Zakim> ok, ivan; the call is being made

Zakim IRC Bot: ok, ivan; the call is being made

16:00:19 <Zakim> +Ivan

Zakim IRC Bot: +Ivan

16:00:24 <Zakim> + +44.131.651.aaaa

Zakim IRC Bot: + +44.131.651.aaaa

16:00:28 <stain> I didn't know it could do outgoing!

Stian Soiland-Reyes: I didn't know it could do outgoing!

16:00:29 <jcheney> zakim, aaaa is me

James Cheney: zakim, aaaa is me

16:00:29 <Zakim> +jcheney; got it

Zakim IRC Bot: +jcheney; got it

16:01:06 <Zakim> + +1.315.941.aabb

Zakim IRC Bot: + +1.315.941.aabb

16:01:13 <lebot> zakim, I am aabb

Timothy Lebo: zakim, I am aabb

16:01:13 <Zakim> +lebot; got it

Zakim IRC Bot: +lebot; got it

16:01:19 <Luc> topic: Admin

1. Admin

16:01:33 <Zakim> +??P5

Zakim IRC Bot: +??P5

16:01:34 <Zakim> +??P27

Zakim IRC Bot: +??P27

16:01:42 <dgarijo> Zakim, ??P5 is me

Daniel Garijo: Zakim, ??P5 is me

16:01:42 <Zakim> +dgarijo; got it

Zakim IRC Bot: +dgarijo; got it

16:02:10 <Luc> Proposed: To approve the Minutes of Jan. 24, 2013

PROPOSED: To approve the Minutes of Jan. 24, 2013

16:02:12 <lebot> +1

Timothy Lebo: +1

16:02:13 <stain> http://www.w3.org/2011/prov/meeting/2013-01-17

Stian Soiland-Reyes: http://www.w3.org/2011/prov/meeting/2013-01-17

16:02:18 <dgarijo> +1

Daniel Garijo: +1

16:02:20 <Zakim> +Curt_Tilmes

Zakim IRC Bot: +Curt_Tilmes

16:02:23 <Paolo> +1

+1

16:02:23 <GK1> +0 (not present)

Graham Klyne: +0 (not present)

16:02:24 <hook> +1

Hook Hua: +1

16:02:27 <Curt> +1

Curt Tilmes: +1

16:02:29 <stain> +1

Stian Soiland-Reyes: +1

16:02:29 <ivan> 0 (not present)

Ivan Herman: 0 (not present)

16:02:38 <jcheney> that link is from 2 weeks ago

James Cheney: that link is from 2 weeks ago

16:02:47 <GK1> zakim, ??p27 is me

Graham Klyne: zakim, ??p27 is me

16:02:47 <Zakim> +GK1; got it

Zakim IRC Bot: +GK1; got it

16:02:48 <Curt> http://www.w3.org/2011/prov/meeting/2013-01-24

Curt Tilmes: http://www.w3.org/2011/prov/meeting/2013-01-24

16:02:49 <stain> http://www.w3.org/2011/prov/meeting/2013-01-24

Stian Soiland-Reyes: http://www.w3.org/2011/prov/meeting/2013-01-24

16:02:56 <jcheney> +1

James Cheney: +1

16:02:58 <Luc> Accepted: the Minutes of Jan. 24, 2013

RESOLVED: the Minutes of Jan. 24, 2013

16:03:05 <stain> I clicked Agendwa in topic you see

Stian Soiland-Reyes: I clicked Agendwa in topic you see

16:03:17 <Zakim> + +1.818.731.aacc

Zakim IRC Bot: + +1.818.731.aacc

16:03:39 <pgroth> done

Paul Groth: done

16:03:40 <stain> stain has changed the topic to: /topic *

Stian Soiland-Reyes: stain has changed the topic to: /topic *

16:03:49 <stain> stain has changed the topic to: Agenda: http://www.w3.org/2011/prov/wiki/Meetings:Telecon2013.01.31

Stian Soiland-Reyes: stain has changed the topic to: Agenda: http://www.w3.org/2011/prov/wiki/Meetings:Telecon2013.01.31

16:04:02 <Luc> Topic: WG Implementations

2. WG Implementations

Summary: Paul updated the group on implementation surveys. We are now meeting the CR exit criteria set for prov-o. For prov-n, all features but six are exchanged by an interoperability pair in which the two implementations are software systems; all features are exchanged by an interoperability pair in which the "producer" is a document, and the consumer a software system. All prov-constraint test cases except one are passed by two independent applications. The last test case, using bnodes in turtle, will be rewritten with explicit URIs. While the group welcomes further implementation surveys, the group considers that it has met the CR exit criteria: Paul and Dong will begin drafting the implementation report.

<Luc> Summary: Paul updated the group on implementation surveys. We are now meeting the CR exit criteria set for prov-o. For prov-n, all features but six are exchanged by an interoperability pair in which the two implementations are software systems; all features are exchanged by an interoperability pair  in which the "producer" is a document, and the consumer a software system.  All prov-constraint test cases except one are passed by two independent applications. The last test case, using bnodes in turtle, will be rewritten with explicit URIs.  While the group welcomes further implementation surveys, the group considers that it has met the CR exit criteria: Paul and Dong will begin drafting the implementation report.
16:04:04 <pgroth> q+

Paul Groth: q+

16:04:13 <Paolo> action 162 to be closed

ACTION-162 to be closed

16:04:13 <trackbot> Error finding '162'. You can review and register nicknames at <http://www.w3.org/2011/prov/track/users>.

Trackbot IRC Bot: Error finding '162'. You can review and register nicknames at <http://www.w3.org/2011/prov/track/users>.

16:04:22 <Paolo> (oops sorry)

(oops sorry)

16:04:39 <pgroth> http://lists.w3.org/Archives/Public/public-prov-wg/2013Jan/0153.html

Paul Groth: http://lists.w3.org/Archives/Public/public-prov-wg/2013Jan/0153.html

16:04:56 <Paolo> pgroth: deeper analysis of current implementations

Paul Groth: deeper analysis of current implementations

16:05:18 <Paolo> pgroth: do we meet out exit criteria?

Paul Groth: do we meet out exit criteria?

16:05:27 <Paolo> pgroth: PROV-O no problem

Paul Groth: PROV-O no problem

16:05:27 <Luc> http://www.w3.org/2011/prov/wiki/ProvCRExitCriteria

Luc Moreau: http://www.w3.org/2011/prov/wiki/ProvCRExitCriteria

16:06:07 <Paolo> pgroth: PROV-N: we do meet our exit criteria, 2 kinds of apps implementation, have a vocabulary usage that covers the additional features

Paul Groth: PROV-N: we do meet our exit criteria, 2 kinds of apps implementation, have a vocabulary usage that covers the additional features

16:06:12 <Luc> q?

Luc Moreau: q?

16:06:16 <pgroth> q-

Paul Groth: q-

16:06:18 <Paolo> pgroth: so we can conclude we do have impl. that interoperate with PROV-N

Paul Groth: so we can conclude we do have impl. that interoperate with PROV-N

16:06:43 <Paolo> pgroth: PROV-CONSTRAINTS: we meet the criteria here too, with caveats:

Paul Groth: PROV-CONSTRAINTS: we meet the criteria here too, with caveats:

16:07:18 <jcheney> stephen and I are working on a prolog impl, hoping to have something ready to go today or tomorrow

James Cheney: stephen and I are working on a prolog impl, hoping to have something ready to go today or tomorrow

16:07:19 <Paolo> pgroth: one implementation has one test case not passing. That is one short of the total required

Paul Groth: one implementation has one test case not passing. That is one short of the total required

16:07:27 <Paolo> pgroth: Ivan to look at it, probably ok

Paul Groth: Ivan to look at it, probably ok

16:07:31 <jcheney> but need xml-valid prov-xml examples

James Cheney: but need xml-valid prov-xml examples

16:07:39 <jcheney> (stephen cresswell)

James Cheney: (stephen cresswell)

16:07:50 <Paolo> pgroth: it would look better if we had one more implementation

Paul Groth: it would look better if we had one more implementation

16:07:54 <Zakim> +[IPcaller.a]

Zakim IRC Bot: +[IPcaller.a]

16:07:55 <Zakim> +[IPcaller.aa]

Zakim IRC Bot: +[IPcaller.aa]

16:08:06 <Paolo> pgroth: on the other hand, it's the hardest of the docs to implement

Paul Groth: on the other hand, it's the hardest of the docs to implement

16:08:07 <Zakim> +??P17

Zakim IRC Bot: +??P17

16:08:09 <khalidBelhajjame> zakim, [IPcaller.a] is me

Khalid Belhajjame: zakim, [IPcaller.a] is me

16:08:09 <Zakim> +khalidBelhajjame; got it

Zakim IRC Bot: +khalidBelhajjame; got it

16:08:44 <Luc> which one is failing?

Luc Moreau: which one is failing?

16:09:03 <Paolo> ivan: what is the issue with the one failing test case?

Ivan Herman: what is the issue with the one failing test case?

16:09:16 <Zakim> +Satya_Sahoo

Zakim IRC Bot: +Satya_Sahoo

16:09:28 <Paolo> pgroth: has to do with bnodes, could probably be fixed

Paul Groth: has to do with bnodes, could probably be fixed

16:09:39 <Luc> q+

Luc Moreau: q+

16:09:41 <Zakim> +??P31

Zakim IRC Bot: +??P31

16:10:02 <Paolo> ivan: there will be a need to explain as to why we don't pass all tests

Ivan Herman: there will be a need to explain as to why we don't pass all tests

16:10:03 <lebot> q+ to propose that pgroth bangs head :-)

Timothy Lebo: q+ to propose that pgroth bangs head :-)

16:10:06 <lebot> q-

Timothy Lebo: q-

16:10:08 <TomDN> Zakim, +??P31 is probably me

Tom De Nies: Zakim, +??P31 is probably me

16:10:09 <Zakim> sorry, TomDN, I do not understand your question

Zakim IRC Bot: sorry, TomDN, I do not understand your question

16:10:12 <jcheney> heh heh

James Cheney: heh heh

16:10:20 <Paolo> Luc: the exit criteria don't define the tests -- we are free to define the test set

Luc Moreau: the exit criteria don't define the tests -- we are free to define the test set

16:10:25 <TomDN> Zakim, P31 is  me

Tom De Nies: Zakim, P31 is me

16:10:25 <Zakim> sorry, TomDN, I do not recognize a party named 'P31'

Zakim IRC Bot: sorry, TomDN, I do not recognize a party named 'P31'

16:10:33 <TomDN> Zakim, +??P31 is  me

Tom De Nies: Zakim, +??P31 is me

16:10:33 <Zakim> sorry, TomDN, I do not recognize a party named '+??P31'

Zakim IRC Bot: sorry, TomDN, I do not recognize a party named '+??P31'

16:10:51 <Paolo> Luc: can the test itself be rephrased?

Luc Moreau: can the test itself be rephrased?

16:10:53 <pgroth> prov-dm-ex23_start-PASS.ttl

Paul Groth: prov-dm-ex23_start-PASS.ttl

16:11:24 <TomDN> Zakim, who is on the phone?

Tom De Nies: Zakim, who is on the phone?

16:11:24 <Zakim> On the phone I see pgroth, [IPcaller], Luc, stain, Ivan, jcheney, lebot, dgarijo, GK1, Curt_Tilmes, +1.818.731.aacc, khalidBelhajjame, [IPcaller.aa], ??P17, Satya_Sahoo, ??P31

Zakim IRC Bot: On the phone I see pgroth, [IPcaller], Luc, stain, Ivan, jcheney, lebot, dgarijo, GK1, Curt_Tilmes, +1.818.731.aacc, khalidBelhajjame, [IPcaller.aa], ??P17, Satya_Sahoo, ??P31

16:11:38 <TomDN> Zakim, ??P31 is me

Tom De Nies: Zakim, ??P31 is me

16:11:38 <Zakim> +TomDN; got it

Zakim IRC Bot: +TomDN; got it

16:12:00 <Paolo> Luc: this has been discussed elsewhere and there seems to be an easy way to fix the problem in the test case

Luc Moreau: this has been discussed elsewhere and there seems to be an easy way to fix the problem in the test case

16:12:21 <lebot> +1000 to using URIs over bnodes.

Timothy Lebo: +1000 to using URIs over bnodes.

16:12:52 <Paolo> Luc: propose to change the ttl example to use explicit URIs, that will take care of it

Luc Moreau: propose to change the ttl example to use explicit URIs, that will take care of it

16:13:35 <Paolo> Luc: pgroth has indicated 6-7 features that are not exchanged using the prov representation. this is about prov-n

Luc Moreau: pgroth has indicated 6-7 features that are not exchanged using the prov representation. this is about prov-n

16:13:48 <Paolo> Luc: how do we know that all features have been exchanged in prov-o?

Luc Moreau: how do we know that all features have been exchanged in prov-o?

16:14:12 <Paolo> pgroth: two implementations have reported that -- simon's and Luc's.

Paul Groth: two implementations have reported that -- simon's and Luc's.

16:15:06 <Paolo> Luc: then propose to use the same example for prov-n -- one produces prov-n, the other consumes prov-n

Luc Moreau: then propose to use the same example for prov-n -- one produces prov-n, the other consumes prov-n

16:15:19 <TomDN> neither do I

Tom De Nies: neither do I

16:16:14 <Paolo> pgroth: the two impl, should be independent so using two from soton won't work

Paul Groth: the two impl, should be independent so using two from soton won't work

16:16:42 <Paolo> Luc: are we fine then wrt prov-n?

Luc Moreau: are we fine then wrt prov-n?

16:17:05 <TomDN> The problem is: if I want to support all of prov-n, I could just use the ProvToolbox

Tom De Nies: The problem is: if I want to support all of prov-n, I could just use the ProvToolbox

16:17:52 <pgroth> q+

Paul Groth: q+

16:18:00 <Luc> ack luc

Luc Moreau: ack luc

16:18:42 <Paolo> pgroth: majority of prov-n is consumed by two independent impl., but not all features are coverd by each implementation -- does that have a bearing on interop?

Paul Groth: majority of prov-n is consumed by two independent impl., but not all features are coverd by each implementation -- does that have a bearing on interop?

16:19:12 <Paolo> pgroth: different people use different combinations of features

Paul Groth: different people use different combinations of features

16:19:58 <Paolo> pgroth: so comfortable that they are interchangeable, but do we need to be stricter than that about the exit criteria?

Paul Groth: so comfortable that they are interchangeable, but do we need to be stricter than that about the exit criteria?

16:20:01 <Luc> q?

Luc Moreau: q?

16:20:17 <Luc> ack  pg

Luc Moreau: ack pg

16:20:48 <GK> I don't think there should be a requirement for single implementation that does everything.  Each feature should be implementable (interoperably) by some pair of implementations.

Graham Klyne: I don't think there should be a requirement for single implementation that does everything. Each feature should be implementable (interoperably) by some pair of implementations.

16:21:01 <stain> I was hacking together a PROV-DM "API" in Clojure, but struggled with PROV-N parsing as EBNF is so many things and not something you can just throw at a parser library without massaging first

Stian Soiland-Reyes: I was hacking together a PROV-DM "API" in Clojure, but struggled with PROV-N parsing as EBNF is so many things and not something you can just throw at a parser library without massaging first

16:22:26 <Paolo> Luc: TomDN can you export more features than you do now?

Luc Moreau: TomDN can you export more features than you do now?

16:22:52 <Paolo> TomDN: not much sense because the app is about reconstructing provenance --

Tom De Nies: not much sense because the app is about reconstructing provenance --

16:22:55 <Luc> q?

Luc Moreau: q?

16:23:12 <Luc> topic: cr exit

3. cr exit

Summary: We discussed the contents of the implementation report. Dong will try to generate table from WBS data; Paul will draft the prose introducing the tables. We reviewed outstanding tasks on the recommendation track documents. No outstanding issue for prov-dm and prov-n. Formal issues on prov-o have been addressed, but minor editorial issues (concerning examples) remain to be addressed. A few explanatory remarks are planned to be added to prov-constraints. Plan is to complete changes by next teleconference, or shortly afterwards. We also discussed the note-track documents: prov-dc are planning a revised version for internal review next week. The group is invited to submit issues if they want changes addressed to the remaining documents. All documents will have to add prov-dictionary to the "status of this document" paragraph.

<Luc>Summary: We discussed the contents of the implementation report. Dong will try to generate table from WBS data; Paul will draft the prose introducing the tables.  We reviewed outstanding tasks on the recommendation track documents. No outstanding issue for prov-dm and prov-n.  Formal issues on prov-o have been addressed, but minor editorial issues (concerning examples) remain to be addressed. A few explanatory remarks are planned to be added to prov-constraints. Plan is to complete changes by next teleconference, or shortly afterwards.  We also discussed the note-track documents: prov-dc are planning a revised version for internal review next week. The group is invited to submit issues if they want changes addressed to the remaining documents. All documents will have to add prov-dictionary to the "status of this document" paragraph.
16:23:29 <Paolo> Luc: time to writing up the implementation report

Luc Moreau: time to writing up the implementation report

16:23:29 <pgroth> that's me

Paul Groth: that's me

16:23:47 <Dong> yes

Trung Huynh: yes

16:23:56 <jcheney> q+

James Cheney: q+

16:23:59 <Paolo> Luc: proposed authors: Dong zednik pgroth

Luc Moreau: proposed authors: Dong zednik pgroth

16:24:32 <pgroth> q+

Paul Groth: q+

16:24:34 <Paolo> jcheney: XML test cases: xml examples not all valid, so not all can be parsed

James Cheney: XML test cases: xml examples not all valid, so not all can be parsed

16:24:43 <Dong> I can fix those

Trung Huynh: I can fix those

16:24:55 <Paolo> Luc: it should be possible to fix them

Luc Moreau: it should be possible to fix them

16:25:06 <Luc> q?

Luc Moreau: q?

16:25:17 <pgroth> ack pgroth

Paul Groth: ack pgroth

<luc>Topic: PROV-O

4. PROV-O

Summary: The group endorsed the response as to why some constraints are not implemented in PROV-O. Paul will feedback to reviewers.

<luc> log missing

Luc Moreau: log missing

<luc>Resolved: http://www.w3.org/2011/prov/wiki/ResponsesToPublicCommentsCR#ISSUE-617 as a Working Group Response

RESOLVED: ISSUE-617">http://www.w3.org/2011/prov/wiki/ResponsesToPublicCommentsCR#ISSUE-617 as a Working Group Response

<luc>Summary: The group endorsed the response as to why some constraints are not implemented in PROV-O.  Paul will feedback to reviewers.
<luc>Topic: PROV-AQ

5. PROV-AQ

Summary: Editors are still working through the reviewer's feedback. They are invited to initiate debate by email on outstanding issues, with a view to vote on some of them shortly.

<luc> log missing

Luc Moreau: log missing

<luc>Summary: Editors are still working through the reviewer's feedback. They are invited to initiate debate by email on outstanding issues, with a view to vote on some of them shortly.
<luc>Topic: PROV-XML

6. PROV-XML

Summary: Luc left the call at that point. The group discussed outstanding issues informally.

<luc> log missing

Luc Moreau: log missing

<luc>Summary: Luc left the call at that point. The group discussed outstanding issues informally.


Formatted by CommonScribe


This revision (#3) generated 2013-02-05 16:43:34 UTC by 'lmoreau', comments: None