More editorial changes to PROV-Dictionary + dummy grammar file
authorTom De Nies <tom.denies@ugent.be>
Tue, 29 Jan 2013 14:42:39 +0100
changeset 5449 853a34af69c1
parent 5448 fe262e3b4b85
child 5450 ddbee32cda5f
More editorial changes to PROV-Dictionary + dummy grammar file
dictionary/prov-dictionary-grammar.txt
dictionary/prov-dictionary.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dictionary/prov-dictionary-grammar.txt	Tue Jan 29 14:42:39 2013 +0100
@@ -0,0 +1,145 @@
+
+
+
+
+[1]  document                       ::= "document" (namespaceDeclarations)? (expression)* (bundle)* "endDocument"
+
+[2]                                 ::= ( entityExpression | activityExpression | generationExpression | usageExpression | startExpression | endExpression | invalidationExpression | communicationExpression | agentExpression | 
+     expression                  =     associationExpression | attributionExpression | delegationExpression | derivationExpression | influenceExpression | alternateExpression | specializationExpression | membershipExpression | 
+                                       extensibilityExpression )
+[3]  entityExpression               ::= "entity" "(" identifier optionalAttributeValuePairs ")"
+
+[4]  optionalAttributeValuePairs    ::= ( "," "[" attributeValuePairs "]" )?
+
+[5]  attributeValuePairs            ::= ( | attributeValuePair ( "," attributeValuePair )* )
+
+[6]  attributeValuePair             ::= attribute "=" literal
+
+[7]  activityExpression             ::= "activity" "(" identifier ( "," timeOrMarker "," timeOrMarker )? optionalAttributeValuePairs ")"
+
+[8]  timeOrMarker                   ::= ( time | "-" )
+
+[9]  generationExpression           ::= "wasGeneratedBy" "(" optionalIdentifier eIdentifier ( "," aIdentifierOrMarker "," timeOrMarker )? optionalAttributeValuePairs ")"
+
+[10] optionalIdentifier             ::= ( identifierOrMarker ";" )?
+
+[11] identifierOrMarker             ::= ( identifier | "-" )
+
+[12] usageExpression                ::= "used" "(" optionalIdentifier aIdentifier ( "," eIdentifierOrMarker "," timeOrMarker )? optionalAttributeValuePairs ")"
+
+[13] communicationExpression        ::= "wasInformedBy" "(" optionalIdentifier aIdentifier "," aIdentifier optionalAttributeValuePairs ")"
+
+[14] startExpression                ::= "wasStartedBy" "(" optionalIdentifier aIdentifier ( "," eIdentifierOrMarker "," aIdentifierOrMarker "," timeOrMarker )? optionalAttributeValuePairs ")"
+
+[15] endExpression                  ::= "wasEndedBy" "(" optionalIdentifier aIdentifier ( "," eIdentifierOrMarker "," aIdentifierOrMarker "," timeOrMarker )? optionalAttributeValuePairs ")"
+
+[16] invalidationExpression         ::= "wasInvalidatedBy" "(" optionalIdentifier eIdentifier ( "," aIdentifierOrMarker "," timeOrMarker )? optionalAttributeValuePairs ")"
+
+[17] derivationExpression           ::= "wasDerivedFrom" "(" optionalIdentifier eIdentifier "," eIdentifier ( "," aIdentifierOrMarker "," gIdentifierOrMarker "," uIdentifierOrMarker )? optionalAttributeValuePairs ")"
+
+[18] agentExpression                ::= "agent" "(" identifier optionalAttributeValuePairs ")"
+
+[19] attributionExpression          ::= "wasAttributedTo" "(" optionalIdentifier eIdentifier "," agIdentifier optionalAttributeValuePairs ")"
+
+[20] associationExpression          ::= "wasAssociatedWith" "(" optionalIdentifier aIdentifier ( "," agIdentifierOrMarker "," eIdentifierOrMarker )? optionalAttributeValuePairs ")"
+
+[21] delegationExpression           ::= "actedOnBehalfOf" "(" optionalIdentifier agIdentifier "," agIdentifier ( "," aIdentifierOrMarker )? optionalAttributeValuePairs ")"
+
+[22] influenceExpression            ::= "wasInfluencedBy" "(" optionalIdentifier eIdentifier "," eIdentifier optionalAttributeValuePairs ")"
+
+[23] bundle                         ::= "bundle" identifier (namespaceDeclarations)? (expression)* "endBundle"
+
+[24] alternateExpression            ::= "alternateOf" "(" eIdentifier "," eIdentifier ")"
+
+[25] specializationExpression       ::= "specializationOf" "(" eIdentifier "," eIdentifier ")"
+
+[26] membershipExpression           ::= "hadMember" "(" cIdentifier "," eIdentifier ")"
+
+[27] eIdentifier                    ::= identifier
+
+[28] aIdentifier                    ::= identifier
+
+[29] agIdentifier                   ::= identifier
+
+[30] gIdentifier                    ::= identifier
+
+[31] uIdentifier                    ::= identifier
+
+[32] cIdentifier                    ::= identifier
+
+[33] eIdentifierOrMarker            ::= ( eIdentifier | "-" )
+
+[34] aIdentifierOrMarker            ::= ( aIdentifier | "-" )
+
+[35] agIdentifierOrMarker           ::= ( agIdentifier | "-" )
+
+[36] gIdentifierOrMarker            ::= ( gIdentifier | "-" )
+
+[37] uIdentifierOrMarker            ::= ( uIdentifier | "-" )
+
+[38] identifier                     ::= QUALIFIED_NAME
+
+[39] attribute                      ::= QUALIFIED_NAME
+
+[40] literal                        ::= typedLiteral
+  | convenienceNotation
+[41] typedLiteral                   ::= STRING_LITERAL "%%" datatype
+
+[42] datatype                       ::= QUALIFIED_NAME
+
+[43]                                ::= STRING_LITERAL (LANGTAG)?
+     convenienceNotation         =     | INT_LITERAL
+                                       | QUALIFIED_NAME_LITERAL
+[44] time                         ::= DATETIME
+
+[45] namespaceDeclarations          ::= ( defaultNamespaceDeclaration | namespaceDeclaration ) (namespaceDeclaration)*
+
+[46] namespaceDeclaration           ::= "prefix" PN_PREFIX namespace
+
+[47] defaultNamespaceDeclaration    ::= "default" IRI_REF
+
+[48] namespace                      ::= IRI_REF
+
+[49] extensibilityExpression        ::= QUALIFIED_NAME "(" optionalIdentifier extensibilityArgument ( "," extensibilityArgument )* optionalAttributeValuePairs ")"
+
+[50] extensibilityArgument          ::= ( identifierOrMarker | literal | time | extensibilityExpression | extensibilityTuple )
+
+[51] extensibilityTuple             ::= "{" extensibilityArgument ( "," extensibilityArgument )* "}"
+  | "(" extensibilityArgument ( "," extensibilityArgument )* ")"
+[52] <QUALIFIED_NAME>               ::= ( PN_PREFIX ":" )? PN_LOCAL
+  | PN_PREFIX ":"
+[53] <PN_LOCAL>                     ::= ( PN_CHARS_U | [0-9] | PN_CHARS_OTHERS ) ( (( PN_CHARS | "." | PN_CHARS_OTHERS )* ( PN_CHARS | PN_CHARS_OTHERS ) ))?
+
+                                       "/"
+                                       | "@"
+                                       | "~"
+                                       | "&"
+                                       | "+"
+[54] <PN_CHARS_OTHERS>              ::= | "*"
+  | "?"
+                                       | "#"
+                                       | "$"
+                                       | "!"
+                                       | PERCENT
+                                       | PN_CHARS_ESC
+[55] <PN_CHARS_ESC>                 ::= "\\" ( "=" | "'" | "(" | ")" | "," | "-" | ":" | ";" | "[" | "]" | "." )
+
+[56] <PERCENT>                      ::= "%" HEX HEX
+
+[57]                                ::= [0-9]
+     <HEX>                       =     | [A-F]
+                                       | [a-f]
+[58] <STRING_LITERAL>               ::= STRING_LITERAL2
+  | STRING_LITERAL_LONG2
+[59] <PREFX>                        ::= PN_PREFIX
+
+[60] <INT_LITERAL>                  ::= ("-")? (DIGIT)+
+
+[61] <QUALIFIED_NAME_LITERAL>       ::= "'" QUALIFIED_NAME "'"
+
+[62] <DIGIT>                        ::= [0-9]
+
+[63] <DATETIME>                     ::= DIGIT DIGIT DIGIT DIGIT "-" DIGIT DIGIT "-" DIGIT DIGIT "T" DIGIT DIGIT ":" DIGIT DIGIT ":" DIGIT DIGIT ( "." DIGIT (( DIGIT (DIGIT)? )? ))? (( "Z" | TIMEZONEOFFSET ))?
+
+[64] <TIMEZONEOFFSET>               ::= ( "+" | "-" ) DIGIT DIGIT ":" DIGIT DIGIT
+
--- a/dictionary/prov-dictionary.html	Tue Jan 29 13:24:00 2013 +0100
+++ b/dictionary/prov-dictionary.html	Tue Jan 29 14:42:39 2013 +0100
@@ -997,6 +997,9 @@
 <h2>PROV-N Notation of Dictionary Concepts</h2>
 The notation used for dictionaries in this document extends the standard PROV-N according to the principles described in <a href="http://www.w3.org/TR/prov-n/#extensibility">the PROV-N extensibility chapter</a>.
 However, because dictionaries are defined in the same namespace as the rest of PROV-N, the terms in this document do not have a non-empty prefix. For the remainder of this document, we will assume that the default namespace http://www.w3.org/ns/prov# is used, and thus, no prefix is specified for the terms associated with dictionaries.
