prov-n qualified name
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Mon, 26 Mar 2012 21:10:59 +0100
changeset 2004 a9b4227912f0
parent 2001 656785e1ad4a
child 2005 ea37339508e0
prov-n qualified name
model/prov-n.html
--- a/model/prov-n.html	Mon Mar 26 14:46:00 2012 +0100
+++ b/model/prov-n.html	Mon Mar 26 21:10:59 2012 +0100
@@ -822,10 +822,10 @@
 
 <div class="anexample">
 <pre class="codeexample">
-wasAttributedTo(e,ag)
-wasAttributedTo(e,ag,[ex:license="cc:attributionURL" %% "xsd:QName"])
-wasAttributedTo(id,e,ag,[ex:license="cc:attributionURL" %% "xsd:QName"])
-wasAttributedTo(-,e,ag,[ex:license="cc:attributionURL" %% "xsd:QName"])
+wasAttributedTo(e, ag)
+wasAttributedTo(e, ag, [ex:license="cc:attributionURL" %% "xsd:QName"])
+wasAttributedTo(id, e, ag, [ex:license="cc:attributionURL" %% "xsd:QName"])
+wasAttributedTo(-,  e, ag, [ex:license="cc:attributionURL" %% "xsd:QName"])
 </pre>
 </div>
 
@@ -1445,7 +1445,25 @@
  <span class="name">default</span> <span class="nonterminal">IRI</span> <br/>
 </div>
 
-<p>In PROV-N, the prefix  <span class="name">prov</span> is reserved and denotes the PROV namespace.</p>
+<p>In PROV-N, the prefix  <span class="name">prov</span> is reserved and denotes the PROV namespace;
+the prefix  <span class="name">xsd</span> is also reserved and denotes the XML Schema namespace 
+ <span class="name">http://www.w3.org/2001/XMLSchema</span>.
+</p>
+
+
+<div class="anexample" id="anexample-namespace">
+The following example declares two namespaces.
+<pre class="codeexample">
+container
+  prefix ex1 <http://example.org/1/>
+  prefix ex2 <http://example.org/2/>
+...
+end
+</pre>
+</div>
+
+<p>A PROV-N document MUST not redeclare namespaces <span class="name">prov</span> and <span class="name">xsd</span>.</p>
+
 </section>
 
 
@@ -1464,17 +1482,57 @@
 <span class="nonterminal">accIdentifier</span>::=  <span class="nonterminal">identifier</span> <em>(intended to denote an account)</em>
 <br/>
 <br/>
-<span class="nonterminal">qualifiedName</span> &nbsp;::= <span class="nonterminal">prefixedName</span> | <span class="nonterminal">unprefixedName</span><br/>
-<span class="nonterminal">prefixedName</span> &nbsp;::= <span class="nonterminal">prefix</span> <span class="name">:</span> <span class="nonterminal">localPart</span><br/>
-<span class="nonterminal">unprefixedName</span> &nbsp;::= <span class="nonterminal">localPart</span><br/>
-<span class="nonterminal">prefix</span> &nbsp;::= <em>a name without colon compatible with the <a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NC_NAME</a> production
-[[!XML-NAMES]]</em><br/>
-<span class="nonterminal">localPart</span> &nbsp;::= <em>a name without colon compatible with the <a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NC_NAME</a> production
-[[!XML-NAMES]]</em>
+<span class="nonterminal">qualifiedName</span> &nbsp;::= 
+<span class="optional">
+<span class="nonterminal">prefix</span> <span class="name">:</span>
+</span> <span class="nonterminal">localPart</span>  | <span class="name">:</span> <span class="nonterminal">localPart</span><br/>
+<span class="nonterminal">prefix</span> &nbsp;::= <em>a name without colon compatible with the <a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NC_NAME</a> production [[!XML-NAMES]]</em><br/>
+<span class="nonterminal">localPart</span> &nbsp;::= <em>a name compatible with the
+<a href="http://www.w3.org/TR/rdfa-core/#P_reference">reference</a> production [[!RDFA-CORE]]</em>
 </div>
 
 
-<div class="note">Note that XML NC_NAME don't allow local identifiers to start with a number.  Instead, should we use the productions used in SPARQL or TURTLE?</div>
+<p>
+A PROV <dfn id="dfn-qualifiedName">qualified name</dfn> is a name subject to <a>namespace</a> interpretation. It consists of a <a>namespace</a>, denoted by an optional prefix, and a local name.
+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>A qualified name's prefix is OPTIONAL. If a prefix occurs in a
+ qualified name, it refers to a <a>namespace</a> declared in a namespace declaration.  In the absence of prefix, the qualified name 
+ refers to the <a title="default namespace declaration">default namespace</a>.</p>
+
+<p>PROV qualified names have a more permissive syntax then XML QNames [[!XML-NAMES]] since they allow any syntax for its local part such that the concatenation with the namespace results in a valid IRI [[!IRI]]. </p>
+
+<div class="anexample" id="anexample-qualified-name">
+Examples of articles on the BBC web site seen as  entities.
+<pre class="codeexample">
+container
+  prefix bbc <http://www.bbc.co.uk/>
+  prefix bbcNews <http://www.bbc.co.uk/news/>
+
+  entity(bbc:)                             // bbc site itself
+  entity(bbc:news/)                        // bbc news
+  entity(bbc:news/world-asia-17507976)     // a given news article
+
+  entity(bbcNews:)                         // an alternative way of referring to the bbc news site
+
+end
+</pre>
+</div>
+
+<div class="anexample" id="anexample-qualified-name">
+Examples of entities with declared and default namespace.
+<pre class="codeexample">
+container
+  prefix ex <http://example.org/1/>
+  default <http://example.org/2/>
+
+  entity(ex:a)     //  corresponds to IRI http://example.org/1/a
+  entity(ex:a/)    //  corresponds to IRI http://example.org/1/a/
+  entity(ex:a/b)   //  corresponds to IRI http://example.org/1/a/b
+  entity(b)        //  corresponds to IRI http://example.org/2/b
+end
+</pre>
+</div>
 
 </section>
 
