Re: ISSUE-595: Prov-xml subtyping needs to be marked in the document

The reason to allow defined prov types in the prov:type (PROV, not XML) attribute would be to support multi-typing.

A prov:Agent that is also a prov:Entity would be the most likely scenario.  Luc mentioned a few others such as a Revision that is also a Quotation and a Organization that is also a Person but I am not sure those examples make sense.

If all prov types are disjoint from any type they are not specified to be a subtype of, then I agree we can leave prov:type for domain-extended types only.  As it is now, I do not believe the PROV-DM specifies any disjointness among defined PROV types and it does say that the attribute prov:type can occur multiple times.

--Stephan

On Nov 20, 2012, at 8:58 AM, Paul Groth <pgroth@gmail.com> wrote:

> Hi,
> 
> Why do we define the prov:type attribute to include the definitions of prov? Isn't it clear from the specs that there is subtyping. As an implementor I know that wasRevisionOf is a subtype of wasDerivedFrom?
> 
> Thanks
> Paul
> 
> 
> On Tue, Nov 20, 2012 at 7:33 AM, Luc Moreau <L.Moreau@ecs.soton.ac.uk> wrote:
> Hi Stephan,
> 
> I think I concur with your conclusion: it may end up making tooling complex. Plus, the third way of writing things:
> 
> <proc:agent xsi:type="prov:Person" prov:id="ex:e"/>
> 
> Professor Luc Moreau
> Electronics and Computer Science
> University of Southampton
> Southampton SO17 1BJ
> United Kingdom
> 
> On 20 Nov 2012, at 01:09, "Stephan Zednik" <zednis@rpi.edu> wrote:
> 
> >
> >
> > On Nov 19, 2012, at 5:36 PM, Luc Moreau <L.Moreau@ecs.soton.ac.uk> wrote:
> >
> >> Hi Stephan,
> >>
> >> It looks like a reasonable approach. Can we handle the case where a quotation is also a revision? Or a person also an organisation? ( not sure ths is all very meaningful, but this is valid).
> >
> > If I remember correctly that was one of the modeling issues that lead us to follow the PROV-N lead on sub-typing.
> >
> > The following is still valid
> >
> > <prov:person prov:id="ex:foo" >
> >  <prov:type xsi:type="xsd:QName">prov:Organization</prov:type>
> > </prov:person>
> >
> > I left prov:type as it was so all previous PROV-XML examples are still valid.   The 'a now b' examples from my previous email should be considered equivalent.  We now have two ways of declaring something is a person, revision, quotation, etc. whereas before we only had one.
> >
> > This seems like it would complicate tooling so I am not sure it as cut-and-dry the best direction as it would first seem.
> >
> > --Stephan
> >
> >>
> >> Professor Luc Moreau
> >> Electronics and Computer Science
> >> University of Southampton
> >> Southampton SO17 1BJ
> >> United Kingdom
> >>
> >> On 20 Nov 2012, at 00:02, "Stephan Zednik" <zednis@rpi.edu> wrote:
> >>
> >>> I have made notes in the PROV-XML Note document that examples of sub-typing are under discussion and may change in the future.
> >>>
> >>> https://dvcs.w3.org/hg/prov/rev/78a059d12dd2
> >>>
> >>> I have also created a copy of the existing schema with new complexTypes and elements for Person, Organization, SoftwareAgent, Collection, EmptyCollection, Plan, Revision, Quotation, and PrimarySource.
> >>>
> >>> https://dvcs.w3.org/hg/prov/raw-file/49d63187fb7f/xml/schema/prov.alt.xsd
> >>>
> >>> This is to address feedback raised on reliance on prov:type to express the above entity and derivation sub-typing.
> >>>
> >>> The new complex types use xs:extension to extend existing complexTypes.
> >>>
> >>> Two examples:
> >>>
> >>> <xs:complexType name="Person">
> >>>  <xs:complexContent>
> >>>    <xs:extension base="prov:Agent">
> >>>    </xs:extension>
> >>>  </xs:complexContent>
> >>> </xs:complexType>
> >>>
> >>> ...
> >>>
> >>> <xs:complexType name="Revision">
> >>>  <xs:complexContent>
> >>>    <xs:extension base="prov:Derivation">
> >>>      <!-- add any additional properties here -->
> >>>    </xs:extension>
> >>>  </xs:complexContent>
> >>> </xs:complexType>
> >>>
> >>> These changes lead to the following simplifications on our XML serialization:
> >>>
> >>> <prov:agent prov:id="ex:Paolo">
> >>>  <prov:type xsi:type="xsd:QName">prov:Person</prov:type>
> >>> </prov:agent>
> >>>
> >>> could now be modeled as
> >>>
> >>> <prov:person prov:id="ex:Paolo" />
> >>>
> >>> and
> >>>
> >>> <prov:wasDerivedFrom>
> >>>  <prov:generatedEntity prov:ref="tr:WD-prov-dm-20111215"/>
> >>>  <prov:usedEntity prov:ref="tr:WD-prov-dm-20111018"/>
> >>>  <prov:type xsi:type="xsd:QName">prov:Revision</prov:type>
> >>> </prov:wasDerivedFrom>
> >>>
> >>> could now be modeled as
> >>>
> >>> <prov:wasRevisionOf>
> >>>  <prov:generatedEntity prov:ref="tr:WD-prov-dm-20111215"/>
> >>>  <prov:usedEntity prov:ref="tr:WD-prov-dm-20111018"/>
> >>> </prov:wasRevisionOf>
> >>>
> >>> What does the group think of this approach?
> >>>
> >>> --Stephan
> >>>
> >>> On Nov 9, 2012, at 11:53 AM, Provenance Working Group Issue Tracker <sysbot+tracker@w3.org> wrote:
> >>>
> >>>> ISSUE-595: Prov-xml subtyping needs to be marked in the document
> >>>>
> >>>> http://www.w3.org/2011/prov/track/issues/595
> >>>>
> >>>> Raised by:
> >>>> On product:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >
> 
> 

Received on Tuesday, 20 November 2012 18:27:22 UTC