+<div class="note">Note that the use of a non-empty prefix for extensions of PROV-N is technically not valid. The terms used in this document can be made valid by the addition of a prefix "prov:" to all PROV-Dictionary terms. However, this would greatly reduce the readability of this document.
+  The Working Group is currently discussing how to address this issue before the next Working Draft of this document.</div>
+
 <section id="expression-dictionary">
   <h3>Dictionary and EmptyDictionary Expression</h3>
     PROV-Dictionary provides no dedicated syntax for Collection and EmptyCollection. Dictionaries are declared in <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#expression-collection">the same way</a> as Collections. A Dictionary or an EmptyDictionary MUST be expressed as an
@@ -1020,7 +1023,7 @@
  <span class="name">(</span>
 <span class="nonterminal">dIdentifier</span>
  <span class="name">,</span>
-  <span class="nonterminal">entity</span>
+  <span class="nonterminal">eIdentifier</span>
  <span class="name">,</span>
   <span class="nonterminal">key</span>
   <span class="name">)</span>
@@ -1188,20 +1191,20 @@
 	For the notation of dictionaries, we used some new non-terminals. We provide their production rules here.
 	
 <div class="grammar">
-	<p id="prod-dIdentifier"><span class="nonterminal">dIdentifier</span>&nbsp;::=  
-	<span class="name"><a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-identifier" class="grammarRef">identifier</a></span> </p>
+<p id="prod-dIdentifier"><span class="nonterminal">dIdentifier</span>&nbsp;::=  
+  <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-identifier" class="nonterminal">identifier</a> </p>
 	
