model/diff.html
author Luc Moreau <l.moreau@ecs.soton.ac.uk>
Tue, 25 Sep 2012 12:55:15 +0100
changeset 4481 e89828e2a81c
parent 4480 c98c8b6cdc0f
child 4483 817b3b917afe
permissions -rw-r--r--
ISSUE-512
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html lang="en" dir="ltr">
<head><style type="text/css"><!--

.insert { background-color: #aaffaa }
.delete { background-color: #ff8888; text-decoration: line-through }
.tagInsert { background-color: #007700; color: #ffffff }
.tagDelete { background-color: #770000; color: #ffffff }

--></style> 
    <title>PROV-DM: The PROV Data Model</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    


    <style type="text/css"><span class="delete">

/* --- EDITORIAL NOTES --- */
.component1-color</span><span class="insert">
      .note</span> {<span class="delete">
 background-color: rgba(255,42,42,0.2);
</span><span class="insert"> font-size:small; margin-left:50px </span>}

<span class="delete">.component3-color {
 background-color: rgba(0,68,170,0.2);
}

.component2-color {
 background-color: rgba(0,170,0,0.2);
}
.component4-color {
 background-color: rgba(244,105,14,0.2);
}

.component6-color {
 background-color: rgba(11,40,40,0.2);
}

.component5-color {
 background-color: rgba(204,255,0,0.2);
}

.pending {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #f00;
    background: #BFEFFF;
}

.pending::before {
    content:    "Pending Review";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #f00;
    background: #fff;
    padding:    3px 1em;
}


.resolved {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #f00;
    background: #9BCD9B;
}

.resolved::before {
    content:    "Resolved";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #f00;
    background: #fff;
    padding:    3px 1em;
}


.inference {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #f00;
    background: #fff;
}

.inference[id]::before {
    content:    "Inference: " attr(id);
    width:  380px;  /* How can we compute the length of "Constraint: " attr(id) */
}


.inference::before {
    content:    "Inference";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #f00;
    background: #fff;
    padding:    3px 1em;
}

.syntax {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #f00;
    background: #fff;
}

.syntax[id]::before {
    content:    "Syntax: " attr(id);
    width:  380px;  /* How can we compute the length of "Constraint: " attr(id) */
}


.syntax::before {
    content:    "Syntax";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #f00;
    background: #fff;
    padding:    3px 1em;
}

.unamedconstraint {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #00f;
    background: #fff;
}


.unamedconstraint::before {
    content:    "Constraint";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #00f;
    background: #fff;
    padding:    3px 1em;
}



.constraint {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #00f;
    background: #fff;
}

.constraint[id]::before {
    content:    "Constraint: " attr(id);
    width:  380px;  /* How can we compute the length of "Constraint: " attr(id) */
}


.constraint::before {
    content:    "Constraint";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #00f;
    background: #fff;
    padding:    3px 1em;
}



.interpretation {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #00f;
    background: #fff;
}

.interpretation[id]::before {
    content:    "Interpretation: " attr(id);
    width:  380px;  /* How can we compute the length of "Interpretation: " attr(id) */
}


.interpretation::before {
    content:    "Interpretation";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #00f;
    background: #fff;
    padding:    3px 1em;
}

.definition {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #777;
    background: #fff;
}

.definition[id]::before {
    content:    "Definition: " attr(id);
    width:  380px; 
}


.definition::before {
    content:    "Definition";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #000;
    background: #fff;
    padding:    3px 1em;
}


.deprecatedconstraint {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #00f;
    background: #fff;
}

.deprecatedconstraint[id]::before {
    content:    "Deprecated: " attr(id);
    width:  380px;  /* How can we compute the length of "Deprecatedconstraint: " attr(id) */
}


.deprecatedconstraint::before {
    content:    "Deprecated";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #00f;
    background: #fff;
    padding:    3px 1em;
}

.glossary-ref {
    font-style:    italic;
}

.dfn</span><span class="insert">.diamond</span> {
    font-weight:<span class="delete">    bold;
}


.attribute {</span><span class="insert"> normal;</span>
    font-style:<span class="delete"> italic;
}


.conditional {
    color: blue;
}

.grammar {
    margin-top: 1ex;
    margin-bottom: 1ex;
    padding-left: 1ex;
    padding-right: 1ex;
    padding-top: 1ex;
    padding-bottom: 0.6ex;
    border: 1px dashed #2f6fab;
    font-size: 80%;
}
.nonterminal {
    font-weight: bold;
    font-family: sans-serif;
    font-size: 95%;
}

.name {
    font-family: monospace;
}


.xmpl {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #f00;
    background: #fff;
}

.xmpl::before {
    content:    "Example";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #f00;
    background: #fff;
    padding:    3px 1em;
}

/* 
generating this through java script now.

.anexample[data-count]::before {
    content: "Example " attr(data-count) ;
    font-family: sans-serif;
    font-size: 1.6ex;
    font-weight: bold;
}


.anexample:before {
    content: "Example:";
    font-family: sans-serif;
    font-size: 1.6ex;
    font-weight: bold;
}

*/

.anexample {
    margin-top: 1ex;
    margin-bottom: 1ex;
    padding-left: 1ex;
    padding-right: 1ex;
    padding-top: 1ex;
    padding-bottom: 0.6ex;
    border: 1px dashed #2f6fab;
    background-color: #f9f9f9;
}
.anexample table {
    background-color: #f9f9f9;
}

.anexampleTitle {
    font-family: sans-serif;
    font-size: 1.6ex;
    font-weight: bold;
}

.anexampleTitle {
    font-family: sans-serif;
    font-size: 1.6ex;
    font-weight: bold;
}


.diamond {
    font-weight:</span> normal;
    font-size:100%;
    font-family: sans-serif;
}<span class="delete">


div[class="grammar"] span[class="name"]:before {
    content: "'";
}

div[class="grammar"] span[class="name"]:after {
    content: "'";
}


div[class="grammar"] span[class="optional"]:before {
    font-weight: normal;
    font-size:130%;
    font-family: monospace;
    content: "(";
}

div[class="grammar"] span[class="optional"]:after {
    font-weight: normal;
    font-size:130%;
    font-family: monospace;
    content: ")?";
}


div[class="grammar"] span[class="plus"]:before {
    font-weight: normal;
    font-size:130%;
    font-family: monospace;
    content: "(";
}

div[class="grammar"] span[class="plus"]:after {
    font-weight: normal;
    font-size:130%;
    font-family: monospace;
    content: ")+";
}


div[class="grammar"] span[class="star"]:before {
    font-weight: normal;
    font-size:130%;
    font-family: monospace;
    content: "(";
}

div[class="grammar"] span[class="star"]:after {
    font-weight: normal;
    font-size:130%;
    font-family: monospace;
    content: ")*";
}

div[class="grammar"] span[class="choice"]:before {
    font-weight: normal;
    font-size:130%;
    font-family: monospace;
    content: "(";
}

div[class="grammar"] span[class="choice"]:after {
    font-weight: normal;
    font-size:130%;
    font-family: monospace;
    content: ")";
}

div[class="grammar"] span[class="group"]:before {
    font-weight: normal;
    font-size:130%;
    font-family: monospace;
    content: "(";
}

div[class="grammar"] span[class="group"]:after {
    font-weight: normal;
    font-size:130%;
    font-family: monospace;
    content: ")";
}

table {
    background-color: #f9f9f9;
}


.interpretation-forward::before {
    content:    "Interpretation: ";
    font-weight:    bold;
}

.structural-forward::before {
    content:    "Structural constraint: ";
    font-weight:    bold;
}

.essential {
    font-weight: bold;
}

.provType::before {
}

.pnExpression {
    font-weight: normal;
    font-size:120%;
    font-family: monospace;
}

      .note { font-size:small; margin-left:50px }

.diamond {
    font-weight: normal;
    font-style: normal;
    font-size:100%;
    font-family: sans-serif;
}</span>

table.thinborder {
	border-width: 1px;
	border-spacing: 0px;
	border-style: none;
	border-color: gray;
	border-collapse: collapse;
}
table.thinborder th {
	border-width: 1px;
	padding: 0px;
	border-style: solid;
	border-color: gray;<span class="insert">
	-moz-border-radius: ;</span>
}
table.thinborder td {
	border-width: 1px;
	padding: 2px;
	border-style: solid;
	border-color: gray;<span class="insert">
	-moz-border-radius: ;</span>
}
</style>

     
    

    <script type="text/javascript">
/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
	Author says "The credit comment is all it takes, no license. Go crazy with it!:-)"
	From http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
*/

function getElementsByClassName(oElm, strTagName, oClassNames){
	var arrElements = (! (! (strTagName == "*") || ! (oElm.all)))? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; !(i>=oClassNames.length); i++){ /*>*/
			arrRegExpClassNames.push(new RegExp("(^|\s)" + oClassNames[i].replace(/\-/g, "\-") + "(\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\s)" + oClassNames.replace(/\-/g, "\-") + "(\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; !(j>=arrElements.length); j++){ /*>*/
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; !(k>=arrRegExpClassNames.length); k++){ /*>*/
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function set_display_by_class(el, cls, newValue) {
   var e = getElementsByClassName(document, el, cls);
   if (e != null) {
      for (var i=0; !(i>=e.length); i++) {
        e[i].style.display = newValue;
      }
   }
}

function set_display_by_id(id, newValue) {
   var e = document.getElementById(id);
   if (e != null) {
     e.style.display = newValue;
   }
}
</script> 
    

    

     
  <style type="text/css">
/*****************************************************************
 * ReSpec CSS
 * Robin Berjon (robin at berjon dot com)
 * v0.05 - 2009-07-31
 *****************************************************************/


/* --- INLINES --- */
em.rfc2119 { 
    text-transform:     lowercase;
    font-variant:       small-caps;
    font-style:         normal;
    color:              #900;
}

h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
    border: none;
}

dfn {
    font-weight:    bold;
}

a.internalDFN {
    color:  inherit;
    border-bottom:  1px solid #99c;
    text-decoration:    none;
}

a.externalDFN {
    color:  inherit;
    border-bottom:  1px dotted #ccc;
    text-decoration:    none;
}

a.bibref {
    text-decoration:    none;
}

code {
    color:  #ff4500;
}


/* --- WEB IDL --- */
pre.idl {
    border-top: 1px solid #90b8de;
    border-bottom: 1px solid #90b8de;
    padding:    1em;
    line-height:    120%;
}

pre.idl::before {
    content:    "WebIDL";
    display:    block;
    width:      150px;
    background: #90b8de;
    color:  #fff;
    font-family:    initial;
    padding:    3px;
    font-weight:    bold;
    margin: -1em 0 1em -1em;
}

.idlType {
    color:  #ff4500;
    font-weight:    bold;
    text-decoration:    none;
}

/*.idlModule*/
/*.idlModuleID*/
/*.idlInterface*/
.idlInterfaceID, .idlDictionaryID {
    font-weight:    bold;
    color:  #005a9c;
}

.idlSuperclass {
    font-style: italic;
    color:  #005a9c;
}

/*.idlAttribute*/
.idlAttrType, .idlFieldType, .idlMemberType {
    color:  #005a9c;
}
.idlAttrName, .idlFieldName, .idlMemberName {
    color:  #ff4500;
}
.idlAttrName a, .idlFieldName a, .idlMemberName a {
    color:  #ff4500;
    border-bottom:  1px dotted #ff4500;
    text-decoration: none;
}

/*.idlMethod*/
.idlMethType {
    color:  #005a9c;
}
.idlMethName {
    color:  #ff4500;
}
.idlMethName a {
    color:  #ff4500;
    border-bottom:  1px dotted #ff4500;
    text-decoration: none;
}

/*.idlParam*/
.idlParamType {
    color:  #005a9c;
}
.idlParamName {
    font-style: italic;
}

.extAttr {
    color:  #666;
}

/*.idlConst*/
.idlConstType {
    color:  #005a9c;
}
.idlConstName {
    color:  #ff4500;
}
.idlConstName a {
    color:  #ff4500;
    border-bottom:  1px dotted #ff4500;
    text-decoration: none;
}

/*.idlException*/
.idlExceptionID {
    font-weight:    bold;
    color:  #c00;
}

.idlTypedefID, .idlTypedefType {
    color:  #005a9c;
}

.idlRaises, .idlRaises a.idlType, .idlRaises a.idlType code, .excName a, .excName a code {
    color:  #c00;
    font-weight:    normal;
}

.excName a {
    font-family:    monospace;
}

.idlRaises a.idlType, .excName a.idlType {
    border-bottom:  1px dotted #c00;
}

.excGetSetTrue, .excGetSetFalse, .prmNullTrue, .prmNullFalse, .prmOptTrue, .prmOptFalse {
    width:  45px;
    text-align: center;
}
.excGetSetTrue, .prmNullTrue, .prmOptTrue { color:  #0c0; }
.excGetSetFalse, .prmNullFalse, .prmOptFalse { color:  #c00; }

.idlImplements a {
    font-weight:    bold;
}

dl.attributes, dl.methods, dl.constants, dl.fields, dl.dictionary-members {
    margin-left:    2em;
}

.attributes dt, .methods dt, .constants dt, .fields dt, .dictionary-members dt {
    font-weight:    normal;
}

.attributes dt code, .methods dt code, .constants dt code, .fields dt code, .dictionary-members dt code {
    font-weight:    bold;
    color:  #000;
    font-family:    monospace;
}

.attributes dt code, .fields dt code, .dictionary-members dt code {
    background:  #ffffd2;
}

.attributes dt .idlAttrType code, .fields dt .idlFieldType code, .dictionary-members dt .idlMemberType code {
    color:  #005a9c;
    background:  transparent;
    font-family:    inherit;
    font-weight:    normal;
    font-style: italic;
}

.methods dt code {
    background:  #d9e6f8;
}

.constants dt code {
    background:  #ddffd2;
}

.attributes dd, .methods dd, .constants dd, .fields dd, .dictionary-members dd {
    margin-bottom:  1em;
}

table.parameters, table.exceptions {
    border-spacing: 0;
    border-collapse:    collapse;
    margin: 0.5em 0;
    width:  100%;
}
table.parameters { border-bottom:  1px solid #90b8de; }
table.exceptions { border-bottom:  1px solid #deb890; }

.parameters th, .exceptions th {
    color:  #fff;
    padding:    3px 5px;
    text-align: left;
    font-family:    initial;
    font-weight:    normal;
    text-shadow:    #666 1px 1px 0;
}
.parameters th { background: #90b8de; }
.exceptions th { background: #deb890; }

.parameters td, .exceptions td {
    padding:    3px 10px;
    border-top: 1px solid #ddd;
    vertical-align: top;
}

.parameters tr:first-child td, .exceptions tr:first-child td {
    border-top: none;
}

.parameters td.prmName, .exceptions td.excName, .exceptions td.excCodeName {
    width:  100px;
}

.parameters td.prmType {
    width:  120px;
}

table.exceptions table {
    border-spacing: 0;
    border-collapse:    collapse;
    width:  100%;
}

/* --- TOC --- */
.toc a {
    text-decoration:    none;
}

a .secno {
    color:  #000;
}

/* --- TABLE --- */
table.simple {
    border-spacing: 0;
    border-collapse:    collapse;
    border-bottom:  3px solid #005a9c;
}

.simple th {
    background: #005a9c;
    color:  #fff;
    padding:    3px 5px;
    text-align: left;
}

.simple th[scope="row"] {
    background: inherit;
    color:  inherit;
    border-top: 1px solid #ddd;
}

.simple td {
    padding:    3px 10px;
    border-top: 1px solid #ddd;
}

.simple tr:nth-child(even) {
    background: #f0f6ff;
}

/* --- DL --- */
.section dd > p:first-child {
    margin-top: 0;
}

.section dd > p:last-child {
    margin-bottom: 0;
}

.section dd {
    margin-bottom:  1em;
}

.section dl.attrs dd, .section dl.eldef dd {
    margin-bottom:  0;
}

/* --- EXAMPLES --- */
pre.example {
    border-top: 1px solid #ff4500;
    border-bottom: 1px solid #ff4500;
    padding:    1em;
    margin-top: 1em;
}

pre.example::before {
    content:    "Example";
    display:    block;
    width:      150px;
    background: #ff4500;
    color:  #fff;
    font-family:    initial;
    padding:    3px;
    font-weight:    bold;
    margin: -1em 0 1em -1em;
}

/* --- EDITORIAL NOTES --- */
.issue {
    padding:    1em;
    margin: 1em 0em 0em;
    border: 1px solid #f00;
    background: #ffc;
}

.issue::before {
    content:    "Issue";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #f00;
    background: #fff;
    padding:    3px 1em;
}

.note {
    margin: 1em 0em 0em;
    padding:    1em;
    border: 2px solid #cff6d9;
    background: #e2fff0;
}

.note::before {
    content:    "Note";
    display:    block;
    width:  150px;
    margin: -1.5em 0 0.5em 0;
    font-weight:    bold;
    border: 1px solid #cff6d9;
    background: #fff;
    padding:    3px 1em;
}

/* --- Best Practices --- */
div.practice {
    border: solid #bebebe 1px;
    margin: 2em 1em 1em 2em;
}

span.practicelab {
    margin: 1.5em 0.5em 1em 1em;
    font-weight: bold;
    font-style: italic;
}

span.practicelab   { background: #dfffff; }

span.practicelab {
    position: relative;
    padding: 0 0.5em;
    top: -1.5em;
}

p.practicedesc {
    margin: 1.5em 0.5em 1em 1em;
}

@media screen {
    p.practicedesc {
        position: relative;
        top: -2em;
        padding: 0;
        margin: 1.5em 0.5em -1em 1em;
    }
}

/* --- SYNTAX HIGHLIGHTING --- */
pre.sh_sourceCode {
  background-color: white;
  color: black;
  font-style: normal;
  font-weight: normal;
}

pre.sh_sourceCode .sh_keyword { color: #005a9c; font-weight: bold; }           /* language keywords */
pre.sh_sourceCode .sh_type { color: #666; }                            /* basic types */
pre.sh_sourceCode .sh_usertype { color: teal; }                             /* user defined types */
pre.sh_sourceCode .sh_string { color: red; font-family: monospace; }        /* strings and chars */
pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; }     /* regular expressions */
pre.sh_sourceCode .sh_specialchar { color: 	#ffc0cb; font-family: monospace; }  /* e.g., \n, \t, \\ */
pre.sh_sourceCode .sh_comment { color: #A52A2A; font-style: italic; }         /* comments */
pre.sh_sourceCode .sh_number { color: purple; }                             /* literal numbers */
pre.sh_sourceCode .sh_preproc { color: #00008B; font-weight: bold; }       /* e.g., #include, import */
pre.sh_sourceCode .sh_symbol { color: blue; }                            /* e.g., *, + */
pre.sh_sourceCode .sh_function { color: black; font-weight: bold; }         /* function calls and declarations */
pre.sh_sourceCode .sh_cbracket { color: red; }                              /* block brackets (e.g., {, }) */
pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: #00FFFF; }   /* TODO and FIXME */

/* Predefined variables and functions (for instance glsl) */
pre.sh_sourceCode .sh_predef_var { color: #00008B; }
pre.sh_sourceCode .sh_predef_func { color: #00008B; font-weight: bold; }

/* for OOP */
pre.sh_sourceCode .sh_classname { color: teal; }

/* line numbers (not yet implemented) */
pre.sh_sourceCode .sh_linenum { display: none; }

/* Internet related */
pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }

/* for ChangeLog and Log files */
pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: #00008B; font-weight: bold; }
pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: #006400; }

/* for Prolog, Perl... */
pre.sh_sourceCode .sh_variable { color: #006400; }

/* for LaTeX */
pre.sh_sourceCode .sh_italics { color: #006400; font-style: italic; }
pre.sh_sourceCode .sh_bold { color: #006400; font-weight: bold; }
pre.sh_sourceCode .sh_underline { color: #006400; text-decoration: underline; }
pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
pre.sh_sourceCode .sh_argument { color: #006400; }
pre.sh_sourceCode .sh_optionalargument { color: purple; }
pre.sh_sourceCode .sh_math { color: orange; }
pre.sh_sourceCode .sh_bibtex { color: blue; }

/* for diffs */
pre.sh_sourceCode .sh_oldfile { color: orange; }
pre.sh_sourceCode .sh_newfile { color: #006400; }
pre.sh_sourceCode .sh_difflines { color: blue; }

/* for css */
pre.sh_sourceCode .sh_selector { color: purple; }
pre.sh_sourceCode .sh_property { color: blue; }
pre.sh_sourceCode .sh_value { color: #006400; font-style: italic; }

/* other */
pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
pre.sh_sourceCode .sh_paren { color: red; }
pre.sh_sourceCode .sh_attribute { color: #006400; }

</style><link href="./extra-dm.css" rel="stylesheet" type="text/css" charset="utf-8"><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css" charset="utf-8"></head> 
  <body style="display: inherit; "><div class="head"><p><a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C"></a></p><h1 class="title" id="title">PROV-DM: The PROV Data Model</h1><h2 id="subtitle"><a href="diff.html"><span class="insert">Changes</span></a><span class="insert"> since LC release</span></h2><h2 id="w3c-editor-s-draft-25-september-2012"><acronym title="World Wide Web Consortium">W3C</acronym> <span class="delete">Working</span><span class="insert">Editor's</span> Draft <span class="delete">24 July</span><span class="insert">25 September</span> 2012</h2><dl><dt>This version:</dt><dd><span class="delete">http://www.w3.org/TR/2012/WD-prov-dm-20120724/</span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html"><span class="insert">http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html</span></a></dd><dt>Latest published version:</dt><dd><a href="http://www.w3.org/TR/prov-dm/">http://www.w3.org/TR/prov-dm/</a></dd><dt>Latest editor's draft:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html">http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html</a></dd><dt>Previous version:</dt><dd><span class="delete">http://www.w3.org/TR/2012/WD-prov-dm-20120503/</span><span class="delete"> (</span><span class="delete">color-coded diffs</span><span class="delete">)</span><a href="http://www.w3.org/TR/2012/WD-prov-dm-20120724/"><span class="insert">http://www.w3.org/TR/2012/WD-prov-dm-20120724/</span></a></dd><dt>Editors:</dt><dd><a href="http://www.ecs.soton.ac.uk/~lavm/">Luc Moreau</a>, University of Southampton</dd>
<dd><a href="http://www.cs.ncl.ac.uk/people/Paolo.Missier">Paolo Missier</a>, Newcastle University</dd>
<dt><span class="delete">Contributors:</span><span class="insert">Authors:</span></dt><dd><a href="http://semanticweb.org/wiki/Khalid_Belhajjame">Khalid Belhajjame</a>, University of Manchester</dd>
<dd><span>Reza B'Far</span>, Oracle Corporation</dd>
<dd><a href="http://homepages.inf.ed.ac.uk/jcheney/">James Cheney</a>, University of Edinburgh</dd>
<dd><span>Sam Coppens</span>, IBBT - Ghent University</dd>
<dd><span>Stephen Cresswell</span>, legislation.gov.uk</dd>
<dd><a href="http://www.isi.edu/~gil/">Yolanda Gil</a>, Invited Expert</dd>
<dd><a href="http://www.few.vu.nl/~pgroth/">Paul Groth</a>, VU University of Amsterdam</dd>
<dd><span>Graham Klyne</span>, University of Oxford</dd>
<dd><a href="http://tw.rpi.edu/instances/TimLebo">Timothy Lebo</a>, Rensselaer Polytechnic Institute</dd>
<dd><a href="http://tw.rpi.edu/web/person/JamesMcCusker">Jim McCusker</a>, Rensselaer Polytechnic Institute</dd>
<dd><a href="http://www.inf.kcl.ac.uk/staff/simonm/">Simon Miles</a>, Invited Expert</dd>
<dd><a href="http://www.rpi.edu/research/ccni/">James Myers</a>, Rensselaer Polytechnic Institute</dd>
<dd><a href="http://cci.case.edu/cci/index.php/Satya_Sahoo">Satya Sahoo</a>, Case Western Reserve University</dd>
<dd><span>Curt Tilmes</span>, National Aeronautics and Space Administration</dd>
</dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011-2012 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. <acronym title="World Wide Web Consortium">W3C</acronym> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p><hr></div> 

    <div id="abstract" class="introductory section"><h2>Abstract</h2>
<p>
Provenance is information about entities, activities, and people
involved in producing a piece of data or thing, which can be used
 to form assessments about its quality, reliability or trustworthiness.
PROV-DM is the conceptual data model that forms a basis for the <acronym title="World Wide Web Consortium">W3C</acronym>
provenance (PROV) family of specifications.
PROV-DM distinguishes core structures, forming the essence of provenance information, from
extended structures catering for more specific uses of provenance. 
PROV-DM is organized in six components, respectively dealing with: 
(1) entities and activities, and the time at which they were created, used, or ended;
(2) derivations of entities from entities;
(3) agents bearing responsibility for entities that were generated and activities that happened;
(4) a notion of bundle, a mechanism to support provenance of provenance; 
(5) properties to link entities that refer to the same thing; and,
(6) collections forming a logical structure for its members.
</p>

<p>This document introduces the provenance concepts found in
PROV and defines PROV-DM types and
relations. The PROV data model is domain-agnostic, but is equipped with
extensibility points allowing domain-specific information to be included. </p>

<p>Two further documents complete the specification of PROV-DM.
First, a companion document specifies the set of constraints that
provenance should follow.  Second, 
a separate document describes a provenance notation for expressing 
instances of provenance for human consumption; this notation is used in examples in
this document. </p>

    </div><div id="sotd" class="introductory section"><h2>Status of This Document</h2><p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current <acronym title="World Wide Web Consortium">W3C</acronym> publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/"><acronym title="World Wide Web Consortium">W3C</acronym> technical reports index</a> at http://www.w3.org/TR/.</em></p>
<h4 id="last-call">Last Call</h4>
<p>This is the fifth public release of the PROV-DM document. 
This is a Last Call Working Draft. The design is not expected to change significantly, going forward, and now is the key time for external review.</p>

<p>This specification identifies one  <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">feature at risk</a>: Mention (<a href="#term-mention">Section 5.5.3</a>) might be removed from PROV if implementation experience reveals problems with supporting this construct.</p>



<h4 id="prov-family-of-specifications">PROV Family of Specifications</h4>
This document is part of the PROV family of specifications, a set of specifications defining various aspects that are necessary to achieve the vision of inter-operable
interchange of provenance information in heterogeneous environments such as the Web.  The specifications are:
<ul>
<li> <a href="http://www.w3.org/TR/prov-dm/">PROV-DM</a>, the PROV data model for provenance (this document);</li>
<li> <a href="http://www.w3.org/TR/prov-constraints/">PROV-CONSTRAINTS</a>, a set of constraints applying to the PROV data model [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-CONSTRAINTS">PROV-CONSTRAINTS</a></cite>];</li>
<li> <a href="http://www.w3.org/TR/prov-n/">PROV-N</a>, a notation for provenance aimed at human consumption [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N">PROV-N</a></cite>];</li>
<li> <a href="http://www.w3.org/TR/prov-o/">PROV-O</a>, the PROV ontology, an OWL2 ontology allowing the mapping of PROV to RDF [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-O">PROV-O</a></cite>];</li>
<li> <a href="http://www.w3.org/TR/prov-aq/">PROV-AQ</a>, the mechanisms for accessing and querying provenance [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-AQ">PROV-AQ</a></cite>]; </li>
<li> <a href="http://www.w3.org/TR/prov-primer/">PROV-PRIMER</a>, a primer for the PROV data model [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-PRIMER">PROV-PRIMER</a></cite>].</li>
</ul>
<h4 id="how-to-read-the-prov-family-of-specifications">How to read the PROV Family of Specifications</h4>
<ul>
<li>The primer is the entry point to PROV offering an introduction to the provenance model.</li>
<li>The Linked Data and Semantic Web community should focus on PROV-O defining PROV classes and properties specified in an OWL2 ontology. For further details, PROV-DM and PROV-CONSTRAINTS specify the constraints applicable to the data model, and its interpretation. </li>
<li>Developers seeking to retrieve or publish provenance should focus on PROV-AQ.</li>
<li>Readers seeking to implement other PROV serializations
should focus on PROV-DM and PROV-CONSTRAINTS.  PROV-O and PROV-N offer examples of mapping to RDF and text, respectively.</li>
</ul>
<p>This document was published by the <a href="http://www.w3.org/2011/prov/">Provenance Working Group</a> as <span class="delete">a Last Call Working</span><span class="insert">an Editor's</span> Draft.<span class="delete"> This document is intended to become a </span><span class="delete">W3C</span><span class="delete"> Recommendation.</span> If you wish to make comments regarding this document, please send them to <a href="mailto:public-prov-comments@w3.org">public-prov-comments@w3.org</a> (<a href="mailto:public-prov-comments-request@w3.org?subject=subscribe">subscribe</a>, <a href="http://lists.w3.org/Archives/Public/public-prov-comments/">archives</a>).<span class="delete"> The Last Call period ends 18 September 2012.</span> All feedback is welcome.</p><p>Publication as <span class="delete">a Working</span><span class="insert">an Editor's</span> Draft does not imply endorsement by the <acronym title="World Wide Web Consortium">W3C</acronym> Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.<span class="delete">This is a Last Call Working Draft and thus the Working Group has determined that this document has satisfied the relevant technical requirements and is sufficiently stable to advance through the Technical Recommendation process.</span></p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>. <acronym title="World Wide Web Consortium">W3C</acronym> maintains a <a href="http://www.w3.org/2004/01/pp-impl/46974/status" rel="disclosure">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>.</p></div><div id="toc" class="section"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction<br>
</a><ul class="toc"><li class="tocline"><a href="#structure-of-this-document" class="tocxref"><span class="secno">1.1 </span>Structure of this Document</a></li><li class="tocline"><a href="#conventions" class="tocxref"><span class="secno">1.2 </span>Notational Conventions</a></li><li class="tocline"><a href="#namespaces" class="tocxref"><span class="secno">1.3 </span>Namespaces</a></li></ul></li><li class="tocline"><a href="#section-prov-overview" class="tocxref"><span class="secno">2. </span>PROV Overview</a><ul class="toc"><li class="tocline"><a href="#core-structures" class="tocxref"><span class="secno">2.1 </span>PROV Core Structures</a><ul class="toc"><li class="tocline"><a href="#section-entity-activity" class="tocxref"><span class="secno">2.1.1 </span>Entity and Activity</a></li><li class="tocline"><a href="#section-derivation" class="tocxref"><span class="secno">2.1.2 </span>Derivation</a></li><li class="tocline"><a href="#section-agents-attribution-association-delegation" class="tocxref"><span class="secno">2.1.3 </span>Agents and Responsibility</a></li></ul></li><li class="tocline"><a href="#section-extended-structures" class="tocxref"><span class="secno">2.2 </span>PROV Extended Structures</a><ul class="toc"><li class="tocline"><a href="#section-prov-extended-mechanisms" class="tocxref"><span class="secno">2.2.1 </span>Mechanisms to Define Extended Structures</a><ul class="toc"><li class="tocline"><a href="#section-prov-extended-approach-subtyping" class="tocxref"><span class="secno">2.2.1.1 </span>Subtyping</a></li><li class="tocline"><a href="#section-prov-extended-approach-expanded-relation" class="tocxref"><span class="secno">2.2.1.2 </span>Expanded Relations</a></li><li class="tocline"><a href="#section-prov-extended-approach-optional-identification" class="tocxref"><span class="secno">2.2.1.3 </span>Optional Identification</a></li><li class="tocline"><a href="#section-prov-extended-approach-further-relations" class="tocxref"><span class="secno">2.2.1.4 </span>Further Relations</a></li></ul></li><li class="tocline"><a href="#section-provenance-of-provnance" class="tocxref"><span class="secno">2.2.2 </span>Provenance of Provenance</a></li><li class="tocline"><a href="#section-collections" class="tocxref"><span class="secno">2.2.3 </span>Collections</a></li></ul></li><li class="tocline"><a href="#section-overview-components" class="tocxref"><span class="secno">2.3 </span>Modular Organization</a></li></ul></li><li class="tocline"><a href="#prov-notation" class="tocxref"><span class="secno">3. </span>The Provenance Notation</a></li><li class="tocline"><a href="#prov-dm-example" class="tocxref"><span class="secno">4. </span>Illustration of PROV-DM by an Example</a><ul class="toc"><li class="tocline"><a href="#section-example-one" class="tocxref"><span class="secno">4.1 </span>Example: The Authors View</a></li><li class="tocline"><a href="#section-example-two" class="tocxref"><span class="secno">4.2 </span>Example: The Process View</a></li><li class="tocline"><a href="#section-example-c" class="tocxref"><span class="secno">4.3 </span>Example: Attribution of Provenance</a></li></ul></li><li class="tocline"><a href="#data-model-components" class="tocxref"><span class="secno">5. </span>PROV-DM Types and Relations</a><ul class="toc"><li class="tocline"><a href="#component1" class="tocxref"><span class="secno">5.1 </span>Component 1: Entities and Activities</a><ul class="toc"><li class="tocline"><a href="#term-entity" class="tocxref"><span class="secno">5.1.1 </span>Entity</a></li><li class="tocline"><a href="#term-Activity" class="tocxref"><span class="secno">5.1.2 </span>Activity</a></li><li class="tocline"><a href="#term-Generation" class="tocxref"><span class="secno">5.1.3 </span>Generation</a></li><li class="tocline"><a href="#term-Usage" class="tocxref"><span class="secno">5.1.4 </span>Usage</a></li><li class="tocline"><a href="#term-Communication" class="tocxref"><span class="secno">5.1.5 </span>Communication</a></li><li class="tocline"><a href="#term-Start" class="tocxref"><span class="secno">5.1.6 </span>Start</a></li><li class="tocline"><a href="#term-End" class="tocxref"><span class="secno">5.1.7 </span>End</a></li><li class="tocline"><a href="#term-Invalidation" class="tocxref"><span class="secno">5.1.8 </span>Invalidation</a></li></ul></li><li class="tocline"><a href="#component2" class="tocxref"><span class="secno">5.2 </span>Component 2: Derivations</a><ul class="toc"><li class="tocline"><a href="#term-Derivation" class="tocxref"><span class="secno">5.2.1 </span>Derivation</a></li><li class="tocline"><a href="#term-revision" class="tocxref"><span class="secno">5.2.2 </span>Revision</a></li><li class="tocline"><a href="#term-quotation" class="tocxref"><span class="secno">5.2.3 </span>Quotation</a></li><li class="tocline"><a href="#term-primary-source" class="tocxref"><span class="secno">5.2.4 </span>Primary Source</a></li></ul></li><li class="tocline"><a href="#component3" class="tocxref"><span class="secno">5.3 </span>Component 3: Agents, Responsibility, and Influence</a><ul class="toc"><li class="tocline"><a href="#term-agent" class="tocxref"><span class="secno">5.3.1 </span>Agent</a></li><li class="tocline"><a href="#term-attribution" class="tocxref"><span class="secno">5.3.2 </span>Attribution</a></li><li class="tocline"><a href="#term-Association" class="tocxref"><span class="secno">5.3.3 </span>Association</a></li><li class="tocline"><a href="#term-delegation" class="tocxref"><span class="secno">5.3.4 </span>Delegation</a></li><li class="tocline"><a href="#term-influence" class="tocxref"><span class="secno">5.3.5 </span>Influence</a></li></ul></li><li class="tocline"><a href="#component4" class="tocxref"><span class="secno">5.4 </span>Component 4: Bundles</a><ul class="toc"><li class="tocline"><a href="#term-bundle" class="tocxref"><span class="secno">5.4.1 </span>Bundle constructor</a></li><li class="tocline"><a href="#term-bundle-entity" class="tocxref"><span class="secno">5.4.2 </span>Bundle Type</a></li></ul></li><li class="tocline"><a href="#component5" class="tocxref"><span class="secno">5.5 </span>Component 5: Alternate Entities</a><ul class="toc"><li class="tocline"><a href="#term-specialization" class="tocxref"><span class="secno">5.5.1 </span>Specialization</a></li><li class="tocline"><a href="#term-alternate" class="tocxref"><span class="secno">5.5.2 </span>Alternate</a></li><li class="tocline"><a href="#term-mention" class="tocxref"><span class="secno">5.5.3 </span>Mention</a></li></ul></li><li class="tocline"><a href="#component6" class="tocxref"><span class="secno">5.6 </span>Component 6: Collections</a><ul class="toc"><li class="tocline"><a href="#term-collection" class="tocxref"><span class="secno">5.6.1 </span>Collection</a></li><li class="tocline"><a href="#term-membership" class="tocxref"><span class="secno">5.6.2 </span>Membership</a></li></ul></li><li class="tocline"><a href="#second-class-elements" class="tocxref"><span class="secno">5.7 </span>Further Elements of PROV-DM</a><ul class="toc"><li class="tocline"><a href="#term-identifier" class="tocxref"><span class="secno">5.7.1 </span>Identifier</a></li><li class="tocline"><a href="#term-attribute" class="tocxref"><span class="secno">5.7.2 </span>Attribute</a><ul class="toc"><li class="tocline"><a href="#term-attribute-label" class="tocxref"><span class="secno">5.7.2.1 </span>prov:label</a></li><li class="tocline"><a href="#term-attribute-location" class="tocxref"><span class="secno">5.7.2.2 </span>prov:location</a></li><li class="tocline"><a href="#term-attribute-role" class="tocxref"><span class="secno">5.7.2.3 </span>prov:role</a></li><li class="tocline"><a href="#term-attribute-type" class="tocxref"><span class="secno">5.7.2.4 </span>prov:type</a></li><li class="tocline"><a href="#term-attribute-value" class="tocxref"><span class="secno">5.7.2.5 </span>prov:value</a></li></ul></li><li class="tocline"><a href="#term-value" class="tocxref"><span class="secno">5.7.3 </span>Value</a></li><li class="tocline"><a href="#term-NamespaceDeclaration" class="tocxref"><span class="secno">5.7.4 </span>Namespace Declaration</a></li><li class="tocline"><a href="#term-qualified-name" class="tocxref"><span class="secno">5.7.5 </span>Qualified Name</a></li></ul></li></ul></li><li class="tocline"><a href="#extensibility-section" class="tocxref"><span class="secno">6. </span>PROV-DM Extensibility Points</a></li><li class="tocline"><a href="#valid-provenance" class="tocxref"><span class="secno">7. </span>Creating Valid Provenance</a></li><li class="tocline"><a href="#cross-references-to-prov-o-and-prov-n" class="tocxref"><span class="secno">A. </span>Cross-References to PROV-O and PROV-N</a></li><li class="tocline"><a href="#changes-since-last-version" class="tocxref"><span class="secno"><span class="insert">B. </span></span><span class="insert">Changes since last version</span></a></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno"><span class="delete">B.</span><span class="insert">C.</span> </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno"><span class="delete">C.</span><span class="insert">D.</span> </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno"><span class="delete">C.1</span><span class="insert">D.1</span> </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno"><span class="delete">C.2</span><span class="insert">D.2</span> </span>Informative references</a></li></ul></li></ul></div> 












    <div id="introduction" class="section"> 
      <h2><span class="secno">1. </span>Introduction<br>
</h2> 

<p> 
For the purpose of this specification, <dfn id="dfn-provenance" class="internalDFN">provenance</dfn><sup><a class="internalDFN" href="#dfn-provenance"><span class="diamond"> ◊</span></a></sup> is defined as a record that describes the people,
institutions, entities, and activities involved in producing,
influencing, or delivering a piece of data or a thing.
In particular, the provenance of information is crucial in deciding
whether information is to be trusted, how it should be integrated with
other diverse information sources, and how to give credit to its
originators when reusing it.  In an open and inclusive environment
such as the Web, where users find information that is often contradictory or
questionable, provenance can help those users to make trust judgements.
</p>


<p>
We present the PROV data model, PROV-DM,
a generic data model for provenance that allows  domain and application specific representations of provenance to be translated into such a data model and  <em>interchanged</em> between systems.
Thus, heterogeneous systems can export their native provenance into such a core data model, and applications that need to make sense of provenance can then import it,
process it, and reason over it.</p>




<p>
The PROV data model distinguishes <em>core structures</em> from
<em>extended structures</em>: core structures form the essence of
provenance information, and are commonly found in various
domain-specific vocabularies that deal
with provenance or similar kinds of information [<cite><a class="bibref" rel="biblioentry" href="#bib-Mappings">Mappings</a></cite>].
Extended structures enhance and refine core
structures with more expressive capabilities to cater for more
advanced uses of provenance.
The  PROV data model, comprising both core and extended structures, is a domain-agnostic model, but with clear extensibility points allowing further domain-specific and
application-specific extensions to be defined.
</p>


<p>
The PROV data model has a modular design and is structured according to six components covering various facets of provenance:</p>
<ul>
<li> component 1: entities and activities, and the time at which they were created, used, or ended;
</li><li> component 2: derivations of entities from others;
</li><li> component 3: agents bearing responsibility for entities that were generated and activities that happened;
</li><li> component 4: bundles, a mechanism to support provenance of provenance;
</li><li> component 5: properties to link entities that refer to a same thing;
</li><li> component 6: collections forming a logical structure for its members.
</li></ul>


<p>This specification presents the concepts of the PROV Data Model, and
provenance types and relations, without specific concern for how they are applied.
With these, it becomes possible to write useful provenance, and publish or embed it alongside the data it relates to. </p>

<p>However, if something about which provenance is expressed is subject to change, then it is challenging to express its provenance precisely (e.g. the data from which a daily weather report is derived  changes from day to day).
This is addressed in a companion
 specification [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-CONSTRAINTS">PROV-CONSTRAINTS</a></cite>] by proposing formal constraints on
 the way that provenance is related to the things it
 describes (such as the use of attributes, temporal information and
 specialization of entities), and additional conclusions that are valid
 to infer.
</p>


<div id="structure-of-this-document" class="section"> 
<h3><span class="secno">1.1 </span>Structure of this Document</h3>

<p><a href="#section-prov-overview">Section 2</a> provides an overview of the PROV Data Model,  distinguishing a core set of types and  relations, commonly found in provenance, from extended structures catering for more specific uses. It also introduces a modular organization of the data model in components. </p>

<p><a href="#prov-notation">Section 3</a> overviews the Provenance Notation used to illustrate examples of provenance.</p>


<p><a href="#prov-dm-example">Section 4</a> illustrates how the PROV data model can be used
to express the provenance of a report published on the Web.</p>


<p><a href="#data-model-components">Section 5</a> provides the definitions of PROV concepts, structured according to six components.</p>



<p><a href="#extensibility-section">Section 6</a> summarizes PROV-DM extensibility points.</p>

<p><a href="#valid-provenance">Section 7</a> introduces the idea that constraints can be applied to the PROV data model to validate provenance; these are covered in the companion specification [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-CONSTRAINTS">PROV-CONSTRAINTS</a></cite>].</p>


</div> 

<div id="conventions" class="section"> 
<h3><span class="secno">1.2 </span>Notational Conventions</h3>



<p>The key words "<em class="rfc2119" title="must">must</em>", "<em class="rfc2119" title="must not">must not</em>", "<em class="rfc2119" title="required">required</em>", "<em class="rfc2119" title="shall">shall</em>", "<em class="rfc2119" title="shall
      not">shall
      not</em>", "<em class="rfc2119" title="should">should</em>", "<em class="rfc2119" title="should not">should not</em>", "<em class="rfc2119" title="recommended">recommended</em>",  "<em class="rfc2119" title="may">may</em>", and
      "<em class="rfc2119" title="optional">optional</em>" in this document are to be interpreted as described in
      [<cite><a class="bibref" rel="biblioentry" href="#bib-RFC2119">RFC2119</a></cite>].</p>

<p> 
  Examples throughout this document use the PROV-N Provenance
  Notation, briefly introduced in <a href="#prov-notation">Section 3</a> and specified fully in a separate document [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N">PROV-N</a></cite>].</p>



</div> 

<div id="namespaces" class="section"> 
<h3><span class="secno">1.3 </span>Namespaces</h3>

<p>
The following namespaces prefixes are used throughout this document.

</p><div style="text-align: left;">
<table class="thinborder" style="margin-left: auto; margin-right: auto;">
<caption id="namespace-table"><span>Table 1<sup><a class="internalDFN" href="#namespace-table"><span class="diamond"> ◊:</span></a></sup> </span>Prefix and Namespaces used in this specification</caption> 
<tbody><tr><td><a><b>prefix</b></a></td><td><b>namespace uri</b></td> <td><b>definition</b></td></tr>
<tr><td><a>prov</a></td><td>http://www.w3.org/ns/prov#</td><td>The PROV namespace (see <a class="section-ref" href="#term-NamespaceDeclaration"><span>Section 5.7.4</span></a>)</td></tr>
<tr><td><a>xsd</a></td><td>http://www.w3.org/2000/10/XMLSchema#</td><td>XML Schema Namespace [<cite><a class="bibref" rel="biblioentry" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>]</td></tr>
<tr><td><a>rdf</a></td><td>http://www.w3.org/1999/02/22-rdf-syntax-ns#</td><td>The RDF namespace  [<cite><a class="bibref" rel="biblioentry" href="#bib-RDF-CONCEPTS">RDF-CONCEPTS</a></cite>]</td></tr>
<tr><td><a>(others)</a></td><td>(various)</td><td>All other namespace prefixes are used in examples only. <br> In particular, URIs starting with "http://example.com" represent<br> some application-dependent URI [<cite><a class="bibref" rel="biblioentry" href="#bib-URI">URI</a></cite>]</td></tr>
</tbody></table>
</div>


</div> 

</div> 



<div id="section-prov-overview" class="section"> 
<h2><span class="secno">2. </span>PROV Overview</h2>

<p>This section introduces provenance concepts with informal explanations and illustrative
examples. PROV distinguishes  <em>core structures</em>, forming the essence of  provenance, from <em>extended structures</em> catering for more specific uses of provenance.  Core and extended structures are respectively presented in <a href="#core-structures">Section 2.1</a> and <a href="#section-extended-structures">Section 2.2</a>. Furthermore, the PROV data model is organized according to components, which form thematic groupings of concepts (see <a href="#section-overview-components">Section 2.3</a>). A <em>provenance description</em> is an instance of  a core and extended provenance structure described below.
</p>


<div id="core-structures" class="section"> 
<h3><span class="secno">2.1 </span>PROV Core Structures</h3>

<p>At its core, provenance describes the use and production of
<em>entities</em> by <em>activities</em>, which may be 
influenced in
various ways by <em>agents</em>.  These core types and their relationships
are illustrated
by
the UML diagram of <a href="#prov-core-structures-top">Figure 1</a>.</p>


<div style="text-align: center; ">
 <span class="figure" id="prov-core-structures-top" style="max-width: 70%; ">
<img src="uml/essentials.png" alt="PROV Core Structures" style="max-width: 70%; "><br>
<span class="figcaption" id="prov-core-structures">Figure 1<sup><a class="internalDFN" href="#prov-core-structures"><span class="diamond"> ◊:</span></a></sup> PROV Core Structures</span>
  </span>
</div>

<p>The concepts found in the core of PROV are introduced in the rest of this section.
They are summarized in  <a href="#overview-types-and-relations">Table 2</a>, where they are categorized as
 type or relation.
 The first column lists concepts, the second column indicates whether a concept maps to a type or a relation, whereas the third column contains the corresponding name, as it appears in Figure 1.    Names of relations have a verbal form in the past tense to express what happened in the past, as opposed to what may or will happen. In the core of PROV, all relations are binary. 
</p>






<div style="text-align: left;">
<table class="thinborder" style="margin-left: auto; margin-right: auto;">
<caption id="overview-types-and-relations"><span>Table 2<sup><a class="internalDFN" href="#overview-types-and-relations"><span class="diamond"> ◊:</span></a></sup> </span>Mapping of PROV core concepts to  types and relations</caption> 
<tbody><tr><td><a><b>PROV Concepts</b></a></td><td><b>PROV-DM types or relations</b></td><td><b>Name</b></td><td><b>Overview</b></td></tr>
<tr>
<td><a href="#concept-entity" class="internalDFN">Entity</a></td><td rowspan="3" style="text-align: center;">PROV-DM Types</td><td><a title="dfn-Entity" href="#dfn-entity" class="internalDFN">Entity</a></td><td style="text-align: center;"><a class="section-ref" href="#section-entity-activity"><span>Section 2.1.1</span></a></td></tr>
<tr><td><a href="#concept-activity" class="internalDFN">Activity</a></td><td><a title="dfn-Activity" href="#dfn-activity" class="internalDFN">Activity</a></td><td style="text-align: center;"><a class="section-ref" href="#section-entity-activity"><span>Section 2.1.1</span></a></td></tr>
<tr><td><a href="#concept-agent" class="internalDFN">Agent</a></td><td><a title="dfn-agent" href="#dfn-agent" class="internalDFN">Agent</a></td><td style="text-align: center;"><a class="section-ref" href="#section-agents-attribution-association-delegation"><span>Section 2.1.3</span></a></td></tr>
<tr>
<td><a href="#concept-generation" class="internalDFN">Generation</a></td><td rowspan="7" style="text-align: center;">PROV-DM Relations</td><td><a title="wasGeneratedBy" href="#dfn-wasgeneratedby" class="internalDFN">WasGeneratedBy</a></td><td style="text-align: center;"><a class="section-ref" href="#section-entity-activity"><span>Section 2.1.1</span></a></td></tr>
<tr><td><a href="#concept-usage" class="internalDFN">Usage</a></td><td><a title="used" href="#dfn-used" class="internalDFN">Used</a></td><td style="text-align: center;"><a class="section-ref" href="#section-entity-activity"><span>Section 2.1.1</span></a></td></tr>
<tr><td><a href="#concept-communication" class="internalDFN">Communication</a></td><td><a title="wasInformedBy" href="#dfn-wasinformedby" class="internalDFN">WasInformedBy</a></td><td style="text-align: center;"><a class="section-ref" href="#section-entity-activity"><span>Section 2.1.1</span></a></td></tr>
<tr><td><a href="#concept-derivation" class="internalDFN">Derivation</a></td><td><a title="wasDerivedFrom" href="#dfn-wasderivedfrom" class="internalDFN">WasDerivedFrom</a></td><td style="text-align: center;"><a class="section-ref" href="#section-derivation"><span>Section 2.1.2</span></a></td></tr>
<tr><td><a href="#concept-attribution" class="internalDFN">Attribution</a></td><td><a title="wasAttributedTo" href="#dfn-wasattributedto" class="internalDFN">WasAttributedTo</a></td><td style="text-align: center;"><a class="section-ref" href="#section-agents-attribution-association-delegation"><span>Section 2.1.3</span></a></td></tr>
<tr><td><a href="#concept-activityAssociation" class="internalDFN">Association</a></td><td><a title="wasAssociatedWith" href="#dfn-wasassociatedwith" class="internalDFN">WasAssociatedWith</a></td><td style="text-align: center;"><a class="section-ref" href="#section-agents-attribution-association-delegation"><span>Section 2.1.3</span></a></td></tr>
<tr><td><a href="#concept-delegation" class="internalDFN">Delegation</a></td><td><a title="actedOnBehalfOf" href="#dfn-actedonbehalfof" class="internalDFN">ActedOnBehalfOf</a></td><td style="text-align: center;"><a class="section-ref" href="#section-agents-attribution-association-delegation"><span>Section 2.1.3</span></a></td></tr>
</tbody></table>
</div>










<form action="#"><p> 
<input id="hide-examples" onclick="set_display_by_class('div','anexample conceptexample','none'); set_display_by_id('hide-examples','none'); set_display_by_id('show-examples','');" type="button" value="Hide Concept Examples"> 
<input id="show-examples" onclick="set_display_by_class('div','anexample conceptexample',''); set_display_by_id('hide-examples',''); set_display_by_id('show-examples','none');" style="display: none" type="button" value="Show Concept Examples"> 
</p> 
</form> 




  
    <div id="section-entity-activity" class="section"> 
<h4><span class="secno">2.1.1 </span>Entity and Activity</h4>


<p>In PROV, things we want to describe the provenance of are called <em>entities</em> and have some fixed aspects. The term "things" encompasses a broad diversity of notions, including digital objects such as a file or web page, 
physical things such as a mountain, a building, a printed book, or a car as well as abstract concepts and ideas. 
</p>

<p>
<span class="glossary-ref">
   An <span class="dfn">entity</span> is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary. </span> [<a href="#term-entity">Detailed specification</a>]</p>



<div class="anexample conceptexample" id="entity-example"><div class="anexampleTitle">Example 1<sup><a class="internalDFN" href="#entity-example"><span class="diamond"> ◊</span></a></sup></div>
<p>An entity may be the document at URI <a href="http://www.bbc.co.uk/news/science-environment-17526723">http://www.bbc.co.uk/news/science-environment-17526723</a>, a file in a file system, a car, or an idea.</p>
</div>



<p>
<span class="glossary-ref">   An <span class="dfn">activity</span>  is something that occurs over a period of time and acts upon or with entities;  it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.  </span> [<a href="#term-Activity">Detailed specification</a>]
Just as entities cover a broad range of notions, 
activities can cover a broad range of
notions:
information processing activities
 may for example move, copy, or duplicate  digital entities;
 physical activities can include
 driving a car from Boston to Cambridge or printing a book.
</p>



<div class="anexample conceptexample" id="activity-example"><div class="anexampleTitle">Example 2<sup><a class="internalDFN" href="#activity-example"><span class="diamond"> ◊</span></a></sup></div>
<p>An activity may be the publishing of a document on the Web, sending a twitter message, extracting metadata embedded in a file, driving a car from Boston to Cambridge, assembling a data set based on a set of measurements, performing a statistical analysis over a data set, sorting news items according to some criteria, running a SPARQL query over a triple store, or editing a file.</p>
</div>

<p>Activities and entities are associated with each other in two different ways: activities utilize entities and activities  produce entities. The act of utilizing or producing an entity may have a duration.  
 The term 'generation' refers to the completion of the act of producing; likewise, the term 'usage' refers to the beginning of the act of utilizing entities. Thus, we define the following concepts of generation and usage. </p>

<p>
<span class="glossary-ref">
   <span class="dfn">Generation</span> is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation. </span> [<a href="#term-Generation">Detailed specification</a>]</p>

<p>
<span class="glossary-ref">
   <span class="dfn">Usage</span> is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity. </span>  [<a href="#term-Usage">Detailed specification</a>]</p>




<div class="anexample conceptexample" id="generation-example"><div class="anexampleTitle">Example 3<sup><a class="internalDFN" href="#generation-example"><span class="diamond"> ◊</span></a></sup></div>
<p>Examples of generation are the completed creation of a file by a
program, the completed creation of a linked data set, and the completed
publication of a new version of a document.
</p></div>

<span class="delete">
One might reasonably ask what entities are used and generated by
driving a car from Boston to Cambridge.  This is answered by
considering that a single artifact may
correspond to several entities; in this case, a car in Boston may be a
different entity from a car in Cambridge.  
Thus, among other things,
an entity "car in Boston" would be used, and a new entity "car in
Cambridge" would be generated by this activity of driving.  The
provenance trace of the car might include: designed in Japan,
manufactured in Korea, shipped to Boston USA, purchased by customer,
driven to Cambridge, serviced by engineer in Cambridge, etc., all of
which might be important information when deciding whether or not it
represents a sensible second-hand purchase.  Or some of it might
alternatively be relevant when trying to determine the truth of a web
page reporting a traffic violation involving that car.  This breadth
of provenance allows descriptions of interactions between physical and
digital artifacts.
</span>










<div class="anexample conceptexample" id="usage-example"><div class="anexampleTitle">Example 4<sup><a class="internalDFN" href="#usage-example"><span class="diamond"> ◊</span></a></sup></div>
<p>Usage examples include a procedure beginning to consume an argument, a service starting to read a value on a port, a program beginning to read a configuration
file, or the point at which an ingredient, such as eggs, is being added in a baking activity. Usage may entirely consume an entity (e.g. eggs are no longer available after being added to
the mix); in contrast, the same entity may be used multiple times, possibly by different activities (e.g. a file on a file system can be read indefinitely).
</p></div>


<div class="anexample conceptexample" id="driving-a-car"><div class="anexampleTitle"><span class="insert">Example 5</span><sup><a class="internalDFN" href="#driving-a-car"><span class="diamond"><span class="insert"> ◊</span></span></a></sup></div>
<p><span class="insert">
Let us consider the activity of driving a car from Boston to Cambridge.
One might reasonably ask what entities are used and generated by this activity.
This is answered by
considering that a single artifact may
correspond to several entities; in this case, a car in Boston may be a
different entity from a car in Cambridge.  
Thus, among other things,
an entity "car in Boston" would be used, and a new entity "car in
Cambridge" would be generated by this activity of driving.  The
provenance trace of the car might include: designed in Japan,
manufactured in Korea, shipped to Boston USA, purchased by customer,
driven to Cambridge, serviced by engineer in Cambridge, etc., all of
which might be important information when deciding whether or not it
represents a sensible second-hand purchase.  Or some of it might
alternatively be relevant when trying to determine the truth of a web
page reporting a traffic violation involving that car.  This breadth
of provenance allows descriptions of interactions between physical and
digital artifacts.
</span></p>
</div>


<p>The generation of an entity by an activity and its subsequent usage by another activity is termed communication.</p>

<p>
<span class="glossary-ref">
   <span class="dfn">Communication</span> is the exchange of some unspecified entity by two activities, one activity using some entity generated by the other. </span>   [<a href="#term-Communication">Detailed specification</a>]</p>





<div class="anexample conceptexample" id="communication-example"><div class="anexampleTitle">Example <span class="delete">5</span><span class="insert">6</span><sup><a class="internalDFN" href="#communication-example"><span class="diamond"> ◊</span></a></sup></div>
<p>
The activity of writing a celebrity article was informed by (a
communication instance) the activity of intercepting voicemails.
</p></div>



</div>

    <div id="section-derivation" class="section"> 
<h4><span class="secno">2.1.2 </span>Derivation</h4>



<p>Activities utilize entities and produce entities. In some cases, utilizing an entity influences the creation of another in some way. This notion of 'influence' is captured by derivations, defined as follows.
</p>

<p>
<span class="glossary-ref">   A <span class="dfn">derivation</span>  is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.</span>
   [<a href="#term-Derivation">Detailed specification</a>]</p>





<div class="anexample conceptexample" id="derivation-example"><div class="anexampleTitle">Example <span class="delete">6</span><span class="insert">7</span><sup><a class="internalDFN" href="#derivation-example"><span class="diamond"> ◊</span></a></sup></div>
<p>Examples of derivation include  the transformation of a relational table into a
linked data set, the transformation of a canvas into a painting, the transportation of a work of art from London to New York, and a physical transformation such as the melting of ice into water.</p>
</div>


<p>
While the basic idea is simple, the concept of derivation can be quite
subtle: implicit is the notion that the generated entity was affected
in some way by the used entity.  

If an artifact
was used by an activity that also generated a new artifact, it does not always follow
that the second artifact was derived from the first.  In the activity
of creating a painting, an artist may have mixed some paint that was
never actually applied to the canvas: the painting would typically
not be considered a derivation from the unused paint.  

PROV does not attempt to specify the conditions under which derivations
exist; rather, derivation is considered to have been determined by unspecified means. 
Thus, while a chain of usage and generation is necessary for a
derivation to hold between entities, it is not sufficient; some
form of influence occurring during the activities involved is also needed. 
</p>
</div>



<div id="section-agents-attribution-association-delegation" class="section"> 
<h4><span class="secno">2.1.3 </span>Agents and Responsibility</h4>

<p>For many purposes, a key consideration
 for deciding whether something is reliable and/or trustworthy is
 knowing who or what <em>was reponsible</em> for its production.  Data published by
 a respected independent organization may be considered more
 trustworthy than that from a lobby organization; a claim by a
 well-known scientist with an established track record may be more
 believed than a claim by a new student; a calculation performed by an
 established software library may be more reliable than by a one-off
 program.</p>

<p>
<span class="glossary-ref">
   An <span class="dfn">agent</span> is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity. </span>   [<a href="#term-agent">Detailed specification</a>]
 An agent <em class="rfc2119" title="may">may</em> be a particular type of entity or activity. This means that the model can be
 used to express provenance of the agents themselves.  
</p>






<div class="anexample conceptexample" id="agent-example"><div class="anexampleTitle">Example <span class="delete">7</span><span class="insert">8</span><sup><a class="internalDFN" href="#agent-example"><span class="diamond"> ◊</span></a></sup></div>
<p>
Software for checking the use of grammar in a document may be defined as an agent of a document preparation activity;  one can also describe its provenance, including for instance the vendor and the version history. 
A site selling books on the Web, the services involved in the processing of orders, and the companies hosting them are also agents.
</p>
</div>




<p>Agents can be related to entities, activities, and other agents.</p>  

<p><span class="glossary-ref">   <span class="dfn">Attribution</span> is the ascribing of an entity to an agent. </span>
[<a href="#term-attribution">Detailed specification</a>]</p>

<div class="anexample conceptexample" id="attribution-example"><div class="anexampleTitle">Example <span class="delete">8</span><span class="insert">9</span><sup><a class="internalDFN" href="#attribution-example"><span class="diamond"> ◊</span></a></sup></div>
<p>A blog post can be attributed to an author, a mobile phone to its manufacturer.</p>
</div>

<p>
Agents are defined as having some kind of responsibility for activities. </p>




<p>
<span class="glossary-ref">   An activity <span class="dfn">association</span> is an assignment of responsibility to an agent for an activity, indicating that the agent had a role in the activity.  </span>
[<a href="#term-Association">Detailed specification</a>]</p>


<div class="anexample conceptexample" id="association-example"><div class="anexampleTitle">Example <span class="delete">9</span><span class="insert">10</span><sup><a class="internalDFN" href="#association-example"><span class="diamond"> ◊</span></a></sup></div>
<p>Examples of association between an activity and an agent are:
</p><ul>
<li>creation of a web page under the guidance of a designer;</li>
<li>various forms of participation in a panel discussion, including audience member, panelist, or panel chair;</li>
<li>a public event, sponsored by a company, and hosted by a museum;</li>
</ul>
</div>



<p>
<span class="glossary-ref">
   <span class="dfn">Delegation</span> is the assignment of authority and responsibility to an agent (by itself or by another agent)  to carry out a specific activity as a delegate or representative, while the agent it acts on behalf of retains some responsibility for the outcome of the delegated work. </span>
[<a href="#term-delegation">Detailed specification</a>]
 The nature of this relation is intended to be broad,  including contractual relation, but also altruistic initiative by the representative agent. </p>




<div class="anexample conceptexample" id="delegation-example"><div class="anexampleTitle">Example <span class="delete">10</span><span class="insert">11</span><sup><a class="internalDFN" href="#delegation-example"><span class="diamond"> ◊</span></a></sup></div>
<p>A student publishing a web page describing an academic
department could result in both the student and the department being
agents associated with the activity.  It may not matter which actual
student published a web page, but it may matter significantly that the department
told the student to put up the web page.  
</p>
</div>
</div>


</div>

<div id="section-extended-structures" class="section"> 
<h3><span class="secno">2.2 </span>PROV Extended Structures</h3>

<p>While the core of PROV focuses on essential provenance structures commonly found in provenance descriptions, extended structures 
are designed to support more advanced uses of provenance. 
The purpose of this section is twofold. First, mechanisms to specify these extended structures are introduced.  Second,  two further kinds of provenance structures are overviewed: they cater for provenance of provenance and collections,  respectively.</p>




<div id="section-prov-extended-mechanisms" class="section"> 
<h4><span class="secno">2.2.1 </span>Mechanisms to Define Extended Structures</h4>

<p>Extended structures are defined by a variety of mechanisms 
outlined in this section: subtyping, expanded relations, optional
identification, and new relations.</p>


<div id="section-prov-extended-approach-subtyping" class="section"> 
<h5><span class="secno">2.2.1.1 </span>Subtyping</h5>

<p>Subtyping can be applied to core types. For example, a software agent is special kind of agent, defined as follows.</p>

<span class="glossary-ref">
   A <span class="dfn">software agent</span>  is running software. </span>


<p>Subtyping can also be applied to  core relations. For example, a revision is a special kind of derivation, defined as follows.</p>


<p><span class="glossary-ref">   A <span class="dfn">revision</span>   is a derivation for which the resulting entity is a revised version of some original. </span></p>

</div>

<div id="section-prov-extended-approach-expanded-relation" class="section"> 
<h5><span class="secno">2.2.1.2 </span>Expanded Relations</h5>

<p><a class="section-ref" href="#core-structures"><span>Section 2.1</span></a> shows that seven concepts are mapped to binary relations in the core of PROV.  However, some advanced uses of these concepts cannot be captured by a binary relation, but require relations to be expanded to n-ary relations.</p>


<p>To illustrate expanded relations, we consider the concept of
association, described
in <a class="section-ref" href="#section-agents-attribution-association-delegation"><span>Section 2.1.3</span></a>.  Agents may adopt <em>plans</em>, i.e.  sets of actions or steps, to achieve their
goals in the context of an activity.
Hence, an expanded form of
association relation allows for a plan to be specified. Plan is defined by subtyping and 
full association by an expanded relation, as follows. </p>

<p>
<span class="glossary-ref">
   A <span class="dfn">plan</span> is an entity that represents a set of actions or steps intended by one or more agents to achieve some goals.  </span>
</p> 


<p>
<span class="glossary-ref">   An activity <span class="dfn">association</span> is an assignment of responsibility to an agent for an activity, indicating that the agent had a role in the activity. It further allows for a plan to be specified, which is the plan intended by the agent to achieve some goals in the context of this activity. </span>
</p>

<p>There exist no
prescriptive requirement on the nature of plans, their representation, the
actions or steps they consist of, or their intended goals.  Since plans may evolve over time,
it may become necessary to track their provenance, so plans themselves are
entities. Representing the plan explicitly in the provenance can be useful for various tasks: for example, to  
validate the execution as represented in the provenance record, to  
manage expectation failures, or to provide explanations.</p>


<div class="anexample conceptexample" id="association-example2"><div class="anexampleTitle">Example <span class="delete">11</span><span class="insert">12</span><sup><a class="internalDFN" href="#association-example2"><span class="diamond"> ◊</span></a></sup></div>
<p>An example of association between an activity and an agent involving a plan is:
an XSLT transform (an activity) launched by a user (an agent) based on an XSL style sheet (a plan).

</p></div>
</div>


<div id="section-prov-extended-approach-optional-identification" class="section"> 
<h5><span class="secno">2.2.1.3 </span>Optional Identification</h5>

<p>Some concepts exhibit both a core use, expressed as
binary relation, and an extended use, expressed as n-ary relation.  In
some cases, mapping the concept to a relation, whether binary or
n-ary, is not sufficient: instead, it may be required to
identify an instance of such concept.  In those cases, PROV-DM allows for 
an optional identifier to be
expressed to identify an instance of an association between two or
more elements.  This optional identifier can then be used to refer to
an instance as part of other concepts.</p>

<div class="anexample conceptexample" id="identifier-example"><div class="anexampleTitle">Example <span class="delete">12</span><span class="insert">13</span><sup><a class="internalDFN" href="#identifier-example"><span class="diamond"> ◊</span></a></sup></div>
<p>A service may read a same configuration file on two different occasions. Each  usage can be identifed by its own identifier, allowing them to be distinguished. 
</p></div>


</div>



<div id="section-prov-extended-approach-further-relations" class="section"> 
<h5><span class="secno">2.2.1.4 </span>Further Relations</h5>

<p>Finally, PROV-DM supports further relations that are not subtypes or expanded versions of existing relations (such as <a href="#concept-specialization" class="internalDFN">specialization</a>, <a href="#concept-alternate" class="internalDFN">alternate</a>).</p>


</div>
</div>



<div id="section-provenance-of-provnance" class="section"> 
<h4><span class="secno">2.2.2 </span>Provenance of Provenance</h4>




<p>
<span class="glossary-ref">
 A <span class="dfn">bundle</span> is a named set of provenance descriptions, and is itself an entity, so allowing provenance of provenance to be expressed.  </span>

</p><p>
For users to decide whether they can place their trust in
something, they may want to analyze its provenance, but also determine
the agent its provenance is attributed to, and when it was
generated. In other words, users need to be able to determine the provenance of provenance.
Hence, provenance is also
regarded as an entity (of type Bundle), by which provenance of provenance can then be
expressed.
</p>

<div class="anexample conceptexample" id="bundle-example"><div class="anexampleTitle">Example <span class="delete">13</span><span class="insert">14</span><sup><a class="internalDFN" href="#bundle-example"><span class="diamond"> ◊</span></a></sup></div>
<p>
In a decision making situation, decision makers may be presented with the same piece of knowledge, issued by multiple sources.  In order to validate this piece of knowledge, decision makers can consider its provenance, but also the provenance of their provenance, which may help determine whether it can be trusted.
</p>
</div>
</div>

<div id="section-collections" class="section"> 
<h4><span class="secno">2.2.3 </span>Collections</h4>

<p>
<span class="glossary-ref">   A <span class="dfn">collection</span> is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be <span class="dfn">member of</span> the collections.  </span> Many different types of collections exist, such as <em>sets</em>, <em>dictionaries</em>, or <em>lists</em>. 
Using Collections, one can express the provenance of the collection itself in addition to that of the members.  </p>

<div class="anexample conceptexample" id="collection-example"><div class="anexampleTitle">Example <span class="delete">14</span><span class="insert">15</span><sup><a class="internalDFN" href="#collection-example"><span class="diamond"> ◊</span></a></sup></div>
<p>
An example of collection is an archive of documents. Each document has its own provenance, but the archive itself also has some provenance: who maintained it, which documents it contained at which point in time, how it was assembled, etc. 
</p></div>


</div>





</div>

<div id="section-overview-components" class="section"> 
<h3><span class="secno">2.3 </span>Modular Organization</h3>

<p>Besides the separation between core and extended structures, PROV-DM
is further organized according to components, grouping concepts in a
thematic manner. </p>

<p> <a href="#components-overview">Table 3</a> enumerates the six components, five of which have already been implicitly overviewed in this section. All components contain extended structures, whereas only the first three contain core structures.

</p><div id="components-overview-div" style="text-align: center;">
<table class="thinborder" style="margin-left: auto; margin-right: auto;">
<caption id="components-overview"><span>Table 3<sup><a class="internalDFN" href="#components-overview"><span class="diamond"> ◊:</span></a></sup> </span>Components Overview</caption> 
<tbody><tr><td style="border-width: 0px; "></td><td>Component</td><td>Core <br>Structures</td><td>Overview</td><td>Specification</td><td>Description</td></tr> 
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
<tr><td style="	padding: 8px;">1</td><td style="text-align: left;">Entities and Activities</td><td>✔</td><td><a href="#section-entity-activity">2.1.1</a></td><td><a href="#component1">5.1</a></td><td style="text-align: left;">about entities and activities, and their interrelations</td></tr> 
<tr><td>2</td><td style="text-align: left;">Derivation</td><td>✔</td><td><a href="#section-derivation">2.1.2</a></td><td><a href="#component3">5.2</a></td><td style="text-align: left;">about derivations and its subtypes</td></tr> 
<tr><td>3</td><td style="text-align: left;">Agent and Responsibility</td><td>✔</td><td><a href="#section-agents-attribution-association-delegation">2.1.3</a></td><td><a href="#component2">5.3</a></td><td style="text-align: left;">about agents and concepts ascribing responsibility to them</td></tr> 
<tr><td>4</td><td style="text-align: left;">Bundles</td><td></td><td><a href="#section-provenance-of-provnance">2.2.2</a></td><td><a href="#component4">5.4</a></td><td style="text-align: left;">about bundles, a mechanism to support provenance of provenance</td></tr> 
<tr><td>5</td><td style="text-align: left;">Alternate</td><td></td><td>—</td><td><a href="#component5">5.5</a></td><td style="text-align: left;">about relations linking entities referring the same thing</td></tr> 
<tr><td>6</td><td style="text-align: left;">Collections</td><td></td><td><a href="#section-collections">2.2.3</a></td><td><a href="#component6">5.6</a></td><td style="text-align: left;">about collections</td></tr> 
</tbody></table>
</div>

</div>

</div>


<div id="prov-notation" class="section">  
<h2><span class="secno">3. </span>The Provenance Notation</h2>


<p>To illustrate the application of PROV concepts to a concrete example (see <a href="#prov-dm-example">Section 4</a>) and to provide examples of concepts (see <a href="#data-model-components">Section 5</a>),
we introduce PROV-N, a notation for writing instances of the PROV data model. For full details, the reader is referred to the companion specification [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N">PROV-N</a></cite>].
PROV-N is a notation  aimed at human consumption, with the following characteristics:</p>
<ul>
<li>PROV-N expressions adopt a <em>functional notation</em> consisting
of a name and a list of arguments in parentheses.</li>

<li>The interpretation of PROV-N arguments is defined according to their <em>position</em> in the list of arguments. This convention allows for a compact notation. </li>

<li>The PROV data model defines <em>identifiers</em> as qualified names; in PROV-N, they are expressed as a local name optionally preceded of a prefix and a colon. </li>



<li>
PROV-N <em>optional arguments</em> need not be specified:
the general rule for optional arguments is that, if none of them are used in the expression, then they are simply omitted, resulting in a simpler expression. However, it may be the case that only some of the optional arguments need to be specified. Because the position of the arguments in the expression matters, in this case, an additional marker must be used to indicate that a particular term is not available. The syntactic marker  '<span class="name">-</span>' is used for this purpose.
</li>

<li>Most expressions 
include an identifier 
and a set of attribute-value pairs; both are optional unless otherwise specified. By convention, the identifier occurs in the <em>first position</em>, and the set of attribute-value pairs in the <em>last position</em>.
Consistent with the convention on arguments, the marker  '<span class="name">-</span>' can be used when the identifier is not available, or can be omitted altogether with no ambiguity arising. To further disambiguate expressions that contain an optional identifier, the optional identifier or marker must be followed by '<span class="name">;</span>'.
</li>
</ul>

<div class="anexample" id="anexample-prov-n"><div class="anexampleTitle">Example <span class="delete">15</span><span class="insert">16</span><sup><a class="internalDFN" href="#anexample-prov-n"><span class="diamond"> ◊</span></a></sup></div>
<p>
An activity with identifier <span class="name">a1</span> and an attribute <span class="name">type</span> with value <span class="name">createFile</span>.
</p><pre class="codeexample">activity(a1, [prov:type="createFile"])
</pre>
Two entities with identifiers <span class="name">e1</span> and <span class="name">e2</span>.
<pre class="codeexample">entity(e1)
entity(e2)
</pre>
The activity  <span class="name">a1</span> used  <span class="name">e1</span>, and <span class="name">e2</span> was generated by <span class="name">a1</span>.
<pre class="codeexample">used(a1,e1)
wasGeneratedBy(e2,a1)
</pre>
The same descriptions, but with an explicit identifier <span class="name">u1</span> for the usage, and the syntactic marker '<span class="name">-</span>' to mark the absence of identifier in the generation. Both are followed by  '<span class="name">;</span>'.
<pre class="codeexample">used(u1;a1,e1)
wasGeneratedBy(-;e2,a1)
</pre>
</div>



</div>


<div id="prov-dm-example" class="section"> 
<h2><span class="secno">4. </span>Illustration of PROV-DM by an Example</h2>

<p><a href="#section-prov-overview">Section 2</a> has introduced some provenance concepts, and how they are expressed as types or relations in the PROV data model. The purpose of this section is to put these concepts into practice in order to express the provenance of some document published on the Web.  
With this realistic example, PROV concepts are  composed together,  and a graphical illustration shows a provenance description forming a directed graph, rooted at the entity we want to explain the provenance of, and pointing to the entities, activities, and agents it depended on. This example also shows that, sometimes, multiple provenance descriptions about the same entity can co-exist, which then justifies the need for provenance of provenance.</p>


<p>In this example, we consider one of the many documents published by the World Wide Web Consortium, and describe its provenance. 
Specifically, we consider the document identified by
<a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">http://www.w3.org/TR/2011/WD-prov-dm-20111215</a>. Its provenance can be expressed from several perspectives: first,  provenance can take the authors' viewpoint; second, it can be concerned with the <acronym title="World Wide Web Consortium">W3C</acronym> process. Then, attribution of these two provenance descriptions is provided.</p>


<div id="section-example-one" class="section"> 
<h3><span class="secno">4.1 </span>Example: The Authors View</h3>


<p style="font-style:italic; "><b>Description:</b> A document
is edited by some editor, using contributions from various
contributors.
</p>



<p>In this perspective, provenance of the document
<a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">http://www.w3.org/TR/2011/WD-prov-dm-20111215</a> is concerned with the editing activity as perceived by authors.  This kind of information could be used by authors in their CV or in a narrative about this document. </p>




<p>We paraphrase some PROV-DM descriptions, express them with the PROV-N notation, and depict them with a graphical illustration (see <a href="#prov-a-document1-top">Figure 2</a>).
Full details of the provenance record can be found <a href="examples/w3c-publication1.provn">here</a>.</p>

<div style="text-align: center; ">
  <span class="figure" id="prov-a-document1-top">
  <img src="images/dm/w3c-publication1.png" alt="Provenance of a Document (1)" style="max-width: 98%; "><br>
<span class="figcaption" id="prov-a-document1">Figure 2<sup><a class="internalDFN" href="#prov-a-document1"><span class="diamond"> ◊:</span></a></sup> Provenance of a Document (1)</span> 
  </span>
</div>


<ul>
<li>There was a document <span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">tr:WD-prov-dm-20111215</a></span>, which from the author's perspective was a document in its second version. 
<pre>entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ])
</pre>
</li>

<li>There was an editing activity.
<pre>activity(ex:edit1,[prov:type="edit"])
</pre>
</li>

<li>The document was generated by the editing activity: this was a <a title="concept-generation">Generation</a>.
<pre>wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1, -)
</pre>
</li>


<li>There were some agents.
<pre>agent(ex:Paolo, [ prov:type='prov:Person' ])
agent(ex:Simon, [ prov:type='prov:Person' ])
</pre>
</li>

<li>Agents were assigned various responsibilities in the editing activity: contributor and editor.
<pre>wasAssociatedWith(ex:edit1, ex:Paolo, -, [ prov:role="editor" ])
wasAssociatedWith(ex:edit1, ex:Simon, -, [ prov:role="contributor" ])
</pre>
</li>
</ul>

<p>
Provenance descriptions can be <em>illustrated</em> graphically. The illustration is not intended to represent all the details of the model, but it is intended to show the essence of a set of
provenance descriptions.  Therefore, it should not be seen as an alternate notation for expressing provenance.</p>

<p>The graphical illustration takes the form of a graph. Entities, activities and agents are represented as nodes, with oval, rectangular, and pentagonal shapes, respectively.  Usage,
Generation, Derivation, and Association are represented as directed edges.</p>

<p>Entities are laid out according to the ordering of their generation.  We endeavor to show time progressing from left to right. This means that edges for Usage, Generation,
Derivation, Association typically point leftwards</p>



</div>

<div id="section-example-two" class="section"> 
<h3><span class="secno">4.2 </span>Example: The Process View</h3>


<p style="font-style:italic; "><b>Description:</b> The World Wide Web
Consortium publishes documents according to its publication
policy.  Working drafts are published regularly to reflect the work
accomplished by working groups. Every publication of a working draft
must be preceded by a "publication request" to the Webmaster.  The
very first version of a document must also be preceded by a
"transition request" to be approved by the <acronym title="World Wide Web Consortium">W3C</acronym> director.  All working
drafts are made available at a unique URI.  In this scenario, we consider two successive versions of a given document, the policy according to which they were published, and the associated requests.
</p>

<p>
We describe the kind of provenance record that the <a href="http://www.w3.org/Consortium">WWW Consortium</a> could keep for auditors to check that due processes are followed. All entities involved in this example are Web resources, with well-defined URIs (some of which refer archived email messages, available to <acronym title="World Wide Web Consortium">W3C</acronym> Members).</p>

<ul>
<li> Two versions of a document were involved: <span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">tr:WD-prov-dm-20111215</a></span> (second working draft) and <span class="name"><span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018">tr:WD-prov-dm-20111018</a></span></span> (first working draft);</li>
<li> Both <span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">tr:WD-prov-dm-20111215</a></span> and <span class="name"><span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018">tr:WD-prov-dm-20111018</a></span></span> were published by the WWW Consortium (<span class="name"><a href="http://www.w3.org/Consortium">w3:Consortium</a></span>); </li>
<li> The publication activity for <span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">tr:WD-prov-dm-20111215</a></span> was <span class="name">ex:act2</span>;</li>
<li> The publication activity for <span class="name"><span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018">tr:WD-prov-dm-20111018</a></span></span> was <span class="name">ex:act1</span>;
</li>

<li> The document <span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">tr:WD-prov-dm-20111215</a></span> was derived from <span class="name"><span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018">tr:WD-prov-dm-20111018</a></span></span>;</li>

<li> The publication activity <span class="name">ex:act1</span> used a <a href="http://www.w3.org/2005/08/01-transitions.html#pubreq">publication request</a> (<span class="name"><a href="https://lists.w3.org/Archives/Member/w3c-archive/2011Oct/0141">email:2011Oct/0141</a></span>) and a <a href="http://www.w3.org/2005/08/01-transitions.html#transreq">transition request</a> (<span class="name"><a href="https://lists.w3.org/Archives/Member/chairs/2011OctDec/0004">chairs:2011OctDec/0004</a></span>);</li>
<li> The publication activity <span class="name">ex:act2</span> used a <a href="http://www.w3.org/2005/08/01-transitions.html#pubreq">publication request</a> (<span class="name"><a href="https://lists.w3.org/Archives/Member/w3c-archive/2011Dec/0111">email:2011Dec/0111</a></span>);</li>
<li> Documents were published according to the process rules (<span class="name"><a href="http://www.w3.org/2005/10/Process-20051014/tr.html#rec-advance">process:rec-advance</a></span>), a plan in PROV-DM terminology.</li>
</ul>

<p>
We now paraphrase some PROV descriptions, and express them with the PROV-N notation, and depict them with a graphical illustration (see <a href="#prov-a-document2-top">Figure 3</a>). Full details of the provenance record can be found <a href="examples/w3c-publication2.provn">here</a>.

</p><div style="text-align: center;">
  <span class="figure" id="prov-a-document2-top">
  <img src="images/dm/w3c-publication2.png" alt="Provenance of a Document (2)" style="max-width: 90%; "><br>
<span class="figcaption" id="prov-a-document2">Figure 3<sup><a class="internalDFN" href="#prov-a-document2"><span class="diamond"> ◊:</span></a></sup> Provenance of a Document (2)</span> 
  </span>
</div>



<ul>
<li>There was a document, a working draft (<a href="http://www.w3.org/2001/02pd/rec54#WD">rec54:WD</a>), which is an entity so that we can describe its provenance. Similar descriptions exist for all entities.
<pre>entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD' ])
</pre>
</li>
<li>There was a publication activity.
<pre>activity(ex:act2,[prov:type="publish"])
</pre>
</li>

<li>The document was generated by the publication activity: this was a <a title="concept-Generation">Generation</a>.
<pre>wasGeneratedBy(tr:WD-prov-dm-20111215, ex:act2, -)
</pre>
</li>


<li>The second draft of the document was derived from the first draft: this was a <a title="concept-Derivation">Derivation</a>.
<pre>wasDerivedFrom(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018)
</pre>
</li>

<li>The activity required a publication request: this was a <a title="concept-Usage">Usage</a>.
<pre>used(ex:act2, email:2011Dec/0111, -)
</pre>
</li>

<li>The activity was associated with the Consortium agent, and proceeded according to its publication policy: this is an <a title="concept-activityAssociation">Activity Association</a>.
<pre>wasAssociatedWith(ex:act2, w3:Consortium, process:rec-advance)
</pre>
</li>
</ul>








<p> This simple example has shown a variety of PROV concepts, such as Entity, Agent, Activity, Usage, Generation, Derivation, and Association. In this example, it happens that all entities were already Web resources, with readily available URIs, which we used. We note that some of the resources are public, whereas others have restricted access: provenance statements only make use of their identifiers. If identifiers do not pre-exist, e.g. for activities, then they can be generated, for instance <span class="name">ex:act2</span>, occurring in the namespace identified by prefix <span class="name">ex</span>.  We note that the URI scheme developed by <acronym title="World Wide Web Consortium">W3C</acronym> is particularly suited for expressing provenance of these documents, since each URI denotes a specific version of a document. It then becomes easy to relate the various versions with  PROV-DM relations. We note that an Association is a ternary relation (represented by a multi-edge labeled wasAssociatedWith) from an activity to an agent and a plan.</p>


</div>


<div id="section-example-c" class="section"> 
<h3><span class="secno">4.3 </span>Example: Attribution of Provenance</h3>

<p>The two previous sections  offer two different perspectives on the provenance of a document.  PROV allows for multiple sources to provide the provenance of a subject. For users to decide whether they can place their trust in the document, they may want to analyze its provenance, but also determine who the provenance is attributed to, and when it was
generated, etc. In other words, we need to be able to express the provenance of provenance.</p>

<p>PROV-DM offers a construct to name a bundle of provenance descriptions (full details: <a href="examples/w3c-publication1.provn">ex:author-view</a>). </p>

<pre class="codeexample">bundle ex:author-view

  agent(ex:Paolo,   [ prov:type='prov:Person' ])
  agent(ex:Simon,   [ prov:type='prov:Person' ])


...

endBundle
</pre>

Likewise, the process view can be expressed as a separate named bundle (full details: <a href="examples/w3c-publication2.provn">ex:process-view</a>).
<pre class="codeexample">bundle ex:process-view

   agent(w3:Consortium, [ prov:type='prov:Organization' ])

...

endBundle
</pre>

<p>To express their respective provenance, these bundles must be seen as entities, and all PROV constructs are now available to express their provenance. In the example below, <span class="name">ex:author-view</span> is attributed to the agent  <span class="name">ex:Simon</span>, whereas <span class="name">ex:process-view</span> to  <span class="name">w3:Consortium</span>.

</p><pre class="codeexample">entity(ex:author-view, [prov:type='prov:Bundle' ])
wasAttributedTo(ex:author-view, ex:Simon)

entity(ex:process-view, [prov:type='prov:Bundle' ])
wasAttributedTo(ex:process-view, w3:Consortium)
</pre>

</div>

</div>


<div id="data-model-components" class="section"> 

<h2><span class="secno">5. </span>PROV-DM Types and Relations</h2>

<p>Provenance concepts, expressed as PROV-DM types and relations, are organized according to six components that are defined in this section.
The components and their dependencies are illustrated in <a href="#prov-dm-components">Figure 4</a>. A component that relies on concepts defined in another is displayed above it in the figure.  So, for example, component 5 (alternate) depends on concepts defined in component 4 (bundles), itself dependent on concepts defined in component 1 (entity and activity).
</p>

<div id="prov-dm-components-ul">
<ul>
<li><b>Component 1: entities and activities.</b> The first component consists of entities, activities, and concepts linking them, such as generation, usage, start, end. The first component is the only one comprising time-related concepts. </li>
<li><b>Component 2: derivations.</b>  The second component is formed with derivations and derivation subtypes.</li>
<li><b>Component 3: agents, responsibility, and influence.</b> The third component consists of agents and concepts ascribing responsibility to agents.</li>
<li><b>Component 4: bundles.</b> The fourth component is concerned with bundles, a mechanism to support provenance of provenance.</li>
<li><b>Component 5: alternate.</b> The fifth component consists of relations linking entities referring to the same thing. </li>
<li><b>Component 6: collections.</b> The sixth component is about collections. </li>
</ul>
</div>



<div style="text-align: center;">
<span class="figure" style="max-width: 95%; ">
<img usemap="#componentMap" src="images/dm/components-dependencies.png" alt="PROV-DM Components" style="max-width: 90%; ">
<map id="componentMap" name="componentMap">
<area title="agents/responsibility" href="#component3" coords="0,0,67,268" alt="agents/responsibility" shape="rect">
<area title="agents/responsibility" href="#component3" coords="67,0,134,201" alt="agents/responsibility" shape="rect">
<area title="agents/responsibility" href="#component3" coords="134,0,201,67" alt="agents/responsibility" shape="rect">
<area title="derivations" href="#component2" coords="201,0,268,201" alt="derivations" shape="rect">
<area title="derivations" href="#component2" coords="134,67,201,201" alt="derivations" shape="rect">
<area title="alternate" href="#component5" coords="268,0,335,67" alt="alternate" shape="rect">
<area title="alternate" href="#component5" coords="335,0,402,201" alt="alternate" shape="rect">
<area title="collections" href="#component6" coords="402,0,469,201" alt="collections" shape="rect">
<area title="activities/entities" href="#component1" coords="67,201,469,268" alt="activities/entities" shape="rect">
<area title="bundles" href="#component4" coords="268,67,402,201" alt="bundles" shape="rect">
</map>
<br>
<span class="figcaption" id="prov-dm-components">Figure 4<sup><a class="internalDFN" href="#prov-dm-components"><span class="diamond"> ◊:</span></a></sup> PROV-DM Components</span>  
</span>
</div>

<p>
While  not all PROV-DM relations are binary, they all involve two primary elements. Hence, <a href="#relations-at-a-glance">Table 4</a> indexes all relations according to their two primary elements (referred to as subject and object).  The table adopts the same color scheme as <a href="#prov-dm-components">Figure 4</a>, allowing components to be readily identified.
Note that for simplicity, this table  does not include collection-oriented relations.
Relation names appearing in bold correspond to the core structures introduced
in <a href="#core-structures">Section 2.1</a>.</p>


<div id="relations-at-a-glance-div" style="text-align: center;">
<table class="thinborder" style="margin-left: auto; margin-right: auto;">
<caption id="relations-at-a-glance"><span>Table 4<sup><a class="internalDFN" href="#relations-at-a-glance"><span class="diamond"> ◊:</span></a></sup> </span>PROV-DM Relations At a Glance</caption> 
<tbody><tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td colspan="6">Object</td></tr> 
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td colspan="2">Entity</td><td colspan="2">Activity</td><td colspan="2">Agent</td></tr> 
<tr><td rowspan="3">Subject</td><td>Entity</td><td colspan="2"><div class="component2-color"><a class="essential internalDFN" href="#dfn-wasderivedfrom">WasDerivedFrom</a><br><a href="#concept-revision" class="internalDFN">Revision</a><br><a href="#concept-quotation" class="internalDFN">Quotation</a><br><a>PrimarySource</a></div><div class="component5-color"><a href="#dfn-alternateof" class="internalDFN">AlternateOf</a><br><a href="#dfn-specializationof" class="internalDFN">SpecializationOf</a><br><a href="#dfn-mentionof" class="internalDFN">MentionOf</a></div></td><td class="component1-color"><a class="essential internalDFN" title="wasGeneratedBy" href="#dfn-wasgeneratedby">WasGeneratedBy</a><br><a title="wasInvalidatedBy" href="#dfn-wasinvalidatedby" class="internalDFN">WasInvalidatedBy</a></td><td class="component1-color" style="font-style: italic; "><a title="role" href="#concept-role" class="internalDFN">R</a><br><a title="time" href="#dfn-time" class="internalDFN">T</a><br><a title="location" href="#concept-location" class="internalDFN">L</a><br></td><td class="component3-color" colspan="2"><a class="essential internalDFN" href="#dfn-wasattributedto">WasAttributedTo</a></td></tr>
<tr><td>Activity</td><td class="component1-color"><a class="essential internalDFN" href="#dfn-used">Used</a><br><a href="#dfn-wasstartedby" class="internalDFN">WasStartedBy</a><br><a href="#dfn-wasendedby" class="internalDFN">WasEndedBy</a></td><td class="component1-color" style="font-style: italic; "><a title="role" href="#concept-role" class="internalDFN">R</a><br><a title="time" href="#dfn-time" class="internalDFN">T</a><br><a title="location" href="#concept-location" class="internalDFN">L</a><br></td><td colspan="2" class="component1-color"><a class="essential internalDFN" href="#dfn-wasinformedby">WasInformedBy</a></td><td class="component3-color"><a class="essential internalDFN" href="#dfn-wasassociatedwith">WasAssociatedWith</a></td><td class="component3-color" style="font-style: italic; "><a title="role" href="#concept-role" class="internalDFN">R</a><br></td></tr>
<tr><td>Agent</td><td colspan="2">—</td><td colspan="2">—</td><td class="component3-color" colspan="2"><a class="essential internalDFN" href="#dfn-actedonbehalfof">ActedOnBehalfOf</a></td></tr>
</tbody></table>
</div>

<p>The letters 'R' and 'L' appearing in the right-hand side of some cells of <a href="#relations-at-a-glance">Table 4</a> indicate that attributes 
<a title="role" href="#concept-role" class="internalDFN">prov:role</a> (<a class="section-ref" href="#term-attribute-role"><span>Section 5.7.2.3</span></a>)
and
<a title="location" href="#concept-location" class="internalDFN">prov:location</a> (<a class="section-ref" href="#term-attribute-location"><span>Section 5.7.2.2</span></a>)
are permitted for these relations.
The letter 'T' indicates an <em class="rfc2119" title="optional">optional</em> <a title="time" href="#dfn-time" class="internalDFN">time</a> is also permitted.
</p>




<p><span class="insert">
Some PROV-DM relations are not binary and involve extra optional element. They are summarized in  </span><a href="#secondary-elements-relations-at-a-glance-div"><span class="insert">Table 5</span></a><span class="insert"> grouping secondary objects, according to their type.  The table also adopts the same color scheme as </span><a href="#prov-dm-components"><span class="insert">Figure 4</span></a><span class="insert">, allowing components to be readily identified. None of these associations correspond to the core structures introduced
in </span><a href="#core-structures"><span class="insert">Section 2.1</span></a><span class="insert">.</span></p>


<div id="secondary-elements-relations-at-a-glance-div" style="text-align: center;">
<table class="thinborder" style="margin-left: auto; margin-right: auto;">
<caption id="secondary-elements-relations-at-a-glance"><span><span class="insert">Table 5</span><sup><a class="internalDFN" href="#secondary-elements-relations-at-a-glance"><span class="diamond"><span class="insert"> ◊:</span></span></a></sup> </span><span class="insert">Secondary optional elements in PROV-DM Relations</span></caption> 
<tbody><tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td colspan="6"><span class="insert">Secondary Object</span></td></tr> 
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td><span class="insert">Entity</span></td><td><span class="insert">Activity</span></td><td><span class="insert">Agent</span></td></tr> 
<tr><td rowspan="3"><span class="insert">Subject</span></td><td><span class="insert">Entity</span></td><td class="component5-color"><a href="#dfn-mentionof" class="internalDFN"><span class="insert">MentionOf</span></a><span class="insert"> (bundle)</span></td><td class="component2-color"><a href="#dfn-wasderivedfrom" class="internalDFN"><span class="insert">WasDerivedFrom</span></a><span class="insert"> (activity)</span><br><a><span class="insert">Revision (activity)</span></a><br><a><span class="insert">Quotation (activity)</span></a><br><a><span class="insert">PrimarySource (activity)</span></a></td><td colspan="2"><span class="insert">—</span></td></tr>
<tr><td><span class="insert">Activity</span></td><td class="component3-color"><a href="#dfn-wasassociatedwith" class="internalDFN"><span class="insert">WasAssociatedWith</span></a><span class="insert"> (plan)</span></td><td class="component1-color"><a href="#dfn-wasstartedby" class="internalDFN"><span class="insert">WasStartedBy</span></a><span class="insert"> (starter)</span><br><a href="#dfn-wasendedby" class="internalDFN"><span class="insert">WasEndedBy</span></a><span class="insert"> (ender)</span></td><td colspan="2"><span class="insert">—</span></td></tr>
<tr><td><span class="insert">Agent</span></td><td><span class="insert">—</span></td><td class="component3-color"><a href="#dfn-actedonbehalfof" class="internalDFN"><span class="insert">ActedOnBehalfOf</span></a><span class="insert"> (activity)</span></td><td><span class="insert">—</span></td></tr>
</tbody></table>
</div>


<p><a href="#prov-dm-types-and-relations">Table <span class="delete">5</span><span class="insert">6</span></a> is a complete index of all the types and relations of PROV-DM, color-coded according to the component they belong to.  In the first column,  concept names  link to their informal definition, whereas, in the second column, representations link to the information used to represent the concept. Concept names appearing in bold <span class="insert">in the first column </span>are the core structures introduced in <a href="#core-structures">Section 2.1</a>.<span class="insert"> Likewise, these core structures have their names and parameters highlighted in bold in the second column (prov-n representation); expanded structures are not represented with a bold font.</span></p>


<div id="prov-dm-types-and-relations-fig" style="text-align: left;">
<table class="thinborder" style="margin-left: auto; margin-right: auto;">
<caption id="prov-dm-types-and-relations"><span>Table <span class="delete">5</span><span class="insert">6</span><sup><a class="internalDFN" href="#prov-dm-types-and-relations"><span class="diamond"> ◊:</span></a></sup> </span>PROV-DM Types and Relations</caption> 
<tbody><tr><td><a><b>Type or Relation Name</b></a></td><td><b>Representation in the PROV-N notation</b></td><td><b>Component</b></td></tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>

<tr class="component1-color"><td class="essential"><a href="#concept-entity" class="internalDFN">Entity</a></td><td><a title="dfn-Entity" class="essential internalDFN" href="#dfn-entity">entity(id, [ attr1=val1, ...])</a></td><td rowspan="8"><a href="#component1">Component 1: Entities/Activities</a></td></tr>
<tr class="component1-color"><td class="essential"><a href="#concept-activity" class="internalDFN">Activity</a></td><td><a title="dfn-Activity" class="essential internalDFN" href="#dfn-activity">activity(id, st, et, [ attr1=val1, ...])</a></td></tr>
<tr class="component1-color"><td class="essential"><a href="#concept-generation" class="internalDFN">Generation</a></td><td><a title="wasGeneratedBy" href="#dfn-wasgeneratedby" class="internalDFN"><span class="essential">wasGeneratedBy(</span>id;<span class="essential">e,a</span>,t,attrs<span class="essential">)</span></a></td></tr>
<tr class="component1-color"><td class="essential"><a href="#concept-usage" class="internalDFN">Usage</a></td><td><a title="used" href="#dfn-used" class="internalDFN"><span class="essential">used(</span>id;<span class="essential">a,e</span>,t,attrs<span class="essential">)</span></a></td></tr>
<tr class="component1-color"><td class="essential"><a href="#concept-communication" class="internalDFN">Communication</a></td><td><a title="wasInformedBy" href="#dfn-wasinformedby" class="internalDFN"><span class="essential">wasInformedBy(</span>id;<span class="essential">a2,a1</span>,attrs<span class="essential">)</span></a></td></tr>
<tr class="component1-color"><td><a href="#concept-start" class="internalDFN">Start</a></td><td><a title="wasStartedBy" href="#dfn-wasstartedby" class="internalDFN">wasStartedBy(id;a2,e,a1,t,attrs)</a></td></tr>
<tr class="component1-color"><td><a href="#concept-end" class="internalDFN">End</a></td><td><a title="wasEndedBy" href="#dfn-wasendedby" class="internalDFN">wasEndedBy(id;a2,e,a1,t,attrs)</a></td></tr>
<tr class="component1-color"><td><a href="#concept-invalidation" class="internalDFN">Invalidation</a></td><td><a title="wasInvalidatedBy" href="#dfn-wasinvalidatedby" class="internalDFN">wasInvalidatedBy(id;e,a,t,attrs)</a></td></tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>


<tr class="component2-color"><td class="essential"><a href="#concept-derivation" class="internalDFN">Derivation</a></td><td><a title="wasDerivedFrom" href="#dfn-wasderivedfrom" class="internalDFN"><span class="essential">wasDerivedFrom(</span>id; <span class="essential">e2, e1</span>, a, g2, u1, attrs<span class="essential">)</span></a></td><td rowspan="4"><a href="#component2">Component 2: Derivations</a></td></tr>
<tr class="component2-color"><td class="provType"><a href="#concept-revision" class="internalDFN">Revision</a></td><td><a title="dfn-revision">... prov:type='prov:Revision' ...</a></td></tr>
<tr class="component2-color"><td class="provType"><a href="#concept-quotation" class="internalDFN">Quotation</a></td><td><a title="dfn-quotation">... prov:type='prov:Quotation' ...</a></td></tr>
<tr class="component2-color"><td class="provType"><a href="#concept-primary-source" class="internalDFN">Primary Source</a></td><td><a title="dfn-primary-source">... prov:type='prov:PrimarySource' ...</a></td></tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>

<tr class="component3-color" style="border-collapse: collapse; "><td class="essential"><a href="#concept-agent" class="internalDFN">Agent</a></td><td><a title="dfn-agent" class="essential internalDFN" href="#dfn-agent">agent(id, [ attr1=val1, ...])</a></td><td rowspan="9"><a href="#component3">Component 3: Agents, Responsibility, Influence</a></td></tr>
<tr class="component3-color"><td class="essential"><a href="#concept-attribution" class="internalDFN">Attribution</a></td><td><a title="wasAttributedTo" href="#dfn-wasattributedto" class="internalDFN"><span class="essential">wasAttributedTo(</span>id;<span class="essential">e,ag</span>,attr<span class="essential">)</span></a></td></tr>
<tr class="component3-color"><td class="essential"><a href="#concept-activityAssociation" class="internalDFN">Association</a></td><td><a title="wasAssociatedWith" href="#dfn-wasassociatedwith" class="internalDFN"><span class="essential">wasAssociatedWith(</span>id;<span class="essential">a,ag</span>,pl,attrs<span class="essential">)</span></a></td></tr>
<tr class="component3-color"><td class="essential"><a href="#concept-delegation" class="internalDFN">Delegation</a></td><td><a title="actedOnBehalfOf" href="#dfn-actedonbehalfof" class="internalDFN"><span class="essential">actedOnBehalfOf(</span>id;<span class="essential">ag2,ag1</span>,a,attrs<span class="essential">)</span></a></td></tr>
<tr class="component3-color"><td class="provType"><a href="#concept-plan" class="internalDFN">Plan</a></td><td><a title="plan" href="#concept-plan" class="internalDFN">... prov:type='prov:Plan' ...</a></td></tr>
<tr class="component3-color"><td class="provType"><a href="#concept-person" class="internalDFN">Person</a></td><td><a title="person" href="#concept-person" class="internalDFN">... prov:type='prov:Person' ...</a></td></tr>
<tr class="component3-color"><td class="provType"><a href="#concept-organization" class="internalDFN">Organization</a></td><td><a title="organization" href="#concept-organization" class="internalDFN">... prov:type='prov:Organization' ...</a></td></tr>
<tr class="component3-color"><td class="provType"><a title="software-agent" href="#concept-software-agent" class="internalDFN">SoftwareAgent</a></td><td><a title="software-agent" href="#concept-software-agent" class="internalDFN">... prov:type='prov:SoftwareAgent' ...</a></td></tr>
<tr class="component3-color"><td><a href="#concept-influence" class="internalDFN">Influence</a></td><td><a title="wasInfluencedBy" href="#dfn-wasinfluencedby" class="internalDFN">wasInfluencedBy(id;e2,e1,attrs)</a></td></tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>



<tr class="component4-color"><td><a title="bundle" href="#concept-bundle" class="internalDFN">Bundle constructor</a></td><td><a title="dfn-bundle" href="#dfn-bundle-declaration" class="internalDFN">bundle id description_1 ... description_n endBundle</a></td><td rowspan="2"><a href="#component5">Component 4: Bundles</a></td></tr>
<tr class="component4-color"><td class="provType"><a title="bundle" href="#concept-bundle" class="internalDFN">Bundle type</a></td><td><a title="bundle" href="#concept-bundle" class="internalDFN">... prov:type='prov:Bundle' ...</a></td></tr>

<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
<tr class="component5-color"><td><a href="#concept-alternate" class="internalDFN">Alternate</a></td><td><a title="alternateOf" href="#dfn-alternateof" class="internalDFN">alternateOf(alt1, alt2)</a></td><td rowspan="3"><a href="#component4">Component 5: Alternate</a></td></tr>
<tr class="component5-color"><td><a href="#concept-specialization" class="internalDFN">Specialization</a></td><td><a title="specializationOf" href="#dfn-specializationof" class="internalDFN">specializationOf(infra, supra)</a></td></tr>
<tr class="component5-color"><td><a href="#concept-mention" class="internalDFN">Mention</a></td><td><a title="mentionOf" href="#dfn-mentionof" class="internalDFN">mentionOf(infra, supra,bundle)</a></td></tr> 
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>


<tr class="component6-color"><td class="provType"><a href="#concept-collection" class="internalDFN">Collection</a></td><td><a title="collection" href="#concept-collection" class="internalDFN">... prov:type='prov:Collection' ...</a></td><td rowspan="3"><a href="#component6">Component 6: Collections</a></td></tr>
<tr class="component6-color"><td class="provType"><a title="empty collection" href="#concept-empty-collection" class="internalDFN">EmptyCollection</a></td><td><a title="empty collection" href="#concept-empty-collection" class="internalDFN">... prov:type='prov:EmptyCollection' ...</a></td></tr>
<tr class="component6-color"><td><a href="#concept-membership" class="internalDFN">Membership</a></td><td><a title="hadMember" href="#dfn-hadmember" class="internalDFN">hadMember(c,e)</a></td></tr>
</tbody></table>
</div>

<p>
In the rest of the section, each type and relation is defined informally,
 followed by a summary of the information used to represent the concept, and
 illustrated with PROV-N examples.</p>


<div id="component1" class="section"> 
<h3><span class="secno">5.1 </span>Component 1: Entities and Activities</h3>

<p>The first component of PROV-DM is concerned with <a title="entity" href="#concept-entity" class="internalDFN">entities</a> and <a title="activity" href="#concept-activity" class="internalDFN">activities</a>, and their interrelations: <a href="#concept-usage" class="internalDFN">Usage</a>, <a href="#concept-generation" class="internalDFN">Generation</a>, <a href="#concept-start" class="internalDFN">Start</a>, <a href="#concept-end" class="internalDFN">End</a>, <a href="#concept-invalidation" class="internalDFN">Invalidation</a>, and <a href="#concept-communication" class="internalDFN">Communication</a>.  <a href="#figure-component1">Figure 5</a> uses UML to depict the first component.
Core structures are displayed in the yellow area, consisting of two classes (<a href="#concept-entity" class="internalDFN">Entity</a>, <a href="#concept-activity" class="internalDFN">Activity</a>) and three binary associations between them (<a href="#concept-usage" class="internalDFN">Usage</a>, <a href="#concept-generation" class="internalDFN">Generation</a>, and <a href="#concept-communication" class="internalDFN">Communication</a>). The rest of the figure displays extended structures, including UML association classes (see [<cite><a class="bibref" rel="biblioentry" href="#bib-UML">UML</a></cite>], section 7.3.4, p. 42), represented in gray, to express expanded n-ary relations (for <a href="#concept-usage" class="internalDFN">Usage</a>, <a href="#concept-generation" class="internalDFN">Generation</a>, <a href="#concept-invalidation" class="internalDFN">Invalidation</a>, <a href="#concept-start" class="internalDFN">Start</a>, <a href="#concept-end" class="internalDFN">End</a>). The figure also makes explicit associations with <em>time</em> for these concepts (time being marked with the primitive stereotype).   When not specified, cardinality is assumed to be 0..*.
</p>

<div style="text-align: center;">
<span class="figure" style="max-width: 95%; ">
<img src="uml/component1.png" alt="entities and activities"><br>
<span class="figcaption" id="figure-component1">Figure 5<sup><a class="internalDFN" href="#figure-component1"><span class="diamond"> ◊:</span></a></sup> Entities and Activities Component Overview</span> 
</span>
</div>





   <div id="term-entity" class="section"> 
      
<h4><span class="secno">5.1.1 </span>Entity</h4>


<div class="glossary-ref">   An <dfn id="concept-entity" class="internalDFN">entity</dfn><sup><a class="internalDFN" href="#concept-entity"><span class="diamond"> ◊</span></a></sup> is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary. </div>


<p></p><div class="attributes" id="attributes-entity">An <dfn title="dfn-Entity" id="dfn-entity" class="internalDFN">entity</dfn><sup><a class="internalDFN" href="#dfn-entity"><span class="diamond"> ◊</span></a></sup><span class="withPn">, written <span class="pnExpression" id="pn-entity">entity(id, [attr1=val1, ...])</span> in PROV-N, </span> has:
<ul>
<li><span class="attribute" id="entity.id">id</span>: an identifier for an entity; </li>
<li><span class="attribute" id="entity.attributes">attributes</span>: an <em class="rfc2119" title="optional">optional</em> set of attribute-value  pairs ((<span class="name">attr1</span>, <span class="name">val1</span>), ...) representing additional information about this entity.</li>
</ul></div>

<div class="anexample" id="anexample-entity"><div class="anexampleTitle">Example <span class="delete">16</span><span class="insert">17</span><sup><a class="internalDFN" href="#anexample-entity"><span class="diamond"> ◊</span></a></sup></div>
<p>
The following expression</p>
<pre class="codeexample">entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ])
</pre>
states the existence of an entity, denoted by identifier <span class="name">tr:WD-prov-dm-20111215</span>,  with type <span class="name">document</span> and version number <span class="name">2</span>. The attribute <span class="name">ex:version</span> is application specific, whereas the attribute <span class="name">type</span> (see <a href="#term-attribute-type">Section 5.7.4.4</a>) is reserved in the <a title="prov-namespace" href="#dfn-prov-namespace" class="internalDFN">PROV namespace</a>.

</div>




    </div> 

    <div id="term-Activity" class="section"> 
      
<h4><span class="secno">5.1.2 </span>Activity</h4>

<div class="glossary-ref">   An <dfn id="concept-activity" class="internalDFN">activity</dfn><sup><a class="internalDFN" href="#concept-activity"><span class="diamond"> ◊</span></a></sup>  is something that occurs over a period of time and acts upon or with entities;  it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.  </div>

<p></p><div class="attributes" id="attributes-activity"> An <dfn title="dfn-Activity" id="dfn-activity" class="internalDFN">activity</dfn><sup><a class="internalDFN" href="#dfn-activity"><span class="diamond"> ◊</span></a></sup><span class="withPn">, written <span class="pnExpression" id="pn-activity">activity(id, st, et, [attr1=val1, ...])</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="activity.id">id</span>: an identifier for an activity;</li>
<li><span class="attribute" id="activity.startTime">startTime</span>: an <em class="rfc2119" title="optional">optional</em> time (<span class="name">st</span>) for the start of the activity;</li>
<li><span class="attribute" id="activity.endTime">endTime</span>: an <em class="rfc2119" title="optional">optional</em> time (<span class="name">et</span>) for the end of the activity;</li>
<li><span class="attribute" id="activity.attributes">attributes</span>:  an <em class="rfc2119" title="optional">optional</em> set of attribute-value pairs ((<span class="name">attr1</span>, <span class="name">val1</span>), ...) representing additional information about this activity.</li>
</ul></div>

<div class="anexample" id="anexample-activity"><div class="anexampleTitle">Example <span class="delete">17</span><span class="insert">18</span><sup><a class="internalDFN" href="#anexample-activity"><span class="diamond"> ◊</span></a></sup></div>
<p>
The following expression</p>
<pre class="codeexample">activity(a1,2011-11-16T16:05:00,2011-11-16T16:06:00,
        [ ex:host="server.example.org", prov:type='ex:edit' ])
</pre>
<p>states the existence of an activity with identifier <span class="name">a1</span>, start time <span class="name">2011-11-16T16:05:00</span>, and end time <span class="name">2011-11-16T16:06:00</span>, running on host <span class="name">server.example.org</span>, and of type <span class="name">edit</span>.  The attribute <span class="name">host</span>  is application specific  (declared in some namespace with prefix <span class="name">ex</span>).  The attribute <span class="name">type</span> is a reserved attribute of PROV-DM, allowing for sub-typing to be expressed  (see <a href="#term-attribute-type">Section 5.7.4.4</a>).</p>
</div>



<p>Further considerations:</p>
<ul>
<li>An activity is not an entity. This distinction is similar to the distinction between 
'continuant' and 'occurrent' in logic [<cite><a class="bibref" rel="biblioentry" href="#bib-Logic">Logic</a></cite>].
</li>
</ul>


</div>

<div id="term-Generation" class="section">
<h4><span class="secno">5.1.3 </span>Generation</h4>

<div class="glossary-ref">   <dfn id="concept-generation" class="internalDFN">Generation</dfn><sup><a class="internalDFN" href="#concept-generation"><span class="diamond"> ◊</span></a></sup> is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation. </div>

<p>
</p><div class="attributes" id="attributes-generation"><dfn title="wasGeneratedBy" id="dfn-wasgeneratedby" class="internalDFN">Generation</dfn><sup><a class="internalDFN" href="#dfn-wasgeneratedby"><span class="diamond"> ◊</span></a></sup><span class="withPn">, written <span class="pnExpression">wasGeneratedBy(id; e, a, t, attrs)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="generation.id">id</span>:  an <em class="rfc2119" title="optional">optional</em> identifier for a generation;</li> 
<li><span class="attribute" id="generation.entity">entity</span>:  an identifier (<span class="name">e</span>) for a created entity; </li>
<li><span class="attribute" id="generation.activity">activity</span>:  an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">a</span>) for the activity that creates the entity;</li>

<li><span class="attribute" id="generation.time">time</span>: an <em class="rfc2119" title="optional">optional</em> "generation time" (<span class="name">t</span>), the time at which the entity was completely created;</li>

<li><span class="attribute" id="generation.attributes">attributes</span>:  an <em class="rfc2119" title="optional">optional</em> set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this generation.</li>
</ul></div>
<p>While each of <a href="#generation.id"><span class="attribute">id</span></a>, <a href="#generation.activity"><span class="attribute">activity</span></a>, <a href="#generation.time"><span class="attribute">time</span></a>, and  <a href="#generation.attributes"><span class="attribute">attributes</span></a> is <em class="rfc2119" title="optional">optional</em>, at least one of them <em class="rfc2119" title="must">must</em> be present.</p>





<div class="anexample" id="anexample-generation1"><div class="anexampleTitle">Example <span class="delete">18</span><span class="insert">19</span><sup><a class="internalDFN" href="#anexample-generation1"><span class="diamond"> ◊</span></a></sup></div>
<p>
The following expressions</p>
<pre class="codeexample">  wasGeneratedBy(e1, a1, 2001-10-26T21:32:52, [ ex:port="p1" ])
  wasGeneratedBy(e2, a1, 2001-10-26T10:00:00, [ ex:port="p2" ])
</pre>
<p>state the existence of two generations (with respective times <span class="name">2001-10-26T21:32:52</span> and <span class="name">2001-10-26T10:00:00</span>), at which new entities,  identified by <span class="name">e1</span> and <span class="name">e2</span>, are created by an
activity,  identified by <span class="name">a1</span>.
The first one is available  on port <span class="name">p1</span>, whereas the other is available on port <span class="name">p2</span>.  The semantics of <span class="name">port</span> are application specific.
</p>
</div>


<div class="anexample" id="anexample-generation2"><div class="anexampleTitle">Example <span class="delete">19</span><span class="insert">20</span><sup><a class="internalDFN" href="#anexample-generation2"><span class="diamond"> ◊</span></a></sup></div>
<p>
In some cases, we may want to record the time at which an entity was generated without having to specify the activity that generated it. To support this requirement, the activity element in generation is optional. Hence,  the following expression indicates the time at which an entity is generated, without naming the activity that did it.</p>
<pre class="codeexample">  wasGeneratedBy(e, -, 2001-10-26T21:32:52)
</pre>
</div>


</div>


<div id="term-Usage" class="section">
<h4><span class="secno">5.1.4 </span>Usage</h4>

<p><span class="glossary-ref">   <dfn id="concept-usage" class="internalDFN">Usage</dfn><sup><a class="internalDFN" href="#concept-usage"><span class="diamond"> ◊</span></a></sup> is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity. </span>  (Note: This definition is formulated for a given usage; it is permitted for an activity to have used a same entity multiple times.)</p>


<p></p><div class="attributes" id="attributes-usage"><dfn title="used" id="dfn-used" class="internalDFN">Usage</dfn><sup><a class="internalDFN" href="#dfn-used"><span class="diamond"> ◊</span></a></sup><span class="withPn">, written <span class="pnExpression">used(id; a, e, t, attrs)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="usage.id">id</span>:  an <em class="rfc2119" title="optional">optional</em> identifier for a usage;</li> 
<li><span class="attribute" id="usage.activity">activity</span>: an identifier (<span class="name">a</span>) for the activity that used an entity;</li>
<li><span class="attribute" id="usage.entity">entity</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">e</span>) for the  entity being used;</li>
<li><span class="attribute" id="usage.time">time</span>: an <em class="rfc2119" title="optional">optional</em> "usage time" (<span class="name">t</span>), the time at which the entity started to be used;</li>
<li><span class="attribute" id="usage.attributes">attributes</span>: an <em class="rfc2119" title="optional">optional</em> set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this usage.</li>
</ul></div>

<p>While each of <a href="#usage.id"><span class="attribute">id</span></a>, <a href="#usage.entity"><span class="attribute">entity</span></a>, <a href="#usage.time"><span class="attribute">time</span></a>, and  <a href="#usage.attributes"><span class="attribute">attributes</span></a> is <em class="rfc2119" title="optional">optional</em>, at least one of them <em class="rfc2119" title="must">must</em> be present.</p>

<p>
A reference to a given entity <em class="rfc2119" title="may">may</em> appear in multiple usages that share
 a given activity identifier. 
</p>


<div class="anexample" id="anexample-usage"><div class="anexampleTitle">Example <span class="delete">20</span><span class="insert">21</span><sup><a class="internalDFN" href="#anexample-usage"><span class="diamond"> ◊</span></a></sup></div>
<p>The following usages</p>
<pre class="codeexample">  used(a1, e1, 2011-11-16T16:00:00, [ ex:parameter="p1" ])
  used(a1, e2, 2011-11-16T16:00:01, [ ex:parameter="p2" ])
</pre>
<p>state that the activity identified by <span class="name">a1</span> used two entities identified by <span class="name">e1</span> and <span class="name">e2</span>, at times <span class="name">2011-11-16T16:00:00</span> and  <span class="name">2011-11-16T16:00:01</span>, respectively; the first
one was found as the value of parameter <span class="name">p1</span>, whereas the second was found as value of parameter <span class="name">p2</span>.  The semantics of <span class="name">parameter</span> is application specific.</p>
</div>






</div>

<div id="term-Communication" class="section">
<h4><span class="secno">5.1.5 </span>Communication</h4>

<div class="glossary-ref">   <dfn id="concept-communication" class="internalDFN">Communication</dfn><sup><a class="internalDFN" href="#concept-communication"><span class="diamond"> ◊</span></a></sup> is the exchange of some unspecified entity by two activities, one activity using some entity generated by the other. </div>


<p>A communication implies that activity  <span class="name">a2</span> is dependent on another <span class="name">a1</span>, by way of some unspecified entity that is generated by <span class="name">a1</span> and used by <span class="name">a2</span>.</p>




<p></p><div class="attributes" id="attributes-wasInformedBy">
A <dfn title="wasInformedBy" id="dfn-wasinformedby" class="internalDFN">communication</dfn><sup><a class="internalDFN" href="#dfn-wasinformedby"><span class="diamond"> ◊</span></a></sup><span class="withPn">, written as 
<span class="pnExpression">wasInformedBy(id; a2, a1, attrs)</span> in PROV-N,</span> has: 
<ul>
<li><span class="attribute" id="communication.id">id</span>:  an <em class="rfc2119" title="optional">optional</em> identifier  identifying the relation;</li> 
<li><span class="attribute" id="communication.informed">informed</span>: the identifier (<span class="name">a2</span>) of the informed activity;
</li><li><span class="attribute" id="communication.informant">informant</span>: the identifier (<span class="name">a1</span>) of the informant activity;
</li><li><span class="attribute" id="communication.attributes">attributes</span>: an <em class="rfc2119" title="optional">optional</em> set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this communication.</li>
</ul>
</div>



<div class="anexample" id="anexample-communication"><div class="anexampleTitle">Example <span class="delete">21</span><span class="insert">22</span><sup><a class="internalDFN" href="#anexample-communication"><span class="diamond"> ◊</span></a></sup></div>
<p>
Consider two activities  <span class="name">a1</span> and <span class="name">a2</span>, the former performed by a government agency, and the latter by a driver caught speeding. 
</p><pre class="codeexample">activity(a1, [ prov:type="traffic regulations enforcing" ])
activity(a2, [ prov:type="fine <span class="delete">paying, check writing, and mailing"</span><span class="insert">paying"</span> ])
wasInformedBy(a2, a1)
</pre>
The last line indicates that some implicit entity was generated by  <span class="name">a1</span> and used by  <span class="name">a2</span>; this entity may be a traffic ticket that had a notice of fine, amount, and payment mailing details.
</div>
</div>

<div id="term-Start" class="section">
<h4><span class="secno">5.1.6 </span>Start</h4>

<div class="glossary-ref">   <dfn id="concept-start" class="internalDFN">Start</dfn><sup><a class="internalDFN" href="#concept-start"><span class="diamond"> ◊</span></a></sup> is when an activity is deemed to have started.  The activity did not exist before its start. Any usage or generation involving an activity follows the activity's start. A start may refer to an entity, known as <dfn id="concept-start-trigger" class="internalDFN">trigger</dfn><sup><a class="internalDFN" href="#concept-start-trigger"><span class="diamond"> ◊</span></a></sup>, that set off the activity, or to an activity, known as <dfn id="concept-start-starter" class="internalDFN">starter</dfn><sup><a class="internalDFN" href="#concept-start-starter"><span class="diamond"> ◊</span></a></sup>, that generated the trigger. </div>


<p></p><div class="attributes" id="attributes-start">An activity <dfn title="wasStartedBy" id="dfn-wasstartedby" class="internalDFN">start</dfn><sup><a class="internalDFN" href="#dfn-wasstartedby"><span class="diamond"> ◊</span></a></sup><span class="withPn">, written <span class="pnExpression">wasStartedBy(id; a2, e, a1, t, attrs)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="start.id">id</span>:  an <em class="rfc2119" title="optional">optional</em> identifier for the activity start;</li> 
<li><span class="attribute" id="start.activity">activity</span>: an identifier (<span class="name">a2</span>) for the started activity;</li> 
<li><span class="attribute" id="start.trigger">trigger</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">e</span>) for the entity triggering the activity;</li> 
<li><span class="attribute" id="start.starter">starter</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">a1</span>) for the activity that generated the (possibly unspecified) entity (<span class="name">e</span>);</li> 
<li><span class="attribute" id="start.time">time</span>: the <em class="rfc2119" title="optional">optional</em> time (<span class="name">t</span>) at which the activity was started; </li> 
<li><span class="attribute" id="start.attributes">attributes</span>: an <em class="rfc2119" title="optional">optional</em> set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this activity start.
</li></ul>
</div>

<p>While each of <a href="#start.id"><span class="attribute">id</span></a>, <a href="#start.trigger"><span class="attribute">trigger</span></a>, <a href="#start.starter"><span class="attribute">starter</span></a>, <a href="#start.time"><span class="attribute">time</span></a>, and  <a href="#start.attributes"><span class="attribute">attributes</span></a> is <em class="rfc2119" title="optional">optional</em>, at least one of them <em class="rfc2119" title="must">must</em> be present.</p>


<div class="anexample" id="anexample-start1"><div class="anexampleTitle">Example <span class="delete">22</span><span class="insert">23</span><sup><a class="internalDFN" href="#anexample-start1"><span class="diamond"> ◊</span></a></sup></div>
<p>
The following example contains the description of an activity <span class="name">a1</span> (a discussion), which was started at a specific time, and was triggered by an email message <span class="name">e1</span>.</p>
<pre class="codeexample">entity(e1, [ prov:type="email message"] )
activity(a1, [ prov:type="Discuss" ])
wasStartedBy(a1, e1, -, 2011-11-16T16:05:00)
</pre>
Furthermore, if the message is also an input to the activity, this can be described as follows:
<pre class="codeexample">used(a1, e1, -)
</pre>
<p>Alternatively, one can also describe the activity that generated the email message.</p>
<pre class="codeexample">activity(a0, [ prov:type="Write" ])
wasGeneratedBy(e1, a0)
wasStartedBy(a1, e1, a0, 2011-11-16T16:05:00)
</pre>
<p>If <span class="name">e1</span> is not known, it would also be valid to write:
</p><pre class="codeexample">wasStartedBy(a1, -, a0, 2011-11-16T16:05:00)
</pre>
</div>

<div class="anexample" id="anexample-start2"><div class="anexampleTitle">Example <span class="delete">23</span><span class="insert">24</span><sup><a class="internalDFN" href="#anexample-start2"><span class="diamond"> ◊</span></a></sup></div>
<p>
In the following example, a race is started by a bang, and responsibility for this trigger is attributed to an agent 
 <span class="name">ex:Bob</span>.
</p><pre class="codeexample">activity(ex:foot_race)
entity(ex:bang)
wasStartedBy(ex:foot_race, ex:bang, -, 2012-03-09T08:05:08-05:00)
agent(ex:Bob)
wasAttributedTo(ex:bang, ex:Bob)
</pre>
</div>

<div class="anexample" id="anexample-start3"><div class="anexampleTitle">Example <span class="delete">24</span><span class="insert">25</span><sup><a class="internalDFN" href="#anexample-start3"><span class="diamond"> ◊</span></a></sup></div>
<p>
In this example, filling fuel was started as a consequence of
observing low fuel. The trigger entity is unspecified, it could
for instance have been the low fuel warning light, the fuel tank
indicator needle position, or the engine not running properly.


</p><pre class="codeexample" id="anexample-start4">activity(ex:filling-fuel)
activity(ex:observing-low-fuel)

agent(ex:driver, [ prov:type='prov:Person'  )
wasAssociatedWith(ex:filling-fuel, ex:driver)
wasAssociatedWith(ex:observing-low-fuel, ex:driver)

wasStartedBy(ex:filling-fuel, -, ex:observing-low-fuel, -)
</pre>
</div>

<p>The relations wasStartedBy and used are orthogonal, and thus need to be expressed independently, according to the situation being described.</p>

</div>

<div id="term-End" class="section">
<h4><span class="secno">5.1.7 </span>End</h4>

<div class="glossary-ref">   <dfn id="concept-end" class="internalDFN">End</dfn><sup><a class="internalDFN" href="#concept-end"><span class="diamond"> ◊</span></a></sup> is when an activity is deemed to have ended.  The activity no longer exists after its end. Any usage, generation, or invalidation involving an activity precedes the activity's end. An end may refer to an entity, known as <dfn id="concept-end-trigger" class="internalDFN">trigger</dfn><sup><a class="internalDFN" href="#concept-end-trigger"><span class="diamond"> ◊</span></a></sup>, that terminated the activity, or to an activity, known as <dfn id="concept-end-ender" class="internalDFN">ender</dfn><sup><a class="internalDFN" href="#concept-end-ender"><span class="diamond"> ◊</span></a></sup> that generated the trigger. </div>


<p></p><div class="attributes" id="attributes-end">An activity <dfn title="wasEndedBy" id="dfn-wasendedby" class="internalDFN">end</dfn><sup><a class="internalDFN" href="#dfn-wasendedby"><span class="diamond"> ◊</span></a></sup><span class="withAsn">, written <span class="pnExpression">wasEndedBy(id; a2, e, a1, t, attrs)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="end.id">id</span>:  an <em class="rfc2119" title="optional">optional</em> identifier for the activity end;</li> 
<li><span class="attribute" id="end.activity">activity</span>: an identifier (<span class="name">a2</span>) for the ended activity;
</li><li><span class="attribute" id="end.trigger">trigger</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">e</span>) for the entity triggering the activity ending;
</li><li><span class="attribute" id="end.ender">ender</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">a1</span>) for the activity that generated the (possibly unspecified) entity (<span class="name">e</span>);</li> 
<li><span class="attribute" id="end.time">time</span>: the <em class="rfc2119" title="optional">optional</em> time (<span class="name">t</span>) at which the activity was ended; </li> 
<li><span class="attribute" id="end.attributes">attributes</span>: an <em class="rfc2119" title="optional">optional</em> set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this activity end.
</li></ul>
</div>

<p>While each of <a href="#end.id"><span class="attribute">id</span></a>, <a href="#end.trigger"><span class="attribute">trigger</span></a>, <a href="#end.ender"><span class="attribute">ender</span></a>, <a href="#end.time"><span class="attribute">time</span></a>, and  <a href="#end.attributes"><span class="attribute">attributes</span></a> is <em class="rfc2119" title="optional">optional</em>, at least one of them <em class="rfc2119" title="must">must</em> be present.</p>


<div class="anexample" id="anexample-end"><div class="anexampleTitle">Example <span class="delete">25</span><span class="insert">26</span><sup><a class="internalDFN" href="#anexample-end"><span class="diamond"> ◊</span></a></sup></div>
<p>
The following example is a description of an activity <span class="name">a1</span> (editing) that was ended following an approval document <span class="name">e1</span>.</p>
<pre class="codeexample">entity(e1, [ prov:type="approval document" ])
activity(a1, [ prov:type="Editing" ])
wasEndedBy(a1, e1)
</pre>
</div>
</div>

<div id="term-Invalidation" class="section">
<h4><span class="secno">5.1.8 </span>Invalidation</h4>


<div class="glossary-ref">   <dfn id="concept-invalidation" class="internalDFN">Invalidation</dfn><sup><a class="internalDFN" href="#concept-invalidation"><span class="diamond"> ◊</span></a></sup> is the start of the destruction, cessation, or expiry of an existing entity by an activity. The entity is no longer available for use (or further invalidation) after invalidation. Any generation or usage of an entity precedes its invalidation.</div>



<p>
Entities have a duration. Generation marks the beginning of an entity, whereas invalidation marks its end. 
An entity's lifetime can end for different reasons:</p>
<ul>
<li> an entity was destroyed: e.g. a painting was destroyed by fire; a Web page is taken out of a site;
</li><li> an entity was consumed: e.g. Bob ate all his soup, Alice ran out of gas when driving to work;
</li><li> an entity expires: e.g. a "buy one beer, get one free" offer is valid during happy hour (7-8pm);
</li><li> an entity is time limited: e.g. the BBC news site on April 3rd, 2012;
</li><li> an entity attribute is changing: e.g. the traffic light changed from green to red.
</li></ul>
<p>In the first two cases, the entity has physically disappeared after its termination: there is no more soup, or painting.  In the last three cases, there may be an "offer voucher" that still exists, but it is no longer valid; likewise, on April 4th, the BBC news site still exists but it is not the same entity as BBC news Web site on April 3rd; or the traffic light became red and therefore is regarded as a different entity to the green light.
</p>



<p>
</p><div class="attributes" id="attributes-invalidation"><dfn title="wasInvalidatedBy" id="dfn-wasinvalidatedby" class="internalDFN">Invalidation</dfn><sup><a class="internalDFN" href="#dfn-wasinvalidatedby"><span class="diamond"> ◊</span></a></sup><span class="withPn">, written <span class="pnExpression">wasInvalidatedBy(id; e, a, t, attrs)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="invalidation.id">id</span>:  an <em class="rfc2119" title="optional">optional</em> identifier for a invalidation;</li> 
<li><span class="attribute" id="invalidation.entity">entity</span>:  an identifier for the invalidated entity; </li>
<li><span class="attribute" id="invalidation.activity">activity</span>:  an <em class="rfc2119" title="optional">optional</em> identifier for the activity that invalidated the entity;</li>

<li><span class="attribute" id="invalidation.time">time</span>: an <em class="rfc2119" title="optional">optional</em> "invalidation time", the time at which the entity began to be invalidated;</li>

<li><span class="attribute" id="invalidation.attributes">attributes</span>:  an <em class="rfc2119" title="optional">optional</em> set of attribute-value pairs representing additional information about this invalidation.</li>
</ul></div>
<p>While each of <a href="#invalidation.id"><span class="attribute">id</span></a>, <a href="#invalidation.activity"><span class="attribute">activity</span></a>, <a href="#invalidation.time"><span class="attribute">time</span></a>, and  <a href="#invalidation.attributes"><span class="attribute">attributes</span></a> is <em class="rfc2119" title="optional">optional</em>, at least one of them <em class="rfc2119" title="must">must</em> be present.</p>



<div class="anexample" id="anexample-invalidation1"><div class="anexampleTitle">Example <span class="delete">26</span><span class="insert">27</span><sup><a class="internalDFN" href="#anexample-invalidation1"><span class="diamond"> ◊</span></a></sup></div>
<p>
<em>The Painter</em>, a Picasso painting, is known to have been destroyed in a <a href="http://en.wikipedia.org/wiki/Lost_artworks#20th_century">plane accident</a>.

</p><pre class="codeexample">entity(ex:The-Painter)
agent(ex:Picasso)
wasAttributedTo(ex:The-Painter, ex:Picasso)
activity(ex:crash)
wasInvalidatedBy(ex:The-Painter, ex:crash, 1998-09-03T01:31:00, [ ex:circumstances="plane accident" ])
</pre>
</div>

<div class="anexample" id="anexample-invalidation2"><div class="anexampleTitle">Example <span class="delete">27</span><span class="insert">28</span><sup><a class="internalDFN" href="#anexample-invalidation2"><span class="diamond"> ◊</span></a></sup></div>
<p>
The BBC news home page on 2012-04-03 <span class="name">ex:bbcNews2012-04-03</span>
contained a reference to a given news item
 <a href="http://www.bbc.co.uk/news/uk-17595024">bbc:news/uk-17595024</a>,
but the BBC news home page on the next day did not.
</p><pre class="codeexample">entity(ex:bbcNews2012-04-03)
hadMember(ex:bbcNews2012-04-03, bbc:news/uk-17595024)
wasGeneratedBy  (ex:bbcNews2012-04-03, -, 2012-04-03T00:00:01)
wasInvalidatedBy(ex:bbcNews2012-04-03, -, 2012-04-03T23:59:59)
</pre>

We refer to example
<a href="#anexample-specialization" class="anexample-ref"><span>Example <span class="delete">42</span><span class="insert">43</span></span></a>
 for further descriptions of the BBC Web site, and to  <a href="#term-membership">Section 5.6.2</a> for a description of the relation <a title="hadMember" href="#dfn-hadmember" class="internalDFN">hadMember</a>.
</div>


<div class="anexample" id="anexample-invalidation3"><div class="anexampleTitle">Example <span class="delete">28</span><span class="insert">29</span><sup><a class="internalDFN" href="#anexample-invalidation3"><span class="diamond"> ◊</span></a></sup></div>
<p>
In this example, the  "buy one beer, get one free" offer expired at the end of the happy hour.</p>
<pre class="codeexample">entity(buy_one_beer_get_one_free_offer_during_happy_hour)
<span class="delete">wasAttributedTo(proprietor)</span><span class="insert">wasAttributedTo(buy_one_beer_get_one_free_offer_during_happy_hour, proprietor)</span>
wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour,
                 -,2012-03-10T18:00:00)
</pre>
<p>In contrast, in the following descriptions, Bob redeemed the offer 45 minutes before it expired, and got two beers.  
</p>
<pre class="codeexample">entity(buy_one_beer_get_one_free_offer_during_happy_hour)
<span class="delete">wasAttributedTo(proprietor)</span><span class="insert">wasAttributedTo(buy_one_beer_get_one_free_offer_during_happy_hour, proprietor)</span>
activity(redeemOffer)
entity(twoBeers)

<span class="delete">wasAssociatedWith(redeemOffer,bob)
used(buy_one_beer_get_one_free_offer_during_happy_hour,</span><span class="insert">wasAssociatedWith(redeemOffer, bob)
used(redeemOffer,</span>
     <span class="delete">redeemOffer, </span><span class="insert">buy_one_beer_get_one_free_offer_during_happy_hour, 
     </span>2012-03-10T17:15:00)
wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour,
                 redeemOffer, 
                 2012-03-10T17:15:00)
wasGeneratedBy(twoBeers,redeemOffer)
</pre>
<p>We see that the offer was both used to be converted into <span class="name">twoBeers</span> and invalidated by the <span class="name">redeemOffer</span> activity: in other words, the combined usage and invalidation indicate consumption of the offer.</p>
</div>


</div>





</div>


<div id="component2" class="section"> 
<h3><span class="secno">5.2 </span>Component 2: Derivations</h3>



<p>The third component of PROV-DM is concerned with: <a title="derivation" href="#concept-derivation" class="internalDFN">derivations</a> of <a title="entity" href="#concept-entity" class="internalDFN">entities</a> from other entities and derivation subtypes <a href="#concept-revision" class="internalDFN">Revision</a>, <a href="#concept-quotation" class="internalDFN">Quotation</a>, and <a href="#concept-primary-source" class="internalDFN">Primary Source</a>.
 <a href="#figure-component2">Figure 6</a> depicts the third component
with PROV core structures in the yellow area, including two classes
(<a href="#concept-entity" class="internalDFN">Entity</a>, <a href="#concept-activity" class="internalDFN">Activity</a>) and binary association
(<a href="#concept-derivation" class="internalDFN">Derivation</a>). PROV extended structures are found outside this
area. UML association classes express expanded n-ary relations.
The subclasses are marked by the UML stereotype "prov:type" to indicate that the corresponding types are valid values for the attribute <a href="#term-attribute-type">prov:type</a>.
</p>


<div style="text-align: center;">
<span class="figure" style="max-width: 95%; ">
<img src="uml/component2.png" alt="derivation"><br>
<span class="figcaption" id="figure-component2">Figure 6<sup><a class="internalDFN" href="#figure-component2"><span class="diamond"> ◊:</span></a></sup> Derivation Component Overview</span> 
</span>
</div>

<div id="term-Derivation" class="section">
<h4><span class="secno">5.2.1 </span>Derivation</h4>





<div class="glossary-ref">   A <dfn id="concept-derivation" class="internalDFN">derivation</dfn><sup><a class="internalDFN" href="#concept-derivation"><span class="diamond"> ◊</span></a></sup>  is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.</div>




<p>According to <a href="#section-prov-overview">Section 2</a>, for an entity to be transformed from, created from, or resulting from an update to another, there must be some
underpinning activities performing the necessary actions resulting in such a derivation.  
A derivation can be described at various levels of precision. In its simplest form, derivation relates two entities. Optionally, attributes can be added to represent further information about the derivation.  If the derivation is the result of a single known activity, then this activity can also be optionally expressed. To provide a completely accurate description of the derivation, the generation and usage of the generated and used entities, respectively, can be provided, so as to make the derivation path, through usage, activity, and generation, explicit.  Optional information such as activity, generation, and usage can be linked to derivations to aid analysis of provenance and to facilitate provenance-based reproducibility. </p>


<p></p><div class="attributes" id="attributes-derivation">A <dfn title="wasDerivedFrom" id="dfn-wasderivedfrom" class="internalDFN">derivation</dfn><sup><a class="internalDFN" href="#dfn-wasderivedfrom"><span class="diamond"> ◊</span></a></sup><span class="withPn">, written <span class="pnExpression" id="pn-wasDerivedFrom">wasDerivedFrom(id; e2, e1, a, g2, u1, attrs)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="derivation.id">id</span>:  an <em class="rfc2119" title="optional">optional</em> identifier  for a derivation;</li> 
<li><span class="attribute" id="derivation.generatedEntity">generatedEntity</span>: the identifier (<span class="name">e2</span>) of the entity generated by the derivation;</li>
<li><span class="attribute" id="derivation.usedEntity">usedEntity</span>: the identifier (<span class="name">e1</span>) of the entity used by the derivation;</li>
<li><span class="attribute" id="derivation.activity">activity</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">a</span>) for the activity using and generating the above entities;</li>
<li><span class="attribute" id="derivation.generation">generation</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">g2</span>) for the generation involving the generated entity (<span class="name">e2</span>) and activity;</li> 
<li><span class="attribute" id="derivation.usage">usage</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">u1</span>) for the usage involving the used entity (<span class="name">e1</span>) and activity;</li> 
<li><span class="attribute" id="derivation.attributes">attributes</span>: an <em class="rfc2119" title="optional">optional</em> set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this derivation.</li>
</ul>
</div>



<div class="anexample" id="anexample-derivation"><div class="anexampleTitle">Example <span class="delete">29</span><span class="insert">30</span><sup><a class="internalDFN" href="#anexample-derivation"><span class="diamond"> ◊</span></a></sup></div>
<p>The following descriptions are about derivations between  <span class="name">e2</span> and  <span class="name">e1</span>, but no information is provided as to the identity of the activity (and usage and generation) underpinning the derivation. In the second line, a type attribute is also provided.</p>
<pre class="codeexample">wasDerivedFrom(e2, e1)
wasDerivedFrom(e2, e1, [ prov:type="physical transform" ])
</pre>
<p>The following description expresses that activity  <span class="name">a</span>, 
using the entity <span class="name">e1</span> according to usage <span class="name">u1</span>,
 derived the
entity <span class="name">e2</span> and generated it according to generation
 <span class="name">g2</span>. It is followed by descriptions for generation <span class="name">g2</span> and usage <span class="name">u1</span>.</p>
<pre class="codeexample">wasDerivedFrom(e2, e1, a, g2, u1)
wasGeneratedBy(g2; e2, a, -)
used(u1; a, e1, -)
</pre>
<p>With such a comprehensive description of derivation, a program that analyzes provenance can identify the activity underpinning the derivation, it can identify how the original entity <span class="name">e1</span> was used by  the activity (e.g. for instance, which argument it was passed as, if the activity is the result of a function invocation), and which output the derived entity <span class="name">e2</span> was obtained from (say, for a function returning multiple results).</p>
</div>




</div>

<div id="term-revision" class="section">
<h4><span class="secno">5.2.2 </span>Revision</h4>

<p><span class="glossary-ref">   A <dfn id="concept-revision" class="internalDFN">revision</dfn><sup><a class="internalDFN" href="#concept-revision"><span class="diamond"> ◊</span></a></sup>   is a derivation for which the resulting entity is a revised version of some original. </span></p>


<p>
  The implication here is that
     the resulting entity contains substantial content from the
     original.
Revision is a particular case of <a href="#concept-derivation" class="internalDFN">derivation</a> of an entity into its revised version.
The type is of a revision derivation is denoted by:
<dfn title="dfn-prov:revision" id="dfn-prov:revision" class="internalDFN"><span class="name">prov:Revision</span></dfn><sup><a class="internalDFN" href="#dfn-prov:revision"><span class="diamond"> ◊</span></a></sup>.
</p>




<div class="anexample" id="anexample-revision"><div class="anexampleTitle">Example <span class="delete">30</span><span class="insert">31</span><sup><a class="internalDFN" href="#anexample-revision"><span class="diamond"> ◊</span></a></sup></div>
<p>
Revisiting the example of <a href="#section-example-two">Section 4.2</a>,
we can now state that the report 
 <span class="name">tr:WD-prov-dm-20111215</span> was a revision of 
 the report <span class="name">tr:WD-prov-dm-20111018</span>.
</p><pre class="codeexample">entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD'  ])
entity(tr:WD-prov-dm-20111018, [ prov:type='rec54:WD'  ])
wasDerivedFrom(tr:WD-prov-dm-20111215, 
               tr:WD-prov-dm-20111018, 
               [ prov:type='prov:Revision' ])
</pre>
</div>



</div>  

<div id="term-quotation" class="section">
<h4><span class="secno">5.2.3 </span>Quotation</h4>

<p> 
<span class="glossary-ref">   A <dfn id="concept-quotation" class="internalDFN">quotation</dfn><sup><a class="internalDFN" href="#concept-quotation"><span class="diamond"> ◊</span></a></sup>  is the repeat of (some or all of) an entity, such as text or image, by someone who may or may not be its original author. </span>
</p>

<p>A <dfn id="dfn-quotation" class="internalDFN">quotation</dfn><sup><a class="internalDFN" href="#dfn-quotation"><span class="diamond"> ◊</span></a></sup> relation
 is a particular case of  <a href="#concept-derivation" class="internalDFN">derivation</a> in which an entity is derived from an original entity by copying, or "quoting", some or all of it.
The type is of a quotation derivation is denoted by:
<dfn title="dfn-prov:quotation" id="dfn-prov:quotation" class="internalDFN"><span class="name">prov:Quotation</span></dfn><sup><a class="internalDFN" href="#dfn-prov:quotation"><span class="diamond"> ◊</span></a></sup>.
</p>



<div class="anexample" id="anexample-quotation"><div class="anexampleTitle">Example <span class="delete">31</span><span class="insert">32</span><sup><a class="internalDFN" href="#anexample-quotation"><span class="diamond"> ◊</span></a></sup></div>
<p>
The following paragraph is a quote from one of  <a href="http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/">the author's blogs</a>.
</p><blockquote id="bl-dagstuhl"><em>
"During the workshop, it became clear to me that the consensus based models (which are often graphical in nature) can not only be formalized but also be directly connected to these database focused formalizations. I just needed to get over the differences in syntax.  This could imply that we could have nice way to trace provenance across systems and through databases and be able to understand the mathematical properties of this interconnection."</em>
</blockquote>
<p>If <a href="http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/"><span class="name">wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/</span></a> denotes the original blog by agent <span class="name">ex:Paul</span>, and 
 <a href="#bl-dagstuhl"><span class="name">dm:bl-dagstuhl</span></a> denotes the above paragraph, then the following descriptions express that the above paragraph was copied by agent <span class="name">ex:Luc</span> from a part of the blog, attributed to the agent <span class="name">ex:Paul</span>.</p>
<pre class="codeexample">entity(wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/)
entity(dm:bl-dagstuhl)
agent(ex:Luc)
agent(ex:Paul)
wasDerivedFrom(dm:bl-dagstuhl,
               wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/,
               [ prov:type='prov:Quotation' ])
wasAttributedTo(dm:bl-dagstuhl, ex:Luc)
wasAttributedTo(wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/, ex:Paul)
</pre>

</div>


</div>  


<div id="term-primary-source" class="section">
<h4><span class="secno">5.2.4 </span>Primary Source</h4>

<p>
<span class="glossary-ref">   A <dfn id="concept-primary-source" class="internalDFN">primary source</dfn><sup><a class="internalDFN" href="#concept-primary-source"><span class="diamond"> ◊</span></a></sup>  for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic's study, without benefit from hindsight. </span>
</p>

<p>Because of the directness
of <a href="http://en.wikipedia.org/wiki/Primary_source">primary
sources</a>, they "speak for themselves" in ways that cannot be
captured through the filter of secondary sources. As such, it is
important for secondary sources to reference those primary sources
from which they were derived, so that their reliability can be
investigated.</p>


<p>A <dfn id="dfn-primary-source" class="internalDFN">primary source</dfn><sup><a class="internalDFN" href="#dfn-primary-source"><span class="diamond"> ◊</span></a></sup> relation is a particular case of <a href="#concept-derivation" class="internalDFN">derivation</a> of
secondary materials from their primary sources. It is recognized that
the determination of primary sources can be up to interpretation, and
should be done according to conventions accepted within the
application's domain. 
The type is of a  primary source derivation is denoted by:
<dfn title="dfn-prov:primary-source" id="dfn-prov:primary-source" class="internalDFN"><span class="name">prov:PrimarySource</span></dfn><sup><a class="internalDFN" href="#dfn-prov:primary-source"><span class="diamond"> ◊</span></a></sup>.
</p>



<div class="anexample" id="anexample-primary-source1"><div class="anexampleTitle">Example <span class="delete">32</span><span class="insert">33</span><sup><a class="internalDFN" href="#anexample-primary-source1"><span class="diamond"> ◊</span></a></sup></div>
<p>
Let us consider Charles Joseph Minard's flow map of Napoleon's March in
1812, which was published in 1869. Although the map is not a primary source,
Minard probably used the journal of Pierre-Irénée Jacob, pharmacist
to Napoleon's army during the Russian campaign. This primary source relation
can be encoded as follows.</p>

<pre class="codeexample">entity(ex:la-campagne-de-Russie-1812-1813, [ prov:type="map" ])
entity(ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII, [ prov:type="journal" ])
wasDerivedFrom(ex:la-campagne-de-Russie-1812-1813,
               ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII,
               [ prov:type='prov:PrimarySource' ])
</pre>
</div>



</div>  


</div>

<div id="component3" class="section"> 
<h3><span class="secno">5.3 </span>Component 3: Agents, Responsibility, and Influence</h3>

<p>The second component of PROV-DM, depicted in  <a href="#figure-component3">Figure 7</a>, is concerned with <a title="agent" href="#concept-agent" class="internalDFN">agents</a> and the notions of
<a href="#concept-attribution" class="internalDFN">Attribution</a>, <a href="#concept-activityAssociation" class="internalDFN">Association</a>, <a href="#concept-delegation" class="internalDFN">Delegation</a>, relating agents to entities, activities, and agents, respectively.
 Core structures are displayed in the yellow area and include three classes and three binary associations. Outside the yellow area, extended structures comprise UML association classes to express expanded n-ary relations, and subclasses <a href="#concept-plan" class="internalDFN">Plan</a>, <a href="#concept-person" class="internalDFN">Person</a>, <a title="software-agent" href="#concept-software-agent" class="internalDFN">SofwareAgent</a>, and <a href="#concept-organization" class="internalDFN">Organization</a>. The subclasses are marked by the UML stereotype "prov:type" to indicate that that these are valid values for the attribute <a href="#term-attribute-type">prov:type</a>
</p>


<div style="text-align: center;">
<span class="figure" style="max-width: 95%; ">
<img src="uml/component3.png" alt="agents and responsibilities"><br>
<span class="figcaption" id="figure-component3">Figure 7<sup><a class="internalDFN" href="#figure-component3"><span class="diamond"> ◊:</span></a></sup> Agents and Responsibility Overview</span> 
</span>
</div>

<p>Component 3 further defines a general notion of <a href="#concept-influence" class="internalDFN">influence</a>, as a super-relation of all relations defined so far. <a href="#figure-component3b">Figure 8</a> displays one new association class, generalizing previously introduced associations.</p>


<div style="text-align: center;">
<span class="figure" style="max-width: 95%; ">
<img src="uml/Component3b.png" alt="Influence"><br>
<span class="figcaption" id="figure-component3b">Figure 8<sup><a class="internalDFN" href="#figure-component3b"><span class="diamond"> ◊:</span></a></sup> Influence</span> 
</span>
</div>

<div id="term-agent" class="section">
<h4><span class="secno">5.3.1 </span>Agent</h4>

<div class="glossary-ref">   An <dfn id="concept-agent" class="internalDFN">agent</dfn><sup><a class="internalDFN" href="#concept-agent"><span class="diamond"> ◊</span></a></sup> is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity. </div>


<p></p><div class="attributes" id="attributes-agent">An <dfn title="dfn-agent" id="dfn-agent" class="internalDFN">agent</dfn><sup><a class="internalDFN" href="#dfn-agent"><span class="diamond"> ◊</span></a></sup><span class="withPn">, written <span class="pnExpression" id="pn-agent">agent(id, [attr1=val1, ...])</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="agent.id">id</span>: an identifier for an agent;</li>
<li><span class="attribute" id="agent.attributes">attributes</span>: a set of attribute-value pairs ((<span class="name">attr1</span>, <span class="name">val1</span>), ...) representing additional information about this agent.
</li>
</ul></div>


<p>

It is useful to define some basic categories of agents from an interoperability perspective.
There are three types of agents that are common across most anticipated domains of use; it is acknowledged that these types do not cover all kinds of agent. </p>
<ul>
<li><span class="name">SoftwareAgent</span>
<div class="glossary-ref">   A <dfn id="concept-software-agent" title="software-agent" class="internalDFN">software agent</dfn><sup><a class="internalDFN" href="#concept-software-agent"><span class="diamond"> ◊</span></a></sup>  is running software. </div>

<p></p></li>

<li><span class="name">Organization</span>

<div class="glossary-ref">   Agents of type <dfn id="concept-organization" class="internalDFN">Organization</dfn><sup><a class="internalDFN" href="#concept-organization"><span class="diamond"> ◊</span></a></sup>  are social or legal institutions such as companies, societies, etc. </div>

<p></p></li>

<li><span class="name">Person</span>

<div class="glossary-ref">   Agents of type <dfn id="concept-person" title="person" class="internalDFN">Person</dfn><sup><a class="internalDFN" href="#concept-person"><span class="diamond"> ◊</span></a></sup>  are people. </div></li> 
</ul>





<div class="anexample" id="example_34"><div class="anexampleTitle">Example <span class="delete">33</span><span class="insert">34</span><sup><a class="internalDFN" href="#example_34"><span class="diamond"> ◊</span></a></sup></div>
<p>The following expression is about an agent identified by <span class="name">e1</span>, which is a person, named Alice, with employee number 1234.</p>
<pre class="codeexample">agent(e1, [ex:employee="1234", ex:name="Alice", prov:type='prov:Person' ])
</pre>
<p>It is optional to specify the type of an agent. When present, it is expressed using the <span class="name">prov:type</span> attribute.</p>
</div>

</div>

<div id="term-attribution" class="section">
<h4><span class="secno">5.3.2 </span>Attribution</h4> 

<div class="glossary-ref">   <dfn id="concept-attribution" class="internalDFN">Attribution</dfn><sup><a class="internalDFN" href="#concept-attribution"><span class="diamond"> ◊</span></a></sup> is the ascribing of an entity to an agent. </div>

<p>When an entity  <span class="name">e</span> is attributed to agent  <span class="name">ag</span>, entity <span class="name">e</span> was generated by some unspecified activity that in turn was associated to agent  <span class="name">ag</span>. Thus, this relation is useful when the activity is not known, or irrelevant.</p>

<p></p><div class="attributes" id="attributes-attribution">An <dfn title="wasAttributedTo" id="dfn-wasattributedto" class="internalDFN">attribution</dfn><sup><a class="internalDFN" href="#dfn-wasattributedto"><span class="diamond"> ◊</span></a></sup> relation<span class="withPn">, written <span class="pnExpression">wasAttributedTo(id; e, ag, attrs)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="attribution.id">id</span>: an <em class="rfc2119" title="optional">optional</em> identifier for the relation;</li> 
<li><span class="attribute" id="attribution.entity">entity</span>: an entity identifier (<span class="name">e</span>);</li>
<li><span class="attribute" id="attribution.agent">agent</span>: the identifier (<span class="name">ag</span>) of the agent whom the entity is ascribed to, and therefore bears some responsibility for its existence;</li>
<li><span class="attribute" id="attribution.attributes">attributes</span>: an <em class="rfc2119" title="optional">optional</em> set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this attribution.</li>
</ul>
</div>

<div class="anexample" id="anexample-attribution"><div class="anexampleTitle">Example <span class="delete">34</span><span class="insert">35</span><sup><a class="internalDFN" href="#anexample-attribution"><span class="diamond"> ◊</span></a></sup></div>
<p>
Revisiting the example of 
<a class="section-ref" href="#section-example-one"><span>Section 4.1</span></a>,
we can ascribe <span class="name">tr:WD-prov-dm-20111215</span> to some agents without an explicit activity. The reserved attribute <span class="name">role</span> (see <a class="section-ref" href="#term-attribute-role"><span>Section 5.7.2.3</span></a>) allows for role of the agent in the attribution to be specified.
</p><pre class="codeexample">agent(ex:Paolo, [ prov:type='prov:Person' ])
agent(ex:Simon, [ prov:type='prov:Person' ])
entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD' ])
wasAttributedTo(tr:WD-prov-dm-20111215, ex:Paolo, [ prov:type="editorship" ])
wasAttributedTo(tr:WD-prov-dm-20111215, ex:Simon, [ prov:type="authorship" ])
</pre>
</div>

</div>  


<div id="term-Association" class="section">
<h4><span class="secno">5.3.3 </span>Association</h4>

<div class="glossary-ref">   An activity <dfn id="concept-activityAssociation" class="internalDFN">association</dfn><sup><a class="internalDFN" href="#concept-activityAssociation"><span class="diamond"> ◊</span></a></sup> is an assignment of responsibility to an agent for an activity, indicating that the agent had a role in the activity. It further allows for a plan to be specified, which is the plan intended by the agent to achieve some goals in the context of this activity. </div>

<p></p>
<div class="glossary-ref">   A <dfn id="concept-plan" class="internalDFN">plan</dfn><sup><a class="internalDFN" href="#concept-plan"><span class="diamond"> ◊</span></a></sup> is an entity that represents a set of actions or steps intended by one or more agents to achieve some goals.  </div>


<p></p><div class="attributes" id="attributes-activity-association">An <dfn title="wasAssociatedWith" id="dfn-wasassociatedwith" class="internalDFN">activity association</dfn><sup><a class="internalDFN" href="#dfn-wasassociatedwith"><span class="diamond"> ◊</span></a></sup><span class="withPn">, written <span class="pnExpression">wasAssociatedWith(id; a, ag, pl, attrs)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="association.id">id</span>:  an <em class="rfc2119" title="optional">optional</em> identifier for the association between an activity and an agent;</li> 
<li><span class="attribute" id="association.activity">activity</span>: an identifier (<span class="name">a</span>) for the activity;</li>
<li><span class="attribute" id="association.agent">agent</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">ag</span>) for the agent associated with the activity;</li>
<li><span class="attribute" id="association.plan">plan</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">pl</span>) for the plan adopted by the agent in the context of this activity;
</li><li><span class="attribute" id="association.attributes">attributes</span>: an <em class="rfc2119" title="optional">optional</em> set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this association of this activity with this agent.</li>
</ul></div>

<p>While each of <a href="#association.id"><span class="attribute">id</span></a>, <a href="#association.agent"><span class="attribute">agent</span></a>,  <a href="#association.plan"><span class="attribute">plan</span></a>, and  <a href="#association.attributes"><span class="attribute">attributes</span></a> is <em class="rfc2119" title="optional">optional</em>, at least one of them <em class="rfc2119" title="must">must</em> be present.</p>


<div class="anexample" id="anexample-wasAssociatedWith"><div class="anexampleTitle">Example <span class="delete">35</span><span class="insert">36</span><sup><a class="internalDFN" href="#anexample-wasAssociatedWith"><span class="diamond"> ◊</span></a></sup></div>
<p>In the following example, a designer agent and an operator agent are associated with an activity. The designer's goals are achieved by a workflow <span class="name">ex:wf</span>, described as an an entity of type <span class="name"><a href="#concept-plan" class="internalDFN">plan</a></span>.   </p>
<pre class="codeexample">activity(ex:a, [ prov:type="workflow execution" ])
agent(ex:ag1,  [ prov:type="operator" ])
agent(ex:ag2,  [ prov:type="designer" ])
wasAssociatedWith(ex:a, ex:ag1, -,     [ prov:role="loggedInUser", ex:how="webapp" ])
wasAssociatedWith(ex:a, ex:ag2, ex:wf, [ prov:role="designer", ex:context="project1" ])
entity(ex:wf, [ prov:type='prov:Plan' , 
                ex:label="Workflow 1", 
                prov:location="http://example.org/workflow1.bpel" %% xsd:anyURI ])
</pre>
Since the workflow <span class="name">ex:wf</span> is itself an entity, its provenance can also be expressed in PROV-DM: it can be generated by some activity and derived from other entities,
for instance.
</div>

<div class="anexample" id="anexample-wasAssociatedWith-2"><div class="anexampleTitle">Example <span class="delete">36</span><span class="insert">37</span><sup><a class="internalDFN" href="#anexample-wasAssociatedWith-2"><span class="diamond"> ◊</span></a></sup></div>
<p>In some cases, one wants to indicate a plan was followed, without having to specify which agent was involved.</p>
<pre class="codeexample">activity(ex:a, [ prov:type="workflow execution" ])
wasAssociatedWith(ex:a, -, ex:wf)
entity(ex:wf, [ prov:type='prov:Plan', 
                ex:label="Workflow 1", 
                ex:url="http://example.org/workflow1.bpel" %% xsd:anyURI])
</pre>
In this case, it is assumed that an agent exists, but it has not been specified.
</div>




</div>  

<div id="term-delegation" class="section">

<h4><span class="secno">5.3.4 </span>Delegation</h4>

<div class="glossary-ref">   <dfn id="concept-delegation" class="internalDFN">Delegation</dfn><sup><a class="internalDFN" href="#concept-delegation"><span class="diamond"> ◊</span></a></sup> is the assignment of authority and responsibility to an agent (by itself or by another agent)  to carry out a specific activity as a delegate or representative, while the agent it acts on behalf of retains some responsibility for the outcome of the delegated work. </div>

<p>For example, a
student acted on behalf of his supervisor, who acted on behalf of the
department chair, who acted on behalf of the university; all those
agents are responsible in some way for the activity that took place but
we do not say explicitly who bears responsibility and to what
degree. </p>


<p>
</p><div class="attributes" id="attributes-delegation">
A <dfn title="actedOnBehalfOf" id="dfn-actedonbehalfof" class="internalDFN">delegation</dfn><sup><a class="internalDFN" href="#dfn-actedonbehalfof"><span class="diamond"> ◊</span></a></sup> link<span class="withPn">, written <span class="pnExpression">actedOnBehalfOf(id; ag2, ag1, a, attrs)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="delegation.id">id</span>:  an <em class="rfc2119" title="optional">optional</em> identifier for the delegation link between delegate and responsible;</li> 
<li><span class="attribute" id="delegation.delegate">delegate</span>: an identifier (<span class="name">ag2</span>) for the agent associated with an activity, acting on behalf of the responsible
agent;</li>
<li><span class="attribute" id="delegation.responsible">responsible</span>: an identifier (<span class="name">ag1</span>) for the agent,  on behalf of which the delegate agent acted;</li>
<li><span class="attribute" id="delegation.activity">activity</span>: an <em class="rfc2119" title="optional">optional</em> identifier (<span class="name">a</span>) of an activity for which the delegation link holds;</li>
<li><span class="attribute" id="delegation.attributes">attributes</span>: an <em class="rfc2119" title="optional">optional</em> set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this delegation link.</li>
</ul></div>


<div class="anexample" id="example_38"><div class="anexampleTitle">Example <span class="delete">37</span><span class="insert">38</span><sup><a class="internalDFN" href="#example_38"><span class="diamond"> ◊</span></a></sup></div>
<p>The following fragment describes three agents: a programmer, a researcher, and a funder.  The programmer and researcher are associated with a workflow activity.  The programmer acts on behalf
of the researcher (line-management) encoding the commands specified by the researcher; the researcher acts on behalf of the funder, who has a contractual agreement with the researcher. The terms
'line-management' and 'contract' used in this example are domain specific.</p>
<pre class="codeexample">activity(a,[ prov:type="workflow" ])
agent(ag1, [ prov:type="programmer" ])
agent(ag2, [ prov:type="researcher" ])
agent(ag3, [ prov:type="funder" ])
wasAssociatedWith(a, ag1, [ prov:role="loggedInUser" ])
wasAssociatedWith(a, ag2)
wasAssociatedWith(a, ag3)
actedOnBehalfOf(ag1, ag2, a, [ prov:type="line-management" ])
actedOnBehalfOf(ag2, ag3, a, [ prov:type="contract" ])
</pre>
</div>



</div>

<div id="term-influence" class="section">
<h4><span class="secno">5.3.5 </span>Influence</h4>

<p>
<span class="glossary-ref">   <dfn id="concept-influence" class="internalDFN">Influence</dfn><sup><a class="internalDFN" href="#concept-influence"><span class="diamond"> ◊</span></a></sup> is the capacity of an entity, activity, or agent to have an effect on the character, development, or behavior of another by means of usage, start, end, generation, invalidation, communication, derivation, attribution, association, or delegation. </span>
</p>


<p> An influence relation between two objects <span class="name">o2</span> and  <span class="name">o1</span> is a generic dependency of <span class="name">o2</span>
on  <span class="name">o1</span> that signifies some form of influence of <span class="name">o1</span> on <span class="name">o2</span>.</p>


<p>A <dfn title="wasInfluencedBy" id="dfn-wasinfluencedby" class="internalDFN">Influence</dfn><sup><a class="internalDFN" href="#dfn-wasinfluencedby"><span class="diamond"> ◊</span></a></sup> relation<span class="withPn">, written <span class="pnExpression">wasInfluencedBy(id; o2, o1, attrs)</span> in PROV-N,</span> has:</p>
<ul>
<li><span class="attribute" id="influence.id">id</span>:  an <em class="rfc2119" title="optional">optional</em> identifier identifying the relation;</li> 
<li><span class="attribute" id="influence.influencee">influencee</span>:  an identifier (<span class="name">o2</span>) for an entity, activity, or agent;
</li><li><span class="attribute" id="influence.influencer">influencer</span>: an identifier (<span class="name">o1</span>) for an ancestor entity, activity, or agent that the former depends on;
</li><li><span class="attribute" id="influence.attributes">attributes</span>: an <em class="rfc2119" title="optional">optional</em> set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this relation.</li>
</ul>

<p>
<a href="#concept-usage" class="internalDFN">Usage</a>, <a href="#concept-start" class="internalDFN">start</a>, <a href="#concept-end" class="internalDFN">end</a>, <a href="#concept-generation" class="internalDFN">generation</a>, <a href="#concept-invalidation" class="internalDFN">invalidation</a>, <a href="#concept-communication" class="internalDFN">communication</a>, <a href="#concept-derivation" class="internalDFN">derivation</a>, <a href="#concept-attribution" class="internalDFN">attribution</a>, <a href="#concept-activityAssociation" class="internalDFN">association</a>, and <a href="#concept-delegation" class="internalDFN">delegation</a> are particular cases of  influence. It is <em class="rfc2119" title="recommended">recommended</em> to adopt these more specific relations when writing provenance descriptions. It is anticipated that the <a href="#concept-influence" class="internalDFN">Influence</a> relation may be useful to express queries over provenance information.
</p>

<div class="anexample" id="example_39"><div class="anexampleTitle">Example <span class="delete">38</span><span class="insert">39</span><sup><a class="internalDFN" href="#example_39"><span class="diamond"> ◊</span></a></sup></div>
<p>We refer to the example of <a class="section-ref" href="#section-example-two"><span>Section 4.2</span></a>, and specifically to <a href="#prov-a-document2-top">Figure 3</a>.
We could have expressed that the influence of
<span class="name">w3:Consortium</span> 
on <span class="name">tr:WD-prov-dm-20111215</span>.
</p><pre class="codeexample"> wasInfluencedBy(tr:WD-prov-dm-20111215, w3:Consortium)
</pre>
Instead, it is <em class="rfc2119" title="recommended">recommended</em> to express the more specific description:
<pre class="codeexample"> wasAttributedTo(tr:WD-prov-dm-20111215, w3:Consortium)
</pre>
</div>




</div>


</div>



<div id="component4" class="section"> 
<h3><span class="secno">5.4 </span>Component 4: Bundles</h3>


<p>The fourth component of PROV-DM is concerned with bundles, a mechanism to support provenance of provenance. 
<a href="#figure-component4">Figure 9</a>  depicts a UML class diagram for the fourth component.  It comprises a <a href="#concept-bundle" class="internalDFN">Bundle</a> class defined as a subclass of <a href="#concept-entity" class="internalDFN">Entity</a>.
</p>

<div style="text-align: center;">
<span class="figure" style="max-width: 95%; ">

<img src="uml/component4.png" alt="bundles"><br>
<span class="figcaption" id="figure-component4">Figure 9<sup><a class="internalDFN" href="#figure-component4"><span class="diamond"> ◊:</span></a></sup> Figure 9: Bundle Component Overview</span>
</span>
</div>



<div id="term-bundle" class="section"> 

<h4><span class="secno">5.4.1 </span>Bundle constructor</h4>


<p>
<span class="glossary-ref">
 A <dfn id="concept-bundle" class="internalDFN">bundle</dfn><sup><a class="internalDFN" href="#concept-bundle"><span class="diamond"> ◊</span></a></sup> is a named set of provenance descriptions, and is itself an entity, so allowing provenance of provenance to be expressed.  </span>
 </p>




<p>
</p><div class="attributes" id="attributes-bundle">
 A <dfn title="dfn-bundle" id="dfn-bundle-declaration" class="internalDFN">bundle constructor</dfn><sup><a class="internalDFN" href="#dfn-bundle-declaration"><span class="diamond"> ◊</span></a></sup>  allows the content and the name of a bundle to be specified; it is written <span class="pnExpression">bundle id description_1 ... description_n endBundle</span> and consists of:
<ul>
<li><span class="attribute" id="bundle.declaration.id">id</span>:  an identifier for the bundle;</li>
<li><span class="attribute" id="bundle.declaration.descriptions">descriptions</span>: a set of provenance descriptions <span class="name">
description_1</span>, ..., <span class="name">description_n</span>.</li>
</ul>
<p>A bundle's identifier <span class="name">id</span> identifies a unique set of descriptions.</p>
</div>

<p>There may be other kinds of bundles not directly expressible by this constructor, such as provenance descriptions handwritten on a letter or a whiteboard, etc.  Whatever the means by which bundles are expressed, all can be described, as in the following section.</p>
</div>





<div id="term-bundle-entity" class="section"> 

<h4><span class="secno">5.4.2 </span>Bundle Type</h4>

<p>A  bundle is a named set of descriptions, but it is also an entity so that its provenance can be described.  </p>

PROV defines the following type for bundles:
<ul>
<li><span class="name">prov:Bundle</span> is the type that denotes <a title="bundle" href="#concept-bundle" class="internalDFN">bundles</a>.
</li></ul>


<p>
A  bundle description is of the form <span class="pnExpression">entity(id,[prov:type='prov:Bundle', attr1=val1, ...])</span>
where <span class="name">id</span> is  an identifier denoting a bundle,
 a type <span>prov:Bundle</span> and
an <em class="rfc2119" title="optional">optional</em> set of attribute-value  pairs ((<span class="name">attr1</span>, <span class="name">val1</span>), ...) representing additional information about this bundle.
</p>


<p>The provenance of provenance can then be described using PROV constructs, as illustrated by
<a href="#anexample-provenance-of-provenance" class="anexample-ref"><span>Example <span class="delete">39</span><span class="insert">40</span></span></a>
and
<a href="#anexample-provenance-aggregation" class="anexample-ref"><span>Example <span class="delete">40</span><span class="insert">41</span></span></a>.</p>

<div class="anexample" id="anexample-provenance-of-provenance"><div class="anexampleTitle">Example <span class="delete">39</span><span class="insert">40</span><sup><a class="internalDFN" href="#anexample-provenance-of-provenance"><span class="diamond"> ◊</span></a></sup></div>
<p>Let us consider two entities <span class="name">ex:report1</span> and <span class="name">ex:report2</span>.</p>
<pre class="codeexample"> 
entity(ex:report1, [ prov:type="report", ex:version=1 ])
wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
entity(ex:report2, [ prov:type="report", ex:version=2])
wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
wasDerivedFrom(ex:report2, ex:report1)
</pre>

<p>Let us assume that Bob observed the creation of <span class="name">ex:report1</span>.
A first bundle can be expressed.</p>
<pre class="codeexample"> 
bundle bob:bundle1
  entity(ex:report1, [ prov:type="report", ex:version=1 ])
  wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
endBundle
</pre>

<p>In contrast,
Alice observed the creation of <span class="name">ex:report2</span> and its derivation from <span class="name">ex:report1</span>.
A separate bundle can also be expressed.</p>
<pre class="codeexample"> 
bundle alice:bundle2
  entity(ex:report1)
  entity(ex:report2, [ prov:type="report", ex:version=2 ])
  wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
  wasDerivedFrom(ex:report2, ex:report1)
endBundle
</pre>

<p>The first bundle contains the descriptions corresponding to  Bob observing the creation of <span class="name">ex:report1</span>. Its provenance can be described as follows.</p>
<pre class="codeexample"> 
entity(bob:bundle1, [prov:type='prov:Bundle'])
wasGeneratedBy(bob:bundle1, -, 2012-05-24T10:30:00)
wasAttributedTo(bob:bundle1, ex:Bob)
</pre>

<p>In contrast, the second bundle is attributed to Alice who
observed the derivation of <span class="name">ex:report2</span> from <span class="name">ex:report1</span>.</p>
<pre class="codeexample"> 
entity(alice:bundle2, [ prov:type='prov:Bundle' ])
wasGeneratedBy(alice:bundle2, -, 2012-05-25T11:15:00)
wasAttributedTo(alice:bundle2, ex:Alice)
</pre>
</div>

<div class="anexample" id="anexample-provenance-aggregation"><div class="anexampleTitle">Example <span class="delete">40</span><span class="insert">41</span><sup><a class="internalDFN" href="#anexample-provenance-aggregation"><span class="diamond"> ◊</span></a></sup></div>
<p>A provenance aggregator could merge two bundles, resulting in a novel bundle, whose provenance is described as follows.</p>
<pre class="codeexample"> 
bundle agg:bundle3
  entity(ex:report1, [ prov:type="report", ex:version=1 ])
  wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)

  entity(ex:report2, [ prov:type="report", ex:version=2 ])
  wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
  wasDerivedFrom(ex:report2, ex:report1)
endBundle

entity(agg:bundle3, [ prov:type='prov:Bundle' ])
agent(ex:aggregator01, [ prov:type='ex:Aggregator' ])
wasAttributedTo(agg:bundle3, ex:aggregator01)
wasDerivedFrom(agg:bundle3, bob:bundle1)
wasDerivedFrom(agg:bundle3, alice:bundle2)
</pre>
<p>The new bundle is given a new identifier <span class="name">agg:bundle3</span> and is attributed to the <span class="name">ex:aggregator01</span> agent.
</p></div>


</div>



</div> 


<div id="component5" class="section"> 
<h3><span class="secno">5.5 </span>Component 5: Alternate Entities</h3>


<p>The fifth component of PROV-DM is concerned with
relations <a href="#concept-specialization" class="internalDFN">specialization</a>, <a href="#concept-alternate" class="internalDFN">alternate</a>, and <a href="#concept-mention" class="internalDFN">mention</a> between entities.
 <a href="#figure-component5">Figure 10</a> depicts
the fifth component with a single class,  two binary associations, and a ternary association.
</p>


<div style="text-align: center;">
<span class="figure" style="max-width: 95%; ">
<img src="uml/component5.png" alt="alternates"><br>
<span class="figcaption" id="figure-component5">Figure 10<sup><a class="internalDFN" href="#figure-component5"><span class="diamond"> ◊:</span></a></sup> Figure 10: Alternates Component Overview</span>
</span>
</div>


<p>Two provenance descriptions about the same thing may emphasize differents aspects of that thing.</p>
<div class="anexample" id="entity-example1"><div class="anexampleTitle">Example <span class="delete">41</span><span class="insert">42</span><sup><a class="internalDFN" href="#entity-example1"><span class="diamond"> ◊</span></a></sup></div>
<p>User Alice writes an article. In its provenance, she wishes to refer to the precise version of the article with a date-specific IRI, as she might edit the article later. Alternatively, user Bob refers to the article in general, independently of its variants over time.</p>
</div>
<p>
The PROV data model introduces relations, called specialization, alternate, and mention
that allow entities  to be linked together. They are defined as follows. </p>


<div id="term-specialization" class="section">

<h4><span class="secno">5.5.1 </span>Specialization</h4>


<span class="glossary-ref">   An entity that is a <dfn id="concept-specialization" class="internalDFN">specialization</dfn><sup><a class="internalDFN" href="#concept-specialization"><span class="diamond"> ◊</span></a></sup> of another shares all aspects of the latter, and additionally presents more specific aspects of the same thing as the latter. In particular, the lifetime of the entity being specialized  contains that of any specialization. </span> 


<p>
Examples of aspects include a time period, an abstraction, and a context associated with the entity.</p>




<p>
</p><div class="attributes" id="attributes-specialization">A <dfn title="specializationOf" id="dfn-specializationof" class="internalDFN">specialization</dfn><sup><a class="internalDFN" href="#dfn-specializationof"><span class="diamond"> ◊</span></a></sup>  relation<span class="withPn">, written <span class="pnExpression">specializationOf(infra, supra)</span> in PROV-N,</span> has:

<ul>
<li><span class="attribute" id="specialization.specificEntity">specificEntity</span>: an identifier (<span class="name">infra</span>)
of the entity that is a specialization of the general entity (<span class="name">supra</span>);</li>
<li><span class="attribute" id="specialization.generalEntity">generalEntity</span>: an identifier (<span class="name">supra</span>) of the entity that is being specialized.</li>
</ul>
</div>


<div class="anexample" id="anexample-specialization"><div class="anexampleTitle">Example <span class="delete">42</span><span class="insert">43</span><sup><a class="internalDFN" href="#anexample-specialization"><span class="diamond"> ◊</span></a></sup></div>
<p>
The BBC news home page on 2012-03-23 <span class="name">ex:bbcNews2012-03-23</span>
is a specialization of the BBC news page in general
 <a href="http://www.bbc.co.uk/news/">bbc:news/</a>. This can be expressed as follows.
</p><pre class="codeexample">specializationOf(ex:bbcNews2012-03-23, bbc:news/)
</pre>
We have created a new qualified name,  <span class="name">ex:bbcNews2012-03-23</span>, in the namespace <span class="name">ex</span>, to identify the specific page carrying this day's news, which would otherwise be the generic  <span class="name">bbc:news/</span> page.
</div>







</div>

<div id="term-alternate" class="section">

<h4><span class="secno">5.5.2 </span>Alternate</h4>


<span class="glossary-ref">   Two <dfn id="concept-alternate" class="internalDFN">alternate</dfn><sup><a class="internalDFN" href="#concept-alternate"><span class="diamond"> ◊</span></a></sup> entities present aspects of the same thing. These aspects may be the same or different, and the alternate entities may or may not overlap in time.  </span>


  

<p></p><div class="attributes" id="attributes-alternate">An <dfn title="alternateOf" id="dfn-alternateof" class="internalDFN">alternate</dfn><sup><a class="internalDFN" href="#dfn-alternateof"><span class="diamond"> ◊</span></a></sup> relation<span class="withPn">, written <span class="pnExpression">alternateOf(e1, e2)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="alternate.alternate1">alternate1</span>: an identifier (<span class="name">e1</span>) of the first of the two entities;</li>
<li><span class="attribute" id="alternate.alternate2">alternate2</span>: an identifier (<span class="name">e2</span>) of the second of the two entities.</li>
</ul>
</div>

<div class="anexample" id="anexample-alternate"><div class="anexampleTitle">Example <span class="delete">43</span><span class="insert">44</span><sup><a class="internalDFN" href="#anexample-alternate"><span class="diamond"> ◊</span></a></sup></div>
<p>
A given news item on the BBC News site 
 <a href="http://www.bbc.co.uk/news/science-environment-17526723">bbc:news/science-environment-17526723</a> for desktop
is an alternate of a 
 <a href="http://www.bbc.co.uk/news/mobile/science-environment-17526723">bbc:news/mobile/science-environment-17526723</a> for mobile devices.</p>
<pre class="codeexample">entity(bbc:news/science-environment-17526723, 
       [ prov:type="a news item for desktop"])
entity(bbc:news/mobile/science-environment-17526723, 
       [ prov:type="a news item for mobile devices"])
alternateOf(bbc:news/science-environment-17526723, 
            bbc:news/mobile/science-environment-17526723)
</pre>
</div>


<div class="anexample" id="anexample-alternate2"><div class="anexampleTitle">Example <span class="delete">44</span><span class="insert">45</span><sup><a class="internalDFN" href="#anexample-alternate2"><span class="diamond"> ◊</span></a></sup></div>
<p>
Considering again the two versions of the technical report <span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">tr:WD-prov-dm-20111215</a></span> (second working draft) and <span class="name"><span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018">tr:WD-prov-dm-20111018</a></span></span> (first working draft). They are alternate of each other.
</p><pre class="codeexample">entity(tr:WD-prov-dm-20111018)
entity(tr:WD-prov-dm-20111215)
alternateOf(tr:WD-prov-dm-20111018,tr:WD-prov-dm-20111215)
</pre>
<p>They are both specialization of the page <a href="http://www.w3.org/TR/prov-dm/">http://www.w3.org/TR/prov-dm/</a>.</p>
</div>

</div>


<div id="term-mention" class="section">

<h4><span class="secno">5.5.3 </span>Mention</h4>


<div class="note">
<p>This feature is "<a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">at risk</a>" and may be removed from this specification based on feedback. Please send feedback to public-prov-comments@w3.org.</p>
<p>The "Mention" construct might be removed from PROV if implementation experience reveals problems with supporting this construct.</p>
</div>


<p>An entity <span class="name">e1</span> may be mentioned in a bundle <span class="name">b</span>, which contains some
 descriptions about this entity <span class="name">e1</span>: how <span class="name">e1</span> was generated and used, which activities <span class="name">e1</span> is involved with, the agents <span class="name">e1</span> is attributed to, etc. Other bundles may contain other descriptions about the same entity <span class="name">e1</span>.
Some applications may want to interpret
this entity <span class="name">e1</span> with respect to the descriptions found in the bundle <span class="name">b</span> it occurs in. To this end, PROV allows a new entity <span class="name">e2</span> to be created, which is a specialization of the original entity <span class="name">e1</span>, and which presents an additional aspect:  the bundle <span class="name">b</span> containing some descriptions of <span class="name">e1</span>.  With this relation, applications that process <span class="name">e2</span>
can know that the attributes of <span class="name">e2</span> may have been computed according to the descriptions of <span class="name">e1</span> in <span class="name">b</span>.</p>



<p>Thus, the following notion is a relation between two entities with regard to a bundle.
It is a special case of specialization.</p> 


<span class="glossary-ref">   The <dfn id="concept-mention" class="internalDFN">mention</dfn><sup><a class="internalDFN" href="#concept-mention"><span class="diamond"> ◊</span></a></sup> of an entity in a bundle (containing a description of this entity) is another entity that is a specialization of the former and that presents the bundle as a further additional aspect. </span>



<p>
An entity is interpreted with respect to a bundle's description in a
domain specific manner.  The mention of this entity with respect to
this bundle offers the opportunity to specialize it according to some
domain-specific interpretation.
</p>


<p>A mention of an entity in a bundle results in a specialization of this entity with extra fixed aspects, including the  bundle that it is described in. 
</p>



<p></p><div class="attributes" id="attributes-mention">A <dfn title="mentionOf" id="dfn-mentionof" class="internalDFN">mention</dfn><sup><a class="internalDFN" href="#dfn-mentionof"><span class="diamond"> ◊</span></a></sup>  relation<span class="withPn">, written <span class="pnExpression">mentionOf(infra, supra, b)</span> in PROV-N,</span> has:
<ul>
<li><span class="attribute" id="mention.specificEntity">specificEntity</span>: an identifier (<span class="name">infra</span>)
of the entity that is a mention of the general entity (<span class="name">supra</span>);</li>
<li><span class="attribute" id="mention.generalEntity">generalEntity</span>: an identifier (<span class="name">supra</span>) of the entity that is being mentioned.</li>
<li><span class="attribute" id="mention.bundle">bundle</span>: an identifier (<span class="name">b</span>) of a bundle that contains a description of <span class="name">supra</span> and further constitutes one additional aspect presented by <span class="name">infra</span>.</li>
</ul>
</div>

<div class="anexample" id="anexample-mention-rating"><div class="anexampleTitle">Example <span class="delete">45</span><span class="insert">46</span><sup><a class="internalDFN" href="#anexample-mention-rating"><span class="diamond"> ◊</span></a></sup></div>
<p>This example is concerned with a performance rating tool that reads and processes provenance to determine the performance of agents.  To keep the example simple, an agent's performance is determined by the duration of the activities it is associated with. </p>
<p>As an illustration, we consider that two bundles <span class="name">ex:run1</span> and <span class="name">ex:run2</span> refer to an agent <span class="name">ex:Bob</span> that controlled two activities <span class="name">ex:a1</span> and <span class="name">ex:a2</span>. </p>

<pre class="codeexample">bundle ex:run1
    activity(ex:a1, 2011-11-16T16:00:00, 2011-11-16T17:00:00)  //duration: 1hour
    wasAssociatedWith(ex:a1, ex:Bob, [prov:role="controller"])
endBundle

bundle ex:run2
    activity(ex:a2, 2011-11-17T10:00:00, 2011-11-17T17:00:00)  //duration: 7hours
    wasAssociatedWith(ex:a2, ex:Bob, [prov:role="controller"])
endBundle
</pre> 
<p>The performance rating tool reads these bundles, and rates the performance of the agent described in these bundles. The performance rating tool creates a new bundle <span class="name">tool:analysis01</span> containing the following. A new agent <span class="name">tool:Bob-2011-11-16</span> is declared as a mention of <span class="name">ex:Bob</span> as described in  bundle <span class="name">ex:run1</span>, and likewise for  <span class="name">tool:Bob-2011-11-17</span> with respect to <span class="name">ex:run2</span>. The tool adds a domain-specific performance attribute to each of these specialized entities as follows: the performance of the agent in the first bundle is judged to be good since the duration of <span class="name">ex:a1</span> is one hour, whereas it is judged to be bad in the second bundle since <span class="name">ex:a2</span>'s duration is seven hours.

</p><pre class="codeexample">bundle tool:analysis01
    agent(tool:Bob-2011-11-16, [perf:rating="good"])
    mentionOf(tool:Bob-2011-11-16, ex:Bob, ex:run1)

    agent(tool:Bob-2011-11-17, [perf:rating="bad"])
    mentionOf(tool:Bob-2011-11-17, ex:Bob, ex:run2)
endBundle
</pre>
</div>


<div class="anexample" id="aexample-mention-viz"><div class="anexampleTitle">Example <span class="delete">46</span><span class="insert">47</span><sup><a class="internalDFN" href="#aexample-mention-viz"><span class="diamond"> ◊</span></a></sup></div>
<p>Consider the following bundle of descriptions, in which derivation and generations have been identified.
</p><pre class="codeexample"> 
bundle obs:bundle1
  entity(ex:report1, [prov:type="report", ex:version=1])
  wasGeneratedBy(ex:g1; ex:report1,-,2012-05-24T10:00:01)
  entity(ex:report2, [prov:type="report", ex:version=2])
  wasGeneratedBy(ex:g2; ex:report2,-,2012-05-25T11:00:01)
  wasDerivedFrom(ex:report2, ex:report1)
endBundle
entity(obs:bundle1, [ prov:type='prov:Bundle' ])
wasAttributedTo(obs:bundle1, ex:observer01)
</pre>
Bundle <span class="name">obs:bundle1</span> is rendered by a visualisation tool.  It may useful for the visualization layout of this bundle to be shared along with the provenance descriptions, so that other users can render provenance as it was originally rendered.  The original  bundle obviously cannot be changed. However, one can create a new bundle, as follows.
<pre class="codeexample"> 
bundle tool:bundle2
  entity(tool:bundle2, [ prov:type='viz:Configuration', prov:type='prov:Bundle' ])
  wasAttributedTo(tool:bundle2, viz:Visualizer)

  entity(tool:report1, [viz:color="orange"])
  mentionOf(tool:report1, ex:report1, obs:bundle1)

  entity(tool:report2, [viz:color="blue"])              
  mentionOf(tool:report2, ex:report2, obs:bundle1)
endBundle
</pre>

<p>In bundle <span class="name">tool:bundle2</span>, the prefix <span class="name">viz</span> is used for naming visualisation-specific attributes, types or values.</p>

<p>Bundle <span class="name">tool:bundle2</span> is given type <span class="name">viz:Configuration</span> to indicate that it consists of descriptions that pertain to the configuration of the visualisation tool. This type attribute can be used for searching bundles containing visualization-related descriptions.
</p>

<p>The visualisation tool
 created  new identifiers <span class="name">tool:report1</span> and
<span class="name">tool:report2</span>.
They denote entities which are specializations of <span class="name">ex:report1</span> and <span class="name">ex:report2</span>, described in bundle <span class="name">obs:bundle1</span>, with visualization attribute for the color to be used when rendering these entities.   </p>

</div>



</div>





</div>

<div id="component6" class="section"> 
<h3><span class="secno">5.6 </span>Component 6: Collections</h3>

<p>The sixth component of PROV-DM is concerned with the notion of collections. 
A collection is an entity that has some members. The members are themselves entities, and therefore their provenance can be expressed. Some applications need to be able to express the provenance of the collection  itself: e.g. who maintains the collection (attribution), which members it contains as it evolves, and how it was assembled. The purpose of Component 6 is to define the types and relations that are useful to express the provenance of collections.  </p>

<p><a href="#figure-component6">Figure 11</a> depicts
the sixth component with two  new classes (Collection, Empty Collection) and one association (HadMember).
</p>


<div style="text-align: center;">
<span class="figure" style="max-width: 95%; ">
<img src="uml/component6.png" alt="collection"><br>
<span class="figcaption" id="figure-component6">Figure 11<sup><a class="internalDFN" href="#figure-component6"><span class="diamond"> ◊:</span></a></sup> Figure 11: Collections Component Overview</span>
</span>
</div>


<div id="term-collection" class="section">
<h4><span class="secno">5.6.1 </span>Collection</h4>

<span class="glossary-ref">   A <dfn id="concept-collection" class="internalDFN">collection</dfn><sup><a class="internalDFN" href="#concept-collection"><span class="diamond"> ◊</span></a></sup> is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be <dfn id="dfn-member-of" class="internalDFN">member of</dfn><sup><a class="internalDFN" href="#dfn-member-of"><span class="diamond"> ◊</span></a></sup> the collections.  </span>

<span class="glossary-ref">   An <dfn id="concept-empty-collection" class="internalDFN">empty collection</dfn><sup><a class="internalDFN" href="#concept-empty-collection"><span class="diamond"> ◊</span></a></sup> is a collection without members.  </span>


<p>PROV-DM defines the following types related to collections:</p>

<ul>
  <li> <span class="name">prov:Collection</span>  denotes an entity of type Collection, i.e. an entity that  can participate in  relations amongst collections;

  </li><li><span class="name">prov:EmptyCollection</span> denotes an empty collection.
</li></ul>


<div class="anexample" id="example_48"><div class="anexampleTitle">Example <span class="delete">47</span><span class="insert">48</span><sup><a class="internalDFN" href="#example_48"><span class="diamond"> ◊</span></a></sup></div>
<pre class="codeexample">entity(c0, [prov:type='prov:EmptyCollection' ])  // c0 is an empty collection
entity(c1, [prov:type='prov:Collection'  ])      // c1 is a collection, with unknown content
</pre>
</div>


</div>

<div id="term-membership" class="section">
<h4><span class="secno">5.6.2 </span>Membership</h4>

<p>A <strong>membership</strong> relation is defined, to allow stating the  members of a Collection. </p>

<span class="glossary-ref"> <dfn id="concept-membership" class="internalDFN">Membership</dfn><sup><a class="internalDFN" href="#concept-membership"><span class="diamond"> ◊</span></a></sup> is the belonging of an entity  to a collection. </span>


<p>
</p><div class="attributes" id="attributes-hadMember">
 A <dfn title="hadMember" id="dfn-hadmember" class="internalDFN">membership</dfn><sup><a class="internalDFN" href="#dfn-hadmember"><span class="diamond"> ◊</span></a></sup> relation, written <span class="pnExpression">hadMember(c, e)</span>, has:
<ul>
<li><span class="attribute" id="membership.collection">collection</span>: an identifier (<span class="name">c</span>) for the collection whose member is asserted; </li>
<li><span class="attribute" id="membership.entity">entity</span>: the identifier <span class="name">e</span> of an entity that is member of the collection.</li>
</ul>
</div>



<div class="anexample" id="example_49"><div class="anexampleTitle">Example <span class="delete">48</span><span class="insert">49</span><sup><a class="internalDFN" href="#example_49"><span class="diamond"> ◊</span></a></sup></div>
<p>In this example, <span class="name">c</span> is a collection known to have <span class="name">e0</span>, <span class="name">e1</span>, and <span class="name">e2</span> as members, and may have other members.</p>
<pre class="codeexample">entity(e0)
entity(e1)
entity(e2)

entity(c, [prov:type='prov:Collection'  ])      // c is a collection, with unknown content
hadMember(c, e0)
hadMember(c, e1)
hadMember(c, e2)
</pre>
</div>


</div>



  
</div>   





<div id="second-class-elements" class="section">
<h3><span class="secno">5.7 </span>Further Elements of PROV-DM</h3>

This section introduces further elements of PROV-DM.




<div id="term-identifier" class="section">
<h4><span class="secno">5.7.1 </span>Identifier</h4>

<p>
An <dfn id="dfn-identifier" class="internalDFN">identifier</dfn><sup><a class="internalDFN" href="#dfn-identifier"><span class="diamond"> ◊</span></a></sup> is a <a href="#concept-qualifiedName" class="internalDFN">qualified
 name</a>. 
</p>

</div>

<div id="term-attribute" class="section">
<h4><span class="secno">5.7.2 </span>Attribute</h4>

<p>An <dfn title="dfn-attribute" id="dfn-attribute" class="internalDFN">attribute</dfn><sup><a class="internalDFN" href="#dfn-attribute"><span class="diamond"> ◊</span></a></sup> is a <a href="#concept-qualifiedName" class="internalDFN">qualified name</a>. 


</p><p>The PROV data model introduces a pre-defined set of attributes in the <a title="prov-namespace" href="#dfn-prov-namespace" class="internalDFN">PROV namespace</a>, which we define below. 
This specification does not provide any interpretation for any attribute declared in any other namespace.</p>

<div id="attributes-at-a-glance-divz" style="text-align: left;">
<table class="thinborder" style="margin-left: auto; margin-right: auto;">
<caption id="attributes-at-a-glance"><span>Table <span class="delete">6</span><span class="insert">7</span><sup><a class="internalDFN" href="#attributes-at-a-glance"><span class="diamond"> ◊:</span></a></sup> </span>PROV-DM Attributes At a Glance</caption> 
<tbody><tr><td><b>Attribute</b></td><td><b>Allowed In</b></td><td><b>value</b></td><td><b>Section</b></td></tr> 
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
<tr><td><a title="label" href="#concept-label" class="internalDFN">prov:label</a></td><td><em>any construct</em></td><td>A <a href="#concept-value" class="internalDFN">Value</a> of type <a class="section-ref" href="http://www.w3.org/TR/xmlschema11-2/#string">xsd:string</a></td><td><a class="section-ref" href="#term-attribute-label"><span>Section 5.7.2.1</span></a> </td></tr>
<tr><td><a title="location" href="#concept-location" class="internalDFN">prov:location</a></td><td><a href="#concept-entity" class="internalDFN">Entity</a>, <a href="#concept-activity" class="internalDFN">Activity</a>, <a href="#concept-agent" class="internalDFN">Agent</a>, <a href="#concept-usage" class="internalDFN">Usage</a>, <a href="#concept-generation" class="internalDFN">Generation</a>, <a href="#concept-invalidation" class="internalDFN">Invalidation</a>, <a href="#concept-start" class="internalDFN">Start</a>, and <a href="#concept-end" class="internalDFN">End</a></td><td>A <a title="value" href="#concept-value" class="internalDFN">Value</a></td><td><a class="section-ref" href="#term-attribute-location"><span>Section 5.7.2.2</span></a> </td></tr>
<tr><td><a title="role" href="#concept-role" class="internalDFN">prov:role</a></td><td><a href="#concept-usage" class="internalDFN">Usage</a>, <a href="#concept-generation" class="internalDFN">Generation</a>, <a href="#concept-invalidation" class="internalDFN">Invalidation</a>, <a href="#concept-activityAssociation" class="internalDFN">Association</a>, <a href="#concept-start" class="internalDFN">Start</a>, and <a href="#concept-end" class="internalDFN">End</a></td><td>A <a title="value" href="#concept-value" class="internalDFN">Value</a></td><td><a class="section-ref" href="#term-attribute-role"><span>Section 5.7.2.3</span></a> </td></tr>
<tr><td><a title="type" href="#concept-type" class="internalDFN">prov:type</a></td><td><em>any construct</em></td><td>A <a title="value" href="#concept-value" class="internalDFN">Value</a></td><td><a class="section-ref" href="#term-attribute-type"><span>Section 5.7.2.4</span></a> </td></tr>
<tr><td><a title="value-attribute" href="#concept-value-attribute" class="internalDFN">prov:value</a></td><td><a href="#concept-entity" class="internalDFN">Entity</a></td><td>A <a title="value" href="#concept-value" class="internalDFN">Value</a></td><td><a class="section-ref" href="#term-attribute-value"><span>Section 5.7.2.5</span></a> </td></tr>
</tbody></table>
</div>





<div id="term-attribute-label" class="section">
<h5><span class="secno">5.7.2.1 </span>prov:label</h5>


<p>
<span class="glossary-ref">    The attribute <dfn id="concept-label" title="label" class="internalDFN"><span class="name">prov:label</span></dfn><sup><a class="internalDFN" href="#concept-label"><span class="diamond"> ◊</span></a></sup> provides a human-readable representation of an instance of a PROV-DM type or relation.   </span>
The value associated with the attribute <span class="name">prov:label</span> <em class="rfc2119" title="must">must</em> be a string.</p>

<div class="anexample" id="example_50"><div class="anexampleTitle">Example <span class="delete">49</span><span class="insert">50</span><sup><a class="internalDFN" href="#example_50"><span class="diamond"> ◊</span></a></sup></div>
<p>The following entity is provided with a label attribute.</p>
<pre class="codeexample"> entity(ex:e1, [ prov:label="This is a human-readable label" ])
</pre>

<p>The following entity has two label attributes, in French and English.</p>
<pre class="codeexample"> entity(ex:car01, [ prov:label="Voiture 01"@fr, prov:label="Car 01"@en ])
</pre>
</div>
</div>


<div id="term-attribute-location" class="section">
<h5><span class="secno">5.7.2.2 </span>prov:location</h5>

<p><span class="glossary-ref">   A <dfn id="concept-location" title="location" class="internalDFN">location</dfn><sup><a class="internalDFN" href="#concept-location"><span class="diamond"> ◊</span></a></sup> can be an identifiable geographic place (ISO 19112), but it can also be a non-geographic place such as a directory, row, or column.  </span>
As such, there are numerous ways in which location can be expressed, such as by a coordinate,
address, landmark, and so forth. This  document does not specify how to concretely express  locations, but instead provide a mechanism to introduce locations, by means of a reserved attribute. </p> 


<p>
The attribute <span class="name">prov:location</span> is an <em class="rfc2119" title="optional">optional</em> attribute of <a href="#concept-entity" class="internalDFN">Entity</a>, <a href="#concept-activity" class="internalDFN">Activity</a>, <a href="#concept-agent" class="internalDFN">Agent</a>, <a href="#concept-usage" class="internalDFN">Usage</a>, <a href="#concept-generation" class="internalDFN">Generation</a>, <a href="#concept-invalidation" class="internalDFN">Invalidation</a>, <a href="#concept-start" class="internalDFN">Start</a>, and <a href="#concept-end" class="internalDFN">End</a>.  The value associated with the  attribute <span class="name">prov:location</span> <em class="rfc2119" title="must">must</em> be a PROV-DM <a title="value" href="#concept-value" class="internalDFN">Value</a>, expected to denote a location.
</p>

<div class="anexample" id="example-location"><div class="anexampleTitle">Example <span class="delete">50</span><span class="insert">51</span><sup><a class="internalDFN" href="#example-location"><span class="diamond"> ◊</span></a></sup></div>
<p>The following expression describes entity Mona Lisa, a painting, with a location attribute. </p>
<pre class="codeexample"> entity(ex:MonaLisa, [ prov:location="Le Louvre, Paris", prov:type="StillImage" ])
</pre>
<p>The following expression describes a cell, at coordinates (5,5), with value 10. </p>
<pre class="codeexample"> entity(ex:cell, [ prov:location="(5,5)", prov:value="10" %% xsd:integer ])
</pre>
</div>
</div>



<div id="term-attribute-role" class="section">
<h5><span class="secno">5.7.2.3 </span>prov:role</h5>


<p><span class="glossary-ref">   A <dfn id="concept-role" class="internalDFN">role</dfn><sup><a class="internalDFN" href="#concept-role"><span class="diamond"> ◊</span></a></sup> is the function of an entity or agent with respect to an activity, in the context of a <a href="#concept-usage" class="internalDFN">usage</a>, <a href="#concept-generation" class="internalDFN">generation</a>, <a href="#concept-invalidation" class="internalDFN">invalidation</a>,  <a href="#concept-activityAssociation" class="internalDFN">association</a>, <a href="#concept-start" class="internalDFN">start</a>, and  <a href="#concept-end" class="internalDFN">end</a>. </span></p>

<p>
The attribute <span class="name">prov:role</span> is allowed to occur multiple times in a list of attribute-value pairs. The value associated with a <span class="name">prov:role</span> attribute <em class="rfc2119" title="must">must</em> be a PROV-DM <a title="value" href="#concept-value" class="internalDFN">Value</a>.</p>

<div class="anexample" id="anexample-role"><div class="anexampleTitle">Example <span class="delete">51</span><span class="insert">52</span><sup><a class="internalDFN" href="#anexample-role"><span class="diamond"> ◊</span></a></sup></div>
<p>The following activity is associated with an agent acting as the operator. </p>
<pre class="codeexample"> wasAssociatedWith(a, ag, [ prov:role="operator" ])
</pre>
<p>In the following expression, the activity <span class="name">ex:div01</span> used entity <span class="name">ex:cell</span> in the role of divisor.</p>
<pre class="codeexample">used(ex:div01, ex:cell, [ prov:role="divisor" ])
</pre>
</div>
</div>

<div id="term-attribute-type" class="section">
<h5><span class="secno">5.7.2.4 </span>prov:type</h5>

<p><span class="glossary-ref">   The attribute <dfn id="concept-type" title="type" class="internalDFN"><span class="name">prov:type</span></dfn><sup><a class="internalDFN" href="#concept-type"><span class="diamond"> ◊</span></a></sup>  provides further typing information  for any construct with an optional set of attribute-value pairs. </span></p>

<p>
PROV-DM liberally
defines a type as a category of things having common characteristics. PROV-DM is agnostic about the representation of types, and only states that
the value associated with a <span class="name">prov:type</span> attribute <em class="rfc2119" title="must">must</em> be a PROV-DM <a title="value" href="#concept-value" class="internalDFN">Value.</a> The attribute <span class="name">prov:type</span>
is allowed to occur multiple times.</p>

<div class="anexample" id="example_53"><div class="anexampleTitle">Example <span class="delete">52</span><span class="insert">53</span><sup><a class="internalDFN" href="#example_53"><span class="diamond"> ◊</span></a></sup></div>
<p>The following describes an agent of type software agent.</p>
<pre class="codeexample">   agent(ag, [ prov:type='prov:SoftwareAgent' ])
</pre>
</div>

<p>The following types are pre-defined in PROV, and are valid values for the <span class="name">prov:type</span> attribute.</p>


<table class="thinborder" style="margin-left: auto; margin-right: auto;">
<caption id="prov-dm-predefined-types"><span>Table <span class="delete">7</span><span class="insert">8</span><sup><a class="internalDFN" href="#prov-dm-predefined-types"><span class="diamond"> ◊:</span></a></sup> </span>PROV-DM Predefined Types</caption> 
<tbody><tr><td><b>Type</b></td><td><b>Specification</b></td><td><b>Core concept</b></td></tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
<tr><td><a title="bundle" href="#concept-bundle" class="internalDFN"><span class="name">prov:Bundle</span></a></td><td><a class="section-ref" href="#term-bundle"><span>Section 5.4.1</span></a></td><td><a href="#concept-entity" class="internalDFN">Entity</a></td></tr>
<tr><td><a title="collection" href="#concept-collection" class="internalDFN"><span class="name">prov:Collection</span></a></td><td><a class="section-ref" href="#term-collection"><span>Section 5.6.1</span></a></td><td><a href="#concept-entity" class="internalDFN">Entity</a></td></tr>
<tr><td><a title="empty collection" href="#concept-empty-collection" class="internalDFN"><span class="name">prov:EmptyCollection</span></a></td><td><a class="section-ref" href="#term-collection"><span>Section 5.6.1</span></a></td><td><a href="#concept-entity" class="internalDFN">Entity</a></td></tr>
<tr><td><a title="organization" href="#concept-organization" class="internalDFN"><span class="name">prov:Organization</span></a></td><td><a class="section-ref" href="#term-agent"><span>Section 5.3.1</span></a></td><td><a href="#concept-agent" class="internalDFN">Agent</a></td></tr>
<tr><td><a title="person" href="#concept-person" class="internalDFN"><span class="name">prov:Person</span></a></td><td><a class="section-ref" href="#term-agent"><span>Section 5.3.1</span></a></td><td><a href="#concept-agent" class="internalDFN">Agent</a></td></tr>
<tr><td><a title="plan" href="#concept-plan" class="internalDFN"><span class="name">prov:Plan</span></a></td> <td><a class="section-ref" href="#term-entity"><span>Section 5.1.1</span></a></td><td><a href="#concept-entity" class="internalDFN">Entity</a></td></tr>
<tr><td><a title="primary source" href="#concept-primary-source" class="internalDFN"><span class="name">prov:PrimarySource</span></a></td><td><a class="section-ref" href="#term-primary-source"><span>Section 5.2.4</span></a></td><td><a href="#concept-derivation" class="internalDFN">Derivation</a></td></tr>
<tr><td><a title="Quotation" href="#concept-quotation" class="internalDFN"><span class="name">prov:Quotation</span></a></td><td><a class="section-ref" href="#term-quotation"><span>Section 5.2.3</span></a></td><td><a href="#concept-derivation" class="internalDFN">Derivation</a></td></tr>
<tr><td><a title="Revision" href="#concept-revision" class="internalDFN"><span class="name">prov:Revision</span></a></td><td><a class="section-ref" href="#term-revision"><span>Section 5.2.2</span></a></td><td><a href="#concept-derivation" class="internalDFN">Derivation</a></td></tr>
<tr><td><a title="software-agent" href="#concept-software-agent" class="internalDFN"><span class="name">prov:SoftwareAgent</span></a></td><td><a class="section-ref" href="#term-agent"><span>Section 5.3.1</span></a></td><td><a href="#concept-agent" class="internalDFN">Agent</a></td></tr>
</tbody></table>

</div>


<div id="term-attribute-value" class="section">
<h5><span class="secno">5.7.2.5 </span>prov:value</h5>

<p><span class="glossary-ref">   The attribute <dfn id="concept-value-attribute" title="value-attribute" class="internalDFN"><span class="name">prov:value</span></dfn><sup><a class="internalDFN" href="#concept-value-attribute"><span class="diamond"> ◊</span></a></sup>  provides a <a href="#concept-value" class="internalDFN">Value</a> for an entity. </span></p>



<p>The attribute <span class="name">prov:value</span> is an <em class="rfc2119" title="optional">optional</em> attribute of entity.  The value associated with the  attribute <span class="name">prov:value</span> <em class="rfc2119" title="must">must</em> be a PROV-DM <a title="value" href="#concept-value" class="internalDFN">Value</a>. The attribute <span class="name">prov:value</span> <em class="rfc2119" title="may">may</em> occur at most once in a set of attribute-value pairs.</p>

<div class="anexample" id="example_54"><div class="anexampleTitle">Example <span class="delete">53</span><span class="insert">54</span><sup><a class="internalDFN" href="#example_54"><span class="diamond"> ◊</span></a></sup></div>
<p>The following example illustrates the provenance of the number <span class="name">4</span> obtained by an activity that computed the length of an input string <span class="name">"abcd"</span>.
The input and the output are expressed as entities <span class="name">ex:in</span> and <span class="name">ex:out</span>, respectively. They each have a <span class="name">prov:value</span> attribute associated with the corresponding value.
</p>
<pre class="codeexample">entity(ex:in, [ prov:value="abcd" ]) 
entity(ex:out, [ prov:value=4 ]) 
activity(ex:len, [ prov:type="string-length" ])
used(ex:len, ex:in)
wasGeneratedBy(ex:out, ex:len)
wasDerivedFrom(ex:out, ex:in)
</pre>
</div>



</div>




</div>

<div id="term-value" class="section">
<h4><span class="secno">5.7.3 </span>Value</h4>

<p><span class="glossary-ref">   A <dfn id="concept-value" title="value" class="internalDFN">value</dfn><sup><a class="internalDFN" href="#concept-value"><span class="diamond"> ◊</span></a></sup>  is a constant such as a string, number, time, qualified name, IRI, and encoded binary data, whose interpretation  is outside the scope of PROV. </span> Values can occur in attribute-value pairs. </p>

<p>Each kind of such values is called a <em>datatype</em>.
 Use of the following data types is <em class="rfc2119" title="recommended">recommended</em>. </p>
<ul>
<li> The RDF-compatible [<cite><a class="bibref" rel="biblioentry" href="#bib-RDF-CONCEPTS">RDF-CONCEPTS</a></cite>] types, including those taken from 
the set of XML Schema Datatypes [<cite><a class="bibref" rel="biblioentry" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>];</li>
<li> Qualified names introduced in this specification.</li>
</ul>
<p>
The normative definitions of these datatypes are provided by their respective specifications.  
</p>





<p id="conformance-to-rdf-datatypes"><b>Conformance to RDF Datatypes</b> As of the publication of this document, RDF 1.1 Concepts and Abstract Syntax [<cite><a class="bibref" rel="biblioentry" href="#bib-RDF-CONCEPTS11">RDF-CONCEPTS11</a></cite>] is not yet a <acronym title="World Wide Web Consortium">W3C</acronym> Recommendation (see <a href="http://www.w3.org/TR/rdf11-concepts/">http://www.w3.org/TR/rdf11-concepts/</a> for the latest version). 
Both the PROV Working Group and the RDF Working Group are confident that there will be only minor changes before it becomes a <acronym title="World Wide Web Consortium">W3C</acronym> Recommendation. In order to take advantage of the anticipated corrections and new features sooner, while also providing stability in case the specification does not advance as expected, conformance to PROV as it relates to RDF Datatypes is defined as follows:</p>

<ul>
<li>If RDF 1.1  Concepts and Abstract Syntax becomes a <acronym title="World Wide Web Consortium">W3C</acronym> Recommendation, all references in PROV to
RDF Concepts and Abstract Syntax will be normative references to the 1.1 Recommendation.
</li><li>Until that time, references in PROV to RDF Concepts and Abstract Syntax features operate as follows:
<ul>
<li> If RDF 1.0 defines the features, then the reference is normative to the 1.0 definition [<cite><a class="bibref" rel="biblioentry" href="#bib-RDF-CONCEPTS">RDF-CONCEPTS</a></cite>];</li>
<li>otherwise, the feature is optional in PROV and the reference is informative only.</li>
</ul>
</li></ul>
<p>This "change in normative reference" is effective as of the publication of RDF 1.1 as a <acronym title="World Wide Web Consortium">W3C</acronym> Recommendation. However, <acronym title="World Wide Web Consortium">W3C</acronym> expects to publish a new edition of PROV once RDF 1.1 becomes a Recommendation to update the reference explicitly.</p>







<div class="anexample" id="anexample-value"><div class="anexampleTitle">Example <span class="delete">54</span><span class="insert">55</span><sup><a class="internalDFN" href="#anexample-value"><span class="diamond"> ◊</span></a></sup></div>
<p>
The following examples respectively are the string "abc", the integer number 1, and the IRI "http://example.org/foo".
</p><pre class="codeexample">  "abc"
  "1" %% xsd:integer
  "http://example.org/foo" %% xsd:anyURI
</pre>
<p>The following example shows a value of type <span class="name">prov:QUALIFIED_NAME</span> (see
<span class="name"><a href="http://www.w3.org/TR/prov-n/#prod-QUALIFIED_NAME">prov:QUALIFIED_NAME</a></span> [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N">PROV-N</a></cite>]).
The prefix <span class="name">ex</span>  <em class="rfc2119" title="must">must</em> be bound to a <a href="#dfn-namespace" class="internalDFN">namespace</a> declared in a <a href="#dfn-namespaceDeclaration" class="internalDFN">namespace declaration</a>.</p>
<pre class="codeexample"> 
  "ex:value" %% prov:QUALIFIED_NAME
</pre>
Alternatively, the same value can be expressed using the following convenience notation.
<pre class="codeexample"> 
  'ex:value'
</pre>
</div>

<p>We note that PROV-DM <dfn title="time" id="dfn-time" class="internalDFN">time instants</dfn><sup><a class="internalDFN" href="#dfn-time"><span class="diamond"> ◊</span></a></sup> are defined according to xsd:dateTime [<cite><a class="bibref" rel="biblioentry" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>].</p> 


<div class="anexample" id="anexample-time"><div class="anexampleTitle">Example <span class="delete">55</span><span class="insert">56</span><sup><a class="internalDFN" href="#anexample-time"><span class="diamond"> ◊</span></a></sup></div>
<p>
In the following example, the generation time of entity <span class="name">e1</span> is expressed according to 
<a href="http://www.w3.org/TR/xmlschema11-2/#dateTime">xsd:dateTime</a>  [<cite><a class="bibref" rel="biblioentry" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>].</p>
<pre class="codeexample"> 
  wasGeneratedBy(e1,a1, 2001-10-26T21:32:52)
</pre>
</div>

</div>

<div id="term-NamespaceDeclaration" class="section">
<h4><span class="secno">5.7.4 </span>Namespace Declaration</h4>

<p>A PROV-DM <dfn id="dfn-namespace" class="internalDFN">namespace</dfn><sup><a class="internalDFN" href="#dfn-namespace"><span class="diamond"> ◊</span></a></sup> is identified by an IRI [<cite><a class="bibref" rel="biblioentry" href="#bib-IRI">IRI</a></cite>]. In PROV-DM, attributes, identifiers, and values with <a title="qualified name" href="#concept-qualifiedName" class="internalDFN">qualified names</a> as data type can be placed in a namespace using the mechanisms described in this specification. </p>


<p>A <dfn id="dfn-namespaceDeclaration" class="internalDFN">namespace declaration</dfn><sup><a class="internalDFN" href="#dfn-namespaceDeclaration"><span class="diamond"> ◊</span></a></sup> consists of a binding between a prefix and a namespace. Every qualified name with this prefix in the scope of this
declaration refers to this namespace. </p>

<p>A <dfn id="dfn-defaultNamespaceDeclaration" class="internalDFN">default namespace declaration</dfn><sup><a class="internalDFN" href="#dfn-defaultNamespaceDeclaration"><span class="diamond"> ◊</span></a></sup> consists of a namespace. Every un-prefixed qualified name
refers to default namespace declaration.</p>

<p>The <dfn title="prov-namespace" id="dfn-prov-namespace" class="internalDFN">PROV namespace</dfn><sup><a class="internalDFN" href="#dfn-prov-namespace"><span class="diamond"> ◊</span></a></sup> is identified by the URI <a href="http://www.w3.org/ns/prov#">http://www.w3.org/ns/prov#</a>.</p>

</div>

<div id="term-qualified-name" class="section">
<h4><span class="secno">5.7.5 </span>Qualified Name</h4>


<span class="glossary-ref">   A <dfn id="concept-qualifiedName" class="internalDFN">qualified name</dfn><sup><a class="internalDFN" href="#concept-qualifiedName"><span class="diamond"> ◊</span></a></sup> is a name subject to <a href="#dfn-namespace" class="internalDFN">namespace</a> interpretation. It consists of a <a href="#dfn-namespace" class="internalDFN">namespace</a>, denoted by an optional prefix, and a local name. </span>

<p>PROV-DM stipulates that a qualified name can be mapped into an IRI
 by concatenating the IRI associated with the prefix and the local part.</p>

<p>A qualified name's prefix is <em class="rfc2119" title="optional">optional</em>. If a prefix occurs in a
 qualified name, it refers to a <a href="#dfn-namespace" class="internalDFN">namespace</a> declared in a namespace declaration.  In the absence of prefix, the qualified name 
 refers to the <a title="default namespace declaration" href="#dfn-defaultNamespaceDeclaration" class="internalDFN">default namespace</a>.</p>

</div>

</div>
 


</div>




    <div id="extensibility-section" class="section"> 
<h2><span class="secno">6. </span>PROV-DM Extensibility Points</h2>


<p>The PROV data model provides extensibility points that allow designers to specialize it for specific applications or domains. We summarize these extensibility points here. </p>


<p>The <a title="prov-namespace" href="#dfn-prov-namespace" class="internalDFN">PROV namespace</a> declares a set of reserved attributes catering for extensibility: <a href="#term-attribute-type"><span class="name">prov:type</span></a>, <a href="#term-attribute-role"><span class="name">prov:role</span></a>, <a href="#term-attribute-location"><span class="name">prov:location</span></a>.</p>

<ul>
<li>Sub-types and sub-relations can be expressed by means of the reserved attribute 
<a href="#term-attribute-type"><span class="name">prov:type</span></a>.

<div class="anexample" id="anexample-sub-relation"><div class="anexampleTitle">Example <span class="delete">56</span><span class="insert">57</span><sup><a class="internalDFN" href="#anexample-sub-relation"><span class="diamond"> ◊</span></a></sup></div>
<p>
In the following example,  <span class="name">e2</span> is a translation of <span class="name">e1</span>,
expressed as a sub-type of derivation.
</p><pre class="codeexample"> 
  wasDerivedFrom(e2,e1, [prov:type='ex:Translation' ])
</pre>
</div>

<div class="anexample" id="anexample-sub-type"><div class="anexampleTitle">Example <span class="delete">57</span><span class="insert">58</span><sup><a class="internalDFN" href="#anexample-sub-type"><span class="diamond"> ◊</span></a></sup></div>
<p>
In the following example,  <span class="name">e</span> is described as a Car, a type of entity.
</p><pre class="codeexample"> 
  entity(e, [prov:type='ex:Car' ])
</pre>
</div>




</li>

<li>Application and domain specific roles can be expressed by means of the reserved attribute 
<a href="#term-attribute-role"><span class="name">prov:role</span></a>.

<div class="anexample" id="anexample-usage-with-role"><div class="anexampleTitle">Example <span class="delete">58</span><span class="insert">59</span><sup><a class="internalDFN" href="#anexample-usage-with-role"><span class="diamond"> ◊</span></a></sup></div>
<p>
In the following example,  two computers  <span class="name">ex:laptop4</span> and <span class="name">ex:desktop9</span> are used in different roles in a work activity.
</p><pre class="codeexample"> 
  activity(ex:work)
  entity(ex:laptop4)
  entity(ex:desktop9)
  used(ex:work, ex:laptop4,  [prov:role="day-to-day machine"])
  used(ex:work, ex:desktop9, [prov:role="backup machine"])
</pre>
</div>
</li>


<li> Attribute-value lists occur in all types and most relations of the data model.  Applications designers are free to introduce further application-specific attributes. Attributes for a given application can be distinguished by qualifying them with a prefix denoting a namespace
declared in a namespace declaration. New namespaces and associated prefixes can be declared, allowing attributes and names to be qualified. 
</li>



</ul>

<p>The PROV data model is designed to be application and technology independent, but implementers are welcome and encouraged to specialize PROV-DM to specific domains and applications.  To ensure interoperability, specializations of
the PROV data model that exploit the extensibility points summarized in this section <em class="rfc2119" title="must">must</em> preserve the semantics specified in this document and in [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-CONSTRAINTS">PROV-CONSTRAINTS</a></cite>]. </p>



    </div> 



<div id="valid-provenance" class="section">
<h2><span class="secno">7. </span>Creating Valid Provenance</h2>


<ul>

<li>This specification defines PROV-DM, a data model that allows 
descriptions of the people, institutions, entities, and activities,
involved in producing, influencing, or delivering a piece of data or a
thing to be expressed.  However, with this data model, it is also possible to compose
descriptions that would not make sense: for instance, one could
express that an entity was used before it was generated, or that the
activity that generated an entity began its existence after the entity
generation.  A set of constraints have been defined for PROV-DM and
can be found in a companion specification [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-CONSTRAINTS">PROV-CONSTRAINTS</a></cite>].
They <em class="rfc2119" title="should">should</em> be used by developers to compose provenance descriptions that are valid, and
by implementers of reasoning engines aiming to check whether provenance descriptions have problems. </li>



<li>
<p> The example of <a href="#prov-dm-example">section 3</a> contains identifiers such as <span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">tr:WD-prov-dm-20111215</a></span>, which denotes a specific version of a technical report.  On the other hand, a URI such as <a href="http://www.w3.org/TR/prov-dm/">http://www.w3.org/TR/prov-dm/</a> denotes the latest version of a document. One needs to ensure that provenance descriptions for the latter resource remain valid as the resource state changes. </p>

<p>To this end, PROV-DM allows asserters to describe "<em>partial states</em>" of entities by means of attributes and associated values. Some further constraints apply to the use of these attributes, since the values associated with them are expected to remain unchanged for some period of time. The constraints associated to attributes allow provenance descriptions to be refined, they can also be found in the companion specification [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-CONSTRAINTS">PROV-CONSTRAINTS</a></cite>].</p>


</li>


<li>
<p>The idea of bundling provenance descriptions is crucial to the PROV approach. Indeed, it allows multiple provenance perspectives to be provided for a given entity. It is also the mechanism by which provenance of provenance can be expressed.
Descriptions in bundles are expected to satisfy constraints specified in the companion specification [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-CONSTRAINTS">PROV-CONSTRAINTS</a></cite>].</p>
</li>


</ul>


</div>



<div class="appendix section" id="cross-references-to-prov-o-and-prov-n">
<h2><span class="secno">A. </span>Cross-References to PROV-O and PROV-N</h2>

<p>PROV-DM is a conceptual data model which can be serialized in various ways. 
The following table contains the PROV-O classes and properties, as described in [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-O">PROV-O</a></cite>], and PROV-N productions, as described in [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N">PROV-N</a></cite>] that correspond to PROV-DM concepts.</p> 

<div id="prov-dm-to-prov-o-and-prov-n-fig" style="text-align: left;">
<table class="thinborder" style="margin-left: auto; margin-right: auto;">
<caption id="prov-dm-to-prov-o-and-prov-n"><span>Table <span class="delete">8</span><span class="insert">9</span><sup><a class="internalDFN" href="#prov-dm-to-prov-o-and-prov-n"><span class="diamond"> ◊:</span></a></sup> </span>Cross-References to PROV-O and PROV-N</caption> 
<tbody><tr><td><a><b>PROV-DM</b></a></td><td><b>PROV-O</b></td><td><b>PROV-N</b></td><td><b>Component</b></td></tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>

<tr class="component1-color">
<td><a title="Entity" href="#concept-entity" class="internalDFN">Entity</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Entity">Entity</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-entityExpression">entityExpression</a></code>
</td><td rowspan="8"><a href="#component1">Component 1:<br> Entities/Activities</a></td></tr>

<tr class="component1-color">
<td><a title="Activity" href="#concept-activity" class="internalDFN">Activity</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Entity">Activity</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-activityExpression">activityExpression</a></code></td>
</tr>

<tr class="component1-color">
<td><a title="Generation" href="#concept-generation" class="internalDFN">Generation</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasGeneratedBy">wasGeneratedBy</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Generation">Generation</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-generationExpression">generationExpression</a></code></td>
</tr>

<tr class="component1-color">
<td><a title="Usage" href="#concept-usage" class="internalDFN">Usage</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#used">used</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Usage">Usage</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-usageExpression">usageExpression</a></code></td>
</tr>

<tr class="component1-color">
<td><a title="Communication" href="#concept-communication" class="internalDFN">Communication</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasInformedBy">wasInformedBy</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Communication">Communication</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-communicationExpression">communicationExpression</a></code></td>
</tr>

<tr class="component1-color">
<td><a title="Start" href="#concept-start" class="internalDFN">Start</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasStartedBy">wasStartedBy</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Start">Start</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-startExpression">startExpression</a></code></td>
</tr>

<tr class="component1-color">
<td><a title="End" href="#concept-end" class="internalDFN">End</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasEndedBy">wasEndedBy</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#End">End</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-endExpression">endExpression</a></code></td>
</tr>

<tr class="component1-color">
<td><a title="Invalidation" href="#concept-invalidation" class="internalDFN">Invalidation</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasInvalidatedBy">wasInvalidatedBy</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Invalidation">Invalidation</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-invalidationExpression">invalidationExpression</a></code></td>
</tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td>
</tr>



<tr class="component2-color">
<td><a title="Derivation" href="#concept-derivation" class="internalDFN">Derivation</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasDerivedFrom">wasDerivedFrom</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Derivation">Derivation</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-derivationExpression">derivationExpression</a></code></td>
<td rowspan="4"><a href="#component2">Component 2:<br> Derivations</a></td>
</tr>

<tr class="component2-color">
<td class="provType"><a title="Revision" href="#concept-revision" class="internalDFN">Revision</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasRevisionOf">wasRevisionOf</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Revision">Revision</a></td>
<td>type <code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#provn-type-Revision">Revision</a></code></td>
</tr>

<tr class="component2-color">
<td class="provType"><a title="Quotation" href="#concept-quotation" class="internalDFN">Quotation</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasQuotedFrom">wasQuotedFrom</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Quotation">Quotation</a></td>
<td>type <code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#provn-type-Quotation">Quotation</a></code></td>
</tr>

<tr class="component2-color"><td class="provType"><a title="Primary Source" href="#concept-primary-source" class="internalDFN">Primary Source</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#hadPrimarySource">hadPrimarySource</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Source">Source</a></td>
<td>type <code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#provn-type-Primary-Source">PrimarySource</a></code></td>
</tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td>
</tr>



<tr class="component3-color" style="border-collapse: collapse; ">
<td><a title="Agent" href="#concept-agent" class="internalDFN">Agent</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Agent">Agent</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-agentExpression">agentExpression</a></code></td>
<td rowspan="9"><a href="#component3">Component 3: <br>Agents, Responsibility, <br>Influence</a></td>
</tr>

<tr class="component3-color">
<td><a title="Attribution" href="#concept-attribution" class="internalDFN">Attribution</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasAttributedTo">wasAttributedTo</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Attribution">Attribution</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-attributionExpression">attributionExpression</a></code></td>
</tr>

<tr class="component3-color">
<td><a title="Association" href="#concept-activityAssociation" class="internalDFN">Association</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasAssociatedWith">wasAssociatedWith</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Association">Association</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-associationExpression">associationExpression</a></code></td>
</tr>

<tr class="component3-color">
<td><a title="Delegation" href="#concept-delegation" class="internalDFN">Delegation</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#actedOnBehalfOf">actedOnBehalfOf</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Delegation">Delegation</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-delegationExpression">delegationExpression</a></code></td>
</tr>

<tr class="component3-color">
<td><a title="Plan" href="#concept-plan" class="internalDFN">Plan</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Plan">Plan</a></td>
<td>type <code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#provn-type-Plan">Plan</a></code></td>
</tr>

<tr class="component3-color">
<td><a title="Person" href="#concept-person" class="internalDFN">Person</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Person">Person</a></td>
<td>type <code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#provn-type-Person">Person</a></code></td>
</tr>

<tr class="component3-color">
<td><a title="Organization" href="#concept-organization" class="internalDFN">Organization</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Organization">Organization</a></td>
<td>type <code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#provn-type-Organization">Organization</a></code></td>
</tr>

<tr class="component3-color">
<td><a title="software-agent" href="#concept-software-agent" class="internalDFN">SoftwareAgent</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#SoftwareAgent">SoftwareAgent</a></td>
<td>type <code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#provn-type-SoftwareAgent">SoftwareAgent</a></code></td>
</tr>

<tr class="component3-color">
<td><a title="Influence" href="#concept-influence" class="internalDFN">Influence</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#wasInfluencedBy">wasInfluencedBy</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Influence">Influence</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-influenceExpression">influenceExpression</a></code></td>
</tr>

<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td>
</tr>



<tr class="component4-color">
<td><a title="bundle" href="#concept-bundle" class="internalDFN">Bundle constructor</a></td>
<td> <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#description-bundle">bundle description</a> </td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-namedBundle">namedBundle</a></code></td>
<td rowspan="2"><a href="#component5">Component 4: <br> Bundles</a></td>
</tr>

<tr class="component4-color"><td class="provType"><a title="bundle" href="#concept-bundle" class="internalDFN">Bundle type</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Bundle">Bundle</a></td>
<td>type <code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#provn-type-Bundle">Bundle</a></code></td>
</tr>

<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td>
</tr>

<tr class="component5-color">
<td><a title="Alternate" href="#concept-alternate" class="internalDFN">Alternate</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#alternateOf">alternateOf</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-alternateExpression">alternateExpression</a></code></td>
<td rowspan="3"><a href="#component4">Component 5: <br> Alternate</a></td>
</tr>

<tr class="component5-color">
<td><a title="Specialization" href="#concept-specialization" class="internalDFN">Specialization</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#specializationOf">specializationOf</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-specializationExpression">specializationExpression</a></code></td>
</tr>

<tr class="component5-color">
<td><a title="Mention" href="#concept-mention" class="internalDFN">Mention</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#mentionOf">mentionOf</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#asInBundle">asInBundle</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-mentionExpression">mentionExpression</a></code></td>
</tr> 
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td>
</tr>



<tr class="component6-color">
<td><a title="Collection" href="#concept-collection" class="internalDFN">Collection</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#Collection">Collection</a></td>
<td>type <code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#provn-type-Collection">Collection</a></code></td>
<td rowspan="3"><a href="#component6">Component 6: <br> Collections</a></td>
</tr>

<tr class="component6-color">
<td><a title="Empty Collection" href="#concept-empty-collection" class="internalDFN">EmptyCollection</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#EmptyCollection">EmptyCollection</a></td>
<td>type <code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#provn-type-EmptyCollection">EmptyCollection</a></code></td>
</tr>

<tr class="component6-color">
<td><a title="Membership" href="#concept-membership" class="internalDFN">Membership</a></td>
<td><a href="http://dvcs.w3.org/hg/prov/raw-file/tip/ontology/last-call/2012-07-03-internal-review/Overview.html#hadMember">hadMember</a></td>
<td><code><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/WD-prov-n-20120724/Overview.html#prod-membershipExpression">membershipExpression</a></code></td>
</tr>
</tbody></table>
</div>


</div>

<div class="appendix section" id="changes-since-last-version"> 
      <h2><span class="secno"><span class="insert">B. </span></span><span class="insert">Changes since last version</span></h2> 
      <p> 

</p><ul>
<li> <a href="http://www.w3.org/2011/prov/track/issues/506"><span class="insert">ISSUE-506</span></a><span class="insert">: Updated role from author to contributor, in line with text.
</span></li><li> <a href="http://www.w3.org/2011/prov/track/issues/492"><span class="insert">ISSUE-492</span></a><span class="insert">: Fixed typos in  </span><a href="#anexample-invalidation3" class="anexample-ref"><span><span class="insert">Example 29</span></span></a><span class="insert">.
</span></li><li> <a href="http://www.w3.org/2011/prov/track/issues/508"><span class="insert">ISSUE-508</span></a><span class="insert">: Clarified the bold names and parameters  in  text preceding </span><a href="#prov-dm-types-and-relations-fig"><span class="insert">Table 5</span></a><span class="insert">.
</span></li><li> <a href="http://www.w3.org/2011/prov/track/issues/501"><span class="insert">ISSUE-501</span></a><span class="insert">: Put the example about driving a car to Boston in a box.
</span></li><li> <a href="http://www.w3.org/2011/prov/track/issues/450"><span class="insert">ISSUE-450</span></a><span class="insert">, </span><a href="http://www.w3.org/2011/prov/track/issues/514"><span class="insert">ISSUE-514</span></a><span class="insert">: added table with secondary objects in relations.
</span></li><li> <a href="http://www.w3.org/2011/prov/track/issues/512"><span class="insert">ISSUE-512</span></a><span class="insert">: simplied type of activity a2 to "fine paying"
</span></li></ul>

</div>


<div class="appendix section" id="acknowledgements"> 
      <h2><span class="secno"><span class="delete">B.</span><span class="insert">C.</span> </span>Acknowledgements</h2> 
      <p> 

This  document has been produced by the PROV Working Group, and its contents reflect extensive discussion within the Working Group as a whole. The editors extend special thanks to  Sandro Hawke (<acronym title="World Wide Web Consortium">W3C</acronym>/<acronym title="Massachusetts Institute of Technology">MIT</acronym>), Ivan Herman (<acronym title="World Wide Web Consortium">W3C</acronym>/<acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>), Tom Baker for their thorough reviews.
      </p> 

<p>
Members of the PROV Working Group at the time of publication of this document were:

Ilkay Altintas (Invited expert),
Reza B'Far (Oracle Corporation),
Khalid Belhajjame (University of Manchester),
James Cheney (University of Edinburgh, School of Informatics),
Sam Coppens (IBBT),
David Corsar (University of Aberdeen, Computing Science),
Stephen Cresswell (The National Archives),
Tom De Nies (IBBT),
Helena Deus (DERI Galway at the National University of Ireland, Galway, Ireland),
Simon Dobson (Invited expert),
Martin Doerr (Foundation for Research and Technology - Hellas(FORTH)),
Kai Eckert (Invited expert),
Jean-Pierre EVAIN (European Broadcasting Union, EBU-UER),
James Frew (Invited expert),
Irini Fundulaki (Foundation for Research and Technology - Hellas(FORTH)),
Daniel Garijo (Universidad Politécnica de Madrid),
Yolanda Gil (Invited expert),
Ryan Golden (Oracle Corporation),
Paul Groth (Vrije Universiteit),
Olaf Hartig (Invited expert),
David Hau (National Cancer Institute, NCI),
Sandro Hawke (<acronym title="World Wide Web Consortium">W3C</acronym>/<acronym title="Massachusetts Institute of Technology">MIT</acronym>),
Jörn Hees (German Research Center for Artificial Intelligence (DFKI) Gmbh),
Ivan Herman, (<acronym title="World Wide Web Consortium">W3C</acronym>/<acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>),
Ralph Hodgson (TopQuadrant),
Hook Hua (Invited expert),
Trung Dong Huynh (University of Southampton),
Graham Klyne (University of Oxford),
Michael Lang (Revelytix, Inc.),
Timothy Lebo (Rensselaer Polytechnic Institute),
James McCusker (Rensselaer Polytechnic Institute),
Deborah McGuinness (Rensselaer Polytechnic Institute),
Simon Miles (Invited expert),
Paolo Missier (School of Computing Science, Newcastle university),
Luc Moreau (University of Southampton),
James Myers (Rensselaer Polytechnic Institute),
Vinh Nguyen (Wright State University),
Edoardo Pignotti (University of Aberdeen, Computing Science),
Paulo da Silva Pinheiro (Rensselaer Polytechnic Institute),
Carl Reed (Open Geospatial Consortium),
Adam Retter (Invited Expert),
Christine Runnegar (Invited expert),
Satya Sahoo (Invited expert),
David Schaengold (Revelytix, Inc.),
Daniel Schutzer (FSTC, Financial Services Technology Consortium),
Yogesh Simmhan (Invited expert),
Stian Soiland-Reyes (University of Manchester),
Eric Stephan (Pacific Northwest National Laboratory),
Linda Stewart (The National Archives),
Ed Summers (Library of Congress),
Maria Theodoridou (Foundation for Research and Technology - Hellas(FORTH)),
Ted Thibodeau (OpenLink Software Inc.),
Curt Tilmes (National Aeronautics and Space Administration),
Craig Trim (IBM Corporation),
Stephan Zednik (Rensselaer Polytechnic Institute),
Jun Zhao (University of Oxford),
Yuting Zhao (University of Aberdeen, Computing Science).
</p>
    </div> 


 

<div id="references" class="appendix section"><h2><span class="secno"><span class="delete">C.</span><span class="insert">D.</span> </span>References</h2><div id="normative-references" class="section"><h3><span class="secno"><span class="delete">C.1</span><span class="insert">D.1</span> </span>Normative references</h3><dl class="bibliography"><dt id="bib-IRI">[IRI]</dt><dd>M. Duerst, M. Suignard. <a href="http://www.ietf.org/rfc/rfc3987.txt"><cite>Internationalized Resource Identifiers (IRI).</cite></a> January 2005. Internet RFC 3987. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3987.txt</a> 
</dd><dt id="bib-RDF-CONCEPTS">[RDF-CONCEPTS]</dt><dd>Graham Klyne; Jeremy J. Carroll. <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210"><cite>Resource Description Framework (RDF): Concepts and Abstract Syntax.</cite></a> 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210">http://www.w3.org/TR/2004/REC-rdf-concepts-20040210</a> 
</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119.  URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a> 
</dd><dt id="bib-UML">[UML]</dt><dd>Object Management Group <a href="http://www.omg.org/spec/UML/2.0/Superstructure/PDF/"><cite>Unified Modeling Language: Superstructure</cite></a>. version 2.0, 2005 URL: <a href="http://www.omg.org/spec/UML/2.0/Superstructure/PDF/">http://www.omg.org/spec/UML/2.0/Superstructure/PDF/</a>
</dd><dt id="bib-URI">[URI]</dt><dd>T. Berners-Lee; R. Fielding; L. Masinter. <a href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform Resource Identifiers (URI): generic syntax.</cite></a> January 2005. Internet RFC 3986. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a> 
</dd><dt id="bib-XMLSCHEMA11-2">[XMLSCHEMA11-2]</dt><dd>Henry S. Thompson; et al. <a href="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/"><cite>W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes.</cite></a> 5 April 2012. W3C Recommendation URL: <a href="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/">http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/</a> 
</dd></dl></div><div id="informative-references" class="section"><h3><span class="secno"><span class="delete">C.2</span><span class="insert">D.2</span> </span>Informative references</h3><dl class="bibliography"><dt id="bib-Logic">[Logic]</dt><dd>W. E. Johnson <a href="http://www.ditext.com/johnson/intro-3.html"><cite>Logic: Part III</cite></a>.1924. URL: <a href="http://www.ditext.com/johnson/intro-3.html">http://www.ditext.com/johnson/intro-3.html</a>
</dd><dt id="bib-Mappings">[Mappings]</dt><dd>Satya Sahoo and Paul Groth and Olaf Hartig and Simon Miles and Sam Coppens and James Myers and Yolanda Gil and Luc Moreau and Jun Zhao and Michael Panzer and Daniel Garijo <a href="http://www.w3.org/2005/Incubator/prov/wiki/Provenance_Vocabulary_Mappings"><cite>Provenance Vocabulary Mappings</cite></a>. August 2010 URL: <a href="http://www.w3.org/2005/Incubator/prov/wiki/Provenance_Vocabulary_Mappings">http://www.w3.org/2005/Incubator/prov/wiki/Provenance_Vocabulary_Mappings</a>
</dd><dt id="bib-PROV-AQ">[PROV-AQ]</dt><dd>Graham Klyne and Paul Groth (eds.) Luc Moreau, Olaf Hartig, Yogesh Simmhan, James Meyers, Timothy Lebo, Khalid Belhajjame, and Simon Miles <a href="http://www.w3.org/TR/prov-aq/"><cite>Provenance Access and Query</cite></a>. 2011, Working Draft. URL: <a href="http://www.w3.org/TR/prov-aq/">http://www.w3.org/TR/prov-aq/</a>
</dd><dt id="bib-PROV-CONSTRAINTS">[PROV-CONSTRAINTS]</dt><dd>James Cheney, Paolo Missier, and Luc Moreau (eds.) <a href="http://www.w3.org/TR/prov-constraints/"><cite>Constraints of the PROV Data Model</cite></a>. 2011, Working Draft. URL: <a href="http://www.w3.org/TR/prov-constraints/">http://www.w3.org/TR/prov-constraints/</a>
</dd><dt id="bib-PROV-N">[PROV-N]</dt><dd>Luc Moreau and Paolo Missier (eds.) James Cheney, Stian Soiland-Reyes <a href="http://www.w3.org/TR/prov-n/"><cite>PROV-N: The Provenance Notation</cite></a>. 2011, Working Draft. URL: <a href="http://www.w3.org/TR/prov-n/">http://www.w3.org/TR/prov-n/</a>
</dd><dt id="bib-PROV-O">[PROV-O]</dt><dd>Timothy Lebo, Satya Sahoo and Deborah McGuinness (eds.) Khalid Belhajjame, James Cheney, David Corsar, Daniel Garijo, Stian Soiland-Reyes, and Stephan Zednik <a href="http://www.w3.org/TR/prov-o/"><cite>Provenance Formal Model</cite></a>. 2011, Working Draft. URL: <a href="http://www.w3.org/TR/prov-o/">http://www.w3.org/TR/prov-o/</a>
</dd><dt id="bib-PROV-PRIMER">[PROV-PRIMER]</dt><dd>Yolanda Gil and Simon Miles (eds.) Khalid Belhajjame, Helena Deus, Daniel Garijo, Graham Klyne, Paolo Missier, Stian Soiland-Reyes, and Stephan Zednik <a href="http://www.w3.org/TR/prov-primer/"><cite>Prov Model Primer</cite></a>. 2011, Working Draft. URL: <a href="http://www.w3.org/TR/prov-primer/">http://www.w3.org/TR/prov-primer/</a>
</dd><dt id="bib-RDF-CONCEPTS11">[RDF-CONCEPTS11]</dt><dd>Richard Cyganiak and David Wood (eds.) RDF 1.1 Concepts and Abstract Syntax <a href="http://www.w3.org/TR/rdf11-concepts/"><cite>RDF 1.1 Concepts and Abstract Syntax</cite></a>. URL: <a href="http://www.w3.org/TR/rdf11-concepts/">http://www.w3.org/TR/rdf11-concepts/</a>
</dd></dl></div></div></body></html>