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

I have updated the PROV schema with new elements and complex types that reflect PROV-defined specializations of entity (bundle, collection, empty collection, plan), agent (person, organization, software agent) and derivation (quotation, revision, primary source).

You can now define a prov:Person with the following XML:

<prov:person prov:id="ex:Paolo" />

The old manner of defining a prov:Person (and all other types affected by this update) is still valid.

<prov:agent prov:id="ex:Paolo">
    <prov:type xsi:type="xsd:QName">prov:Person</prov:type>
  </prov:agent>

Similar updates have been made for bundle, collection, empty collection , plan, organization, software agent, quotation, revision, and primary source.

In the case of quotation, revision, and primary source the XML elements have been named to align with PROV-O.

  <xs:element name="wasRevisionOf"        type="prov:Revision"/>
  <xs:element name="wasQuotedFrom"        type="prov:Quotation"/>
  <xs:element name="hadPrimarySource"     type="prov:PrimarySource"/>

Change-set to PROV-XML schema

https://dvcs.w3.org/hg/prov/rev/fb3e3ef40222

Change-set to PROV-XML example files

https://dvcs.w3.org/hg/prov/rev/33a576fb0b32

The editors draft of the PROV-XML note has not yet been updated, but I intend to have it updated before this week's telecon.

--Stephan

On Nov 21, 2012, at 5:00 PM, "Hua, Hook (388C)" <hook.hua@jpl.nasa.gov> wrote:

> Hi Stephan and Luc,
> 
> If we end up supporting both ways (three if you count Luc's one-liner
> attribute way), then it may leave some variability of validation in the
> different approaches.
> 
> For example, with the <prov:wasRevisionOf> approach, it can be explicitly
> validated by code ingesting the XML traces since the type is expressed in
> the XSD.
> 
> But with the <prov:type xsi:type="xsd:QName">prov:Revision</prov:type>
> approach, the type value is currently left open as an xs:anySimpleType.
> 
> Since we are explicitly defining an <prov:wasRevisionOf>, should we then
> define a matching set of restriction constraints on <prov:type> ? For
> example, a simpleType restriction with enumerations that match the
> explicit extensions:
> 
>  <xs:complexType name="Derivation">
>    <xs:sequence>
>      <xs:element name="generatedEntity"  type="prov:EntityRef"/>
>      <xs:element name="usedEntity"       type="prov:EntityRef"/>
>      <xs:element name="activity"         type="prov:ActivityRef"
> minOccurs="0"/>
>      <xs:element name="generation"       type="prov:GenerationRef"
> minOccurs="0"/>
>      <xs:element name="usage"            type="prov:UsageRef"
> minOccurs="0"/>
>      <xs:choice minOccurs="0" maxOccurs="unbounded">
>        <xs:element ref="prov:label"/>
>        <xs:element ref="prov:type">
>            <xs:simpleType>
>                <xs:restriction base="xs:anySimpleType">
>                    <xs:enumeration value="prov:Revision"></xs:enumeration>
>                </xs:restriction>
>            </xs:simpleType>
>        </xs:element>
>        <xs:any namespace="##other"/>
>      </xs:choice>
>    </xs:sequence>
>    <xs:attribute ref="prov:id"/>
>  </xs:complexType>
> 
>  <xs:element name="wasDerivedFrom" type="prov:Derivation"/>
> 
> 
> --Hook
> 
> 
> 
> 
> On 11/19/12 10:33 PM, "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
>> 
>>>>> 
>>>>> <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>
>>>>> 
>>>>> 
> 
> 
>>>>> 
> 
> 
> 

Received on Monday, 14 January 2013 21:57:09 UTC