-	<p id="prod-key"><span class="nonterminal">key</span>&nbsp;::=  
-	<span class="name"><a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-literal" class="grammarRef">literal</a></span> </p>
+<p id="prod-key"><span class="nonterminal">key</span>&nbsp;::=  
+  <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-literal" class="nonterminal">literal</a> </p>
 	
 	<p id="prod-keyValuePairs"><span class="nonterminal">keyValuePairs</span>&nbsp;::=  
-	<span class="name"><a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-keyValuePair" class="grammarRef">keyValuePair</a> ( "," <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-keyValuePair" class="grammarRef">keyValuePair</a> )*</span> </p>
+	<a href="#prod-keyValuePair" class="nonterminal">keyValuePair</a> <span class="star"><span class="name">,</span> <a href="#prod-keyValuePair" class="nonterminal">keyValuePair</a></span> </p>
 	
 	<p id="prod-keyValuePair"><span class="nonterminal">keyValuePair</span>&nbsp;::=  
-	<span class="name">( <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-key" class="grammarRef">key</a> , <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-eIdentifier" class="grammarRef">eIdentifier</a> )</span> </p>
+	<span class="name">(</span> <a href="#prod-key" class="nonterminal">key</a> <span class="name">,</span> <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-eIdentifier" class="nonterminal">eIdentifier</a> <span class="name">)</span> </p>
 	
 	<p id="prod-keySet"><span class="nonterminal">keySet</span>&nbsp;::=  
-	<span class="name"><a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-key" class="grammarRef">key</a> ( "," <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/#prod-key" class="grammarRef">key</a> )*</span> </p>
+	<a href="#prod-key" class="nonterminal">key</a> <span class="star"><span class="name">,</span> <a href="#prod-key" class="nonterminal">key</a></span> </p>
 
 </div>
 </section> <!-- other -->
