Difference between revisions of "PIL OWL Ontology"

From Provenance WG Wiki
Jump to: navigation, search
Line 360: Line 360:
 
     <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
 
     <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
 
     <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#" >
 
     <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#" >
     <!ENTITY CrimeFileOntology "http://w3.org/CrimeFileOntology.owl#" >
+
     <!ENTITY ProvenanceOntology "http://www.w3c.org/PROV/ProvenanceOntology.owl#" >
    <!ENTITY ProvenanceOntology "http://w3.org/ProvenanceOntology.owl#" >
+
 
     <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
 
     <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
 
     <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
 
     <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
 +
    <!ENTITY CrimeFileOntology "http://www.w3c.org/PROV/CrimeFileOntology.owl#" >
 
]>
 
]>
  
  
<rdf:RDF xmlns="http://w3.org/ProvenanceOntology.owl#"
+
<rdf:RDF xmlns="http://www.w3c.org/PROV/CrimeFileOntology.owl#"
     xml:base="http://w3.org/ProvenanceOntology.owl"
+
     xml:base="http://www.w3c.org/PROV/CrimeFileOntology.owl"
 
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 
     xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#"
 
     xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#"
     xmlns:ProvenanceOntology="http://w3.org/ProvenanceOntology.owl#"
+
     xmlns:ProvenanceOntology="http://www.w3c.org/PROV/ProvenanceOntology.owl#"
 
     xmlns:owl="http://www.w3.org/2002/07/owl#"
 
     xmlns:owl="http://www.w3.org/2002/07/owl#"
 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
 
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:CrimeFileOntology="http://w3.org/CrimeFileOntology.owl#">
+
     xmlns:CrimeFileOntology="http://www.w3c.org/PROV/CrimeFileOntology.owl#">
 
     <owl:Ontology rdf:about="">
 
     <owl:Ontology rdf:about="">
         <owl:versionInfo>0.01</owl:versionInfo>
+
         <owl:imports rdf:resource="http://www.w3c.org/PROV/ProvenanceOntology.owl"/>
        <rdfs:comment