@@ -1494,7 +1552,6 @@
 <li>  <span class="name">prov:label</span>
 <li>  <span class="name">prov:location</span>
 <li>  <span class="name">prov:role</span>
-<li>  <span class="name">prov:steps</span>
 <li>  <span class="name">prov:type</span>
 </ol>
 
@@ -1513,11 +1570,11 @@
 <div class='grammar'>
 <span class="nonterminal">Literal</span> &nbsp;::= <span class="nonterminal">typedLiteral</span> | <span class="nonterminal">convenienceNotation</span> <br/>
 <span class="nonterminal">typedLiteral</span> ::= <span class="nonterminal">quotedString</span> <span class="name">%%</span> <span class="nonterminal">datatype</span><br/>
-<span class="nonterminal">datatype</span> ::= <span class="nonterminal">qualifiedName</span><br/>
+<span class="nonterminal">datatype</span> ::= <span class="nonterminal">qualifiedName</span> <em> listed in Table <a href="#permitted-datatypes">permitted-datatypes</a><br/>
 <span class="nonterminal">convenienceNotation</span> &nbsp;::= <span class="nonterminal">stringLiteral</span> | <span class="nonterminal">intLiteral</span><br/>
 <span class="nonterminal">stringLiteral</span> ::= <span class="nonterminal">quotedString</span><br/>
-<span class="nonterminal">quotedString</span> ::= <em>a finite sequence of characters in which &quot; (U+22) and \ (U+5C) occur only in pairs of the form \&quot; (U+5C, U+22) and \\ (U+5C,
-U+5C), enclosed in a pair of &quot; (U+22) characters</em><br/>
+<span class="nonterminal">quotedString</span> ::= <em>a finite sequence of characters in which &quot; (#x22) and \ (#x5C) occur only in pairs of the form \&quot; (#x5C, #x22) and \\ (#x5C,
+#x5C), enclosed in a pair of &quot; (#x22) characters</em><br/>
 <span class="nonterminal">intLiteral</span> ::= <em>a finite-length sequence of decimal digits (#x30-#x39) with an optional leading negative sign (-)</em>
 </div>
 
@@ -1528,6 +1585,26 @@
 
 <p> In particular, a PROV-DM Literal may be an IRI-typed string (with datatype <span class="name">xsd:anyURI</span>);  such IRI has no specific interpretation in the context of PROV-DM.</p>
 
+<table border="1" style="margin-left: auto; margin-right: auto;">
+<caption id="permitted-datatypes">Permitted datatypes</caption>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#decimal">xsd:decimal</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#double">xsd:double</a></td>  <td><a href="http://www.w3.org/TR/xmlschema-2/#dateTime">xsd:dateTime</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#integer">xsd:integer</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#float">xsd:float</a></td>  </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger">xsd:nonNegativeInteger</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</a></td> <td><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-XMLLiteral">rdf:XMLLiteral</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#nonPositiveInteger">xsd:nonPositiveInteger</a></td><td><a href="http://www.w3.org/TR/xmlschema-2/#normalizedString">xsd:normalizedString</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#positiveInteger">xsd:positiveInteger</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#token">xsd:token</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#negativeInteger">xsd:negativeInteger</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#language">xsd:language</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#long">xsd:long</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#Name">xsd:Name</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#int">xsd:int</a></td>  <td><a href="http://www.w3.org/TR/xmlschema-2/#NCName">xsd:NCName</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#short">xsd:short</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#NMTOKEN">xsd:NMTOKEN</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#byte">xsd:byte</a></td>  <td><a href="http://www.w3.org/TR/xmlschema-2/#boolean">xsd:boolean</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#unsignedLong">xsd:unsignedLong</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#hexBinary">xsd:hexBinary</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#unsignedInt">xsd:unsignedInt</a></td>  <td><a href="http://www.w3.org/TR/xmlschema-2/#base64Binary">xsd:base64Binary</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#unsignedShort">xsd:unsignedShort</a></td><td><a href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:anyURI</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#unsignedByte">xsd:unsignedByte</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:QName</a></td></tr>
+</table>
+
+
+
 <section id="expression-types">
 <h4>Reserved Type Values</h4>
 
@@ -1550,6 +1627,13 @@
 
 <p><dfn id="dfn-time">Time instants</dfn> are defined according to xsd:dateTime [[!XMLSCHEMA-2]].</p> 
 
+<div class="anexample" id="anexample-time">
+The third argument is this usage expression is a time instance, namely 4pm on 2011-11-16.
+<pre class="codeexample">
+used(ex:act2, ar3:0111, 2011-11-16T16:00:00)
+</pre>
+</div>
+