@@ -1213,7 +1216,7 @@
 <p>In this section, the ontological definition of <code>prov:Dictionary</code> is given, in order to extend [[PROV-O]] with dictionaries. For more information on the terminology, syntax and conventions used in this section, we refer to [[PROV-O]]</p>
 <p>The classes and properties defined in this document will be included in the default namespace of PROV.
   Users of the ontology have the option of importing <code>&lt;http://www.w3.org/ns/prov#&gt;</code>, which includes all extensions, including PROV-Dictionary, or if they wish to have only [[PROV-O]] terms, they can import <code>&lt;http://www.w3.org/ns/prov-o#&gt;</code>. Similarly, <code>&lt;http://www.w3.org/ns/prov-dictionary#&gt;</code> holds only the PROV-Dictionary terms.
-The owl-file of PROV-Dictionary is available for download <a href="https://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary.owl">here</a>. (Note that this file is unfinished at the time of this working draft, and may be subject to change.)</p>
+The [<a href="https://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary.owl">OWL file for PROV-Dictionary</a>] is available for download. (Note that this file is unfinished at the time of this working draft, and may be subject to change.)</p>
   
   <p> A <code><a class="qname"
 	href='#Dictionary'>prov:Dictionary</a></code> is a <code
@@ -2439,7 +2442,8 @@
 <section id="dictionary-xml-schema"> 
 <h2>PROV-XML Representation of Dictionary</h2>
 This section details how to describe dictionaries with
-the [[PROV-XML]] serialization. The XML schema for PROV-Dictionary is available for download <a href="https://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary.xsd">here</a>. 
+the [[PROV-XML]] serialization. The [<a href="https://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary.xsd">XML schema for PROV-Dictionary</a>] is available for download. 
+<div class="note">The Working Group is currently discussing the best way of disseminating the XML Schema for PROV-DM and its extensions. For now, we recommend importing both the [<a href="https://dvcs.w3.org/hg/prov/raw-file/default/xml/prov-xml.html#prov-xml-schema">PROV-XML Schema</a>] and the [<a href="https://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary.xsd">XML schema for PROV-Dictionary</a>].</div>
 <section id="term-Dictionary">
 <h3>Dictionary</h3>
 <div class="glossary-ref" data-ref="glossary-dictionary"></div>