+
            >This document is published by the Provenance Working Group (http://www.w3.org/2011/prov/wiki/Main_Page).  
+
 
+
If you wish to make comments regarding this document, please send them to public-prov-wg@w3.org (subscribe, archives). All feedback is welcome.</rdfs:comment>
+
 
     </owl:Ontology>
 
     </owl:Ontology>
 
      
 
      
Line 389: Line 385:
 
     ///////////////////////////////////////////////////////////////////////////////////////
 
     ///////////////////////////////////////////////////////////////////////////////////////
 
     //
 
     //
     // Object Properties
+
     // Data properties
 
     //
 
     //
 
     ///////////////////////////////////////////////////////////////////////////////////////
 
     ///////////////////////////////////////////////////////////////////////////////////////
Line 397: Line 393:
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#Used -->
+
     <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#hasFileContent -->
  
     <owl:ObjectProperty rdf:about="#Used">
+
     <owl:DatatypeProperty rdf:about="#hasFileContent"/>
        <rdf:type rdf:resource="&owl;AsymmetricProperty"/>
+
        <rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
+
        <rdfs:range rdf:resource="#Entity"/>
+
        <rdfs:domain rdf:resource="#ProcessExecution"/>
+
    </owl:ObjectProperty>
+
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#isControlledBy -->
+
     <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#hasFilePath -->
  
     <owl:ObjectProperty rdf:about="#isControlledBy">
+
     <owl:DatatypeProperty rdf:about="#hasFilePath"/>
        <rdf:type rdf:resource="&owl;AsymmetricProperty"/>
+
        <rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
+
        <rdfs:range rdf:resource="#Agent"/>
+
        <rdfs:domain rdf:resource="#ProcessExecution"/>
+
    </owl:ObjectProperty>
+
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#isDerivedFrom -->
+
     <!--  
 +
    ///////////////////////////////////////////////////////////////////////////////////////
 +
    //
 +
    // Classes
 +
    //
 +
    ///////////////////////////////////////////////////////////////////////////////////////
 +
    -->
  
    <owl:ObjectProperty rdf:about="#isDerivedFrom">
 
        <rdf:type rdf:resource="&owl;AsymmetricProperty"/>
 
        <rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
 
        <rdf:type rdf:resource="&owl;TransitiveProperty"/>
 
        <rdfs:label rdf:datatype="&xsd;string"
 
            >isDerivedFrom links two distinct characterized entities, where &quot;some characterized entity is transformed from, created from, or affected by another characterized entity.&quot;</rdfs:label>
 
        <rdfs:range rdf:resource="#Entity"/>
 
        <rdfs:domain rdf:resource="#Entity"/>
 
    </owl:ObjectProperty>
 
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#isGeneratedBy -->
+
     <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#Agent -->
  
     <owl:ObjectProperty rdf:about="#isGeneratedBy">
+
     <owl:Class rdf:about="&ProvenanceOntology;Agent"/>
        <rdf:type rdf:resource="&owl;AsymmetricProperty"/>
+
        <rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
+
        <rdfs:label rdf:datatype="&xsd;string"
+
            >isGeneratedBy links BOB with ProcessExecution representing that BOB was generated as a result of ProcessExecution</rdfs:label>
+
        <rdfs:domain rdf:resource="#Entity"/>
+
        <rdfs:range rdf:resource="#ProcessExecution"/>
+
    </owl:ObjectProperty>
+
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#isParticipantIn -->
+
     <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#Entity -->
  
     <owl:ObjectProperty rdf:about="#isParticipantIn">
+
     <owl:Class rdf:about="&ProvenanceOntology;Entity"/>
        <rdf:type rdf:resource="&owl;AsymmetricProperty"/>
+
        <rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
+
    </owl:ObjectProperty>
+
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#isPrecededBy -->
+
     <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#Location -->
  
     <owl:ObjectProperty rdf:about="#isPrecededBy">
+
     <owl:Class rdf:about="&ProvenanceOntology;Location">
        <rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
+
         <rdfs:subClassOf rdf:resource="&ProvenanceOntology;Entity"/>
         <rdf:type rdf:resource="&owl;ReflexiveProperty"/>
+
     </owl:Class>
        <rdf:type rdf:resource="&owl;TransitiveProperty"/>
+
        <rdfs:domain rdf:resource="#ProcessExecution"/>
+
        <rdfs:range rdf:resource="#ProcessExecution"/>
+
     </owl:ObjectProperty>
+
 
      
 
      
  
  
     <!--  
+
     <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#ProcessExecution -->
    ///////////////////////////////////////////////////////////////////////////////////////
+
    //
+
    // Data properties
+
    //
+
    ///////////////////////////////////////////////////////////////////////////////////////
+
    -->
+
  
 +
    <owl:Class rdf:about="&ProvenanceOntology;ProcessExecution"/>
 
      
 
      
  
  
     <!-- http://w3.org/CrimeFileOntology.owl#hasFileContent -->
+
     <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#Revision -->
  
     <owl:DatatypeProperty rdf:about="&CrimeFileOntology;hasFileContent">
+
     <owl:Class rdf:about="&ProvenanceOntology;Revision">
         <rdfs:domain rdf:resource="#Entity"/>
+
         <rdfs:subClassOf rdf:resource="&ProvenanceOntology;Entity"/>
        <rdfs:range rdf:resource="&xsd;string"/>
+
     </owl:Class>
     </owl:DatatypeProperty>
+
 
      
 
      
  
  
     <!-- http://w3.org/CrimeFileOntology.owl#hasFilePath -->
+
     <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#Time -->
  
     <owl:DatatypeProperty rdf:about="&CrimeFileOntology;hasFilePath">
+
     <owl:Class rdf:about="&ProvenanceOntology;Time">
         <rdfs:domain rdf:resource="#Entity"/>
+
         <rdfs:subClassOf rdf:resource="&ProvenanceOntology;Entity"/>
        <rdfs:range rdf:resource="&xsd;string"/>
+
     </owl:Class>
     </owl:DatatypeProperty>
+
 
      
 
      
  
  
     <!--  
+
     <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#CrimeFile -->
    ///////////////////////////////////////////////////////////////////////////////////////
+
    //
+
    // Classes
+
    //
+
    ///////////////////////////////////////////////////////////////////////////////////////
+
    -->
+
  
 +
    <owl:Class rdf:about="#CrimeFile">
 +
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;Entity"/>
 +
    </owl:Class>
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#Agent -->
+
     <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#EmailProcessExecution -->
  
     <owl:Class rdf:about="#Agent">
+
     <owl:Class rdf:about="#EmailProcessExecution">
         <rdfs:label rdf:datatype="&xsd;string"
+
         <rdfs:subClassOf rdf:resource="&ProvenanceOntology;ProcessExecution"/>
            >An agent represents a characterized entity capable of activity.</rdfs:label>
+
        <rdfs:subClassOf rdf:resource="#Entity"/>
+
 
     </owl:Class>
 
     </owl:Class>
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#Entity -->
+
     <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#FileAppending -->
  
     <owl:Class rdf:about="#Entity">
+
     <owl:Class rdf:about="#FileAppending">
         <rdfs:label rdf:datatype="&xsd;string"
+
         <rdfs:subClassOf rdf:resource="&ProvenanceOntology;ProcessExecution"/>
            >A BOB represents an identifiable characterized entity.</rdfs:label>
+
 
     </owl:Class>
 
     </owl:Class>
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#Location -->
+
     <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#FileCreation -->
  
     <owl:Class rdf:about="#Location"/>
+
     <owl:Class rdf:about="#FileCreation">
 +
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;ProcessExecution"/>
 +
    </owl:Class>
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#ProcessExecution -->
+
     <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#FileEditing -->
  
     <owl:Class rdf:about="#ProcessExecution">
+
     <owl:Class rdf:about="#FileEditing">
         <rdfs:label rdf:datatype="&xsd;string"
+
         <rdfs:subClassOf rdf:resource="&ProvenanceOntology;ProcessExecution"/>
            >ProcessExecution is defined to be &quot;an identifiable activity, which performs a piece of work.&quot;</rdfs:label>
+
 
     </owl:Class>
 
     </owl:Class>
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#ProvenanceContainer -->
+
     <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#Journalist -->
  
     <owl:Class rdf:about="#ProvenanceContainer">
+
     <owl:Class rdf:about="#Journalist">
         <rdfs:label rdf:datatype="&xsd;string"
+
         <rdfs:subClassOf rdf:resource="&ProvenanceOntology;Agent"/>
            >ProvenanceContainer is defined to be an aggregation of provenance assertions. A provenance container SHOULD have an URI associated with it.</rdfs:label>
+
        <rdfs:subClassOf rdf:resource="#Entity"/>
+
 
     </owl:Class>
 
     </owl:Class>
 
      
 
      
  
  
     <!-- http://w3.org/ProvenanceOntology.owl#Revision -->
+
     <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#SpellChecking -->
  
     <owl:Class rdf:about="#Revision">
+
     <owl:Class rdf:about="#SpellChecking">
         <rdfs:label rdf:datatype="&xsd;string"
+
         <rdfs:subClassOf rdf:resource="&ProvenanceOntology;ProcessExecution"/>
            >Revision is defined as a modified version of a BOB.</rdfs:label>
+
 
     </owl:Class>
 
     </owl:Class>
   
+
</rdf:RDF>
  
  
    <!-- http://w3.org/ProvenanceOntology.owl#Role -->
 
  
    <owl:Class rdf:about="#Role">
+
<!-- Generated by the OWL API (version 2.2.1.1138) http://owlapi.sourceforge.net -->
        <rdfs:subClassOf rdf:resource="#Entity"/>
+
        <rdfs:comment rdf:datatype="&xsd;string"
+
            >Role is defined to be &quot;a function assumed by a BOB or an agent.&quot;</rdfs:comment>
+
    </owl:Class>
+
   
+
  
  
    <!-- http://w3.org/ProvenanceOntology.owl#Time -->
 
 
    <owl:Class rdf:about="#Time">
 
        <rdfs:label rdf:datatype="&xsd;string"
 
            >Time represents temporal information about entities in the Provenance model.</rdfs:label>
 
    </owl:Class>
 
</rdf:RDF>
 
  
  

Revision as of 20:56, 18 September 2011

Model Task Force

Participants

Satya has taken lead to develop the OWL ontology for PIL. Others that are helping include:

  • Khalid Belhajjame
  • James Cheney
  • Daniel Garijo (Pacific Time)
  • Tim Lebo (Eastern Time)
  • Deborah McGuinness (Eastern Time)
  • Luc Moreau
  • Stian Soiland-Reyes

Background materials

Materials

The OWL ontology materials are in the Mercurial repository at http://dvcs.w3.org/hg/prov/file/tip/ontology

Tools Used

Questions

  • Should we also be exposing the (Java?) code that produced the OWL file? Or was Protege used?
  • Can we move the comments from rdfs:label to rdfs:comment?
    • e.g. <rdfs:label rdf:datatype="&xsd;string">A BOB represents an identifiable characterized entity.</rdfs:label> should become rdfs:comment.
    • DanielG: I agree with this change. Also, we should add the labels for each class and the language (e.g., "Agent"@en).

Initial comments/suggestions about the ontology

  • Time can be reused from other mereologies instead of defining our own concept in the ontology.
    • Suggestions:
    • W3C's Time Ontology: Adresses time instants and intervals, so we could reuse it. (Daniel G)
  • Location can be reused from other popular ontologies instead of defining our own concept in the ontology.
    • Suggestions:
    • wgs_84: It is widely used already, it is simple and provides the concept SpatialThing to relate to anything with spatial extent. (Daniel G)
  • Missing relationship between generation/use/derivation and Time/Location. (Daniel G)
    • 2 different ways to address this issue:
    • Define subproperties (generatedAtTime, generatedAtLocation). Example of modelling: more simple but it would lead to a loss of information (we assert the facts to the process execution rather than the relationship itself). However it looks better for inferencing new knowledge:

Alternative2.png

    • Make the properties n-ary. This would lead to declare the properties as concepts in the ontology (and it may be more difficult to inferr new knowledge. Example of how it would be modelled in OWL (n-ary relationship pattern):

Alternative1.png

  • Arities missing (to do yet).
  • Revision, Location, ProcessExecution are not subclasses of BOB in the current OWL document, but they are in the ontology spec.
  • Roles are not represented yet (Luc) - issue has been addressed
  • It would be good if names of relationships and "direction" were compatible with Model (see appendix A for conventions). Specifically, in the graphical notations, edges tend to point to the past. isUsedBy should become uses. (Luc)

Initial hierarchical diagram of PIL concepts

Hierarchy of concepts (without their relationships)

InitialDiagram.png

General diagram

TimGenDiagram.png

Comments from the diagram:

  • I find it a bit confusing. I think it would be more clear to take the concepts as nodes in the graph and join them with the relationships instead of representing range and domain (or subclass) in the diagram. (Daniel G)
    • Interesting suggestions; could you draw up an example of "concepts as nodes" and "joining them with the relationships"? -TLebo
      • Yes, I was thinking about something like this (DanielG):

GlobalSchema.png

Characteristics of Object Properties

The table below summarizes the characteristics of the object properties that are defined in the OWL schema. Some of them may be subject to discussion. In particular, regarding the object properties isControlledBy, isGeneratedBy and isUsedBY, I didn't specify whether they are transitive or not. I am more inclined to specify that they are not transitive. However, one may argue that given that an agent can be a process execution, a process execution pe1 can be controlled by an agent pe2, which happens to be a process execution that is controlled by an agent ag, and that, therefore, ag (indirectly) controls pe1. The same argument can be applied to isGeneratedBy and isUsedBY. That said, I am not convinced these properties should be declared as transitive. (Khalid)


Functional Reverse functional Transitive Symmetric Asymmetric Reflexive Irreflexive
isControlledBy No No ? No Yes No Yes
isDerivedFrom No No Yes No Yes No Yes
isGeneratedBy Yes No ? No Yes No Yes
isUsedBy No No ? No Yes No Yes
isPrecededBy No No Yes No Yes No Yes

Cardinalities of Object Properties

The Figure below illustrates the cardinalities of the object properties defined so far in the OWL schema. As you will notice, all the cardinalities are of type zero to many, except that associated with the isGeneratedBy property which is of type zero to one, due to the fact that a Bob can be generated by at most one process execution.

Object Properties Cardinalities.PNG

Possible roles for every process step in the journalism example

(I've added ?? in the ones I'm not completely sure(DanielG))

  • government (gov) converts data (d1) to RDF (f1) at time (t1)
    • role of gov: ConverterRole??
    • role of the data: SourceRole??
    • role of the process execution in the outcome generation : GenerationRole
  • government (gov) generates provenance information (prov) regarding RDF (f1)
    • role of gov: GeneratorRole
    • role of the used data: ReferenceRole (data used as reference)
    • role of the process execution in the outcome generation : CreationRole?¿
  • government (gov) publishes RDF data (f1) along with its provenance (prov) on a portal with a license (li1); the rdf data is now available as a Web resource (r1)
    • role of gov: PublisherRole
    • role of f1: ReferenceRole
    • role of li1: LicensingRole ??
    • role of the process execution in the outcome generation :PublicationRole
  • analyst (alice) downloads a turtle serialization (lcp1) of the resource (r1) from government portal
    • role of alice: RequesterRole
    • role of the resource: RequestedResourceRole ??
    • role of the process execution in the outcome generation : CreationRole (since it creates the file in your computer)
  • analyst (alice) generates a chart (c1) from the turtle (lcp1) using some software (tools1) with statistical assumptions (stats1)
    • role of alice: GeneratorRole
    • role of lcp1: LicensingRole
    • role of tools1: ReferenceSoftwareRole ??
    • role of stats1: ReferenceRole
    • role of the process execution in the outcome generation (c1): CreationRole
  • newspaper (news) obtains image (img1) from freelancer, Carlos.
    • role of news: RequesterRole
    • role of Carlos: ProviderRole
    • role of the process execution in the outcome generation: ObtentionRole¿?
  • newspaper (news) publishes the incidence map (map1), chart (c1) and the image (img1) within a document (art1) written by (joe) using license (li2)
    • role of news: PublisherRole
    • role of map1: ReferenceRole
    • role of c1: ReferenceRole
    • role of img1: ReferenceRole/IllustrationRole?
    • role of the process execution in the outcome generation:PublicationRole
  • government (gov) publishes an update (d2) of data (d1) as a new Web resource (r2)
    • role of gov: PublisherRole
    • role of d2: UpdateRole
    • role of d1: UpdatedResourceRole??
    • role of the process execution in the outcome generation:PublicationRole
  • blogger (bob) downloads turtle (lcp2) of the resource (r2) from government portal, determines that it's a different version of the same data
    • role of bob: RequesterRole
    • role of lcp2: SerializedResourceRole
    • role of the process execution in the outcome generation: ObtentionRole??
  • blogger (bob) generates new chart (c2) based on the data (lcp2) using some software (tools2) with statistical assumptions (stats2)
    • role of bob: GeneratorRole
    • role of lcp2: ReferenceRole
    • role of tools2: UsedSoftwareRole
    • role of stats2: ReferenceRole
    • role of the process execution in the outcome generation: GenerationRole
  • blogger (bob) publishes the chart (c2) under an open license (li3).
    • role of bob: PublisherRole
    • role of li3: LicensingRole??
    • role of the process execution in the outcome generation: PublicationRole

Dealing with the issues of "uses" relationship

After 8-08-2011 telecon, we have agreed to address this issue by a new modelling alternative introduced by Satya: instead of making the Agent direct participant in the process execution, we will create an intermediate class for the role of the participant agent. This approach mixes the previous two, and addresses the issues we had with them. The next image summarizes the modelling in the ontology.

Alternative3.png

According to this, our ontology diagram should be something like this:

WhatItShouldBe.png

Best Practices

Deborah mentioned the possibility of having a separate document for best practices. On this topic, there is some work that have been done by the Semantic Web Best Practices and Deployment Working Group at http://www.w3.org/2001/sw/BestPractices/OEP, which may be worth looking at.

RDF Graph for Crime File Scenario

RDF/XML notation


<?xml version="1.0"?>
<rdf:RDF
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:po="http://www.w3.org/TR/ProvenanceOntology.owl#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:cf="http://www.w3.org/2011/prov/crimefile#" > 

  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#e1">
    <rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#CrimeFile"/>
    <cf:isGeneratedBy>
    	<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe0">
			<rdf:type rdf:resource="http://www.w3.org/2011/prov/crimefile#FileCreation"/>
			<cf:isControlledBy>
    			<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#alice">
    				<rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#Journalist"/>
				</rdf:Description>
			</cf:isControlledBy>		
 		</rdf:Description>
    </cf:isGeneratedBy>
    <cf:hasFilePath rdf:datatype="http://www.w3.org/2001/XMLSchema#string">/share/crime.txt</cf:hasFilePath>
    <cf:hasFileContent rdf:datatype="http://www.w3.org/2001/XMLSchema#string"></cf:hasFileContent>
  </rdf:Description>

  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe1">
  	<cf:Used rdf:resource="http://www.w3.org/2011/prov/crimefile#e1"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#e2">
    <rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#CrimeFile"/>
    <cf:isGeneratedBy>
    	<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe1">
			<rdf:type rdf:resource="http://www.w3.org/2011/prov/crimefile#FileAppending"/>
			<cf:isControlledBy>
    			<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#Bob">
    				<rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#Journalist"/>
				</rdf:Description>
			</cf:isControlledBy>			
 		</rdf:Description>
    </cf:isGeneratedBy>
    <cf:isDerivedFrom rdf:resource="http://www.w3.org/2011/prov/crimefile#e1"/>
    <cf:hasFilePath rdf:datatype="http://www.w3.org/2001/XMLSchema#string">/share/crime.txt</cf:hasFilePath>
    <cf:hasFileContent rdf:datatype="http://www.w3.org/2001/XMLSchema#string">There was a lot of crime in London last month.</cf:hasFileContent>
  </rdf:Description>

  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe2">
  	<cf:Used rdf:resource="http://www.w3.org/2011/prov/crimefile#e2"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#e3">
  	<rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#CrimeFile"/>
    <cf:isGeneratedBy>
    	<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe3">
			<rdf:type rdf:resource="http://www.w3.org/2011/prov/crimefile#FileEditing"/>
			<cf:isControlledBy>
    			<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#David">
    				<rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#Journalist"/>
				</rdf:Description>
			</cf:isControlledBy>
 		</rdf:Description>
    </cf:isGeneratedBy>
    <cf:isDerivedFrom rdf:resource="http://www.w3.org/2011/prov/crimefile#e2"/>
    <cf:hasFilePath rdf:datatype="http://www.w3.org/2001/XMLSchema#string">/share/crime.txt</cf:hasFilePath>
    <cf:hasFileContent rdf:datatype="http://www.w3.org/2001/XMLSchema#string">There was a lot of crime in London and New-York last month.</cf:hasFileContent>
  </rdf:Description>

  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe3">
  	<cf:Used rdf:resource="http://www.w3.org/2011/prov/crimefile#e2"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#e4">
  	<rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#CrimeFile"/>
    <cf:isGeneratedBy>
    	<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe2">
			<rdf:type rdf:resource="http://www.w3.org/2011/prov/crimefile#EmailProcessExecution"/>
			<cf:isControlledBy>
    			<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#Charles">
    				<rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#Journalist"/>
				</rdf:Description>
			</cf:isControlledBy>
 		</rdf:Description>
    </cf:isGeneratedBy>
    <cf:isDerivedFrom rdf:resource="http://www.w3.org/2011/prov/crimefile#e2"/>
    <cf:hasFileContent rdf:datatype="http://www.w3.org/2001/XMLSchema#string">There was a lot of crime in London last month.</cf:hasFileContent>    
  </rdf:Description>

  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe4">
  	<cf:Used rdf:resource="http://www.w3.org/2011/prov/crimefile#e3"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#e5">
  	<rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#CrimeFile"/>
    <cf:isGeneratedBy>
    	<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe4">
			<rdf:type rdf:resource="http://www.w3.org/2011/prov/crimefile#EmailProcessExecution"/>
			<cf:isControlledBy>
    			<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#Edith">
    				<rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#Journalist"/>
				</rdf:Description>
			</cf:isControlledBy>
 		</rdf:Description>
    </cf:isGeneratedBy>
    <cf:isDerivedFrom rdf:resource="http://www.w3.org/2011/prov/crimefile#e3"/>
    <cf:hasFileContent rdf:datatype="http://www.w3.org/2001/XMLSchema#string">There was a lot of crime in London and New-York last month.</cf:hasFileContent>    
  </rdf:Description>


  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe5">
  	<cf:Used rdf:resource="http://www.w3.org/2011/prov/crimefile#e3"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#e6">
  	<rdf:type rdf:resource="http://www.w3.org/TR/ProvenanceOntology.owl#CrimeFile"/>
    <cf:isGeneratedBy>
    	<rdf:Description rdf:about="http://www.w3.org/2011/prov/crimefile#pe5">
			<rdf:type rdf:resource="http://www.w3.org/2011/prov/crimefile#SpellChecking"/>
 		</rdf:Description>
    </cf:isGeneratedBy>
    <cf:isDerivedFrom rdf:resource="http://www.w3.org/2011/prov/crimefile#e3"/>
  </rdf:Description>

</rdf:RDF>

Visualization of the RDF graph

A

(Click to enlarge the image)

Crime File Ontology



<?xml version="1.0"?>


<!DOCTYPE rdf:RDF [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
    <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#" >
    <!ENTITY ProvenanceOntology "http://www.w3c.org/PROV/ProvenanceOntology.owl#" >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
    <!ENTITY CrimeFileOntology "http://www.w3c.org/PROV/CrimeFileOntology.owl#" >
]>


<rdf:RDF xmlns="http://www.w3c.org/PROV/CrimeFileOntology.owl#"
     xml:base="http://www.w3c.org/PROV/CrimeFileOntology.owl"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#"
     xmlns:ProvenanceOntology="http://www.w3c.org/PROV/ProvenanceOntology.owl#"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:CrimeFileOntology="http://www.w3c.org/PROV/CrimeFileOntology.owl#">
    <owl:Ontology rdf:about="">
        <owl:imports rdf:resource="http://www.w3c.org/PROV/ProvenanceOntology.owl"/>
    </owl:Ontology>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Data properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#hasFileContent -->

    <owl:DatatypeProperty rdf:about="#hasFileContent"/>
    


    <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#hasFilePath -->

    <owl:DatatypeProperty rdf:about="#hasFilePath"/>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Classes
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#Agent -->

    <owl:Class rdf:about="&ProvenanceOntology;Agent"/>
    


    <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#Entity -->

    <owl:Class rdf:about="&ProvenanceOntology;Entity"/>
    


    <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#Location -->

    <owl:Class rdf:about="&ProvenanceOntology;Location">
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;Entity"/>
    </owl:Class>
    


    <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#ProcessExecution -->

    <owl:Class rdf:about="&ProvenanceOntology;ProcessExecution"/>
    


    <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#Revision -->

    <owl:Class rdf:about="&ProvenanceOntology;Revision">
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;Entity"/>
    </owl:Class>
    


    <!-- http://www.w3c.org/PROV/ProvenanceOntology.owl#Time -->

    <owl:Class rdf:about="&ProvenanceOntology;Time">
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;Entity"/>
    </owl:Class>
    


    <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#CrimeFile -->

    <owl:Class rdf:about="#CrimeFile">
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;Entity"/>
    </owl:Class>
    


    <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#EmailProcessExecution -->

    <owl:Class rdf:about="#EmailProcessExecution">
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;ProcessExecution"/>
    </owl:Class>
    


    <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#FileAppending -->

    <owl:Class rdf:about="#FileAppending">
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;ProcessExecution"/>
    </owl:Class>
    


    <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#FileCreation -->

    <owl:Class rdf:about="#FileCreation">
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;ProcessExecution"/>
    </owl:Class>
    


    <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#FileEditing -->

    <owl:Class rdf:about="#FileEditing">
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;ProcessExecution"/>
    </owl:Class>
    


    <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#Journalist -->

    <owl:Class rdf:about="#Journalist">
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;Agent"/>
    </owl:Class>
    


    <!-- http://www.w3c.org/PROV/CrimeFileOntology.owl#SpellChecking -->

    <owl:Class rdf:about="#SpellChecking">
        <rdfs:subClassOf rdf:resource="&ProvenanceOntology;ProcessExecution"/>
    </owl:Class>
</rdf:RDF>



<!-- Generated by the OWL API (version 2.2.1.1138) http://owlapi.sourceforge.net -->





Workflow example

Stian has generated an early example of representing the provenance of a Taverna workflow using this ontology.

An Axiomatic Semantics for RDF, RDF-S, and DAML+OIL

http://www.daml.org/2001/03/axiomatic-semantics.html

Roles directly on the prov:used prov:Entity

:my_pe 
   a prov:Entity;
   prov:used [
      a prov:Entity; 
      prov:actually :Khalid; 
      a prov:Role, restaurant:Customer;
      time:begin :t1, time:end :t2;
   ] 
.

Meeting notes