W3C home > Mailing lists > Public > public-prov-wg@w3.org > September 2011

RE: PROV-ISSUE-95 (Recipes as Classes): Recipes as classes? [Conceptual Model]

From: Myers, Jim <MYERSJ4@rpi.edu>
Date: Thu, 15 Sep 2011 20:22:21 +0000
To: Jim McCusker <mccusj@rpi.edu>
CC: Provenance Working Group WG <public-prov-wg@w3.org>
Message-ID: <3131E7DF4CD2D94287870F5A931EFC23030E41@EX14MB2.win.rpi.edu>
Got it - makes sense. That mechanism in OWL addresses the distinction between process and description/definition we were discussing. Would it be better to think of the class as Process (versus plan?) - HTTPGet is a subclass of process (whose instances are PEs) and the HTTPGet instance defines the process (and hence is the plan)?
 Jim


From: Jim McCusker [mailto:mccusj@rpi.edu]
Sent: Thursday, September 15, 2011 4:06 PM
To: Myers, Jim
Cc: Provenance Working Group WG
Subject: Re: PROV-ISSUE-95 (Recipes as Classes): Recipes as classes? [Conceptual Model]

That's precisely what I'm NOT implying. Here's the example fleshed out more in manchester syntax:

==== in PROV ====
Class: prov:Plan

Class: prov:ProcessExecution

ObjectProperty: prov:hasPlan
    Domain:
        prov:ProcessExecution
    Range:
        prov:Plan

==== in HTTP provenance extension ====
# I'm adding extra restrictions here to show how you can go about formulating what the plan needs.
# These actions can also be based on service descriptions from SADI and SAWSDL.
Class: HTTP_1.1:GET
    SubClassOf:
        prov:ProcessExecution
        prov:used exactly 1 HTTP_1.1:UniformResourceLocator
        prov:generated exactly 1 HTTP_1.1:Transaction
    EquivalentTo:
        prov:ProcessExecution and prov:hasPlan value HTTP_1.1_GET

# This is not the same thing as the class HTTP_1.1:GET. Note that it's type is prov:Plan.
Individual: HTTP_1.1:GET
    Types: prov:Plan
    Annotations:
        rdfs:comment "This is the plan that is defined by the HTTP 1.1 GET operation."

==== in provenance graph ====

Individual: pe1
    Types:
        HTTP_1.1:GET
        prov:ProcessExecution
    Facts:
        prov:hasPlan HTTP_1.1:GET


>From http://www.w3.org/TR/owl2-new-features/#F12:_Punning:

OWL 1 DL required a strict separation between the names of, e.g., classes and individuals. OWL 2 DL relaxes this separation somewhat to allow different uses of the same term, e.g., Eagle, to be used for both a class, the class of all Eagles, and an individual, the individual representing the species Eagle belonging to the (meta)class of all plant and animal species. However, OWL 2 DL still imposes certain restrictions: it requires that a name cannot be used for both a class and a datatype and that a name can only be used for one kind of property. The OWL 2 Direct Semantics treats the different uses of the same name as completely separate, as is required in DL reasoners.

Similarly, the class HTTP_1.1:GET is a class representing all process executions that conform to the HTTP 1.1 GET operation. The individual HTTP_1.1:GET represents the specification for HTTP 1.1 GET, and is of the (meta)class Plan.

Jim

On Thu, Sep 15, 2011 at 2:17 PM, Myers, Jim <MYERSJ4@rpi.edu<mailto:MYERSJ4@rpi.edu>> wrote:
This seems to imply that an event is an instance of class: plan and the individual plans are instances of class: plan. In this case when I say individual plan I'm talking about something like the workflow template - a definition of the generic process versus an event where both the generic and parameterized inputs are all defined and can only occur once. Do you want the workflow template and event to both be instances of the same class?

Jim

From: Jim McCusker [mailto:mccusj@rpi.edu<mailto:mccusj@rpi.edu>]
Sent: Thursday, September 15, 2011 1:40 PM

To: Myers, Jim
Cc: Provenance Working Group WG
Subject: Re: PROV-ISSUE-95 (Recipes as Classes): Recipes as classes? [Conceptual Model]

 I was saying that an event that follows a recipe/plan is an instance of that recipe/plan. The URI for a plan can be used two ways in OWL 2: as an individual (the description of the plan, such as components, parameters, whatnot), and as a class (defining members of the set, formally defining what is used in a plan).

Note: I find myself avoiding saying recipe because, while it's specific, it just doesn't sound right. Plan might be specific enough while covering other usages that recipe normally wouldn't be used for.

Jim
On Thu, Sep 15, 2011 at 12:29 PM, Myers, Jim <MYERSJ4@rpi.edu<mailto:MYERSJ4@rpi.edu>> wrote:
??? Sorry -not sure I understand your comment - I was saying that while PEs are instances of some class (process), I didn't think it could recipe since instances of that class would be files, not PEs. Are you agreeing/disagreeing/re-framing?

Jim

From: Jim McCusker [mailto:mccusj@rpi.edu<mailto:mccusj@rpi.edu>]
Sent: Thursday, September 15, 2011 12:02 PM
To: Myers, Jim
Cc: Provenance Working Group WG
Subject: Re: PROV-ISSUE-95 (Recipes as Classes): Recipes as classes? [Conceptual Model]

On Thu, Sep 15, 2011 at 11:23 AM, Myers, Jim <MYERSJ4@rpi.edu<mailto:MYERSJ4@rpi.edu>> wrote:
We had discussions earlier about the idea that a PE was an instance of a process which has a recipe and then decided that we could just represent PE hasRecipe R without realizing the process itself in the model. I don't have an opinion about the decision but I bring it up because I think process would be the right thing to be the class for a PE instance, not recipe. One type of instance of a recipe could be a file (text, workflow description, etc.) - a PE wouldn't be an instance of a recipe, but could be an instance of the process the recipe describes.

I think that's where the punning comes in. When treated as an individual, the recipe is the plan. When treated as a class, it is the group of things that conform to that plan.

Jim
--
Jim McCusker
Programmer Analyst
Krauthammer Lab, Pathology Informatics
Yale School of Medicine
james.mccusker@yale.edu<mailto:james.mccusker@yale.edu> | (203) 785-6330<tel:%28203%29%20785-6330>
http://krauthammerlab.med.yale.edu

PhD Student
Tetherless World Constellation
Rensselaer Polytechnic Institute
mccusj@cs.rpi.edu<mailto:mccusj@cs.rpi.edu>
http://tw.rpi.edu



--
Jim McCusker
Programmer Analyst
Krauthammer Lab, Pathology Informatics
Yale School of Medicine
james.mccusker@yale.edu<mailto:james.mccusker@yale.edu> | (203) 785-6330<tel:%28203%29%20785-6330>
http://krauthammerlab.med.yale.edu

PhD Student
Tetherless World Constellation
Rensselaer Polytechnic Institute
mccusj@cs.rpi.edu<mailto:mccusj@cs.rpi.edu>
http://tw.rpi.edu



--
Jim McCusker
Programmer Analyst
Krauthammer Lab, Pathology Informatics
Yale School of Medicine
james.mccusker@yale.edu<mailto:james.mccusker@yale.edu> | (203) 785-6330
http://krauthammerlab.med.yale.edu

PhD Student
Tetherless World Constellation
Rensselaer Polytechnic Institute
mccusj@cs.rpi.edu<mailto:mccusj@cs.rpi.edu>
http://tw.rpi.edu
Received on Thursday, 15 September 2011 20:24:50 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 13:06:41 GMT