Added second 'at risk' note, removed note on SDMX 2.1, static save for pubrules checking
authorDave Reynolds <dave@epimorphics.com>
Thu, 07 Mar 2013 16:21:15 +0000
changeset 349 cc6a99520806
parent 348 fd44d9ac3149
child 350 37568829fdf0
Added second 'at risk' note, removed note on SDMX 2.1, static save for pubrules checking
data-cube/index.html
data-cube/respec-config.js
data-cube/static.html
--- a/data-cube/index.html	Thu Mar 07 16:03:34 2013 +0000
+++ b/data-cube/index.html	Thu Mar 07 16:21:15 2013 +0000
@@ -225,14 +225,10 @@
 which is reflected in concrete form in two syntaxes - SDMX-ML (an XML
 syntax) and SDMX-EDI.
 </p>
-<div class="note">
-  Next para will need updating if we move to  2.1.
-</div>
 
 <p>The RDF Data Cube vocabulary builds upon the core of the
   the SDMX 2.0 Information Model [[SDMX20]].</p>
 
-
 <p>A key component of the SDMX standards package are
 the <strong>Content-Oriented Guidelines</strong> (COGs), a set of
 cross-domain concepts, code lists, and categories that support
@@ -1506,6 +1502,17 @@
  in which case the attribute is intended to apply only to that property and not
  to the observations in which that property occurs.</p>
 
+<section id="normalize-algorithm">
+<h3>Normalization algorithm</h3>
+
+<div class="note">
+This section is At Risk. The working group believes this formulation to 
+be correct and compatible with earlier versions of the Data Cube vocabulary.
+However as a new addition is has not received as much
+scrutiny as other parts of the specification. If problems are uncovered
+during the Last Call process the working group may retract all or part of this section. 
+</div>
+
 <p>We define these notions by means of a transformation algorithm
   which can normalize an abbreviated Data Cube to a flattened
   representation. We express this transformation using the SPARQL 1.1
@@ -1516,8 +1523,6 @@
   implement the normalization algorithm by other means or may handle
   all data in flattened form or any mix of these.</p>
 
-<section id="normalize-algorithm">
-<h3>Normalization algorithm</h3>
 
 <p>The normalization algorithm comprises two sets of SPARQL Update
   operations which should be applied in turn to a SPARQL Dataset in which the
@@ -2114,7 +2119,10 @@
 <h3 id="ic-20">IC-20. Codes from hierarchy</h3>
 <p>
 If a dimension property has
-a <code><a>qb:HierarchicalCodeList</a></code> with a non-blank <code><a>qb:parentChildProperty</a></code> then the value of that dimension property on every <code><a>qb:Observation</a></code> must be reachable from a root of hierarchy using zero or more hops along the <code><a>qb:parentChildProperty</a></code> links.
+a <code><a>qb:HierarchicalCodeList</a></code> with a
+non-blank <code><a>qb:parentChildProperty</a></code> then the value of
+that dimension property on every <code><a>qb:Observation</a></code>
+must be reachable from a root of the hierarchy using zero or more hops along the <code><a>qb:parentChildProperty</a></code> links.
 </p>
 <p>
 This check cannot be made by a simple fixed SPARQL query. Instead a
@@ -2153,7 +2161,11 @@
 
 <h3 id="ic-21">IC-21. Codes from hierarchy (inverse)</h3>
 <p>
-If a dimension property has a <code><a>qb:HierarchicalCodeList</a></code> with an inverse <code><a>qb:parentChildProperty</a></code> then the value of that dimension property on every <code><a>qb:Observation</a></code> must be reachable from a root of hierarchy using zero or more hops along the inverse  <code><a>qb:parentChildProperty</a></code> links.
+If a dimension property has
+a <code><a>qb:HierarchicalCodeList</a></code> with an
+inverse <code><a>qb:parentChildProperty</a></code> then the value of
+that dimension property on every <code><a>qb:Observation</a></code>
+must be reachable from a root of the hierarchy using zero or more hops along the inverse  <code><a>qb:parentChildProperty</a></code> links.
 </p>
 
 <p>
--- a/data-cube/respec-config.js	Thu Mar 07 16:03:34 2013 +0000
+++ b/data-cube/respec-config.js	Thu Mar 07 16:21:15 2013 +0000
@@ -7,7 +7,7 @@
     shortName:            "vocab-data-cube",
     //subtitle:             "",
     // if you wish the publication date to be other than today, set this
-    //publishDate:  "2012-04-03",
+    publishDate:  "2013-03-12",
 
     // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
     // and its maturity status
--- a/data-cube/static.html	Thu Mar 07 16:03:34 2013 +0000
+++ b/data-cube/static.html	Thu Mar 07 16:21:15 2013 +0000
@@ -1,9 +1,20 @@
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'>
-<html lang="en" dir="ltr">
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 <head>
 	<title>The RDF Data Cube Vocabulary</title>
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        
+
+<!--	<script type="text/javascript" src="respec-ref.js" class="remove"></script> -->
+
 	
+		
+
+<!--	<script type="text/javascript"  src="../respec/gld-config.js" class="remove"></script>  -->
+
+	 
+
   <style type="text/css">
 .todo { background-color: #fdd; border: 1px solid #800; margin: 1em 0em; padding: 1em; page-break-inside: avoid ; font-style: italic; }
 .todo:before { content: 'TODO: '; }
@@ -12,15 +23,17 @@
 .spare-table td { padding-left: 1em; padding-right: 1em; }
 .spare-table td + td { border-left: black 1px solid; padding-left: 1em; padding-right: 1em; }
 .spare-table th + th { border-left: black 1px solid; }
+dl.vocab_reference dt { margin-top: 1em; }
+.bordered-table { border: black 1px solid;}
+.bordered-table th { border-bottom: black 1px solid;}
+.bordered-table td { padding-right: 1em; background: #fcfaee }
+
   </style>
-<style type="text/css">
-/*****************************************************************
- * ReSpec CSS
- * Robin Berjon (robin at berjon dot com)
- * v0.05 - 2009-07-31
+<style>/*****************************************************************
+ * ReSpec 3 CSS
+ * Robin Berjon - http://berjon.com/
  *****************************************************************/
 
-
 /* --- INLINES --- */
 em.rfc2119 { 
     text-transform:     lowercase;
@@ -54,224 +67,36 @@
     text-decoration:    none;
 }
 
+cite .bibref {
+    font-style: normal;
+}
+
 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;
+/* --- --- */
+ol.algorithm { counter-reset:numsection; list-style-type: none; }
+ol.algorithm li { margin: 0.5em 0; }
+ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }
+
+/* --- TOC --- */
+.toc a, .tof a {
     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;
+a .secno, a .figno {
+    color:  #000;
 }
-.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;
+
+ul.tof, ol.tof {
+    list-style: none outside none;
 }
 
-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;
+.caption {
+    margin-top: 0.5em;
+    font-style:   italic;
 }
 
 /* --- TABLE --- */
@@ -319,178 +144,143 @@
 .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;
+</style><style>/* --- EXAMPLES --- */
+div.example-title {
+    min-width: 7.5em;
+    color: #b9ab2d;
 }
-
[email protected] 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;
+div.example-title span {
+    text-transform: uppercase;   
 }
-
-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 charset="utf-8" type="text/css" rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD"></head>
-
-<body style="display: inherit;"><div class="head"><p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" alt="W3C" width="72" height="48"></a></p><h1 class="title" id="title">The RDF Data Cube Vocabulary</h1><h2 id="w3c-working-draft-05-april-2012"><acronym title="World Wide Web Consortium">W3C</acronym> Working Draft 05 April 2012</h2><dl><dt>This version:</dt><dd><a href="http://www.w3.org/TR/2012/WD-vocab-data-cube-20120405/">http://www.w3.org/TR/2012/WD-vocab-data-cube-20120405/</a></dd><dt>Latest published version:</dt><dd><a href="http://www.w3.org/TR/vocab-data-cube/">http://www.w3.org/TR/vocab-data-cube/</a></dd><dt>Latest editor's draft:</dt><dd><a href="https://dvcs.w3.org/hg/gld/raw-file/default/data-cube/index.html">https://dvcs.w3.org/hg/gld/raw-file/default/data-cube/index.html</a></dd><dt>Editors:</dt><dd><a href="http://richard.cyganiak.de/">Richard Cyganiak</a>, <a href="http://www.deri.ie/">DERI, NUI Galway</a></dd>
+aside.example, div.example, div.illegal-example {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+div.illegal-example { color: red }
+div.illegal-example p { color: black }
+aside.example, div.example {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+    border-color: #e0cb52;
+    background: #fcfaee;    
+}
+
+aside.example div.example {
+    border-left-width: .1em;
+    border-color: #999;
+    background: #fff;
+}
+aside.example div.example div.example-title {
+    color: #999;
+}
+</style><style>/* --- ISSUES/NOTES --- */
+div.issue-title, div.note-title {
+    padding-right:  1em;
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.issue-title { color: #e05252; }
+div.note-title { color: #52e052; }
+div.issue-title span, div.note-title span {
+    text-transform: uppercase;
+}
+div.note, div.issue {
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+.note > p:first-child, .issue > p:first-child { margin-top: 0 }
+.issue, .note {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+}
+div.issue, div.note {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+span.note, span.issue { padding: .1em .5em .15em; }
+
+.issue {
+    border-color: #e05252;
+    background: #fbe9e9;
+}
+.note {
+    border-color: #52e052;
+    background: #e9fbe9;
+}
+
+
+</style><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
+<!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
+</head>
+
+<body><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">The RDF Data Cube Vocabulary</h1>
+  
+  <h2 id="w3c-working-draft-12-march-2013"><abbr title="World Wide Web Consortium">W3C</abbr> Working Draft 12 March 2013</h2>
+  <dl>
+    
+      <dt>This version:</dt>
+      <dd><a href="http://www.w3.org/TR/2013/WD-vocab-data-cube-20130312/">http://www.w3.org/TR/2013/WD-vocab-data-cube-20130312/</a></dd>
+      <dt>Latest published version:</dt>
+      <dd><a href="http://www.w3.org/TR/vocab-data-cube/">http://www.w3.org/TR/vocab-data-cube/</a></dd>
+    
+    
+      <dt>Latest editor's draft:</dt>
+      <dd><a href="https://dvcs.w3.org/hg/gld/raw-file/default/data-cube/index.html">https://dvcs.w3.org/hg/gld/raw-file/default/data-cube/index.html</a></dd>
+    
+    
+    
+    
+    
+      <dt>Previous version:</dt>
+      <dd><a href="http://www.w3.org/TR/2012/WD-vocab-data-cube-20120405/">http://www.w3.org/TR/2012/WD-vocab-data-cube-20120405/</a></dd>
+    
+    
+    <dt>Editors:</dt>
+    <dd><a href="http://richard.cyganiak.de/">Richard Cyganiak</a>, <a href="http://www.deri.ie/">DERI, NUI Galway</a></dd>
 <dd><span>Dave Reynolds</span>, <a href="http://www.epimorphics.com/">Epimorphics Ltd</a></dd>
-<dt>Author:</dt><dd><a href="http://www.jenitennison.com/blog/">Jeni Tennison</a>, <a href="http://www.tso.co.uk/">TSO</a></dd>
-</dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 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 class="introductory section" id="abstract"><h2>Abstract</h2>
+
+    
+  <dt>Contributor:</dt> <dd><a href="http://www.jenitennison.com/">Jeni Tennison</a></dd></dl>
+  
+  
+  
+  
+    
+      <p class="copyright">
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 
+        2013
+        
+        <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> 
+        (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>,
+        <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
+        <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved.
+        <abbr title="World Wide Web Consortium">W3C</abbr> <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>
+
+<section id="abstract" class="introductory"><h2>Abstract</h2>
 <p>There are many situations where it would be useful to be able to
 publish
 multi-dimensional data, such as statistics, on the web in such a way
 that it can be linked to related data sets and concepts. The Data Cube
-vocabulary provides a means to do this using the <acronym title="World Wide Web Consortium">W3C</acronym> <a href="http://www.w3.org/TR/REC-rdf-syntax/">RDF</a>
+vocabulary provides a means to do this using the <abbr title="World Wide Web Consortium">W3C</abbr> <a href="http://www.w3.org/TR/REC-rdf-syntax/">RDF</a>
 (Resource Description Framework) standard. The model underpinning the
 Data Cube vocabulary is
 compatible with the cube model that underlies <a href="http://sdmx.org">SDMX</a> (Statistical Data
@@ -498,18 +288,142 @@
 statistical data and metadata among organizations. The Data Cube
 vocabulary is a core foundation which supports extension
 vocabularies to enable publication of other aspects of
-statistical data flows.</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>
-  <p>This publication transitions <a href="http://publishing-statistical-data.googlecode.com/svn/trunk/specs/src/main/html/cube.html">previous work</a> on this subject onto the <acronym title="World Wide Web Consortium">W3C</acronym> Recommendation Track.</p>
-<p>This document was published by the <a href="http://www.w3.org/2011/gld/">Government Linked Data (GLD) Working Group</a> as a First Public Working Draft. This document is intended to become a <acronym title="World Wide Web Consortium">W3C</acronym> Recommendation. If you wish to make comments regarding this document, please send them to <a href="mailto:[email protected]">[email protected]</a> (<a href="mailto:[email protected]?subject=subscribe">subscribe</a>, <a href="http://lists.w3.org/Archives/Public/public-gld-comments/">archives</a>). All feedback is welcome.</p><p>Publication as a Working 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.</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/47663/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 class="section" id="toc"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#intro-cube"><span class="secno">1.1 </span>A Data Cube vocabulary</a></li><li class="tocline"><a class="tocxref" href="#intro-rdf"><span class="secno">1.2 </span>RDF and Linked Data</a></li><li class="tocline"><a class="tocxref" href="#intro-sdmx"><span class="secno">1.3 </span>SDMX and related standards</a></li><li class="tocline"><a class="tocxref" href="#intro-scovo"><span class="secno">1.4 </span>Relationship to SCOVO</a></li><li class="tocline"><a class="tocxref" href="#intro-audience"><span class="secno">1.5 </span>Audience and scope</a></li><li class="tocline"><a class="tocxref" href="#intro-conventions"><span class="secno">1.6 </span>Document conventions</a></li></ul></li><li class="tocline"><a class="tocxref" href="#data-cubes"><span class="secno">2. </span>Data cubes</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#cubes-model"><span class="secno">2.1 </span>The cube model - dimensions, attributes, measures</a></li><li class="tocline"><a class="tocxref" href="#cubes-slices"><span class="secno">2.2 </span>Slices</a></li></ul></li><li class="tocline"><a class="tocxref" href="#example"><span class="secno">3. </span>An example</a></li><li class="tocline"><a class="tocxref" href="#outline"><span class="secno">4. </span>Outline of the vocabulary</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#index"><span class="secno">4.1 </span>Vocabulary index</a></li></ul></li><li class="tocline"><a class="tocxref" href="#dsd"><span class="secno">5. </span>Creating data structure definitions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dsd-dimensions"><span class="secno">5.1 </span>Dimensions, attributes and measures</a></li><li class="tocline"><a class="tocxref" href="#dsd-cog"><span class="secno">5.2 </span>Content oriented guidelines</a></li><li class="tocline"><a class="tocxref" href="#dsd-example"><span class="secno">5.3 </span>Example</a></li><li class="tocline"><a class="tocxref" href="#dsd-dsd"><span class="secno">5.4 </span>ComponentSpecifications and DataStructureDefinitions</a></li><li class="tocline"><a class="tocxref" href="#dsd-mm"><span class="secno">5.5 </span>Handling multiple measures</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dsd-mm-obs"><span class="secno">5.5.1 </span>Multi-measure observations</a></li><li class="tocline"><a class="tocxref" href="#dsd-mm-dim"><span class="secno">5.5.2 </span>Measure dimension</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#datasets"><span class="secno">6. </span>Expressing data sets</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dataset-basic"><span class="secno">6.1 </span>Data sets and observations</a></li></ul></li><li class="tocline"><a class="tocxref" href="#slices"><span class="secno">7. </span>Slices</a></li><li class="tocline"><a class="tocxref" href="#schemes"><span class="secno">8. </span>Concept schemes and code lists</a></li><li class="tocline"><a class="tocxref" href="#metadata"><span class="secno">9. </span>DataSet metadata</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#metadata-categorization"><span class="secno">9.1 </span>Categorizing a data set</a></li><li class="tocline"><a class="tocxref" href="#metadata-publishers"><span class="secno">9.2 </span>Describing publishers</a></li></ul></li><li class="tocline"><a class="tocxref" href="#namespaces-used-appendix"><span class="secno">A. </span>Namespaces used in this document</a></li><li class="tocline"><a class="tocxref" href="#vocab-reference"><span class="secno">B. </span>Vocabulary reference</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#reference-datasets"><span class="secno">B.1 </span>DataSets</a></li><li class="tocline"><a class="tocxref" href="#reference-observations"><span class="secno">B.2 </span>Observations</a></li><li class="tocline"><a class="tocxref" href="#reference-slices"><span class="secno">B.3 </span>Slices</a></li><li class="tocline"><a class="tocxref" href="#reference-components"><span class="secno">B.4 </span>Dimensions, Attributes, Measures</a></li><li class="tocline"><a class="tocxref" href="#reference-component-properties"><span class="secno">B.5 </span>Reusable general purpose component properties</a></li><li class="tocline"><a class="tocxref" href="#reference-dsd"><span class="secno">B.6 </span>Data Structure Definitions</a></li><li class="tocline"><a class="tocxref" href="#reference-compspec"><span class="secno">B.7 </span>Component specifications - for qualifying component use in a DSD</a></li><li class="tocline"><a class="tocxref" href="#reference-slice-definitions"><span class="secno">B.8 </span>Slice definitions</a></li><li class="tocline"><a class="tocxref" href="#reference-concepts"><span class="secno">B.9 </span>Concepts</a></li></ul></li><li class="tocline"><a class="tocxref" href="#acknowledgements"><span class="secno">C. </span>Acknowledgements</a></li><li class="tocline"><a class="tocxref" href="#issues"><span class="secno">D. </span>Open issues</a></li><li class="tocline"><a class="tocxref" href="#references"><span class="secno">E. </span>References</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><span class="secno">E.1 </span>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><span class="secno">E.2 </span>Informative references</a></li></ul></li></ul></div>
-
-
-
-<div class="section" id="introduction">
-<!--OddPage--><h2><span class="secno">1. </span>Introduction</h2>
-
-<div class="section" id="intro-cube">
-<h3><span class="secno">1.1 </span>A Data Cube vocabulary</h3>
+statistical data flows or other multi-dimensional data sets.</p>
+</section><section id="sotd" class="introductory"><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 <abbr title="World Wide Web Consortium">W3C</abbr> publications and the latest revision
+          of this technical report can be found in the <a href="http://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports
+          index</a> at http://www.w3.org/TR/.</em>
+        </p>
+        
+  <p>This publication transitions <a href="http://publishing-statistical-data.googlecode.com/svn/trunk/specs/src/main/html/cube.html">previous work</a> on this subject onto the <abbr title="World Wide Web Consortium">W3C</abbr> Recommendation Track.</p>
+
+        <p>
+          This document was published by the <a href="http://www.w3.org/2011/gld/">Government Linked Data Working Group</a> as a Last Call Working Draft.
+          
+            This document is intended to become a <abbr title="World Wide Web Consortium">W3C</abbr> Recommendation.
+          
+          
+          If you wish to make comments regarding this document, please send them to 
+          <a href="mailto:[email protected]">[email protected]</a> 
+          (<a href="mailto:[email protected]?subject=subscribe">subscribe</a>,
+          <a href="http://lists.w3.org/Archives/Public/public-gld-comments/">archives</a>).
+          
+          The Last Call period ends 08 April 2013.
+          
+          
+        All comments are welcome.
+        
+        
+          </p><p>
+            Publication as a Working Draft does not imply endorsement by the <abbr title="World Wide Web Consortium">W3C</abbr> 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.
+          </p>
+        
+        
+          <p>
+            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.
+          </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 <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
+          
+          
+          
+            
+              <abbr title="World Wide Web Consortium">W3C</abbr> maintains a <a href="" 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 <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
+          
+          
+        </p>
+        
+      
+    
+  
+</section><section id="toc"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#outline" class="tocxref"><span class="secno">1. </span>Outline of the vocabulary</a><ul class="toc"><li class="tocline"><a href="#index" class="tocxref"><span class="secno">1.1 </span>Vocabulary index</a></li></ul></li><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">2. </span>Introduction</a><ul class="toc"><li class="tocline"><a href="#intro-cube" class="tocxref"><span class="secno">2.1 </span>A Data Cube vocabulary</a></li><li class="tocline"><a href="#intro-rdf" class="tocxref"><span class="secno">2.2 </span>RDF and Linked Data</a></li><li class="tocline"><a href="#intro-sdmx" class="tocxref"><span class="secno">2.3 </span>SDMX and related standards</a></li><li class="tocline"><a href="#intro-scovo" class="tocxref"><span class="secno">2.4 </span>Relationship to SCOVO</a></li><li class="tocline"><a href="#intro-audience" class="tocxref"><span class="secno">2.5 </span>Audience and scope</a></li><li class="tocline"><a href="#intro-conventions" class="tocxref"><span class="secno">2.6 </span>Document conventions</a></li></ul></li><li class="tocline"><a href="#namespaces" class="tocxref"><span class="secno">3. </span>Namespaces</a></li><li class="tocline"><a href="#conformance" class="tocxref"><span class="secno">4. </span>Conformance</a></li><li class="tocline"><a href="#data-cubes" class="tocxref"><span class="secno">5. </span>Data cubes</a><ul class="toc"><li class="tocline"><a href="#cubes-model" class="tocxref"><span class="secno">5.1 </span>The cube model - dimensions, attributes, measures</a></li><li class="tocline"><a href="#cubes-slices" class="tocxref"><span class="secno">5.2 </span>Slices</a></li></ul></li><li class="tocline"><a href="#example" class="tocxref"><span class="secno">6. </span>An example</a></li><li class="tocline"><a href="#dsd" class="tocxref"><span class="secno">7. </span>Creating data structure definitions</a><ul class="toc"><li class="tocline"><a href="#dsd-dimensions" class="tocxref"><span class="secno">7.1 </span>Dimensions, attributes and measures</a></li><li class="tocline"><a href="#dsd-cog" class="tocxref"><span class="secno">7.2 </span>Content oriented guidelines</a></li><li class="tocline"><a href="#dsd-example" class="tocxref"><span class="secno">7.3 </span>Example</a></li><li class="tocline"><a href="#dsd-dsd" class="tocxref"><span class="secno">7.4 </span>ComponentSpecifications and DataStructureDefinitions</a></li><li class="tocline"><a href="#dsd-mm" class="tocxref"><span class="secno">7.5 </span>Handling multiple measures</a><ul class="toc"><li class="tocline"><a href="#dsd-mm-obs" class="tocxref"><span class="secno">7.5.1 </span>Multi-measure observations</a></li><li class="tocline"><a href="#dsd-mm-dim" class="tocxref"><span class="secno">7.5.2 </span><span>Measure dimension</span></a></li></ul></li></ul></li><li class="tocline"><a href="#datasets" class="tocxref"><span class="secno">8. </span>Expressing data sets</a><ul class="toc"><li class="tocline"><a href="#dataset-basic" class="tocxref"><span class="secno">8.1 </span>Data sets and observations</a></li></ul></li><li class="tocline"><a href="#slices" class="tocxref"><span class="secno">9. </span>Slices</a></li><li class="tocline"><a href="#schemes" class="tocxref"><span class="secno">10. </span>Concept schemes and code lists</a><ul class="toc"><li class="tocline"><a href="#schemes-intro" class="tocxref"><span class="secno">10.1 </span>Coded values for components properties</a></li><li class="tocline"><a href="#schemes-hierarchy" class="tocxref"><span class="secno">10.2 </span>Hierarchical code lists</a></li><li class="tocline"><a href="#schemes-hierarchy-nonskos" class="tocxref"><span class="secno">10.3 </span>Non-SKOS hierarchies</a></li><li class="tocline"><a href="#schemes-aggregation" class="tocxref"><span class="secno">10.4 </span>Aggregation</a></li></ul></li><li class="tocline"><a href="#metadata" class="tocxref"><span class="secno">11. </span>DataSet metadata</a><ul class="toc"><li class="tocline"><a href="#metadata-categorization" class="tocxref"><span class="secno">11.1 </span>Categorizing a data set</a></li><li class="tocline"><a href="#metadata-publishers" class="tocxref"><span class="secno">11.2 </span>Describing publishers</a></li></ul></li><li class="tocline"><a href="#normalize" class="tocxref"><span class="secno">12. </span>Abbreviation and normalization</a><ul class="toc"><li class="tocline"><a href="#normalize-algorithm" class="tocxref"><span class="secno">12.1 </span>Normalization algorithm</a></li></ul></li><li class="tocline"><a href="#wf" class="tocxref"><span class="secno">13. </span>Well-formed cubes</a><ul class="toc"><li class="tocline"><a href="#wf-rules" class="tocxref"><span class="secno">13.1 </span>Integrity constraints</a></li></ul></li><li class="tocline"><a href="#vocab-reference" class="tocxref"><span class="secno">14. </span>Vocabulary reference</a><ul class="toc"><li class="tocline"><a href="#reference-datasets" class="tocxref"><span class="secno">14.1 </span>DataSets</a></li><li class="tocline"><a href="#reference-observations" class="tocxref"><span class="secno">14.2 </span>Observations</a></li><li class="tocline"><a href="#reference-slices" class="tocxref"><span class="secno">14.3 </span>Slices</a></li><li class="tocline"><a href="#reference-components" class="tocxref"><span class="secno">14.4 </span>Dimensions, Attributes, Measures</a></li><li class="tocline"><a href="#reference-component-properties" class="tocxref"><span class="secno">14.5 </span>Reusable general purpose component properties</a></li><li class="tocline"><a href="#reference-dsd" class="tocxref"><span class="secno">14.6 </span>Data Structure Definitions</a></li><li class="tocline"><a href="#reference-compspec" class="tocxref"><span class="secno">14.7 </span>Component specifications - for qualifying component use in a DSD</a></li><li class="tocline"><a href="#reference-slice-definitions" class="tocxref"><span class="secno">14.8 </span>Slice definitions</a></li><li class="tocline"><a href="#reference-concepts" class="tocxref"><span class="secno">14.9 </span>Concepts</a></li><li class="tocline"><a href="#reference-nonskos-hierarchy" class="tocxref"><span class="secno">14.10 </span>Non-SKOS Hierarchies</a></li></ul></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">B. </span>Change history </a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">C. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">C.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">C.2 </span>Informative references</a></li></ul></li></ul></section>
+
+
+
+
+<section id="outline">
+
+<!--OddPage-->
+<h2><span class="secno">1. </span>Outline of the vocabulary</h2>
+
+
+<!-- <img src="images/qb-fig1.png" alt="UML-style block diagram of the terms in this vocabulary"/> -->
+
+
+<img src="images/qb-fig1-proposed.png" alt="UML-style block diagram of the terms in this vocabulary" />
+
+<section id="index">
+<h3><span class="secno">1.1 </span>Vocabulary index</h3>
+
+  <p><b>Classes:</b>
+    <a href="#ref_qb_Attachable">qb:Attachable</a>
+    <a href="#ref_qb_AttributeProperty">qb:AttributeProperty</a>
+    <a href="#ref_qb_CodedProperty">qb:CodedProperty</a>
+    <a href="#ref_qb_ComponentProperty">qb:ComponentProperty</a>
+    <a href="#ref_qb_ComponentSet">qb:ComponentSet</a>
+    <a href="#ref_qb_ComponentSpecification">qb:ComponentSpecification</a>
+    <a href="#ref_qb_DataSet">qb:DataSet</a>
+    <a href="#ref_qb_DataStructureDefinition">qb:DataStructureDefinition</a>
+    <a href="#ref_qb_DimensionProperty">qb:DimensionProperty</a>
+    <a href="#ref_qb_MeasureProperty">qb:MeasureProperty</a>
+    <a href="#ref_qb_Observation">qb:Observation</a>
+    <a href="#ref_qb_Slice">qb:Slice</a>
+    <a href="#ref_qb_ObservationGroup">qb:ObservationGroup</a>
+    <a href="#ref_qb_SliceKey">qb:SliceKey</a>
+    <a href="#ref_qb_Hierarchy">qb:HierarchicalCodeList</a>
+    <a href="#ref_qb_AggregatableHierarchy">qb:AggregatableHierarchy</a>
+  </p>
+  <p><b>Properties:</b>
+    <a href="#ref_qb_attribute">qb:attribute</a>
+    <a href="#ref_qb_codeList">qb:codeList</a>
+    <a href="#ref_qb_component">qb:component</a>
+    <a href="#ref_qb_componentAttachment">qb:componentAttachment</a>
+    <a href="#ref_qb_componentProperty_LC">qb:componentProperty</a>
+    <a href="#ref_qb_componentRequired">qb:componentRequired</a>
+    <a href="#ref_qb_concept">qb:concept</a>
+    <a href="#ref_qb_dataSet_LC">qb:dataSet</a>
+    <a href="#ref_qb_dimension">qb:dimension</a>
+    <a href="#ref_qb_measure">qb:measure</a>
+    <a href="#ref_qb_measureDimension">qb:measureDimension</a>
+    <a href="#ref_qb_measureType">qb:measureType</a>
+    <a href="#ref_qb_observation_LC">qb:observation</a>
+    <a href="#ref_qb_order">qb:order</a>
+    <a href="#ref_qb_slice_LC">qb:slice</a>
+    <a href="#ref_qb_sliceKey_LC">qb:sliceKey</a>
+    <a href="#ref_qb_sliceStructure">qb:sliceStructure</a>
+    <a href="#ref_qb_structure">qb:structure</a>
+    <a href="#ref_qb_observationGroup">qb:observationGroup</a>
+    <a href="#ref_qb_hierarchyRoot">qb:hierarchyRoot</a>
+    <a href="#ref_qb_narrowingProperty">qb:parentChildProperty</a>
+  </p>
+</section>
+
+</section>
+
+<section id="introduction" class="informative">
+
+<!--OddPage-->
+<h2><span class="secno">2. </span>Introduction</h2><p><em>This section is non-normative.</em></p>
+
+<section id="intro-cube" class="informative">
+<h3><span class="secno">2.1 </span>A Data Cube vocabulary</h3><p><em>This section is non-normative.</em></p>
 
 <p>
 Statistical data is a foundation for policy
@@ -524,14 +438,14 @@
 At the heart of a statistical dataset is a set of observed values
 organized along a group of dimensions, together with associated metadata.
 The Data Cube vocabulary enables such information to be represented
-using the the <acronym title="World Wide Web Consortium">W3C</acronym> <a href="http://www.w3.org/TR/REC-rdf-syntax/">RDF</a>
+using the the <abbr title="World Wide Web Consortium">W3C</abbr> <a href="http://www.w3.org/TR/REC-rdf-syntax/">RDF</a>
 (Resource Description Framework) standard and published following the
 principles of
 <a href="http://linkeddata.org/">linked data</a>.
 The vocabulary is based upon the approach used by the SDMX ISO standard
 for statistical data exchange. This <em>cube</em> model is very
 general and so the Data Cube vocabulary can be used for other data sets
-such as survey data, spreadsheets and OLAP data cubes [<cite><a href="#bib-OLAP" rel="biblioentry" class="bibref">OLAP</a></cite>].
+such as survey data, spreadsheets and OLAP data cubes [<cite><a class="bibref" href="#bib-OLAP">OLAP</a></cite>].
 </p>
 
 <p>
@@ -541,7 +455,7 @@
 particular, we see the need for an SDMX extension vocabulary to support the
 publication of additional context to statistical data (such as the encompassing Data
 Flows and associated Provision Agreements). Other extensions are possible to
-support metadata for surveys (so called "micro-data", as encompassed by <a href="http://www.ddialliance.org/">DDI</a>)
+support metadata for surveys (so called &quot;micro-data&quot;, as encompassed by <a href="http://www.ddialliance.org/">DDI</a>)
 or publication of statistical reference metadata.
 </p>
 
@@ -551,24 +465,25 @@
   <li><a href="http://www.w3.org/2004/02/skos/">SKOS</a> for concept schemes</li>
   <li><a href="http://sw.joanneum.at/scovo/schema.html">SCOVO</a> for
 core statistical structures</li>
+  <li><a href="http://purl.org/dc/terms/">Dublin Core Terms</a> for metadata</li>
   <li><a href="http://rdfs.org/ns/void-guide">VoiD</a> for data access</li>
-  <li><a href="http://xmlns.com/foaf/0.1/">FOAF</a> for organisations</li>
-  <li><a href="http://purl.org/dc/terms/">Dublin Core Terms</a> for
-metadata</li>
+  <li><a href="http://xmlns.com/foaf/0.1/">FOAF</a> for agents</li>
+  <li><a href="http://www.w3.org/ns/org#">ORG</a> for organizations</li>
 </ul>
-</div>
-
-
-<div class="section" id="intro-rdf">
-<h3><span class="secno">1.2 </span>RDF and Linked Data</h3>
+
+</section>
+
+
+<section id="intro-rdf" class="informative">
+<h3><span class="secno">2.2 </span>RDF and Linked Data</h3><p><em>This section is non-normative.</em></p>
 
 <p><em>Linked data</em> is an approach to publishing data on the web, enabling
 datasets to be linked together through references to common concepts.
-  The approach [<cite><a href="#bib-LOD" rel="biblioentry" class="bibref">LOD</a></cite>]
+  The approach [<cite><a class="bibref" href="#bib-LOD">LOD</a></cite>]
 recommends use of HTTP URIs to name the entities and concepts so that consumers of
 the data can look-up those URIs to get more information, including links
 to other related URIs.
-RDF [<cite><a href="#bib-RDF-PRIMER" rel="biblioentry" class="bibref">RDF-PRIMER</a></cite>]
+RDF [<cite><a class="bibref" href="#bib-RDF-PRIMER">RDF-PRIMER</a></cite>]
 provides a standard for the representation of the
 information that describes those entities and concepts, and is returned
 by dereferencing the URIs. </p>
@@ -591,11 +506,11 @@
 for programmatic access.</li>
   <li>It enables reuse of standardized tools and components.</li>
 </ul>
-</div>
-
-
-<div class="section" id="intro-sdmx">
-<h3><span class="secno">1.3 </span>SDMX and related standards</h3>
+</section>
+
+
+<section id="intro-sdmx" class="informative">
+<h3><span class="secno">2.3 </span>SDMX and related standards</h3><p><em>This section is non-normative.</em></p>
 
 <p>The Statistical Data and Metadata Exchange (SDMX) Initiative
 was organised in 2001 by seven international organisations (BIS,
@@ -623,25 +538,26 @@
 <p>The SDMX specification defines a core <em>information model</em>
 which is reflected in concrete form in two syntaxes - SDMX-ML (an XML
 syntax) and SDMX-EDI.
-The Data Cube vocabulary builds upon the core of the SDMX information
-model.
 </p>
 
+<p>The RDF Data Cube vocabulary builds upon the core of the
+  the SDMX 2.0 Information Model [<cite><a class="bibref" href="#bib-SDMX20">SDMX20</a></cite>].</p>
+
 <p>A key component of the SDMX standards package are
 the <strong>Content-Oriented Guidelines</strong> (COGs), a set of
 cross-domain concepts, code lists, and categories that support
 interoperability and comparability between datasets by providing a
-shared terminology between SDMX implementers. RDF versions of these
+shared terminology between SDMX implementers [<cite><a class="bibref" href="#bib-COG">COG</a></cite>]. RDF versions of these
 terms are available separately for use along with the Data Cube
-vocabulary.
+vocabulary, see <a href="#dsd-cog">Content oriented guidelines</a>.
 </p>
-</div>
-
-
-<div class="section" id="intro-scovo">
-<h3><span class="secno">1.4 </span>Relationship to SCOVO</h3>
-
-<p>The Statistical Core Vocabulary (SCOVO) [<cite><a href="#bib-SCOVO" rel="biblioentry" class="bibref">SCOVO</a></cite>] is a lightweight
+</section>
+
+
+<section id="intro-scovo" class="informative">
+<h3><span class="secno">2.4 </span>Relationship to SCOVO</h3><p><em>This section is non-normative.</em></p>
+
+<p>The Statistical Core Vocabulary (SCOVO) [<cite><a class="bibref" href="#bib-SCOVO">SCOVO</a></cite>] is a lightweight
 RDF vocabulary for expressing statistical data. Its relative
 simplicity allows easy adoption by data producers and consumers, and
 it can be combined with other RDF vocabularies for greater effect. The
@@ -657,67 +573,118 @@
 independent from concrete data,</li>
   <li>data flows which group together datasets that share the same
 structure, for example from different national data providers,</li>
-  <li>definition of "slices" through a dataset, such as an individual
+  <li>definition of &quot;slices&quot; through a dataset, such as an individual
 time series or cross-section, for individual annotation,</li>
   <li>distinctions between dimensions, attributes and measures.</li>
 </ul>
 
 <p>
 The design of the Data Cube vocabulary is informed by SCOVO,
-and every SCOVO dataset can be re-expressed within the vocabulary.
+and every SCOVO dataset can be re-expressed within the Data Cube vocabulary.
 </p>
-</div>
-
-
-<div class="section" id="intro-audience">
-<h3><span class="secno">1.5 </span>Audience and scope</h3>
+</section>
+
+
+<section id="intro-audience" class="informative">
+<h3><span class="secno">2.5 </span>Audience and scope</h3><p><em>This section is non-normative.</em></p>
 
 <p>This document describes the Data Cube vocabulary
 It is aimed at people wishing to publish
 statistical or other multi-dimension data in RDF.
 Mechanics of cross-format translation from other
-formats such as SDMX-ML will be covered elsewhere.</p>
-</div>
-
-
-<div class="section" id="intro-conventions">
-<h3><span class="secno">1.6 </span>Document conventions</h3>
+formats such as SDMX-ML are not covered here.</p>
+</section>
+
+
+<section id="intro-conventions">
+<h3><span class="secno">2.6 </span>Document conventions</h3>
 
 <p>
 The names of RDF entities -- classes, predicates, individuals -- are
 URIs. These are usually expressed using a compact notation where the
 name is written <code>prefix:localname</code>, and where the <code>prefix</code>
-identifies a <i>namespace URI</i>. The namesapce identified by the prefix is 
+identifies a <i>namespace URI</i>. The namespace identified by the prefix is 
  prepended to the <code>localname</code> to obtain the full URI.
-</p>
-
-<p>
-In this document we shall use the conventional prefix names for the
-<a href="#namespaces-used-appendix">well-known namespaces</a>:
+
 </p>
-<ul>
-  <li><code>rdf, rdfs</code> -- the core RDF namespaces</li>
-  <li><code>dc</code> -- Dublin Core</li>
-  <li><code>skos</code> -- Simple Knowledge Organization System</li>
-  <li><code>foaf</code> -- Friend Of A Friend</li>
-  <li><code>void</code> -- Vocabulary of Interlinked Datasets</li>
-  <li><code>scovo</code> -- Statistical Core Vocabulary</li>
-</ul>
+
+<p>All RDF examples are written in Turtle syntax [<cite><a class="bibref" href="#bib-TURTLE-TR">TURTLE-TR</a></cite>].</p>
+</section>
+
+</section>
+
+<section id="namespaces">
+
+<!--OddPage-->
+<h2><span class="secno">3. </span>Namespaces</h2>
+
+<p>The following namespaces are used in this document:</p>
+
+<table id="namespaces">
+  <thead><tr><th>Prefix</th><th>Namespace</th><th>Reference</th></tr></thead>
+  <tbody>
+    <tr><td>skos</td><td><a href="http://www.w3.org/2004/02/skos/core">http://www.w3.org/2004/02/skos/core#</a></td><td>[<cite><a class="bibref" href="#bib-SKOS-REFERENCE">SKOS-REFERENCE</a></cite>]</td></tr>
+    <tr><td>scovo</td><td><a href="http://purl.org/NET/scovo#">http://purl.org/NET/scovo#</a></td><td>[<cite><a class="bibref" href="#bib-SCOVO">SCOVO</a></cite>]</td></tr>
+    <tr><td>void</td><td><a href="http://rdfs.org/ns/void#">http://rdfs.org/ns/void#</a></td><td>[<cite><a class="bibref" href="#bib-VOID">VOID</a></cite>]</td></tr>
+    <tr><td>foaf</td><td><a href="http://xmlns.com/foaf/0.1/">http://xmlns.com/foaf/0.1/</a></td><td>[<cite><a class="bibref" href="#bib-FOAF">FOAF</a></cite>]</td></tr>
+    <tr><td>org</td><td><a href="http://www.w3.org/ns/org#">http://www.w3.org/ns/org#</a></td><td>[<cite><a class="bibref" href="#bib-ORG">ORG</a></cite>]</td></tr>
+    <tr><td>dct</td><td><a href="http://purl.org/dc/terms/">http://purl.org/dc/terms/</a></td><td>[<cite><a class="bibref" href="#bib-DC11">DC11</a></cite>]</td></tr>
+    <tr><td>owl</td><td><a href="http://www.w3.org/2002/07/owl">http://www.w3.org/2002/07/owl#</a></td><td>[<cite><a class="bibref" href="#bib-OWL2-PRIMER">OWL2-PRIMER</a></cite>]</td></tr>
+    <tr><td>rdf</td><td><a href="http://www.w3.org/1999/02/22-rdf-syntax-ns">http://www.w3.org/1999/02/22-rdf-syntax-ns#</a></td><td>[<cite><a class="bibref" href="#bib-RDF-CONCEPTS">RDF-CONCEPTS</a></cite>]</td></tr>
+    <tr><td>rdfs</td><td><a href="http://www.w3.org/2000/01/rdf-schema">http://www.w3.org/2000/01/rdf-schema#</a></td><td>[<cite><a class="bibref" href="#bib-RDF-SCHEMA">RDF-SCHEMA</a></cite>]</td></tr>
+    <tr><td>admingeo</td><td><a href="http://data.ordnancesurvey.co.uk/ontology/admingeo/">http://data.ordnancesurvey.co.uk/ontology/admingeo/</a></td><td><em>(Non-normative, used for examples only)</em></td></tr>
+  </tbody>
+</table>
+	
 <p>We also introduce the prefix <code>qb</code> for the Data Cube
   namespace <a href="http://purl.org/linked-data/cube#">http://purl.org/linked-data/cube#</a>.</p>
 
-<p>All RDF examples are written in Turtle syntax [<cite><a href="#bib-TURTLE-TR" rel="biblioentry" class="bibref">TURTLE-TR</a></cite>].</p>
-</div>
-
-</div>
-
-
-<div class="section" id="data-cubes">
-<!--OddPage--><h2><span class="secno">2. </span>Data cubes</h2>
-
-
-<div class="section" id="cubes-model">
-<h3><span class="secno">2.1 </span>The cube model - dimensions, attributes, measures</h3>
+</section>
+
+
+<section id="conformance">
+<!--OddPage-->
+<h2><span class="secno">4. </span>Conformance</h2>
+<p>
+  As well as sections marked as non-normative, all authoring guidelines, diagrams, examples,
+  and notes in this specification are non-normative. Everything else in this specification is
+  normative.
+</p>
+<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="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 specification are to be interpreted as described in [<cite><a class="bibref" href="#bib-RFC2119">RFC2119</a></cite>].
+</p>
+
+
+<p>A data interchange, however that interchange occurs, is conformant
+  with Data Cube if:
+</p><ul>
+<li>it uses terms (classes and properties) from Data Cube in a way consistent with
+  their semantics as declared in this specification, in particular the exchanged RDF graphs constitute
+  either <em><a href="#dfn-well-formed" class="internalDFN">well-formed</a></em> or <em><a href="#dfn-well-formed-abbreviated" class="internalDFN">well-formed abbreviated</a></em> Data Cubes;</li>
+<li>it does <strong>not</strong> use terms from other vocabularies <strong>instead</strong> of ones defined
+ in this vocabulary that could reasonably be used (use of such
+ terms <strong>in addition</strong> to Data Cube terms is permissible).</li>
+</ul>
+<p></p>
+
+<p>A conforming data interchange:
+</p><ul>
+<li><em class="rfc2119" title="may">may</em> include terms from other vocabularies;</li>
+<li><em class="rfc2119" title="may">may</em> use only a subset of Data Cube terms.</li>
+</ul>
+<p></p>
+
+</section>
+
+<section id="data-cubes" class="informative">
+
+<!--OddPage-->
+<h2><span class="secno">5. </span>Data cubes</h2><p><em>This section is non-normative.</em></p>
+
+
+<section id="cubes-model" class="informative">
+<h3><span class="secno">5.1 </span>The cube model - dimensions, attributes, measures</h3><p><em>This section is non-normative.</em></p>
 
 <p>A statistical data set comprises a collection of observations made
 at some points across some logical space. The collection can be characterized by
@@ -749,13 +716,13 @@
 
 <p>The <em>attribute</em> components allow us to qualify and
 interpret the observed value(s). They enable specification of the units of
-measures, any scaling factors and metadata such as the status
+measure, any scaling factors and metadata such as the status
 of the observation (e.g. <em>estimated</em>, <em>provisional</em>).</p>
-</div>
-
-
-<div class="section" id="cubes-slices">
-<h3><span class="secno">2.2 </span>Slices</h3>
+</section>
+
+
+<section id="cubes-slices" class="informative">
+<h3><span class="secno">5.2 </span>Slices</h3><p><em>This section is non-normative.</em></p>
 
 <p>It is frequently useful to group subsets of observations within a
 dataset. In particular to fix all but one (or a small subset) of the
@@ -779,115 +746,117 @@
 to refer to such slices in which the single free dimension is time as <em>Time
 Series</em> and to refer slices along non-time dimensions as <em>Sections</em>.
 Within the Data Cube vocabulary we allow arbitrary dimensionality
-slices and do not give different names to particular types of slice but
-extension vocabularies, such as SDMX-RDF, can easily add such
-concept labels.</p>
-</div>
-
-</div>
-
-<div class="section" id="example">
-<!--OddPage--><h2><span class="secno">3. </span>An example</h2>
+slices and do not give different names to particular types of
+  slice. Such sub classes of slice could be added in extension vocabularies.</p>
+
+</section>
+
+</section>
+
+<section id="example" class="informative">
+
+<!--OddPage-->
+<h2><span class="secno">6. </span>An example</h2><p><em>This section is non-normative.</em></p>
 
 <p>In order to illustrate the use of the data cube vocabulary we will
 use a small demonstration
 data set extracted from
 <a href="http://statswales.wales.gov.uk/index.htm">StatsWales</a> report
 number 003311 which describes life expectancy broken down by region
-(unitary authority), age and time. The extract we will use is:<br>
+(unitary authority), age and time. The extract we will use is:<br />
 </p>
 
 <table style="text-align: left; width: 80%;" border="1" cellpadding="2" cellspacing="0">
   <tbody>
     <tr>
-      <td style="vertical-align: top;"><br>
-      </td>
-      <td colspan="2" rowspan="1" style="vertical-align: top; text-align: center; font-weight: bold;">2004-2006<br>
-      </td>
-      <td colspan="2" rowspan="1" style="vertical-align: top; text-align: center; font-weight: bold;">2005-2007<br>
-      </td>
-      <td colspan="2" rowspan="1" style="vertical-align: top; text-align: center; font-weight: bold;">2006-2008<br>
+      <td style="vertical-align: top;"><br />
       </td>
-    </tr>
-    <tr>
-      <td style="vertical-align: top;"><br>
-      </td>
-      <td style="vertical-align: top; text-align: center; font-weight: bold;">Male<br>
+      <td colspan="2" rowspan="1" style="vertical-align: top; text-align: center; font-weight: bold;">2004-2006<br />
       </td>
-      <td style="vertical-align: top; text-align: center; font-weight: bold;">Female<br>
-      </td>
-      <td style="vertical-align: top; text-align: center; font-weight: bold;">Male<br>
+      <td colspan="2" rowspan="1" style="vertical-align: top; text-align: center; font-weight: bold;">2005-2007<br />
       </td>
-      <td style="vertical-align: top; text-align: center; font-weight: bold;">Female<br>
-      </td>
-      <td style="vertical-align: top; text-align: center; font-weight: bold;">Male<br>
-      </td>
-      <td style="vertical-align: top; text-align: center; font-weight: bold;">Female<br>
+      <td colspan="2" rowspan="1" style="vertical-align: top; text-align: center; font-weight: bold;">2006-2008<br />
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top; text-align: right; font-weight: bold;">Newport<br>
-      </td>
-      <td style="vertical-align: top;">76.7<br>
-      </td>
-      <td style="vertical-align: top;">80.7<br>
+      <td style="vertical-align: top;"><br />
       </td>
-      <td style="vertical-align: top;">77.1<br>
+      <td style="vertical-align: top; text-align: center; font-weight: bold;">Male<br />
       </td>
-      <td style="vertical-align: top;">80.9<br>
+      <td style="vertical-align: top; text-align: center; font-weight: bold;">Female<br />
       </td>
-      <td style="vertical-align: top;">77.0<br>
+      <td style="vertical-align: top; text-align: center; font-weight: bold;">Male<br />
       </td>
-      <td style="vertical-align: top;">81.5<br>
+      <td style="vertical-align: top; text-align: center; font-weight: bold;">Female<br />
+      </td>
+      <td style="vertical-align: top; text-align: center; font-weight: bold;">Male<br />
+      </td>
+      <td style="vertical-align: top; text-align: center; font-weight: bold;">Female<br />
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top; text-align: right; font-weight: bold;">Cardiff<br>
-      </td>
-      <td style="vertical-align: top;">78.7<br>
-      </td>
-      <td style="vertical-align: top;">83.3<br>
+      <td style="vertical-align: top; text-align: right; font-weight: bold;">Newport<br />
       </td>
-      <td style="vertical-align: top;">78.6<br>
+      <td style="vertical-align: top;">76.7<br />
       </td>
-      <td style="vertical-align: top;">83.7<br>
+      <td style="vertical-align: top;">80.7<br />
       </td>
-      <td style="vertical-align: top;">78.7<br>
+      <td style="vertical-align: top;">77.1<br />
       </td>
-      <td style="vertical-align: top;">83.4<br>
+      <td style="vertical-align: top;">80.9<br />
+      </td>
+      <td style="vertical-align: top;">77.0<br />
+      </td>
+      <td style="vertical-align: top;">81.5<br />
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top; text-align: right; font-weight: bold;">Monmouthshire<br>
-      </td>
-      <td style="vertical-align: top;">76.6<br>
-      </td>
-      <td style="vertical-align: top;">81.3<br>
+      <td style="vertical-align: top; text-align: right; font-weight: bold;">Cardiff<br />
       </td>
-      <td style="vertical-align: top;">76.5<br>
+      <td style="vertical-align: top;">78.7<br />
       </td>
-      <td style="vertical-align: top;">81.5<br>
+      <td style="vertical-align: top;">83.3<br />
       </td>
-      <td style="vertical-align: top;">76.6<br>
+      <td style="vertical-align: top;">78.6<br />
       </td>
-      <td style="vertical-align: top;">81.7<br>
+      <td style="vertical-align: top;">83.7<br />
+      </td>
+      <td style="vertical-align: top;">78.7<br />
+      </td>
+      <td style="vertical-align: top;">83.4<br />
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top; text-align: right; font-weight: bold;">Monmouthshire<br />
+      </td>
+      <td style="vertical-align: top;">76.6<br />
+      </td>
+      <td style="vertical-align: top;">81.3<br />
+      </td>
+      <td style="vertical-align: top;">76.5<br />
+      </td>
+      <td style="vertical-align: top;">81.5<br />
+      </td>
+      <td style="vertical-align: top;">76.6<br />
+      </td>
+      <td style="vertical-align: top;">81.7<br />
       </td>
     </tr>
     <tr>
       <td style="vertical-align: top; text-align: right; font-weight: bold;">Merthyr
-Tydfil<br>
-      </td>
-      <td style="vertical-align: top;">75.5<br>
-      </td>
-      <td style="vertical-align: top;">79.1<br>
+Tydfil<br />
       </td>
-      <td style="vertical-align: top;">75.5<br>
+      <td style="vertical-align: top;">75.5<br />
       </td>
-      <td style="vertical-align: top;">79.4<br>
+      <td style="vertical-align: top;">79.1<br />
       </td>
-      <td style="vertical-align: top;">74.9<br>
+      <td style="vertical-align: top;">75.5<br />
       </td>
-      <td style="vertical-align: top;">79.6<br>
+      <td style="vertical-align: top;">79.4<br />
+      </td>
+      <td style="vertical-align: top;">74.9<br />
+      </td>
+      <td style="vertical-align: top;">79.6<br />
       </td>
     </tr>
   </tbody>
@@ -901,62 +870,14 @@
 fixed for each slice. Such slices then show the variation in life expectancy across the 
   different regions, i.e. corresponding to the columns in the above tabular layout.</p>
 
-</div>
-
-
-<div class="section" id="outline">
-<!--OddPage--><h2><span class="secno">4. </span>Outline of the vocabulary</h2>
-
-<img src="images/qb-fig1.png">
-
-<div class="section" id="index">
-<h3><span class="secno">4.1 </span>Vocabulary index</h3>
-
-  <p><b>Classes:</b>
-    <a href="#ref_qb_Attachable">qb:Attachable</a>
-    <a href="#ref_qb_AttributeProperty">qb:AttributeProperty</a>
-    <a href="#ref_qb_CodedProperty">qb:CodedProperty</a>
-    <a href="#ref_qb_ComponentProperty">qb:ComponentProperty</a>
-    <a href="#ref_qb_ComponentSet">qb:ComponentSet</a>
-    <a href="#ref_qb_ComponentSpecification">qb:ComponentSpecification</a>
-    <a href="#ref_qb_DataSet">qb:DataSet</a>
-    <a href="#ref_qb_DataStructureDefinition">qb:DataStructureDefinition</a>
-    <a href="#ref_qb_DimensionProperty">qb:DimensionProperty</a>
-    <a href="#ref_qb_MeasureProperty">qb:MeasureProperty</a>
-    <a href="#ref_qb_Observation">qb:Observation</a>
-    <a href="#ref_qb_Slice">qb:Slice</a>
-    <a href="#ref_qb_SliceKey">qb:SliceKey</a>
-  </p>
-  <p><b>Properties:</b>
-    <a href="#ref_qb_attribute">qb:attribute</a>
-    <a href="#ref_qb_codeList">qb:codeList</a>
-    <a href="#ref_qb_component">qb:component</a>
-    <a href="#ref_qb_componentAttachment">qb:componentAttachment</a>
-    <a href="#ref_qb_componentProperty">qb:componentProperty</a>
-    <a href="#ref_qb_componentRequired">qb:componentRequired</a>
-    <a href="#ref_qb_concept">qb:concept</a>
-    <a href="#ref_qb_dataSet">qb:dataSet</a>
-    <a href="#ref_qb_dimension">qb:dimension</a>
-    <a href="#ref_qb_measure">qb:measure</a>
-    <a href="#ref_qb_measureDimension">qb:measureDimension</a>
-    <a href="#ref_qb_measureType">qb:measureType</a>
-    <a href="#ref_qb_observation">qb:observation</a>
-    <a href="#ref_qb_order">qb:order</a>
-    <a href="#ref_qb_slice">qb:slice</a>
-    <a href="#ref_qb_sliceKey">qb:sliceKey</a>
-    <a href="#ref_qb_sliceStructure">qb:sliceStructure</a>
-    <a href="#ref_qb_structure">qb:structure</a>
-    <a href="#ref_qb_subSlice">qb:subSlice</a>
-  </p>
-</div>
-
-</div>
-
-
-<div class="section" id="dsd">
-<!--OddPage--><h2><span class="secno">5. </span>Creating data structure definitions</h2>
-
-<p>A <code>qb:DataStructureDefinition</code> defines the structure of one or more
+</section>
+
+<section id="dsd">
+
+<!--OddPage-->
+<h2><span class="secno">7. </span>Creating data structure definitions</h2>
+
+<p>A <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code> defines the structure of one or more
 datasets. In particular, it defines the dimensions, attributes and measures 
 used in the dataset along with qualifying information such as ordering of
   dimensions and whether attributes are required or optional. For well-formed
@@ -978,13 +899,13 @@
 that structure once and then reuse it for each publication in the series. Consumers can then be
   confident that the structure of the data has not changed.</p>
 
-<div class="section" id="dsd-dimensions">
-<h3><span class="secno">5.1 </span>Dimensions, attributes and measures</h3>
+<section id="dsd-dimensions">
+<h3><span class="secno">7.1 </span>Dimensions, attributes and measures</h3>
 
 <p>The Data Cube vocabulary represents the dimensions, attributes and measures
-  as RDF properties. Each is an instance of the abstract <code>qb:ComponentProperty</code> 
-  class,  which in turn has sub-classes <code>qb:DimensionProperty</code>,
-  <code>qb:AttributeProperty</code> and <code>qb:MeasureProperty</code>.</p>
+  as RDF properties. Each is an instance of the abstract <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code> 
+  class,  which in turn has sub-classes <code><a href="#dfn-qb-dimensionproperty" class="internalDFN">qb:DimensionProperty</a></code>,
+  <code><a href="#dfn-qb-attributeproperty" class="internalDFN">qb:AttributeProperty</a></code> and <code><a href="#dfn-qb-measureproperty" class="internalDFN">qb:MeasureProperty</a></code>.</p>
 
 <p>A component property encapsulates several pieces of information:</p>
 <ul>
@@ -1001,15 +922,15 @@
   In statistical agencies it is common to have a standard thesaurus of statistical concepts which 
   underpin the components used in multiple different data sets.</p>
 
-<p>To support this reuse of general statistical concepts the data cube vocabulary provides the <code>qb:concept</code> property which
-  links a <code>qb:ComponentProperty</code> to the concept it represents. We use the SKOS
-  vocabulary [<cite><a href="#bib-SKOS-PRIMER" rel="biblioentry" class="bibref">SKOS-PRIMER</a></cite>] to represent such concepts. This is very natural for those cases where the  
+<p>To support this reuse of general statistical concepts the data cube vocabulary provides the <code><a href="#dfn-qb-concept" class="internalDFN">qb:concept</a></code> property which
+  links a <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code> to the concept it represents. We use the SKOS
+  vocabulary [<cite><a class="bibref" href="#bib-SKOS-PRIMER">SKOS-PRIMER</a></cite>] to represent such concepts. This is very natural for those cases where the  
   concepts are already maintained as a controlled term list or thesaurus.
    When developing a data structure definition for an informal data set there may not be an appropriate 
    concept already. In those cases, if the concept is likely to be reused in other guises it is recommended to
-   publish a <code>skos:Concept</code> along with the specific <code>qb:ComponentProperty</code>. However, if
-  such reuse is not expected then it is not required to do so - the <code>qb:concept</code>
-  link is optional and a simple instance of the appropriate subclass of <code>qb:ComponentProperty</code> is
+   publish a <code>skos:Concept</code> along with the specific <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code>. However, if
+  such reuse is not expected then it is not required to do so - the <code><a href="#dfn-qb-concept" class="internalDFN">qb:concept</a></code>
+  link is optional and a simple instance of the appropriate subclass of <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code> is
   sufficient.</p>
 
 <p>The representation of the possible values of the component is described using the <code>rdfs:range</code>
@@ -1019,53 +940,58 @@
 <p>In statistical data sets it is common
    for values to be encoded using some (possibly hierarchical) code list and it can be useful to be 
    able to easily identify the overall code list in some more structured form. To cater for this a 
-  component can also be optionally annotated with a <code>qb:codeList</code> denoting a <code>skos:ConceptScheme</code>.
+  component can also be optionally annotated with  a <code><a href="#dfn-qb-codelist" class="internalDFN">qb:codeList</a></code> to indicate a set of 
+  <code>skos:Concept</code>s which may be used as codes. The  <code><a href="#dfn-qb-codelist" class="internalDFN">qb:codeList</a></code> value may be a
+  <code>skos:ConceptScheme</code>,  <code>skos:Collection</code> or <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code>.
   In such a case the <code>rdfs:range</code> of the component might be left as simply <code>skos:Concept</code> but 
   a useful design pattern is to also define an <code>rdfs:Class</code>
   whose members are all the <code>skos:Concept</code>s within a particular scheme. In that way 
   the <code>rdfs:range</code> can be made more specific which enables generic RDF tools to perform
   appropriate range checking.</p>
 
-<p>Note that in the SDMX extension vocabulary there is one further item of information to encode
+<p>Note that in any SDMX extension vocabulary there would be one further item of information to encode
   about components - the role that they play within the structure definition. In particular, is sometimes
   convenient for consumers to be able to easily identify which is the time dimension,
   which component is the primary measure and so forth. It turns out that such roles are intrinsic to
-  the concepts and so this information is encoded by providing subclasses of <code>skos:Concept</code>
+  the concepts and so this information can encoded by providing subclasses of <code>skos:Concept</code>
   for each role. The particular choice of roles here is specific to the SDMX standard and so is not 
-  included within the core data cube vocabulary. In cases where such roles are appropriate then we 
-  encourage applications of the data cube vocabulary to also supply the relevant SDMX-derived role
-  information.</p>
+  included within the core Data Cube vocabulary.</p>
 
 <p>Before illustrating the components needed for our running example, there is one more piece
   of machinery to introduce, a reusable set of concepts and components based on SDMX. 
 </p>
-</div>
-
-<div class="section" id="dsd-cog">
-<h3><span class="secno">5.2 </span>Content oriented guidelines</h3>
-
-<p>The SDMX standard includes a set of <em>content oriented guidelines</em> (COG) [<cite><a href="#bib-COG" rel="biblioentry" class="bibref">COG</a></cite>]
- which define a
-   set of common statistical concepts and associated code lists that are intended to be 
-   reusable across data sets. As part of the data cube work we have created RDF analogues
-  to the COG. These include:</p>
-  <ul>
-    <li><code>sdmx-concept</code>: SKOS Concepts for each COG defined concept;</li>
-    <li><code>sdmx-code</code>: SKOS Concepts and ConceptSchemes for each COG defined code list;</li>
-    <li><code>sdmx-dimension</code>: component properties corresponding to each COG concept that can be used as a dimension;</li>
-    <li><code>sdmx-attribute</code>: component properties corresponding to each COG concept that can be used as a attribute;</li>
-    <li><code>sdmx-measure</code>: component properties corresponding to each COG concept that can be used as a measure.</li>
-  </ul>
-
-<p>The data cube vocabulary is standalone and it is not mandatory to use the SDMX COG-derived
-   terms. However, when the concepts being expressed do match a COG concept it is recommended
-   that publishers should reuse the corresponding components and/or concept URIs to simplify comparisons
-  across data sets. Given this background we will reuse the relevant COG components in our worked example.</p>
-</div>
-
-
-<div class="section" id="dsd-example">
-<h3><span class="secno">5.3 </span>Example</h3>
+</section>
+
+<section id="dsd-cog" class="informative">
+<h3><span class="secno">7.2 </span>Content oriented guidelines</h3><p><em>This section is non-normative.</em></p>
+
+<p>The SDMX standard includes a set of <em>content oriented guidelines</em> (COG) [<cite><a class="bibref" href="#bib-COG">COG</a></cite>]
+ which define a  set of common statistical concepts and associated code lists that are intended to be 
+   reusable across data sets. A <a href="https://code.google.com/p/publishing-statistical-data/">community group</a> has developed, and
+   maintains, RDF encodings of these guidelines. These comprise:
+
+</p><table id="namespaces">
+  <thead><tr><th>Prefix</th><th>Namespace</th><th>Description</th></tr></thead>
+  <tbody>
+    <tr><td><code>sdmx-concept</code></td><td><a href="http://purl.org/linked-data/sdmx/2009/concept#">http://purl.org/linked-data/sdmx/2009/concept#</a></td><td>SKOS Concepts for each COG defined concept</td>
+    </tr><tr><td><code>sdmx-code</code></td><td><a href="http://purl.org/linked-data/sdmx/2009/code#">http://purl.org/linked-data/sdmx/2009/code#</a></td><td>SKOS Concepts and ConceptSchemes for each COG defined code list</td>
+    </tr><tr><td><code>sdmx-dimension</code></td><td><a href="http://purl.org/linked-data/sdmx/2009/dimension#">http://purl.org/linked-data/sdmx/2009/dimension#</a></td><td>component properties corresponding to each COG concept that can be used as a dimension</td>
+    </tr><tr><td><code>sdmx-attribute</code></td><td><a href="http://purl.org/linked-data/sdmx/2009/attribute#">http://purl.org/linked-data/sdmx/2009/attribute#</a></td><td>component properties corresponding to each COG concept that can be used as an attribute</td>
+    </tr><tr><td><code>sdmx-measure</code></td><td><a href="http://purl.org/linked-data/sdmx/2009/measure#">http://purl.org/linked-data/sdmx/2009/measure#</a></td><td>component properties corresponding to each COG concept that can be used as a measure</td>
+  
+  </tr></tbody>
+</table>
+
+<p>These resources are provided as a convenience and do not form part
+  of the Data Cube standard at this time. However, they are used
+  by a number of existing Data Cube publications and so we will
+  reference them within our worked examples.</p>
+
+</section>
+
+
+<section id="dsd-example" class="informative">
+<h3><span class="secno">7.3 </span>Example</h3><p><em>This section is non-normative.</em></p>
 
 <p>Turning to our example data set then we can see there are three dimensions to represent
    - time period, region (unitary authority) and sex of the population. There is a single
@@ -1077,21 +1003,21 @@
   to represent the time period itself it would be convenient to use the data.gov.uk reference
   time service and to declare this within the data structure definition.</p>
 
-<pre>  eg:refPeriod  a rdf:Property, qb:DimensionProperty;
-      rdfs:label "reference period"@en;
-      rdfs:subPropertyOf sdmx-dimension:refPeriod;
-      rdfs:range interval:Interval;
-      qb:concept sdmx-concept:refPeriod . </pre>
+<div class="example"><div class="example-title"><span>Example 1</span></div><pre class="example">eg:refPeriod  a rdf:Property, qb:DimensionProperty;
+    rdfs:label &quot;reference period&quot;@en;
+    rdfs:subPropertyOf sdmx-dimension:refPeriod;
+    rdfs:range interval:Interval;
+    qb:concept sdmx-concept:refPeriod . </pre></div>
 
 <p><b>Region.</b> Again there is a suitable COG concept and associated component that
 we can use for this, and again we can customize the range of the component. In this case
-  we can use the Ordanance Survey administrative geography ontology [<cite><a href="#bib-OS-GEO" rel="biblioentry" class="bibref">OS-GEO</a></cite>].</p>
-
-<pre>  eg:refArea  a rdf:Property, qb:DimensionProperty;
-      rdfs:label "reference area"@en;
-      rdfs:subPropertyOf sdmx-dimension:refArea;
-      rdfs:range admingeo:UnitaryAuthority;
-      qb:concept sdmx-concept:refArea . </pre>
+  we can use the Ordnance Survey Administrative Geography Ontology [<cite><a class="bibref" href="#bib-OS-GEO">OS-GEO</a></cite>].</p>
+
+<div class="example"><div class="example-title"><span>Example 2</span></div><pre class="example">eg:refArea  a rdf:Property, qb:DimensionProperty;
+    rdfs:label &quot;reference area&quot;@en;
+    rdfs:subPropertyOf sdmx-dimension:refArea;
+    rdfs:range admingeo:UnitaryAuthority;
+    qb:concept sdmx-concept:refArea . </pre></div>
 
 <p><b>Sex.</b> In this case we can use the corresponding COG component <code>sdmx-dimension:sex</code> 
     directly, since the default code list for it includes the terms we need.</p>
@@ -1101,10 +1027,10 @@
   the topic being observed using metadata). However, it can aid readability and processing
   of the RDF data sets to use a specific measure corresponding to the phenomenon being observed.</p>
   
-<pre>  eg:lifeExpectancy  a rdf:Property, qb:MeasureProperty;
-      rdfs:label "life expectancy"@en;
-      rdfs:subPropertyOf sdmx-measure:obsValue;
-      rdfs:range xsd:decimal . </pre>
+<div class="example"><div class="example-title"><span>Example 3</span></div><pre class="example">eg:lifeExpectancy  a rdf:Property, qb:MeasureProperty;
+    rdfs:label &quot;life expectancy&quot;@en;
+    rdfs:subPropertyOf sdmx-measure:obsValue;
+    rdfs:range xsd:decimal . </pre></div>
   
 <p><b>Unit measure attribute.</b> The primary measure on its own is a plain decimal value.
   To correctly interpret this value we need to define what units it is measured in (years in this case).
@@ -1113,75 +1039,82 @@
   which in turn corresponds to the COG concept of <code>UNIT_MEASURE</code>. To express
   the value of this attribute we would typically us a common thesaurus of units of measure.
   For the sake of this simple example we will use the DBpedia resource <code>http://dbpedia.org/resource/Year</code>
-  which corresponds to the topic of the Wikipedia page on "Years".</p>
+  which corresponds to the topic of the Wikipedia page on &quot;Years&quot;.</p>
 
 <p>This covers the minimal components needed to define the structure of this data set.</p>
-</div>
-
-
-<div class="section" id="dsd-dsd">
-<h3><span class="secno">5.4 </span>ComponentSpecifications and DataStructureDefinitions</h3>
+</section>
+
+
+<section id="dsd-dsd">
+<h3><span class="secno">7.4 </span>ComponentSpecifications and DataStructureDefinitions</h3>
 
 <p>To combine the components into a specification for the structure of this
-  dataset we need to declare a <code>qb:DataStuctureDefinition</code>
-  resource which in turn will reference a set of <code>qb:ComponentSpecification</code> resources.
-  The <code>qb:DataStuctureDefinition</code> will be reusable across other data sets with the same structure.</p>
-
-<p>In the simplest case the <code>qb:ComponentSpecification</code> simply references the
-  corresponding <code>qb:ComponentProperty</code> (ususally using one of the sub properties
-  <code>qb:dimension</code>, <code>qb:measure</code> or <code>qb:attribute</code>). 
+  dataset we need to declare a <code><a>qb:DataStuctureDefinition</a></code>
+  resource which in turn will reference a set of <code><a href="#dfn-qb-componentspecification" class="internalDFN">qb:ComponentSpecification</a></code> resources.
+  The <code><a>qb:DataStuctureDefinition</a></code> will be reusable across other data sets with the same structure.</p>
+
+<p>In the simplest case the <code><a href="#dfn-qb-componentspecification" class="internalDFN">qb:ComponentSpecification</a></code> simply references the
+  corresponding <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code> (usually using one of the sub properties
+  <code><a href="#dfn-qb-dimension" class="internalDFN">qb:dimension</a></code>, <code><a href="#dfn-qb-measure" class="internalDFN">qb:measure</a></code> or <code><a href="#dfn-qb-attribute" class="internalDFN">qb:attribute</a></code>). 
   However, it is also possible to qualify the
   component specification in several ways.</p>
 
 <ul>
-  <li>An Attribute may be optional in which case the specification should set 
-    <code>qb:componentRequired "false"^^xsd:boolean.</code></li>
-  <li>The components may be ordered by giving an integer value for <code>qb:order</code>. 
+  <li>Attributes may be declared as optional or required. If an
+  attribute is required to be present for every observation then the specification should set 
+    <code></code>. In the
+    absence of such a declaration an attribute is assumed to be
+    optional. The  <code><a>qb:componentRequired&gt;</a></code>
+    declaration may only be applied to component specifications of
+    attributes -  measures and dimensions are always required.</li>
+  <li>The components may be ordered by giving an integer value for <code><a href="#dfn-qb-order" class="internalDFN">qb:order</a></code>. 
     This order carries no semantics but can be useful to aid consuming agents in generating
     appropriate user interfaces. It can also be useful in the publication chain to enable
     synthesis of appropriate URIs for observations.</li>
   <li>By default the values of all of the components will be attached to each individual observation,
-    a so called <em>flattened</em> representation.
+    a so called <em><a href="#dfn-flattened" class="internalDFN">flattened</a></em> representation.
     This allows such observations to stand alone, so that a SPARQL query to retrieve the observation
     can immediately locate the attributes which enable the observation to be interpreted. However,
     it is also permissible to attach attributes to the
     overall data set, to an intervening slice or to a specific Measure (in the case of multiple measures).
     This reduces some of the redundancy in the encoding of the instance data. To declare such a 
-    non-flat structure, the <code>qb:componentAttachment</code> property of the specification should
-    reference the class corresponding to the attachment level (e.g. <code>qb:DataSet</code> for attributes
+    non-flat structure, the <code><a href="#dfn-qb-componentattachment" class="internalDFN">qb:componentAttachment</a></code> property of the specification should
+    reference the class corresponding to the attachment level (e.g. <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> for attributes
     that will be attached to the overall data set).</li>
 </ul>
 
 <p>In the case of our running example the dimensions can be usefully ordered. There is only one
-   attribute, the unit measure, and this is required. In the interests of illustrating the vocabulary
+   attribute, the unit measure, and this is required. In the interest of illustrating the vocabulary
    use we will declare that this attribute will be attached at the level of the data set, however 
   flattened representations are in general easier to query and combine.</p>
 
 <p>So the structure of our example data set (and other similar datasets) can be declared by:</p>
 
-<pre>  eg:dsd-le a qb:DataStructureDefinition;
-      # The dimensions
-      qb:component [qb:dimension eg:refArea;         qb:order 1];
-      qb:component [qb:dimension eg:refPeriod;       qb:order 2];
-      qb:component [qb:dimension sdmx-dimension:sex; qb:order 3];
-      # The measure(s)
-      qb:component [qb:measure eg:lifeExpectancy];
-      # The attributes
-      qb:component [qb:attribute sdmx-attribute:unitMeasure; qb:componentAttachment qb:DataSet;] .</pre>
+<div class="example"><div class="example-title"><span>Example 4</span></div><pre id="attachment-example" class="example">eg:dsd-le a qb:DataStructureDefinition;
+    # The dimensions
+    qb:component [qb:dimension eg:refArea;         qb:order 1];
+    qb:component [qb:dimension eg:refPeriod;       qb:order 2];
+    qb:component [qb:dimension sdmx-dimension:sex; qb:order 3];
+    # The measure(s)
+    qb:component [qb:measure eg:lifeExpectancy];
+    # The attributes
+    qb:component [qb:attribute sdmx-attribute:unitMeasure; 
+                  qb:componentRequired &quot;true&quot;^^xsd:boolean;
+                  qb:componentAttachment qb:DataSet;] .</pre></div>
 
 <p>Note that we have given the data structure definition (DSD) a URI since it will be
  reused across different datasets with the same structure. Similarly the component properties
  themselves can be reused across different DSDs. However, the component specifications
- are only useful within the scope of a particular DSD and so we have chosen the represent
+ are only useful within the scope of a particular DSD and so we have chosen to represent
  them using blank nodes.
 </p>
-</div>
+</section>
       
 
-<div class="section" id="dsd-mm">
-<h3><span class="secno">5.5 </span>Handling multiple measures</h3>
-
-<p>Our example data set is relatively simple in having a single observable (in this case "life expectancy") 
+<section id="dsd-mm">
+<h3><span class="secno">7.5 </span>Handling multiple measures</h3>
+
+<p>Our example data set is relatively simple in having a single observable (in this case &quot;life expectancy&quot;) 
   that is being measured. In other data sets there can be multiple measures. These measures
   may be of similar nature (e.g. a data set on local government performance might provide
   multiple different performance indicators for each region) or quite different (e.g. a data set
@@ -1192,7 +1125,7 @@
   add an additional dimension whose value indicates the measure. This is appropriate for applications
   where the measures are separate aggregate statistics. In other domains such as a clinical statistics
   or sensor networks then the term <em>observation</em> usually denotes an observation event which can include multiple
-  observed values.  Similarly in Business Intelligence applications and OLAP, a single "cell" in the data cube will 
+  observed values.  Similarly in Business Intelligence applications and OLAP, a single &quot;cell&quot; in the data cube will 
   typically contain values for multiple measures.
 </p>
   
@@ -1200,89 +1133,89 @@
   within the same data set.</p>
   
 
-<div class="section" id="dsd-mm-obs">
-<h4><span class="secno">5.5.1 </span>Multi-measure observations</h4>
+<section id="dsd-mm-obs">
+<h4><span class="secno">7.5.1 </span>Multi-measure observations</h4>
   
 <p> This approach allows multiple observed values to be attached
-  to an individual observation. Is suited to representation of things like sensor data and OLAP cubes.
-  To use this representation you simply declare multiple <code>qb:MeasureProperty</code> components
+  to an individual observation. It is suited to representation of things like sensor data and OLAP cubes.
+  To use this representation you simply declare multiple <code><a href="#dfn-qb-measureproperty" class="internalDFN">qb:MeasureProperty</a></code> components
   in the data structure definition and attach an instance of each property to the observations within 
   the data set.</p>
 
 <p>For example, if we have a set of shipment data containing unit count and total weight for each
   shipment then we might have a data structure definition such as:</p>
-<pre>eg:dsd1 a qb:DataStructureDefinition;
-    rdfs:comment "shipments by time (multiple measures approach)"@en;
+<div class="example"><div class="example-title"><span>Example 5</span></div><pre class="example">eg:dsd1 a qb:DataStructureDefinition;
+    rdfs:comment &quot;shipments by time (multiple measures approach)&quot;@en;
     qb:component 
         [ qb:dimension  sdmx-dimension:refTime; ],
         [ qb:measure    eg-measure:quantity; ],
-        [ qb:measure    eg-measure:weight; ] . </pre>
+        [ qb:measure    eg-measure:weight; ] . </pre></div>
         
 <p>This would correspond to individual observations such as:</p>
-<pre>eg:dataset1 a qb:DataSet;
+<div class="example"><div class="example-title"><span>Example 6</span></div><pre class="example">eg:dataset1 a qb:DataSet;
     qb:structure eg:dsd1 .
     
 eg:obs1a  a qb:Observation;
     qb:dataSet eg:dataset1;
-    sdmx-dimension:refTime "30-07-2010"^^xsd:date;
+    sdmx-dimension:refTime &quot;30-07-2010&quot;^^xsd:date;
     eg-measure:weight 1.3 ;
     eg-measure:quantity 42 ;
-    . </pre>
+    . </pre></div>
     
 <p>Note that one limitation of the multi-measure approach is that it is not possible to attach
   an attribute to a single observed value. An attribute attached to the observation instance
   will apply to the whole observation (e.g. to indicate who made the observation). Attributes
-  can also be attached directly to the <code>qb:MeasureProperty</code> itself (e.g. to indicate
+  can also be attached directly to the <code><a href="#dfn-qb-measureproperty" class="internalDFN">qb:MeasureProperty</a></code> itself (e.g. to indicate
   the <em>unit of measure</em> for that measure) but that attachment applies to the whole data
   set (indeed any data set using that measure property) and cannot vary for different observations.
   For applications where this limitation is a problem then use the <em>measure dimension</em> approach.</p> 
-</div>
-
-
-<div class="section" id="dsd-mm-dim">
-<h4><span class="secno">5.5.2 </span>Measure dimension</h4>
+</section>
+
+
+<section id="dsd-mm-dim">
+<h4><span class="secno">7.5.2 </span><dfn id="dfn-measure-dimension">Measure dimension</dfn></h4>
   
 <p>This approach restricts observations to having a single measured value but allows
   a data set to carry multiple measures by adding an extra dimension, a <em>measure dimension</em>.
   The value of the measure dimension denotes which particular measure is being conveyed by the 
   observation. This is the representation approach used within SDMX and the SMDX-in-RDF
-  extension vocabulary introduces a subclass of <code>qb:DataStructureDefinition</code> which is restricted
+  extension vocabulary introduces a subclass of <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code> which is restricted
   to using the <em>measure dimension</em> representation.</p>
   
 <p>To use this representation you declare an additional dimension within the data structure
   definition to play the role of the measure dimension. For use within the Data Cube vocabulary
-  we provide a single distinguished component for this purpose -- <code>qb:measureType</code>.
+  we provide a single distinguished component for this purpose -- <code><a href="#dfn-qb-measuretype" class="internalDFN">qb:measureType</a></code>.
   Within the SDMX-in-RDF extension then there is a role used to identify concepts which
   act as measure types, enabling other measure dimensions to be declared.
-  In the special case of using <code>qb:measureType</code> as the measure dimension, the set of allowed 
+  In the special case of using <code><a href="#dfn-qb-measuretype" class="internalDFN">qb:measureType</a></code> as the measure dimension, the set of allowed 
   measures is assumed to be those measures declared within the DSD. There is no need to 
   define a separate code list or enumerated class to duplicate this information. 
-  Thus, qb:measureType is a “magic” dimension property with an implicit code list.</p>
+  Thus, <code><a href="#dfn-qb-measuretype" class="internalDFN">qb:measureType</a></code> is a “magic” dimension property with an implicit code list.</p>
 
 <p>The data structure definition for our above example, using this representation approach, would then be:</p>
-<pre>eg:dsd2 a qb:DataStructureDefinition;
-    rdfs:comment "shipments by time (measure dimension approach)"@en;
+<div class="example"><div class="example-title"><span>Example 7</span></div><pre class="example">eg:dsd2 a qb:DataStructureDefinition;
+    rdfs:comment &quot;shipments by time (measure dimension approach)&quot;@en;
     qb:component 
         [ qb:dimension  sdmx-dimension:refTime; ],
         [ qb:measure    eg-measure:quantity; ],
         [ qb:measure    eg-measure:weight; ],
-        [ qb:dimension  qb:measureType; ] . </pre>
+        [ qb:dimension  qb:measureType; ] . </pre></div>
         
 <p>This would correspond to individual observations such as:</p>
-<pre>eg:dataset2 a qb:DataSet;
+<div class="example"><div class="example-title"><span>Example 8</span></div><pre class="example">eg:dataset2 a qb:DataSet;
     qb:structure eg:dsd2 .
     
 eg:obs2a  a qb:Observation;
     qb:dataSet eg:dataset2;
-    sdmx-dimension:refTime "30-07-2010"^^xsd:date;
+    sdmx-dimension:refTime &quot;30-07-2010&quot;^^xsd:date;
     qb:measureType eg-measure:weight ;
     eg-measure:weight 1.3 .
     
 eg:obs2b  a qb:Observation;
     qb:dataSet eg:dataset2;
-    sdmx-dimension:refTime "30-07-2010"^^xsd:date;
+    sdmx-dimension:refTime &quot;30-07-2010&quot;^^xsd:date;
     qb:measureType eg-measure:quantity ;
-    eg-measure:quantity 42 . </pre>
+    eg-measure:quantity 42 . </pre></div>
     
 
 <p>Note the duplication of having the measure property show up both as the property that 
@@ -1291,19 +1224,21 @@
   a uniform way of declaring and using measure properties on all kinds of datasets.</p><p>
   
 </p><p>Those familiar with SDMX should also note that in the RDF representation there is 
-  no need for a separate "primary measure" which subsumes each of the individual 
-  measures, those individual measures are used directly. The SDMX-in-RDF extension
-  vocabulary addresses the round-tripping of the SDMX primary measure by use of a
-  separate annotation on <code>sdmx:DataStructureDefinition</code>.</p>
-</div>
-
-</div>
-
-</div>
-
-
-<div class="section" id="datasets">
-<!--OddPage--><h2><span class="secno">6. </span>Expressing data sets</h2>
+  no need for a separate &quot;primary measure&quot; which subsumes each of the individual 
+  measures, those individual measures are used directly. Extension vocabularies
+  could address the round-tripping of the SDMX primary measure by use of a
+  separate annotation on the data structure definition.
+</p></section>
+
+</section>
+
+</section>
+
+
+<section id="datasets">
+
+<!--OddPage-->
+<h2><span class="secno">8. </span>Expressing data sets</h2>
 
 <p>A DataSet is a collection of statistical data that corresponds to a given data structure definition. 
 The data in a data set can be roughly described as belonging to one of the following kinds:</p>
@@ -1317,7 +1252,7 @@
   <dd>To locate an observation within the hypercube, one has at least to know the value of each 
       dimension at which the observation is located, so these values must be specified for each observation. 
       Datasets can have additional organizational structure in the form of <em>slices</em> 
-    as described earlier in <a href="#cubes-slices">section 2.2</a>.
+    as described earlier in <a href="#cubes-slices">section 5.2</a>.
 
   </dd><dt>Internal metadata</dt>
   <dd>Having located an observation, we need certain metadata in order to be able to interpret it. 
@@ -1329,117 +1264,117 @@
   <dt>External metadata</dt>
   <dd>This is metadata that describes the dataset as a whole, such as categorization of the 
        dataset, its publisher, and a SPARQL endpoint where it can be accessed. 
-      External metadata is described in <a href="#metadata">section 9</a>.</dd>
+      External metadata is described in <a href="#metadata">section 11</a>.</dd>
 </dl>
 
 
-<div class="section" id="dataset-basic">
-<h3><span class="secno">6.1 </span>Data sets and observations</h3>
-
-<p>A resource representing the entire data set is created and typed as <code>qb:DataSet</code> and
-  linked to the corresponding data structure definition via the <tt>qb:structure</tt> property.</p>
+<section id="dataset-basic">
+<h3><span class="secno">8.1 </span>Data sets and observations</h3>
+
+<p>A resource representing the entire data set is created and typed as <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> and
+  linked to the corresponding data structure definition via the <code><a href="#dfn-qb-structure" class="internalDFN">qb:structure</a></code> property.</p>
 
 <p><strong>Pitfall</strong>: Note the capitalization of <tt>qb:<strong>D</strong>ata<strong>S</strong>et</tt>, 
 which differs from the capitalization in other vocabularies, such as
 <a href="http://semanticweb.org/wiki/VoiD">void:Dataset</a> and <a href="http://www.w3.org/egov/wiki/Data_Catalog_Vocabulary">dcat:Dataset</a>. This unusual capitalization is chosen for compatibility
-with the SDMX standard. The same applies to the related property <tt>qb:data<strong>S</strong>et</tt>.</p>
-
-<p>Each observation is represented as an instance of type <code>qb:Observation</code>.
+with the SDMX standard. The same applies to the related property <code>qb:data<strong>S</strong>et</code>.</p>
+
+<p>Each observation is represented as an instance of type <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code>.
   In the basic case then values for each of the attributes, dimensions and measurements are attached directly to the observation (remember 
   that these components are all RDF properties). The observation is linked to the containing
-  data set using the <code>qb:dataSet</code> property. For example:</p>
+  data set using the <code><a href="#dfn-qb-dataset-1" class="internalDFN">qb:dataSet</a></code> property. </p>
 
 <p>Thus for our running example we might expect to have:</p>
 
-<pre>  eg:dataset-le1 a qb:DataSet;
-      rdfs:label "Life expectancy"@en;
-      rdfs:comment "Life expectancy within Welsh Unitary authorities - extracted from Stats Wales"@en;
-      qb:structure eg:dsd-le ;
-      .  
-
-  eg:o1 a qb:Observation;
-      qb:dataSet  eg:dataset-le1 ;
-      eg:refArea                 admingeo:newport_00pr ;                  
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
-      eg:lifeExpectancy          76.7 ;
-      .
-
-  eg:o2 a qb:Observation;
-      qb:dataSet  eg:dataset-le1 ;
-      eg:refArea                 admingeo:cardiff_00pt ;                  
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
-      eg:lifeExpectancy          78.7 ;
-      .
-
-  eg:o3 a qb:Observation;
-      qb:dataSet  eg:dataset-le1 ;
-      eg:refArea                 admingeo:monmouthshire_00pp ;                  
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
-      eg:lifeExpectancy          76.6 ;
-      .
-
-  ...
-</pre>
-
-<p>This <em>flattened</em> structure makes it easy to query and combine data sets 
+<div class="example"><div class="example-title"><span>Example 9</span></div><pre class="example">eg:dataset-le1 a qb:DataSet;
+    rdfs:label &quot;Life expectancy&quot;@en;
+    rdfs:comment &quot;Life expectancy within Welsh Unitary authorities - extracted from Stats Wales&quot;@en;
+    qb:structure eg:dsd-le ;
+    .  
+
+eg:o1 a qb:Observation;
+    qb:dataSet  eg:dataset-le1 ;
+    eg:refArea                 ex-geo:newport_00pr ;                  
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
+    eg:lifeExpectancy          76.7 ;
+    .
+
+eg:o2 a qb:Observation;
+    qb:dataSet  eg:dataset-le1 ;
+    eg:refArea                 ex-geo:cardiff_00pt ;                  
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
+    eg:lifeExpectancy          78.7 ;
+    .
+
+eg:o3 a qb:Observation;
+    qb:dataSet  eg:dataset-le1 ;
+    eg:refArea                 ex-geo:monmouthshire_00pp ;                  
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
+    eg:lifeExpectancy          76.6 ;
+    .
+
+...</pre></div>
+
+<p>This <a href="#dfn-flattened" class="internalDFN">flattened</a> structure makes it easy to query and combine data sets 
   but there is some redundancy here. For example, the unit of measure for the
   life expectancy is uniform across the whole data set and does not change between
   observations. To cater for situations like this the Data Cube vocabulary allows components
   to be attached at a high level in the nested structure. Indeed if we re-examine our
   original Data Structure Declaration we see that we declared the unit of measure to be
-  attached at the data set level. So the corrected example is:</p>
-
-<pre>  eg:dataset-le1 a qb:DataSet;
-      rdfs:label "Life expectancy"@en;
-      rdfs:comment "Life expectancy within Welsh Unitary authorities - extracted from Stats Wales"@en;
-      qb:structure eg:dsd-le ;  
-      sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
-      .
-      
-  eg:o1 a qb:Observation;
-      qb:dataSet  eg:dataset-le1 ;
-      eg:refArea                 admingeo:newport_00pr ;                  
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      eg:lifeExpectancy          76.7 ;
-      .
-      
-  eg:o2 a qb:Observation;
-      qb:dataSet  eg:dataset-le1 ;
-      eg:refArea                 admingeo:cardiff_00pt ;                  
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      eg:lifeExpectancy          78.7 ;
-      .
-
-  eg:o3 a qb:Observation;
-      qb:dataSet  eg:dataset-le1 ;
-      eg:refArea                 admingeo:monmouthshire_00pp ;                  
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      eg:lifeExpectancy          76.6 ;
-      .
-
-  ...
-</pre>
+  attached at the data set level. So an improved version of the example is:</p>
+
+<div class="example"><div class="example-title"><span>Example 10</span></div><pre class="example">eg:dataset-le1 a qb:DataSet;
+    rdfs:label &quot;Life expectancy&quot;@en;
+    rdfs:comment &quot;Life expectancy within Welsh Unitary authorities - extracted from Stats Wales&quot;@en;
+    qb:structure eg:dsd-le ;  
+    sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
+    .
+    
+eg:o1 a qb:Observation;
+    qb:dataSet  eg:dataset-le1 ;
+    eg:refArea                 ex-geo:newport_00pr ;                  
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    eg:lifeExpectancy          76.7 ;
+    .
+    
+eg:o2 a qb:Observation;
+    qb:dataSet  eg:dataset-le1 ;
+    eg:refArea                 ex-geo:cardiff_00pt ;                  
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    eg:lifeExpectancy          78.7 ;
+    .
+
+eg:o3 a qb:Observation;
+    qb:dataSet  eg:dataset-le1 ;
+    eg:refArea                 ex-geo:monmouthshire_00pp ;                  
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    eg:lifeExpectancy          76.6 ;
+    .
+
+...</pre></div>
 
 <p>In a data set containing just observations with no intervening structure then each observation
   must have a complete set of dimension values, along with all the measure values. If the
   set is structured by using slices then further abbreviation is possible, as discussed
   in the next section.</p>
-</div>
-
-</div>
-
-
-<div class="section" id="slices">
-<!--OddPage--><h2><span class="secno">7. </span>Slices</h2>
+</section>
+
+</section>
+
+
+<section id="slices">
+
+<!--OddPage-->
+<h2><span class="secno">9. </span>Slices</h2>
 
 <p>Slices allow us to group subsets of observations together. This not intended
   to represent arbitrary selections from the observations but uniform slices
@@ -1449,79 +1384,77 @@
 <ul>
   <li>to guide consuming applications in how to present the data (e.g. to organize
       data as a set of time series);</li>
-  <li>to provide an identity (URI) for the slice to enable to be annotated or externally referenced;</li>
+  <li>to provide an identity (URI) for the slice to enable it to be annotated or externally referenced;</li>
   <li>to reduce the verbosity of the data set by only stating each fixed dimensional value once.</li>
 </ul>  
 
 <p>To illustrate the use of slices let us group the sample data set into geographic series.
- That will enable us to refer to e.g. "male life expectancy observations for 2004-6" 
+ That will enable us to refer to e.g. &quot;male life expectancy observations for 2004-2006&quot; 
  and guide applications to present a comparative chart across regions. </p>
 
-<p>We first define the structure of the slices we want by associating a "slice key" which the
-   data structure definition. This is done by creating a <code>qb:SliceKey</code> which
+<p>We first define the structure of the slices we want by associating a &quot;slice key&quot; which the
+   data structure definition. This is done by creating a <code><a href="#dfn-qb-slicekey" class="internalDFN">qb:SliceKey</a></code> which
    lists the component properties (which must be dimensions) which will be fixed in the
-   slice. The key is attached to the DSD using <code>qb:sliceKey</code>. For example: </p>
+   slice. The key is attached to the DSD using <code><a href="#dfn-qb-slicekey-1" class="internalDFN">qb:sliceKey</a></code>. For example: </p>
    
-<pre>  eg:sliceByRegion a qb:SliceKey;
-      rdfs:label "slice by region"@en;
-      rdfs:comment "Slice by grouping regions together, fixing sex and time values"@en;
-      qb:componentProperty eg:refPeriod, sdmx-dimension:sex .
-      
-  eg:dsd-le-slice1 a qb:DataStructureDefinition;
-      qb:component 
-          [qb:dimension eg:refArea;         qb:order 1];
-          [qb:dimension eg:refPeriod;       qb:order 2];
-          [qb:dimension sdmx-dimension:sex; qb:order 3];
-          [qb:measure eg:lifeExpectancy];
-          [qb:attribute sdmx-attribute:unitMeasure; qb:componentAttachment qb:DataSet;] ;
-      qb:sliceKey eg:sliceByRegion .
-</pre>   
-
-<p>In the instance data then slices are represented by instances of <code>qb:Slice</code> which 
-  link to the observations in the slice via <code>qb:observation</code> and to the key by means
-  of <code>qb:sliceStructure</code>. Data sets indicate
-  the slices they contain by means of <code>qb:slice</code>. Thus in our example we would have:</p>
-
-<pre>  eg:dataset-le2 a qb:DataSet;
-      rdfs:label "Life expectancy"@en;
-      rdfs:comment "Life expectancy within Welsh Unitary authorities - extracted from Stats Wales"@en;
-      qb:structure eg:dsd-le-slice2 ;  
-      sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
-      qb:slice eg:slice2;
-      .
-  
-  eg:slice2 a qb:Slice;
-      qb:sliceStructure  eg:sliceByRegion ;
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      qb:observation eg:o1b, eg:o2b; eg:o3b, ... .
-
-  eg:o1b a qb:Observation;
-      qb:dataSet  eg:dataset-le2 ;
-      eg:refArea                 admingeo:newport_00pr ;                  
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      eg:lifeExpectancy          76.7 ;
-      .
-      
-  eg:o2b a qb:Observation;
-      qb:dataSet  eg:dataset-le2 ;
-      eg:refArea                 admingeo:cardiff_00pt ;                  
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      eg:lifeExpectancy          78.7 ;
-      .
-
-  eg:o3b a qb:Observation;
-      qb:dataSet  eg:dataset-le2 ;
-      eg:refArea                 admingeo:monmouthshire_00pp ;                  
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      eg:lifeExpectancy          76.6 ;
-      .
-
-  ...
-</pre>
+<div class="example"><div class="example-title"><span>Example 11</span></div><pre class="example">eg:sliceByRegion a qb:SliceKey;
+    rdfs:label &quot;slice by region&quot;@en;
+    rdfs:comment &quot;Slice by grouping regions together, fixing sex and time values&quot;@en;
+    qb:componentProperty eg:refPeriod, sdmx-dimension:sex .
+    
+eg:dsd-le-slice1 a qb:DataStructureDefinition;
+    qb:component 
+        [qb:dimension eg:refArea;         qb:order 1];
+        [qb:dimension eg:refPeriod;       qb:order 2];
+        [qb:dimension sdmx-dimension:sex; qb:order 3];
+        [qb:measure eg:lifeExpectancy];
+        [qb:attribute sdmx-attribute:unitMeasure; qb:componentAttachment qb:DataSet;] ;
+    qb:sliceKey eg:sliceByRegion .</pre></div>   
+
+<p>In the instance data then slices are represented by instances of <code><a href="#dfn-qb-slice" class="internalDFN">qb:Slice</a></code> which 
+  link to the observations in the slice via <code><a href="#dfn-qb-observation-1" class="internalDFN">qb:observation</a></code> and to the key by means
+  of <code><a href="#dfn-qb-slicestructure" class="internalDFN">qb:sliceStructure</a></code>. Data sets indicate
+  the slices they contain by means of <code><a href="#dfn-qb-slice-1" class="internalDFN">qb:slice</a></code>. Thus in our example we would have:</p>
+
+<div class="example"><div class="example-title"><span>Example 12</span></div><pre class="example">eg:dataset-le2 a qb:DataSet;
+    rdfs:label &quot;Life expectancy&quot;@en;
+    rdfs:comment &quot;Life expectancy within Welsh Unitary authorities - extracted from Stats Wales&quot;@en;
+    qb:structure eg:dsd-le-slice2 ;  
+    sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
+    qb:slice eg:slice2;
+    .
+
+eg:slice2 a qb:Slice;
+    qb:sliceStructure  eg:sliceByRegion ;
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    qb:observation eg:o1b, eg:o2b; eg:o3b, ... .
+
+eg:o1b a qb:Observation;
+    qb:dataSet  eg:dataset-le2 ;
+    eg:refArea                 ex-geo:newport_00pr ;                  
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    eg:lifeExpectancy          76.7 ;
+    .
+    
+eg:o2b a qb:Observation;
+    qb:dataSet  eg:dataset-le2 ;
+    eg:refArea                 ex-geo:cardiff_00pt ;                  
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    eg:lifeExpectancy          78.7 ;
+    .
+
+eg:o3b a qb:Observation;
+    qb:dataSet  eg:dataset-le2 ;
+    eg:refArea                 ex-geo:monmouthshire_00pp ;                  
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    eg:lifeExpectancy          76.6 ;
+    .
+
+...</pre></div>
 
 <p>Note that here we are still repeating the dimension values on the individual observations.
 This flattened representation means that a consuming application can still query 
@@ -1529,64 +1462,68 @@
 definition and search for slice definitions. If it is desired, this redundancy can be reduced
 by declaring different attachment levels for the dimensions. For example:
 </p>
-<pre>  eg:dsd-le-slice3 a qb:DataStructureDefinition;
-      qb:component 
-          [qb:dimension eg:refArea;         qb:order 1];
-          [qb:dimension eg:refPeriod;       qb:order 2; qb:componentAttachment qb:Slice];
-          [qb:dimension sdmx-dimension:sex; qb:order 3; qb:componentAttachment qb:Slice];
-          [qb:measure eg:lifeExpectancy];
-          [qb:attribute sdmx-attribute:unitMeasure; qb:componentAttachment qb:DataSet;] ;
-      qb:sliceKey eg:sliceByRegion .
-
-  eg:dataset-le3 a qb:DataSet;
-      rdfs:label "Life expectancy"@en;
-      rdfs:comment "Life expectancy within Welsh Unitary authorities - extracted from Stats Wales"@en;
-      qb:structure eg:dsd-le-slice3 ;  
-      sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
-      qb:slice eg:slice3 ;
-      .
-  
-  eg:slice3 a qb:Slice;
-      qb:sliceStructure  eg:sliceByRegion ;
-      eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
-      sdmx-dimension:sex         sdmx-code:sex-M ;
-      qb:observation eg:o1c, eg:o2c; eg:o3c, ... .
-
-  eg:o1c a qb:Observation;
-      qb:dataSet  eg:dataset-le3 ;
-      eg:refArea                 admingeo:newport_00pr ;                  
-      eg:lifeExpectancy          76.7 ;
-      .
-      
-  eg:o2c a qb:Observation;
-      qb:dataSet  eg:dataset-le3 ;
-      eg:refArea                 admingeo:cardiff_00pt ;                  
-      eg:lifeExpectancy          78.7 ;
-      .
-
-  eg:o3c a qb:Observation;
-      qb:dataSet  eg:dataset-le3 ;
-      eg:refArea                 admingeo:monmouthshire_00pp ;                  
-      eg:lifeExpectancy          76.6 ;
-      .
-
-  ...
-</pre>
-
-<p>The Data Cube vocabulary allows slices to be nested. We can declare
-  multiple slice keys in a DSD and it is possible for one slice key to
-  be a narrower version of another, represented using <code>qb:subSlice</code>. In that case, when providing non-flattened
-  data with dimensions attached to the slice level, then
-  it is permissible to nest the <code>qb:Slice</code> instances and so 
-  further reduce the duplication stating of dimension values. However, 
-  in general flat representations are recommended to simplify data consumption. 
-  Some tool chains may support (dynamic or static) generation flattened representations from 
-  abbreviated data sets.</p>
-</div>
-
-
-<div class="section" id="schemes">
-<!--OddPage--><h2><span class="secno">8. </span>Concept schemes and code lists</h2>
+<div class="example"><div class="example-title"><span>Example 13</span></div><pre class="example">eg:dsd-le-slice3 a qb:DataStructureDefinition;
+    qb:component 
+        [qb:dimension eg:refArea;         qb:order 1];
+        [qb:dimension eg:refPeriod;       qb:order 2; qb:componentAttachment qb:Slice];
+        [qb:dimension sdmx-dimension:sex; qb:order 3; qb:componentAttachment qb:Slice];
+        [qb:measure eg:lifeExpectancy];
+        [qb:attribute sdmx-attribute:unitMeasure; qb:componentAttachment qb:DataSet;] ;
+    qb:sliceKey eg:sliceByRegion .
+
+eg:dataset-le3 a qb:DataSet;
+    rdfs:label &quot;Life expectancy&quot;@en;
+    rdfs:comment &quot;Life expectancy within Welsh Unitary authorities - extracted from Stats Wales&quot;@en;
+    qb:structure eg:dsd-le-slice3 ;  
+    sdmx-attribute:unitMeasure &lt;http://dbpedia.org/resource/Year&gt; ;
+    qb:slice eg:slice3 ;
+    .
+
+eg:slice3 a qb:Slice;
+    qb:sliceStructure  eg:sliceByRegion ;
+    eg:refPeriod               &lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&gt; ;
+    sdmx-dimension:sex         sdmx-code:sex-M ;
+    qb:observation eg:o1c, eg:o2c; eg:o3c, ... .
+
+eg:o1c a qb:Observation;
+    qb:dataSet  eg:dataset-le3 ;
+    eg:refArea                 ex-geo:newport_00pr ;                  
+    eg:lifeExpectancy          76.7 ;
+    .
+    
+eg:o2c a qb:Observation;
+    qb:dataSet  eg:dataset-le3 ;
+    eg:refArea                 ex-geo:cardiff_00pt ;                  
+    eg:lifeExpectancy          78.7 ;
+    .
+
+eg:o3c a qb:Observation;
+    qb:dataSet  eg:dataset-le3 ;
+    eg:refArea                 ex-geo:monmouthshire_00pp ;                  
+    eg:lifeExpectancy          76.6 ;
+    .
+
+...</pre></div>
+
+<p>There are also situations in which a publisher wishes to group a set of observations
+together for ease of access or presentation purposes but where that set is not defined
+by simply fixing a set of dimension values. For example, in representing results from a collection
+of asynchronous monitoring processes it can be desirable to group together the set of most recent
+observations available from each process.
+For those situations the Data Cube vocabulary supports
+<code><a href="#dfn-qb-observationgroup" class="internalDFN">qb:ObservationGroup</a></code>. A <code><a href="#dfn-qb-observationgroup" class="internalDFN">qb:ObservationGroup</a></code> can contain an arbitrary
+collection of observations.  A <code><a href="#dfn-qb-slice" class="internalDFN">qb:Slice</a></code> is a special case of a  <code><a href="#dfn-qb-observationgroup" class="internalDFN">qb:ObservationGroup</a></code>.
+
+</p></section>
+
+
+<section id="schemes">
+
+<!--OddPage-->
+<h2><span class="secno">10. </span>Concept schemes and code lists</h2>
+
+<section id="schemes-intro">
+<h3><span class="secno">10.1 </span>Coded values for components properties</h3>
 
 <p>The values for dimensions within a data set must be unambiguously
    defined. They may be typed values (e.g. <code>xsd:dateTime</code> for time instances)
@@ -1601,16 +1538,16 @@
    converted may use controlled terms from some scheme which does not yet have
    associated URIs. In those cases we recommend use of SKOS, representing
    the individual code values using <code>skos:Concept</code> and the overall
-   set of admissible values using <code>skos:ConceptScheme</code>.</p>
+   set of admissible values using <code>skos:ConceptScheme</code> or <code>skos:Collection</code>.</p>
    
 <p>We illustrate this with an example drawn from the translation of the SDMX COG
   code list for gender, as used already in our worked example. The relevant subset of this code list is:</p>
 
-<pre>sdmx-code:sex a skos:ConceptScheme;
-    skos:prefLabel "Code list for Sex (SEX) - codelist scheme"@en;
-    rdfs:label "Code list for Sex (SEX) - codelist scheme"@en;
-    skos:notation "CL_SEX";
-    skos:note "This  code list provides the gender."@en;
+<div class="example"><div class="example-title"><span>Example 14</span></div><pre class="example">sdmx-code:sex a skos:ConceptScheme;
+    skos:prefLabel &quot;Code list for Sex (SEX) - codelist scheme&quot;@en;
+    rdfs:label &quot;Code list for Sex (SEX) - codelist scheme&quot;@en;
+    skos:notation &quot;CL_SEX&quot;;
+    skos:note &quot;This  code list provides the gender.&quot;@en;
     skos:definition &lt;http://sdmx.org/wp-content/uploads/2009/01/02_sdmx_cog_annex_2_cl_2009.pdf&gt; ;
     rdfs:seeAlso sdmx-code:Sex ;
     sdmx-code:sex skos:hasTopConcept sdmx-code:sex-F ;
@@ -1618,35 +1555,34 @@
 
 sdmx-code:Sex a rdfs:Class, owl:Class;
     rdfs:subClassOf skos:Concept ;
-    rdfs:label "Code list for Sex (SEX) - codelist class"@en;
-    rdfs:comment "This  code list provides the gender."@en;
+    rdfs:label &quot;Code list for Sex (SEX) - codelist class&quot;@en;
+    rdfs:comment &quot;This  code list provides the gender.&quot;@en;
     rdfs:seeAlso sdmx-code:sex .
 
 sdmx-code:sex-F a skos:Concept, sdmx-code:Sex;
     skos:topConceptOf sdmx-code:sex;
-    skos:prefLabel "Female"@en ;
-    skos:notation "F" ;
+    skos:prefLabel &quot;Female&quot;@en ;
+    skos:notation &quot;F&quot; ;
     skos:inScheme sdmx-code:sex .
 
 sdmx-code:sex-M a skos:Concept, sdmx-code:Sex;
     skos:topConceptOf sdmx-code:sex;
-    skos:prefLabel "Male"@en ;
-    skos:notation "M" ; 
-    skos:inScheme sdmx-code:sex .
-</pre>
+    skos:prefLabel &quot;Male&quot;@en ;
+    skos:notation &quot;M&quot; ; 
+    skos:inScheme sdmx-code:sex .</pre></div>
 
 <p><code>skos:prefLabel</code> is used to give a name to the code, 
 <code>skos:note</code> gives a description and <code>skos:notation</code> can be used 
 to record a short form code which might appear in other serializations. 
-The SKOS specification [SKOS] recommends the generation of a custom datatype for
+The SKOS specification [<cite><a class="bibref" href="#bib-SKOS-REFERENCE">SKOS-REFERENCE</a></cite>] recommends the generation of a custom datatype for
 each use of <code>skos:notation</code> but here the notation is not intended for use
 within RDF encodings, it merely documents the notation used in other representations 
 (which do not use such a datatype).</p>
 
 <p>It is convenient and good practice when developing a code list to also 
-create an Class to denote all the codes within the code
+create a Class to denote all the codes within the code
 list, irrespective of hierarchical structure. This allows the range of an
-<code>qb:ComponentProperty</code> to be defined by using <code>rdfs:range</code>
+<code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code> to be defined by using <code>rdfs:range</code>
 which then permits standard RDF closed-world checkers to validate use of the
 code list without requiring custom SDMX-RDF-aware tooling. We do that in the
 above example by using the common convention that the class name is the
@@ -1654,18 +1590,21 @@
 
 <p>This code list can then be associated with a coded property, such as a dimension:</p>
 
-<pre>  eg:sex a sdmx:DimensionProperty, sdmx:CodedProperty;
-      qb:codeList sdmx-code:sex ;
-      rdfs:range sdmx-code:Sex .
-</pre>
-
-<p>Explicitly declaring  the code list using <code>qb:codeList</code>
+<div class="example"><div class="example-title"><span>Example 15</span></div><pre class="example">eg:sex a sdmx:DimensionProperty, sdmx:CodedProperty;
+    qb:codeList sdmx-code:sex ;
+    rdfs:range sdmx-code:Sex .</pre></div>
+
+<p>Explicitly declaring  the code list using <code><a href="#dfn-qb-codelist" class="internalDFN">qb:codeList</a></code>
   is not mandatory but can be helpful in those cases where a concept scheme has been defined.</p>
-  
+</section>
+
+<section id="schemes-hierarchy">  
+<h3><span class="secno">10.2 </span>Hierarchical code lists</h3>
+
 <p>In some cases code lists have a hierarchical structure. In particular, this is 
 used in SDMX when the data cube includes aggregations of data values 
 (e.g. aggregating a measure across geographic regions).
-Hierarchical code lists lists should be represented using the 
+Hierarchical code lists lists <em class="rfc2119" title="should">should</em> be represented using the 
 <code>skos:narrower</code> relationship to link from the <code>skos:hasTopConcept</code>
 codes down through the tree or lattice of child codes. 
 In some publishing tool chains the corresponding transitive closure 
@@ -1673,11 +1612,105 @@
 The use of <code>skos:narrower</code> makes it possible to declare new 
 concept schemes which extend an existing scheme by adding additional aggregation layers on top.
 All items are linked to the scheme via <code>skos:inScheme</code>.</p>
-</div>
-
-
-<div class="section" id="metadata">
-<!--OddPage--><h2><span class="secno">9. </span>DataSet metadata</h2>
+</section>
+
+<section id="schemes-hierarchy-nonskos">  
+<h3><span class="secno">10.3 </span>Non-SKOS hierarchies</h3>
+
+<p>It is sometimes convenient to be able to specify a hierarchical arrangement of 
+concepts other than through the use of the SKOS relation <code>skos:narrower</code>. 
+There are several situations where this is useful:</p>
+
+<ul>
+<li>In some cases publishers wish to be able to reuse existing reference data as their
+code lists. This particularly occurs where a geographic or admin-geographic hierarchy
+is already maintained by a separate authority but which uses non-SKOS containment or part-of relationships.</li>
+<li>Where such maintained reference data is to be reused there can be multiple hierarchies which relate
+the same codes. In particular a set of geographic entities may participate in both a geographic-containment hierarchy
+and an administrative hierarchy which do not precisely align. </li>
+<li>The SKOS relations do not define when the child concepts are disjoint (mutually exclusive) or then they form 
+a complete cover of the parent concept (exhaustive).</li>
+</ul>
+
+<p>The Data Cube vocabulary supports this situation through the <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code> class.
+An instance of <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code> defines a set of root concepts in the hierarchy 
+(<code><a href="#dfn-qb-hierarchyroot" class="internalDFN">qb:hierarchyRoot</a></code>) and a parent-to-child relationship (<code><a href="#dfn-qb-parentchildproperty" class="internalDFN">qb:parentChildProperty</a></code>).</p>
+
+<p>For example, the Ordnance Survey of Great Britain publishes a geographic hierarchy which has 
+eleven roots (European Regions such as Wales, Scotland, the South West) and uses a spatial relations 
+ontology to define a containment hierarchy. This could be represented as a  <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code> using the following.</p>
+
+<div class="example"><div class="example-title"><span>Example 16</span></div><pre class="example">PREFIX spatial: &lt;http://data.ordnancesurvey.co.uk/ontology/spatialrelations/&gt; .
+
+eg:GBgeoHierarchy a qb:HierarchicalCodeList;
+    rdfs:label &quot;Geographic Hierarchy for Great Britain&quot;@en;
+    qb:hierarchy Root 
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041427&gt;, # South West
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041426&gt;, # West Midlands
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041421&gt;, # South East
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041430&gt;, # Yorkshire &amp; the Humber
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041423&gt;, # East Midlands
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041425&gt;, # Eastern
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041428&gt;, # London
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041431&gt;, # North West
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041422&gt;, # North East
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041424&gt;, # Wales
+      &lt;http://data.ordnancesurvey.co.uk/id/7000000000041429&gt;; # Scotland
+    qb:parentChildProperty  spatial:contains;
+    .
+
+eg:geoDimension a qb:DimensionProperty ;
+    qb:codeList eg:GBgeoHierarchy .</pre></div>
+
+<p>Note that in some cases  the hierarchy to be reused may only have a
+  property relating child concepts to parent concepts. This situation
+  is handled by declaring
+  the <code><a href="#dfn-qb-parentchildproperty" class="internalDFN">qb:parentChildProperty</a></code> to be
+  the <code>owl:inverseOf</code> of the child-to-parent property. For
+  example:</p>
+
+<div class="example"><div class="example-title"><span>Example 17</span></div><pre class="example">PREFIX spatial: &lt;http://data.ordnancesurvey.co.uk/ontology/spatialrelations/&gt; .
+
+eg:GBgeoHierarchy a qb:HierarchicalCodeList;
+    qb:parentChildProperty  [owl:inverseOf spatial:within] .</pre></div>
+ 
+<p>Future extensions of Data Cube may support additional sub classes
+  of <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code>, for example to
+  declare hierarchies in which each parent is a disjoint union of its children.</p>
+
+
+<!--
+<p>A sub class of <code><a>qb:HierarchicalCodeList</a></code>, <code><a>qb:AggregatableHierarchy</a></code>, is provided to declare
+hierarchies where for each parent concept the set of child concepts form a disjoint cover (i.e. a 
+mutually-exclusive and exhaustive decomposition) of the parent.</p>
+-->
+
+
+</section>
+
+<section id="schemes-aggregation">  
+<h3><span class="secno">10.4 </span>Aggregation</h3>
+
+<p>The use of SKOS, or non-SKOS, hierarchies makes it possible to publish aggregated
+statistics for the non-leaf concepts in the hierarchy. The Data Cube vocabulary itself imposes
+no constraints on how such aggregation is done. Indeed in statistical applications the
+appropriate statistical corrections to make to aggregated values may be non-trivial and dependent on 
+the data and precise analysis methodology. Even in simple, non-statistical, applications such
+as OLAP a number of different aggregation operators are commonly used.
+</p>
+
+<p>Vocabulary terms to represent the aggregation operations employed within a given dataset, and how one dataset 
+might be derived from another, are not supported in this version of the Data Cube specification. This
+area may be addressed by future extensions to Data Cube.</p>
+</section>
+
+</section>
+
+
+<section id="metadata">
+
+<!--OddPage-->
+<h2><span class="secno">11. </span>DataSet metadata</h2>
 
 <p>DataSets should be marked up with metadata to support discovery, presentation and
 processing. Metadata such as a display label (<code>rdfs:label</code>),
@@ -1686,8 +1719,8 @@
 for representing the key metadata annotations commonly needed for DataSets.</p>
 
 
-<div class="section" id="metadata-categorization">
-<h3><span class="secno">9.1 </span>Categorizing a data set</h3>
+<section id="metadata-categorization">
+<h3><span class="secno">11.1 </span>Categorizing a data set</h3>
 
 <p>Publishers of statistics often categorize their data sets into different statistical 
 domains, such as <em>Education</em>, <em>Labour</em>, or <em>Transportation</em>.
@@ -1703,458 +1736,1186 @@
 
 <p>Thus our sample dataset might be marked up by:</p>
 
-<pre>  eg:dataset1 a qb:DataSet;
-      rdfs:label "Life expectancy"@en;
-      rdfs:comment "Life expectancy within Welsh Unitary authorities - extracted from Stats Wales"@en;
-      dcterms:date "2010-08-11"^^xsd:date;
-      dcterms:subject
-          sdmx-subject:3.2 ,      # regional and small area statistics
-          sdmx-subject:1.4 ,      # Health
-          admingeo:wales_gor_l ;  # Wales
-      ...
-</pre>
+<div class="example"><div class="example-title"><span>Example 18</span></div><pre class="example">eg:dataset1 a qb:DataSet;
+    rdfs:label &quot;Life expectancy&quot;@en;
+    rdfs:comment &quot;Life expectancy within Welsh Unitary authorities - extracted from Stats Wales&quot;@en;
+    dcterms:date &quot;2010-08-11&quot;^^xsd:date;
+    dcterms:subject
+        sdmx-subject:3.2 ,      # regional and small area statistics
+        sdmx-subject:1.4 ,      # Health
+        ex-geo:wales_gor_l ;  # Wales
+    ...</pre></div>
 
 <p>where <code>eg:Wales</code> is a <code>skos:Concept</code> drawn from an appropriate controlled
 vocabulary for places.</p>
-</div>
-
-
-<div class="section" id="metadata-publishers">
-<h3><span class="secno">9.2 </span>Describing publishers</h3>
+</section>
+
+
+<section id="metadata-publishers">
+<h3><span class="secno">11.2 </span>Describing publishers</h3>
 
 <p>The organization that publishes a dataset should be recorded as part of the dataset metadata.
 Again we recommend use of the Dublin Core term <code>dcterms:publisher</code> for this.
 The organization should be represented as an instance of <code>foaf:Agent</code>, or
-some more specific subclass such as <code>org:Organization</code> [<cite><a href="#bib-ORG" rel="biblioentry" class="bibref">ORG</a></cite>].</p>
-
-<pre>eg:dataset1 a qb:DataSet;
+some more specific subclass such as <code>org:Organization</code> [<cite><a class="bibref" href="#bib-ORG">ORG</a></cite>].</p>
+
+<div class="example"><div class="example-title"><span>Example 19</span></div><pre class="example">eg:dataset1 a qb:DataSet;
     dc:publisher &lt;http://example.com/meta#organization&gt; .
     
 &lt;http://example.com/meta#organization&gt; a org:Organization, foaf:Agent;
-    rdfs:label "Example org" .    
+    rdfs:label &quot;Example org&quot; .    </pre></div>
+
+<p>Extension vocabularies may provide additional metadata properties and may impose
+ constraints on what metadata must be provided.</p>
+</section>
+
+</section>
+
+<section id="normalize">
+
+<!--OddPage-->
+<h2><span class="secno">12. </span>Abbreviation and normalization</h2>
+
+<p>In normal form then the <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code>s which
+make up a Data Cube have property values for each of the required
+dimensions, attributes and measures as declared in the associated data
+structure definition. This form for a Data Cube is
+termed <em><dfn id="dfn-flattened">flattened</dfn></em>. It is a convenient format for
+querying data and makes it possible to write uniform queries which
+extract sets of observations, including from across multiple
+cubes. However, the verbosity of a fully flattened representation
+incurs overheads in transmission and storage of Data Cubes which may
+be problematic in some settings.
+</p>
+
+<p>To address this the Data Cube vocabulary supports a notion of
+an <em><dfn id="dfn-abbreviated">abbreviated</dfn></em> format in which component
+properties may be <em><dfn id="dfn-attached">attached</dfn></em> to other levels in the
+Data Cube.  Specifically they may be attached to
+a <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> or <code><a href="#dfn-qb-slice" class="internalDFN">qb:Slice</a></code>.
+In those cases the attached property is taken to be applied to all
+the <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code> instances associated with that
+attachment point. For illustration
+see <a href="attachment-example">example 4</a> in which the unit of
+measure is declared as to be attached to the whole data set and need
+not be repeated for every observation.</p>
+
+<p>It is also possible to attach attributes to a <code><a href="#dfn-qb-measureproperty" class="internalDFN">qb:MeasureProperty</a></code>
+ in which case the attribute is intended to apply only to that property and not
+ to the observations in which that property occurs.</p>
+
+<section id="normalize-algorithm">
+<h3><span class="secno">12.1 </span>Normalization algorithm</h3>
+
+<div class="note"><div class="note-title"><span>Note</span></div><div class="">
+This section is At Risk. The working group believes this formulation to 
+be correct and compatible with earlier versions of the Data Cube vocabulary.
+However as a new addition is has not received as much
+scrutiny as other parts of the specification. If problems are uncovered
+during the Last Call process the working group may retract all or part of this section. 
+</div></div>
+
+<p>We define these notions by means of a transformation algorithm
+  which can normalize an abbreviated Data Cube to a flattened
+  representation. We express this transformation using the SPARQL 1.1
+  Update language [<cite><a class="bibref" href="#bib-SPARQL-UPDATE-11">SPARQL-UPDATE-11</a></cite>]. Use of this notation does not imply that
+  the transformation must be implemented this way. Information
+  exchanges using Data Cube may retain data in abbreviated form and
+  use other techniques such as query rewriting to ease access, may
+  implement the normalization algorithm by other means or may handle
+  all data in flattened form or any mix of these.</p>
+
+
+<p>The normalization algorithm comprises two sets of SPARQL Update
+  operations which should be applied in turn to a SPARQL Dataset in which the
+  default graph contains the Data Cube RDF graph to be normalized.</p>
+
+<p>The first update operation performs selective type and property closure
+  operations. These serve two purposes. They ensure
+  that <code>rdf:type</code> assertions on instances 
+  of <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code> and <code><a href="#dfn-qb-slice" class="internalDFN">qb:Slice</a></code>
+  may be omitted in an abbreviated Data Cube. They also simplify 
+  the second set of update operations by expanding
+  the sub properties of <code><a href="#dfn-qb-componentproperty-1" class="internalDFN">qb:componentProperty</a></code>
+  (specifically <code><a href="#dfn-qb-dimension" class="internalDFN">qb:dimension</a></code>,  <code><a href="#dfn-qb-measure" class="internalDFN">qb:measure</a></code>
+  and <code><a href="#dfn-qb-attribute" class="internalDFN">qb:attribute</a></code>).</p>
+
+<table class="bordered-table">
+  <thead>
+   <tr><th>Phase 1: Type and property closure</th></tr>
+  </thead>
+  <tbody><tr><td>
+<pre>PREFIX rdf:            &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
+PREFIX qb:             &lt;http://purl.org/linked-data/cube#&gt;
+
+INSERT {
+    ?o rdf:type qb:Observation .
+} WHERE {
+    [] qb:observation ?o .
+};
+
+INSERT {
+    ?o rdf:type qb:Observation .
+} WHERE {
+    ?o qb:dataSet [] .
+};
+
+INSERT {
+    ?s rdf:type qb:Slice .
+} WHERE {
+    [] qb:slice ?s.
+};
+
+INSERT {
+    ?cs qb:componentProperty ?p .
+    ?p  rdf:type qb:DimensionProperty .
+} WHERE {
+    ?cs qb:dimension ?p .
+};
+
+INSERT {
+    ?cs qb:componentProperty ?p .
+    ?p  rdf:type qb:MeasureProperty .
+} WHERE {
+    ?cs qb:measure ?p .
+};
+
+INSERT {
+    ?cs qb:componentProperty ?p .
+    ?p  rdf:type qb:AttributeProperty .
+} WHERE {
+    ?cs qb:attribute ?p .
+}
 </pre>
-
-<p>Note that the SDMX extension vocabulary supports further description of 
-  publication pipelines (data flows, reporting taxonomies, maintainers, provision agreements).</p>
-</div>
-
-</div>
-
-<div id="namespaces-used-appendix" class="appendix section">
-<!--OddPage--><h2><span class="secno">A. </span>Namespaces used in this document</h2>
-
-<table class="spare-table">
-  <thead> <tr>
-    <th>prefix</th>
-    <th>namespace URI</th>
-    <th>vocabulary</th>
-  </tr>
+  </td></tr></tbody>
+</table>
+
+
+<p>These closure operations are implied by the RDFS semantics of the
+  Data Cube vocabulary. Data Cube processors <em class="rfc2119" title="may">may</em> apply full RDFS
+  closure in place of the update operation defined here.</p>
+
+<p>The second update operation checks the components of the data
+  structure definition of the data set for declared attachment levels.
+  For each of the possible attachments levels it looks for occurrences
+  of that component to be flattened down to the corresponding
+  observations. 
+</p>
+
+<table class="bordered-table">
+  <thead>
+   <tr><th>Phase 2: Flatten attachment levels</th></tr>
   </thead>
+  <tbody><tr><td>
+<pre>PREFIX qb:             &lt;http://purl.org/linked-data/cube#&gt;
+
+# Dataset attachments
+INSERT {
+    ?obs  ?comp ?value
+} WHERE {
+    ?spec    qb:componentProperty ?comp ;
+             qb:componentAttachment qb:DataSet .
+    ?dataset qb:structure [qb:component ?spec];
+             ?comp ?value .
+    ?obs     qb:dataSet ?dataset.
+};
+
+# Slice attachments
+INSERT {
+    ?obs  ?comp ?value
+} WHERE {
+    ?spec    qb:componentProperty ?comp;
+             qb:componentAttachment qb:Slice .
+    ?dataset qb:structure [qb:component ?spec];
+             qb:slice ?slice .
+    ?slice ?comp ?value;
+           qb:observation ?obs .
+};
+
+# Dimension values on slices
+INSERT {
+    ?obs  ?comp ?value
+} WHERE {
+    ?spec    qb:componentProperty ?comp .
+    ?comp a  qb:DimensionProperty .
+    ?dataset qb:structure [qb:component ?spec];
+             qb:slice ?slice .
+    ?slice ?comp ?value;
+           qb:observation ?obs .
+}
+</pre>
+  </td></tr></tbody>
+</table>
+
+
+</section>
+
+</section>
+
+<section id="wf">
+
+<!--OddPage-->
+<h2><span class="secno">13. </span>Well-formed cubes</h2>
+
+<div class="note"><div class="note-title"><span>Note</span></div><div class="">
+This section is At Risk. The working group believes these criteria to
+be correct and compatible with earlier versions of the Data Cube vocabulary.
+However as a new addition they have not received as much
+scrutiny as other parts of the specification. If problems are uncovered
+during the Last Call process the working group may retract all or part of this section. 
+</div></div>
+
+<p>An instance of an RDF Data Cube should conform to a set of
+  integrity constraints which we define in this section.</p>
+
+<p>A <dfn id="dfn-well-formed">well-formed</dfn> RDF Data Cube is an a RDF graph describing
+  one or more instances of <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> for which
+  each of the integrity checks defined here passes.</p>
+
+<p>A <dfn id="dfn-well-formed-abbreviated">well-formed abbreviated</dfn> RDF Data Cube is an a RDF
+  graph which, when expanded using
+  the <a href="#normalize-algorithm">normalization algorithm</a>,
+  yields a <a>well-formed RDF Data Cube</a>.</p>
+
+<section id="wf-rules">
+<h3><span class="secno">13.1 </span>Integrity constraints</h3>
+
+<p>Each integrity constraint is expressed as narrative prose and, where possible, a SPARQL
+  [<cite><a class="bibref" href="#bib-SPARQL-QUERY-11">SPARQL-QUERY-11</a></cite>] ASK query or query template. If the ASK query  is applied to an RDF graph then it
+  will return <em>true</em> if that graph contains one or more Data Cube instances which
+  violate the corresponding constraint.
+</p>
+<p>
+  Using SPARQL queries to
+  express the integrity constraints does not imply that integrity
+  checking must be performed this way. Implementations are free
+  to use alternative query formulations or alternative implementation
+  techniques to perform equivalent checks. </p>
+
+<p>Each integrity constraint query assumes the following set of prefix bindings:</p>
+<pre>PREFIX rdf:     &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
+PREFIX rdfs:    &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
+PREFIX skos:    &lt;http://www.w3.org/2004/02/skos/core#&gt;
+PREFIX qb:      &lt;http://purl.org/linked-data/cube#&gt;
+PREFIX xsd:     &lt;http://www.w3.org/2001/XMLSchema#&gt;
+PREFIX owl:     &lt;http://www.w3.org/2002/07/owl#&gt;
+</pre>
+
+<p>The complete set of constraints is listed below.</p>
+
+<h3 id="ic-0">IC-0. Datatype consistency</h3>
+<p>
+The RDF graph must be consistent under RDF D-entailment [<cite><a class="bibref" href="#bib-RDF-MT">RDF-MT</a></cite>]
+using a datatype map containing all the datatypes used within the graph. 
+</p>
+
+<h3 id="ic-1">IC-1.  Unique DataSet</h3>
+<p>
+Every <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code> has exactly one associated <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code>.
+</p> 
+<table class="bordered-table">
   <tbody>
-    <tr>
-      <td>rdf</td>
-      <td>http://www.w3.org/1999/02/22-rdf-syntax-ns#</td>
-      <td>RDF core</td>
-    </tr>
-    <tr>
-      <td>rdfs</td>
-      <td>http://www.w3.org/2000/01/rdf-schema#</td>
-      <td>RDF Schema</td>
-    </tr>
-    <tr>
-      <td>skos</td>
-      <td>http://www.w3.org/2004/02/skos/core#</td>
-      <td>Simple Knowledge Organization System</td>
-    </tr>
-    <tr>
-      <td>foaf</td>
-      <td>http://xmlns.com/foaf/0.1/</td>
-      <td>Friend Of A Friend</td>
-    </tr>
-    <tr>
-      <td>void</td>
-      <td>http://rdfs.org/ns/void#</td>
-      <td>Vocabulary of Interlinked Datasets</td>
-    </tr>
-    <tr>
-      <td>scovo</td>
-      <td>http://purl.org/NET/scovo#</td>
-      <td>Statistical Core Vocabulary</td>
-    </tr>
-    <tr>
-      <td>dc</td>
-      <td>http://purl.org/dc/elements/1.1/</td>
-      <td>Dublin Core</td>
-    </tr>
-    <tr>
-      <td>qb</td>
-      <td>http://purl.org/linked-data/cube#</td>
-      <td>The Data Cube vocabulary</td>
-    </tr>
+    <tr><td><pre>ASK {
+  {
+    # Check observation has a data set
+    ?obs a qb:Observation .
+    FILTER NOT EXISTS { ?obs qb:dataSet ?dataset1 . }
+  } UNION {
+    # Check has just one data set
+    ?obs a qb:Observation ;
+       qb:dataSet ?dataset1, ?dataset2 .
+    FILTER (?dataset1 != ?dataset2)
+  }
+}
+    </pre></td></tr>
+  </tbody>
+</table> 
+
+<h3 id="ic-2">IC-2. Unique DSD</h3>
+<p>
+Every <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> has exactly one associated <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code>.
+</p>
+<table class="bordered-table">
+  <tbody> 
+    <tr><td><pre>ASK {
+  {
+    # Check dataset has a dsd
+    ?dataset a qb:DataSet .
+    FILTER NOT EXISTS { ?dataset qb:structure ?dsd . }
+  } UNION { 
+    # Check has just one dsd
+    ?dataset a qb:DataSet ;
+       qb:structure ?dsd1, ?dsd2 .
+    FILTER (?dsd1 != ?dsd2)
+  }
+}
+    </pre></td></tr>
   </tbody>
 </table>
-</div>
-
-
-<div id="vocab-reference" class="appendix section">
-<!--OddPage--><h2><span class="secno">B. </span>Vocabulary reference</h2>
-
-
-<div class="section" id="reference-datasets">
-<h3><span class="secno">B.1 </span>DataSets</h3>
+
+<h3 id="ic-3">IC-3. DSD includes measure</h3>
+<p>
+Every <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code> must include at least one declared measure.
+</p>
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+  ?dsd a qb:DataStructureDefinition .
+  FILTER NOT EXISTS { ?dsd qb:component [qb:componentProperty [a qb:MeasureProperty]] }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-4">IC-4. Dimensions have range</h3>
+<p>
+Every dimension declared in a <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code> must have a declared <code><a>rdfs:range</a></code>.
+</p>
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+  ?dim a qb:DimensionProperty .
+  FILTER NOT EXISTS { ?dim rdfs:range [] }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-5">IC-5. Concept dimensions have code lists</h3>
+<p>
+Every dimension with range <code><a>skos:Concept</a></code> must have a <code><a href="#dfn-qb-codelist" class="internalDFN">qb:codeList</a></code>.
+</p>
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+  ?dim a qb:DimensionProperty ;
+       rdfs:range skos:Concept .
+  FILTER NOT EXISTS { ?dim qb:codeList [] }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-6">IC-6. Only attributes may be optional</h3>
+<p>
+The only components of
+a <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code> that may be marked as
+optional, using <code><a href="#dfn-qb-componentrequired" class="internalDFN">qb:componentRequired</a></code> are attributes.
+</p>
+
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+  ?dsd qb:component ?componentSpec .
+  ?componentSpec qb:componentRequired &quot;false&quot;^^xsd:boolean ;
+                 qb:componentProperty ?component .
+  FILTER NOT EXISTS { ?component a qb:AttributeProperty }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-7">IC-7. Slice Keys must be declared</h3>
+<p>
+Every <code><a href="#dfn-qb-slicekey" class="internalDFN">qb:SliceKey</a></code> must be associated with a <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code>.
+</p>
+
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+    ?sliceKey a qb:SliceKey .
+    FILTER NOT EXISTS { [a qb:DataStructureDefinition] qb:sliceKey ?sliceKey }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-8">IC-8. Slice Keys consistent with DSD</h3>
+<p>
+Every <code><a href="#dfn-qb-componentproperty-1" class="internalDFN">qb:componentProperty</a></code> on a <code><a href="#dfn-qb-slicekey" class="internalDFN">qb:SliceKey</a></code> must also be declared as a <code><a href="#dfn-qb-component" class="internalDFN">qb:component</a></code> of the associated <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code>.
+</p>
+
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+  ?slicekey a qb:SliceKey;
+      qb:componentProperty ?prop .
+  ?dsd qb:sliceKey ?sliceKey .
+  FILTER NOT EXISTS { ?dsd qb:component [qb:componentProperty ?prop] }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-9">IC-9. Unique slice structure</h3>
+<p>
+Each <code><a href="#dfn-qb-slice" class="internalDFN">qb:Slice</a></code> must have exactly one associated <code><a href="#dfn-qb-slicestructure" class="internalDFN">qb:sliceStructure</a></code>.
+</p>
+
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+  {
+    # Slice has a key
+    ?slice a qb:Slice .
+    FILTER NOT EXISTS { ?slice qb:sliceStructure ?key }
+  } UNION {
+    # Slice has just one key
+    ?slice a qb:Slice ;
+           qb:sliceStructure ?key1, ?key2;
+    FILTER (?key1 != ?key2)
+  }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+
+<h3 id="ic-10">IC-10. Slice dimensions complete</h3>
+<p>
+Every <code><a href="#dfn-qb-slice" class="internalDFN">qb:Slice</a></code> must have a value for every dimension declared in its <code><a href="#dfn-qb-slicestructure" class="internalDFN">qb:sliceStructure</a></code>.
+</p>
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+  ?slice qb:sliceStructure [qb:componentProperty ?dim] .
+  FILTER NOT EXISTS { ?slice ?dim [] }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-11">IC-11. All dimensions required</h3>
+<p>
+Every <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code> has a value for each dimension declared in its associated <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code>.
+</p>
+
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+    ?obs qb:dataSet/qb:structure/qb:component/qb:componentProperty ?dim .
+    ?dim a qb:DimensionProperty;
+    FILTER NOT EXISTS { ?obs ?dim [] }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-12">IC-12. No duplicate observations</h3>
+<p>
+No two <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code>s in the same <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> may have the same value for all dimensions.
+</p>
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+  FILTER( ?allEqual )
+  {
+    # For each pair of observations test if all the dimension values are the same
+    SELECT (MIN(?equal) AS ?allEqual) WHERE {
+        ?obs1 qb:dataSet ?dataset .
+        ?obs2 qb:dataSet ?dataset .
+        FILTER (?obs1 != ?obs2)
+        ?dataset qb:structure/qb:component/qb:componentProperty ?dim .
+        ?dim a qb:DimensionProperty .
+        ?obs1 ?dim ?value1 .
+        ?obs2 ?dim ?value2 .
+        BIND( ?value1 = ?value2 AS ?equal)
+    } GROUP BY ?obs1 ?obs2
+  }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-13">IC-13. Required attributes</h3>
+<p>
+Every <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code> has a value for each declared attribute that is marked as required.
+</p>
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+    ?obs qb:dataSet/qb:structure/qb:component ?component .
+    ?component qb:componentRequired &quot;true&quot;^^xsd:boolean ;
+               qb:componentProperty ?attr .
+    FILTER NOT EXISTS { ?obs ?attr [] }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-14">IC-14. All measures present</h3>
+<p>
+In a <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> which does not use a <a href="#dfn-measure-dimension" class="internalDFN">Measure dimension</a> then each individual <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code> must have a value for every declared measure.
+</p>
+
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+    # Observation in a non-measureType cube
+    ?obs qb:dataSet/qb:structure ?dsd .
+    FILTER NOT EXISTS { ?dsd qb:component/qb:componentProperty qb:measureType }
+
+    # verify every measure is present
+    ?dsd qb:component/qb:componentProperty ?measure .
+    ?measure a qb:MeasureProperty;
+    FILTER NOT EXISTS { ?obs ?measure [] }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-15">IC-15. Measure dimension consistent</h3>
+<p>
+In a <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> which uses a <a href="#dfn-measure-dimension" class="internalDFN">Measure dimension</a> then each <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code> must have a value for the measure corresponding to its given <code><a href="#dfn-qb-measuretype" class="internalDFN">qb:measureType</a></code>.
+</p>
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+    # Observation in a measureType-cube
+    ?obs qb:dataSet/qb:structure ?dsd ;
+         qb:measureType ?measure .
+    ?dsd qb:component/qb:componentProperty qb:measureType .
+    # Must have value for its measureType
+    FILTER NOT EXISTS { ?obs ?measure [] }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-16">IC-16. Single measure on measure dimension observation</h3>
+<p>
+In a <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> which uses a <a href="#dfn-measure-dimension" class="internalDFN">Measure dimension</a> then each <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code> must only have a value for one measure (by IC-15 this will be the measure corresponding to its <code><a href="#dfn-qb-measuretype" class="internalDFN">qb:measureType</a></code>).
+</p>
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+    # Observation with measureType
+    ?obs qb:dataSet/qb:structure ?dsd ;
+         qb:measureType ?measure ;
+         ?omeasure [] .
+    # Any measure on the observation
+    ?dsd qb:component/qb:componentProperty qb:measureType ;
+         qb:component/qb:componentProperty ?omeasure .
+    ?omeasure a qb:MeasureProperty .
+    # Must be the same as the measureType
+    FILTER (?omeasure != ?measure)
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-17">IC-17. All measures present in measures dimension cube </h3>
+<p>
+In a <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> which uses a <a href="#dfn-measure-dimension" class="internalDFN">Measure dimension</a> then if there is a Observation for some combination of non-measure dimensions then there must be other Observations with the same non-measure dimension values for each of the declared measures.
+</p>
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+  {
+      # Count number of other measures found at each point 
+      SELECT ?numMeasures (COUNT(?obs2) AS ?count) WHERE {
+          {
+              # Find the DSDs and check how many measures they have
+              SELECT ?dsd (COUNT(?m) AS ?numMeasures) WHERE {
+                  ?dsd qb:component/qb:componentProperty ?m.
+                  ?m a qb:MeasureProperty .
+              } GROUP BY ?dsd
+          }
+        
+          # Observation in measureType cube
+          ?obs1 qb:dataSet/qb:structure ?dsd;
+                qb:dataSet ?dataset ;
+                qb:measureType ?m1 .
+    
+          # Other observation at same dimension value
+          ?obs2 qb:dataSet ?dataset ;
+                qb:measureType ?m2 .
+          FILTER NOT EXISTS { 
+              ?dsd qb:component/qb:componentProperty ?dim .
+              FILTER (?dim != qb:measureType)
+              ?dim a qb:DimensionProperty .
+              ?obs1 ?dim ?v1 . 
+              ?obs2 ?dim ?v2. 
+              FILTER (?v1 != ?v2)
+          }
+          
+      } GROUP BY ?obs1 ?numMeasures
+        HAVING (?count != ?numMeasures)
+  }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-18">IC-18. Consistent data set links</h3>
+<p>
+If a <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code> D has a <code><a href="#dfn-qb-slice-1" class="internalDFN">qb:slice</a></code> S, and S has an <code><a href="#dfn-qb-observation-1" class="internalDFN">qb:observation</a></code> O, then the <code><a href="#dfn-qb-dataset-1" class="internalDFN">qb:dataSet</a></code> corresponding to O must be D.
+</p>
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+    ?dataset qb:slice       ?slice .
+    ?slice   qb:observation ?obs .
+    FILTER NOT EXISTS { ?obs qb:dataSet ?dataset . }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-19">IC-19. Codes from code list</h3>
+<p>
+If a dimension property has a <code><a href="#dfn-qb-codelist" class="internalDFN">qb:codeList</a></code>, then the value of the dimension property on every <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code> must be in the code list.
+</p>
+<p>The following integrity check queries must be applied to an RDF graph which contains the 
+definition of the code list as well as the Data Cube to be checked. In the case
+of a <code>skos:ConceptScheme</code> then each concept must be linked to the scheme using
+<code>skos:inScheme</code>. In the case of a <code>skos:Collection</code> then the
+collection must link to each concept using <code>skos:member</code> (i.e. if the
+collection uses <code>skos:memberList</code> then the entailment of <code>skos:member</code>
+values defined by <a href="http://www.w3.org/TR/2009/REC-skos-reference-20090818/#S36">S36</a>
+in [<cite><a class="bibref" href="#bib-SKOS-REFERENCE">SKOS-REFERENCE</a></cite>] must be materialized).</p>
+
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+    ?obs qb:dataSet/qb:structure/qb:component/qb:componentProperty ?dim .
+    ?dim a qb:DimensionProperty ;
+        qb:codeList ?list .
+    ?list a skos:ConceptScheme .
+    ?obs ?dim ?v .
+    FILTER NOT EXISTS { ?v skos:inScheme ?list }
+}
+
+ASK {
+    ?obs qb:dataSet/qb:structure/qb:component/qb:componentProperty ?dim .
+    ?dim a qb:DimensionProperty ;
+        qb:codeList ?list .
+    ?list a skos:Collection .
+    ?obs ?dim ?v .
+    FILTER NOT EXISTS { ?list skos:member ?v }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-20">IC-20. Codes from hierarchy</h3>
+<p>
+If a dimension property has
+a <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code> with a
+non-blank <code><a href="#dfn-qb-parentchildproperty" class="internalDFN">qb:parentChildProperty</a></code> then the value of
+that dimension property on every <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code>
+must be reachable from a root of the hierarchy using zero or more hops along the <code><a href="#dfn-qb-parentchildproperty" class="internalDFN">qb:parentChildProperty</a></code> links.
+</p>
+<p>
+This check cannot be made by a simple fixed SPARQL query. Instead a
+query template is supplied. 
+An instance of the template should be generated
+for each <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code> which has an IRI
+value for its  <code><a href="#dfn-qb-parentchildproperty" class="internalDFN">qb:parentChildProperty</a></code>.
+That is for each binding of <code>?p</code> in the following
+instantiation query:</p>
+<pre>SELECT ?p WHERE {
+    ?hierarchy a qb:HierarchicalCodeList ;
+                 qb:parentChildProperty ?p .
+    FILTER ( isIRI(?p) )
+}
+</pre>
+
+<p>The template is then instantiated by replacing the
+  string <code>$p</code> by the IRI found by the
+  instantiation query. The template is:</p>
+
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+    ?obs qb:dataSet/qb:structure/qb:component/qb:componentProperty ?dim .
+    ?dim a qb:DimensionProperty ;
+        qb:codeList ?list .
+    ?list a qb:HierarchicalCodeList .
+    ?obs ?dim ?v .
+    FILTER NOT EXISTS { ?list qb:hierarchyRoot/&lt;$p&gt;* ?v }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+<h3 id="ic-21">IC-21. Codes from hierarchy (inverse)</h3>
+<p>
+If a dimension property has
+a <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code> with an
+inverse <code><a href="#dfn-qb-parentchildproperty" class="internalDFN">qb:parentChildProperty</a></code> then the value of
+that dimension property on every <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code>
+must be reachable from a root of the hierarchy using zero or more hops along the inverse  <code><a href="#dfn-qb-parentchildproperty" class="internalDFN">qb:parentChildProperty</a></code> links.
+</p>
+
+<p>
+This check cannot be made by a simple fixed SPARQL query. Instead a
+query template is supplied. 
+An instance of the template should be generated
+for each <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code> which has a blank-node
+value for its  <code><a href="#dfn-qb-parentchildproperty" class="internalDFN">qb:parentChildProperty</a></code>, with an 
+associated inverse property.
+That is for each binding of <code>?p</code> in the following
+instantiation query:</p>
+<pre>SELECT ?p WHERE {
+    ?hierarchy a qb:HierarchicalCodeList;
+                 qb:parentChildProperty ?pcp .
+    FILTER( isBlank(?pcp) )
+    ?pcp  owl:inverseOf ?p .
+    FILTER( isIRI(?p) )
+}
+</pre>
+
+<p>The template is then instantiated by replacing the
+  string <code>$p</code> by the IRI found by the
+  instantiation query. The template is:</p>
+
+<table class="bordered-table">
+  <tbody>
+    <tr><td><pre>ASK {
+    ?obs qb:dataSet/qb:structure/qb:component/qb:componentProperty ?dim .
+    ?dim a qb:DimensionProperty ;
+         qb:codeList ?list .
+    ?list a qb:HierarchicalCodeList .
+    ?obs ?dim ?v .
+    FILTER NOT EXISTS { ?list qb:hierarchyRoot/(^&lt;$p&gt;)* ?v }
+}
+    </pre></td></tr>
+  </tbody>
+</table>
+
+</section>
+
+</section>
+
+<section id="vocab-reference">
+
+<!--OddPage-->
+<h2><span class="secno">14. </span>Vocabulary reference</h2>
+
+
+<section id="reference-datasets">
+<h3><span class="secno">14.1 </span>DataSets</h3>
+
+<p><em>See Section <a href="#datasets">Expressing data sets</a>.</em></p>
 
 <dl class="vocab_reference">
 
   <dt id="ref_qb_DataSet">
-    <em>Class:</em> <code>qb:DataSet</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-dataset">qb:DataSet</dfn></code>
     <em>Sub class of: </em>
-      <code>qb:Attachable</code>
+      <code><a href="#dfn-qb-attachable" class="internalDFN">qb:Attachable</a></code>
     <em>Equivalent to: </em>
       <code>scovo:Dataset</code>
   </dt>
  <dd>Represents a collection of observations, possibly organized into various slices, conforming to some common dimensional structure.</dd>
 </dl>
-</div>
-
-
-<div class="section" id="reference-observations">
-<h3><span class="secno">B.2 </span>Observations</h3>
+</section>
+
+
+<section id="reference-observations">
+<h3><span class="secno">14.2 </span>Observations</h3>
+<p><em>See Section <a href="#datasets">Expressing data sets</a>.</em></p>
 
 <dl class="vocab_reference">
 
   <dt id="ref_qb_Observation">
-    <em>Class:</em> <code>qb:Observation</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-observation">qb:Observation</dfn></code>
     <em>Sub class of: </em>
-      <code>qb:Attachable</code>
+      <code><a href="#dfn-qb-attachable" class="internalDFN">qb:Attachable</a></code>
     <em>Equivalent to: </em>
       <code>scovo:Item</code>
   </dt>
- <dd>A single observation in the cube, may have one or more associated measured values</dd>
-
-  <dt id="ref_qb_dataSet">
-    <em>Property:</em> <code>qb:dataSet</code>
-    (
-    <code>qb:Observation</code>
-    -&gt; 
-    <code>qb:DataSet</code>
+ <dd>A single observation in the cube, may have one or more associated measured values.</dd>
+
+  <dt id="ref_qb_dataSet_LC">
+    <em>Property:</em> <code><dfn id="dfn-qb-dataset-1">qb:dataSet</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code>
   ) 
   </dt>
-  <dd>indicates the data set of which this observation is a part</dd>
-
-  <dt id="ref_qb_observation">
-    <em>Property:</em> <code>qb:observation</code>
-    (
-    <code>qb:Slice</code>
-    -&gt; 
-    <code>qb:Observation</code>
+  <dd>Indicates the data set of which this observation is a part.</dd>
+
+  <dt id="ref_qb_observation_LC">
+    <em>Property:</em> <code><dfn id="dfn-qb-observation-1">qb:observation</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-slice" class="internalDFN">qb:Slice</a></code>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-observation" class="internalDFN">qb:Observation</a></code>
   ) 
   </dt>
-  <dd>indicates a observation contained within this slice of the data set</dd>
+  <dd>Indicates a observation contained within this slice of the data set.</dd>
 </dl>
-</div>
-
-
-<div class="section" id="reference-slices">
-<h3><span class="secno">B.3 </span>Slices</h3>
+</section>
+
+
+<section id="reference-slices">
+<h3><span class="secno">14.3 </span>Slices</h3>
+<p><em>See Section <a href="#slices">Slices</a>.</em></p>
 
 <dl class="vocab_reference">
 
+  <dt id="ref_qb_ObservationGroup">
+    <em>Class:</em> <code><dfn id="dfn-qb-observationgroup">qb:ObservationGroup</dfn></code>
+  </dt>
+ <dd>A, possibly arbitrary, group of observations.</dd>
+
+
   <dt id="ref_qb_Slice">
-    <em>Class:</em> <code>qb:Slice</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-slice">qb:Slice</dfn></code>
     <em>Sub class of: </em>
-      <code>qb:Attachable</code>
+      <code><a href="#dfn-qb-attachable" class="internalDFN">qb:Attachable</a></code>,
+      <code><a href="#dfn-qb-observationgroup" class="internalDFN">qb:ObservationGroup</a></code>
   </dt>
- <dd>Denotes a subset of a DataSet defined by fixing a subset of the dimensional values, component properties on the Slice</dd>
-
-  <dt id="ref_qb_slice">
-    <em>Property:</em> <code>qb:slice</code>
-    (
-    <code>qb:DataSet</code>
-    -&gt; 
-    <code>qb:Slice</code>
+ <dd>Denotes a subset of a DataSet defined by fixing a subset of the dimensional values, component properties on the Slice.</dd>
+
+  <dt id="ref_qb_slice_LC">
+    <em>Property:</em> <code><dfn id="dfn-qb-slice-1">qb:slice</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-slice" class="internalDFN">qb:Slice</a></code>;
+    <em>sub property of:</em>
+    <code><a href="#dfn-qb-observationgroup-1" class="internalDFN">qb:observationGroup</a></code>
   ) 
   </dt>
-  <dd>Indicates a subset of a DataSet defined by fixing a subset of the dimensional values</dd>
-
-  <dt id="ref_qb_subSlice">
-    <em>Property:</em> <code>qb:subSlice</code>
-    (
-    <code>qb:Slice</code>
-    -&gt; 
-    <code>qb:Slice</code>
+  <dd>Indicates a subset of a DataSet defined by fixing a subset of the dimensional values.</dd>
+
+  <dt id="ref_qb_observationGroup">
+    <em>Property:</em> <code><dfn id="dfn-qb-observationgroup-1">qb:observationGroup</dfn></code>
+    ( <em>Domain:</em>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-observationgroup" class="internalDFN">qb:ObservationGroup</a></code>
   ) 
   </dt>
-  <dd>Indicates a narrower slice which has additional fixed dimensional values, for example a time-series slice might a subSlice of a slice which spans both time and geographic area</dd>
+  <dd>Indicates a group of observations. The domain of this property is left open so that a group may be attached to different resources and need not be restricted to a single DataSet.</dd>
+
 </dl>
-</div>
-
-
-<div class="section" id="reference-components">
-<h3><span class="secno">B.4 </span>Dimensions, Attributes, Measures</h3>
+</section>
+
+
+<section id="reference-components">
+<h3><span class="secno">14.4 </span>Dimensions, Attributes, Measures</h3>
+<p><em>See Section <a href="#dsd-dimensions">Dimensions, attributes and measures</a>.</em></p>
+
 <dl class="vocab_reference">
 
   <dt id="ref_qb_Attachable">
-    <em>Class:</em> <code>qb:Attachable</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-attachable">qb:Attachable</dfn></code>
   </dt>
- <dd>Abstract superclass for everything that can have attributes and dimensions</dd>
+ <dd>Abstract superclass for everything that can have attributes and dimensions.</dd>
 
   <dt id="ref_qb_ComponentProperty">
-    <em>Class:</em> <code>qb:ComponentProperty</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-componentproperty">qb:ComponentProperty</dfn></code>
     <em>Sub class of: </em>
       <code>rdf:Property</code>
   </dt>
- <dd>Abstract super-property of all properties representing dimensions, attributes or measures</dd>
+ <dd>Abstract super-class of all properties representing dimensions, attributes or measures.</dd>
 
   <dt id="ref_qb_DimensionProperty">
-    <em>Class:</em> <code>qb:DimensionProperty</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-dimensionproperty">qb:DimensionProperty</dfn></code>
     <em>Sub class of: </em>
-      <code>qb:ComponentProperty</code>
-      <code>qb:CodedProperty</code>
+      <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code>,
+      <code><a href="#dfn-qb-codedproperty" class="internalDFN">qb:CodedProperty</a></code>
   </dt>
- <dd>The class of components which represent the dimensions of the cube</dd>
+ <dd>The class of component properties which represent the dimensions of the cube.</dd>
 
   <dt id="ref_qb_AttributeProperty">
-    <em>Class:</em> <code>qb:AttributeProperty</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-attributeproperty">qb:AttributeProperty</dfn></code>
     <em>Sub class of: </em>
-      <code>qb:ComponentProperty</code>
+      <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code>
   </dt>
- <dd>The class of components which represent attributes of observations in the cube, e.g. unit of measurement</dd>
+ <dd>The class of component properties which represent attributes of observations in the cube, e.g. unit of measurement.</dd>
 
   <dt id="ref_qb_MeasureProperty">
-    <em>Class:</em> <code>qb:MeasureProperty</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-measureproperty">qb:MeasureProperty</dfn></code>
     <em>Sub class of: </em>
-      <code>qb:ComponentProperty</code>
+      <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code>
   </dt>
- <dd>The class of components which represent the measured value of the phenomenon being observed</dd>
+ <dd>The class of component properties which represent the measured value of the phenomenon being observed.</dd>
 
   <dt id="ref_qb_CodedProperty">
-    <em>Class:</em> <code>qb:CodedProperty</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-codedproperty">qb:CodedProperty</dfn></code>
     <em>Sub class of: </em>
-      <code>qb:ComponentProperty</code>
+      <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code>
   </dt>
- <dd>Superclass of all coded ComponentProperties</dd>
+ <dd>Superclass of all coded component properties.</dd>
 </dl>
-</div>
-
-
-<div class="section" id="reference-component-properties">
-<h3><span class="secno">B.5 </span>Reusable general purpose component properties</h3>
+</section>
+
+
+<section id="reference-component-properties">
+<h3><span class="secno">14.5 </span>Reusable general purpose component properties</h3>
+<p><em>See Section <a href="#dsd-mm-dim">Measure dimensions</a>.</em></p>
+
 <dl class="vocab_reference">
 
   <dt id="ref_qb_measureType">
-    <em>Property:</em> <code>qb:measureType</code>
-    (
-    -&gt; 
-    <code>qb:MeasureProperty</code>
+    <em>Property:</em> <code><dfn id="dfn-qb-measuretype">qb:measureType</dfn></code>
+    ( <em>Domain:</em>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-measureproperty" class="internalDFN">qb:MeasureProperty</a></code>
   ) 
   </dt>
-  <dd>Generic measure dimension, the value of this dimension indicates which measure (from the set of measures in the DSD) is being given by the obsValue (or other primary measure)</dd>
+  <dd>Generic measure dimension, the value of this dimension indicates which measure (from the set of measures in the DSD) is being given by the observation.</dd>
 </dl>
-</div>
-
-
-<div class="section" id="reference-dsd">
-<h3><span class="secno">B.6 </span>Data Structure Definitions</h3>
+</section>
+
+
+<section id="reference-dsd">
+<h3><span class="secno">14.6 </span>Data Structure Definitions</h3>
+<p><em>See Section <a href="#dsd-dsd">ComponentSpecifications and DataStructureDefinitions</a>.</em></p>
+
 <dl class="vocab_reference">
 
   <dt id="ref_qb_DataStructureDefinition">
-    <em>Class:</em> <code>qb:DataStructureDefinition</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-datastructuredefinition">qb:DataStructureDefinition</dfn></code>
     <em>Sub class of: </em>
-      <code>qb:ComponentSet</code>
+      <code><a href="#dfn-qb-componentset" class="internalDFN">qb:ComponentSet</a></code>
   </dt>
- <dd>Defines the structure of a DataSet or slice</dd>
+ <dd>Defines the structure of a DataSet or slice.</dd>
 
   <dt id="ref_qb_structure">
-    <em>Property:</em> <code>qb:structure</code>
-    (
-    <code>qb:DataSet</code>
-    -&gt; 
-    <code>qb:DataStructureDefinition</code>
+    <em>Property:</em> <code><dfn id="dfn-qb-structure">qb:structure</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code>
   ) 
   </dt>
   <dd>indicates the structure to which this data set conforms</dd>
 
   <dt id="ref_qb_component">
-    <em>Property:</em> <code>qb:component</code>
-    (
-    <code>qb:DataStructureDefinition</code>
-    -&gt; 
-    <code>qb:ComponentSpecification</code>
+    <em>Property:</em> <code><dfn id="dfn-qb-component">qb:component</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-datastructuredefinition" class="internalDFN">qb:DataStructureDefinition</a></code>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-componentspecification" class="internalDFN">qb:ComponentSpecification</a></code>
   ) 
   </dt>
-  <dd>indicates a component specification which is included in the structure of the dataset</dd>
+  <dd>indicates a component specification which is included in the structure of the dataset.</dd>
 </dl>
-</div>
-
-
-<div class="section" id="reference-compspec">
-<h3><span class="secno">B.7 </span>Component specifications - for qualifying component use in a DSD</h3>
+</section>
+
+
+<section id="reference-compspec">
+<h3><span class="secno">14.7 </span>Component specifications - for qualifying component use in a DSD</h3>
+<p><em>See Section <a href="#dsd-dsd">ComponentSpecifications and DataStructureDefinitions</a>.</em></p>
+
 <dl class="vocab_reference">
 
   <dt id="ref_qb_ComponentSpecification">
-    <em>Class:</em> <code>qb:ComponentSpecification</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-componentspecification">qb:ComponentSpecification</dfn></code>
     <em>Sub class of: </em>
-      <code>qb:ComponentSet</code>
+      <code><a href="#dfn-qb-componentset" class="internalDFN">qb:ComponentSet</a></code>
   </dt>
  <dd>Used to define properties of a component (attribute, dimension etc) which are specific to its usage in a DSD.</dd>
 
   <dt id="ref_qb_ComponentSet">
-    <em>Class:</em> <code>qb:ComponentSet</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-componentset">qb:ComponentSet</dfn></code>
   </dt>
  <dd>Abstract class of things which reference one or more ComponentProperties</dd>
 
-  <dt id="ref_qb_componentProperty">
-    <em>Property:</em> <code>qb:componentProperty</code>
-    (
-    <code>qb:ComponentSet</code>
-    -&gt; 
-    <code>qb:ComponentProperty</code>
+  <dt id="ref_qb_componentProperty_LC">
+    <em>Property:</em> <code><dfn id="dfn-qb-componentproperty-1">qb:componentProperty</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-componentset" class="internalDFN">qb:ComponentSet</a></code>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code>
   ) 
   </dt>
-  <dd>indicates a ComponentProperty (i.e. attribute/dimension) expected on a DataSet, or a dimension fixed in a SliceKey</dd>
+  <dd>Indicates a ComponentProperty (i.e. attribute/dimension) expected on a DataSet, or a dimension fixed in a SliceKey.</dd>
 
   <dt id="ref_qb_order">
-    <em>Property:</em> <code>qb:order</code>
-    (
-    <code>qb:ComponentSpecification</code>
-    -&gt; 
+    <em>Property:</em> <code><dfn id="dfn-qb-order">qb:order</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-componentspecification" class="internalDFN">qb:ComponentSpecification</a></code>
+    -&gt; <em>Range:</em> 
     <code>xsd:int</code>
   ) 
   </dt>
-  <dd>indicates a priority order for the components of sets with this structure, used to guide presentations - lower order numbers come before higher numbers, un-numbered components come last</dd>
+  <dd>Indicates a priority order for the components of sets with this structure, used to guide presentations - lower order numbers come before higher numbers, un-numbered components come last.</dd>
 
   <dt id="ref_qb_componentRequired">
-    <em>Property:</em> <code>qb:componentRequired</code>
-    (
-    <code>qb:ComponentSpecification</code>
-    -&gt; 
+    <em>Property:</em> <code><dfn id="dfn-qb-componentrequired">qb:componentRequired</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-componentspecification" class="internalDFN">qb:ComponentSpecification</a></code>
+    -&gt; <em>Range:</em> 
     <code>xsd:boolean</code>
   ) 
   </dt>
-  <dd>Indicates whether a component property is required (true) or optional (false) in the context of a DSD or MSD</dd>
+  <dd>Indicates whether a component property is required (true) or optional (false) in the context of a DSD. Only applicable
+    to components corresponding to an attribute. Defaults to false (optional).</dd>
 
   <dt id="ref_qb_componentAttachment">
-    <em>Property:</em> <code>qb:componentAttachment</code>
-    (
-    <code>qb:ComponentSpecification</code>
-    -&gt; 
+    <em>Property:</em> <code><dfn id="dfn-qb-componentattachment">qb:componentAttachment</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-componentspecification" class="internalDFN">qb:ComponentSpecification</a></code>
+    -&gt; <em>Range:</em> 
     <code>rdfs:Class</code>
   ) 
   </dt>
   <dd>Indicates the level at which the component property should be attached, this might an qb:DataSet, qb:Slice or qb:Observation, or a qb:MeasureProperty.</dd>
 
   <dt id="ref_qb_dimension">
-    <em>Property:</em> <code>qb:dimension</code>
-    (
-    -&gt; 
-    <code>qb:DimensionProperty</code>
+    <em>Property:</em> <code><dfn id="dfn-qb-dimension">qb:dimension</dfn></code>
+    ( <em>Domain:</em>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-dimensionproperty" class="internalDFN">qb:DimensionProperty</a></code>
     ; <em>sub property of: </em>
-    <code>qb:componentProperty</code>
+    <code><a href="#dfn-qb-componentproperty-1" class="internalDFN">qb:componentProperty</a></code>
   ) 
   </dt>
-  <dd>An alternative to qb:componentProperty which makes explicit that the component is a dimension</dd>
+  <dd>An alternative to qb:componentProperty which makes explicit that the component is a dimension.</dd>
 
   <dt id="ref_qb_measure">
-    <em>Property:</em> <code>qb:measure</code>
-    (
-    -&gt; 
-    <code>qb:MeasureProperty</code>
+    <em>Property:</em> <code><dfn id="dfn-qb-measure">qb:measure</dfn></code>
+    ( <em>Domain:</em>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-measureproperty" class="internalDFN">qb:MeasureProperty</a></code>
     ; <em>sub property of: </em>
-    <code>qb:componentProperty</code>
+    <code><a href="#dfn-qb-componentproperty-1" class="internalDFN">qb:componentProperty</a></code>
   ) 
   </dt>
-  <dd>An alternative to qb:componentProperty which makes explicit that the component is a measure</dd>
+  <dd>An alternative to qb:componentProperty which makes explicit that the component is a measure.</dd>
 
   <dt id="ref_qb_attribute">
-    <em>Property:</em> <code>qb:attribute</code>
-    (
-    -&gt; 
-    <code>qb:AttributeProperty</code>
+    <em>Property:</em> <code><dfn id="dfn-qb-attribute">qb:attribute</dfn></code>
+    ( <em>Domain:</em>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-attributeproperty" class="internalDFN">qb:AttributeProperty</a></code>
     ; <em>sub property of: </em>
-    <code>qb:componentProperty</code>
+    <code><a href="#dfn-qb-componentproperty-1" class="internalDFN">qb:componentProperty</a></code>
   ) 
   </dt>
-  <dd>An alternative to qb:componentProperty which makes explicit that the component is a attribute</dd>
+  <dd>An alternative to qb:componentProperty which makes explicit that the component is a attribute.</dd>
 
   <dt id="ref_qb_measureDimension">
-    <em>Property:</em> <code>qb:measureDimension</code>
-    (
-    -&gt; 
-    <code>qb:DimensionProperty</code>
+    <em>Property:</em> <code><dfn id="dfn-qb-measuredimension">qb:measureDimension</dfn></code>
+    ( <em>Domain:</em>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-dimensionproperty" class="internalDFN">qb:DimensionProperty</a></code>
     ; <em>sub property of: </em>
-    <code>qb:componentProperty</code>
+    <code><a href="#dfn-qb-componentproperty-1" class="internalDFN">qb:componentProperty</a></code>
   ) 
   </dt>
-  <dd>An alternative to qb:componentProperty which makes explicit that the component is a measure dimension</dd>
+  <dd>An alternative to qb:componentProperty which makes explicit that the component is a measure dimension.</dd>
 </dl>
-</div>
-
-
-<div class="section" id="reference-slice-definitions">
-<h3><span class="secno">B.8 </span>Slice definitions</h3>
+</section>
+
+
+<section id="reference-slice-definitions">
+<h3><span class="secno">14.8 </span>Slice definitions</h3>
+<p><em>See Section <a href="#slices">Slices</a>.</em></p>
+
 <dl class="vocab_reference">
 
   <dt id="ref_qb_SliceKey">
-    <em>Class:</em> <code>qb:SliceKey</code>
+    <em>Class:</em> <code><dfn id="dfn-qb-slicekey">qb:SliceKey</dfn></code>
     <em>Sub class of: </em>
-      <code>qb:ComponentSet</code>
+      <code><a href="#dfn-qb-componentset" class="internalDFN">qb:ComponentSet</a></code>
   </dt>
- <dd>Denotes a subset of the component properties of a DataSet which are fixed in the corresponding slices</dd>
+ <dd>Denotes a subset of the component properties of a DataSet which are fixed in the corresponding slices.</dd>
 
   <dt id="ref_qb_sliceStructure">
-    <em>Property:</em> <code>qb:sliceStructure</code>
-    (
-    <code>qb:Slice</code>
-    -&gt; 
-    <code>qb:SliceKey</code>
+    <em>Property:</em> <code><dfn id="dfn-qb-slicestructure">qb:sliceStructure</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-slice" class="internalDFN">qb:Slice</a></code>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-slicekey" class="internalDFN">qb:SliceKey</a></code>
   ) 
   </dt>
-  <dd>indicates the sub-key corresponding to this slice</dd>
-
-  <dt id="ref_qb_sliceKey">
-    <em>Property:</em> <code>qb:sliceKey</code>
-    (
-    <code>qb:DataSet</code>
-    -&gt; 
-    <code>qb:SliceKey</code>
+  <dd>Indicates the slice key corresponding to this slice.</dd>
+
+  <dt id="ref_qb_sliceKey_LC">
+    <em>Property:</em> <code><dfn id="dfn-qb-slicekey-1">qb:sliceKey</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-dataset" class="internalDFN">qb:DataSet</a></code>
+    -&gt; <em>Range:</em> 
+    <code><a href="#dfn-qb-slicekey" class="internalDFN">qb:SliceKey</a></code>
   ) 
   </dt>
-  <dd>indicates a slice key which is used for slices in this dataset</dd>
+  <dd>Indicates a slice key which is used for slices in this dataset.</dd>
 </dl>
-</div>
-
-
-<div class="section" id="reference-concepts">
-<h3><span class="secno">B.9 </span>Concepts</h3>
+</section>
+
+
+<section id="reference-concepts">
+<h3><span class="secno">14.9 </span>Concepts</h3>
+<p><em>See Section <a href="#schemes">Concept schemes and code lists</a>.</em></p>
+
 <dl class="vocab_reference">
 
   <dt id="ref_qb_concept">
-    <em>Property:</em> <code>qb:concept</code>
-    (
-    <code>qb:ComponentProperty</code>
-    -&gt; 
+    <em>Property:</em> <code><dfn id="dfn-qb-concept">qb:concept</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-componentproperty" class="internalDFN">qb:ComponentProperty</a></code>
+    -&gt; <em>Range:</em> 
     <code>skos:Concept</code>
   ) 
   </dt>
-  <dd>gives the concept which is being measured or indicated by a ComponentProperty</dd>
+  <dd>Gives the concept which is being measured or indicated by a ComponentProperty.</dd>
 
   <dt id="ref_qb_codeList">
-    <em>Property:</em> <code>qb:codeList</code>
-    (
-    <code>qb:CodedProperty</code>
-    -&gt; 
-    <code>skos:ConceptScheme</code>
+    <em>Property:</em> <code><dfn id="dfn-qb-codelist">qb:codeList</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-codedproperty" class="internalDFN">qb:CodedProperty</a></code>
+    -&gt; <em>Range:</em> 
+    <code>owl:unionOf(skos:ConceptScheme skos:Collection qb:HierarchicalCodeList)</code>
   ) 
   </dt>
-  <dd>gives the code list associated with a CodedProperty</dd>
+  <dd>Gives the code list associated with a CodedProperty.</dd>
+</dl></section>
+
+<section id="reference-nonskos-hierarchy">
+<h3><span class="secno">14.10 </span>Non-SKOS Hierarchies</h3>
+<p><em>See Section <a href="#schemes-hierarchy-nonskos">Non-SKOS hierarchies</a>.</em></p>
+
+<dl class="vocab_reference">
+
+  <dt id="ref_qb_Hierarchy">
+    <em>Class:</em> <code><dfn id="dfn-qb-hierarchicalcodelist">qb:HierarchicalCodeList</dfn></code>
+  </dt>
+ <dd>Represents a generalized hierarchy of concepts which can be used for coding. The hierarchy is defined by one or more roots together with a property which relates concepts in the hierarchy to their child concept .  The same concepts may be members of multiple hierarchies provided that different qb:parentChildProperty values are used for each hierarchy.</dd>
+  <dt id="ref_qb_hierarchyRoot">
+    <em>Property:</em> <code><dfn id="dfn-qb-hierarchyroot">qb:hierarchyRoot</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code>
+    ) 
+  </dt>
+  <dd>Specifies a root of the hierarchy. A hierarchy may have multiple roots but must have at least one. </dd>
+
+  <dt id="ref_qb_parentChildProperty">
+    <em>Property:</em> <code><dfn id="dfn-qb-parentchildproperty">qb:parentChildProperty</dfn></code>
+    ( <em>Domain:</em>
+    <code><a href="#dfn-qb-hierarchicalcodelist" class="internalDFN">qb:HierarchicalCodeList</a></code>
+    -&gt; <em>Range:</em> 
+    <code>rdf:Property</code>
+  ) 
+  </dt>
+  <dd>Specifies a property which relates a parent concept in the hierarchy to a child concept. Note that a child may have more than one parent.</dd>
+
+
+<!--
+  <dt id="ref_qb_AggregatableHierarchy">
+    <em>Class:</em> <code><dfn>qb:AggregatableHierarchy</dfn></code>
+  </dt>
+ <dd>Indicates a hierarchy in which each parent concept is a disjoint union of its child concepts. So that measures such as simple counts may be aggregated up the hierarchy.</dd>
+-->
+
+
 </dl>
-</div>
-
-</div>
-
-
-<div id="acknowledgements" class="appendix section">
-<!--OddPage--><h2><span class="secno">C. </span>Acknowledgements</h2>
+</section>
+
+</section>
+
+
+<section id="acknowledgements" class="appendix">
+
+<!--OddPage-->
+<h2><span class="secno">A. </span>Acknowledgements</h2>
 
 <p>This work is based on a collaboration that was initiated in a
 workshop on Publishing statistical datasets in SDMX and the semantic
@@ -2165,96 +2926,71 @@
 explanations of SDMX and insight in the need and requirements 
 for a core Data Cube representation.</p>
 
-<p>The authors would also like to thank John Sheridan for his comments,
-suggestions and support for this work.</p>
-</div>
-
-
-<div class="section" id="issues">
-<!--OddPage--><h2><span class="secno">D. </span>Open issues</h2>
-
-<p>
-  Based on early use experiences with the vocabulary the working group is considering 
-  some clarifications and modifications to the specification. Each of
-  the candidate areas under consideration are listed as issues
-  below. Note that there is, as yet, no commitment that all (or indeed any) of these areas
-  will be addressed by the working group.
-</p>
-
-  <div class="issue">
-    <h3 id="issue-29------criteria-for-well-formedness"><a href="http://www.w3.org/2011/gld/track/issues/29">Issue-29</a>:
-    Criteria for well-formedness</h3>
-    <p>Specify additional <em>well-formedness</em> criteria to which
-    cube-publishers should adhere to facilitate tool interoperability.</p>
-  </div>
-
-  <div class="issue">
-    <h3 id="issue-30--------declaring-relations-between-cubes"><a href="http://www.w3.org/2011/gld/track/issues/30">Issue-30</a>:
-      Declaring relations between cubes</h3>
-    <p>Consider extending the vocabulary to support declaring
-      relations between data cubes (or between measures within a cube).</p>
-  </div>
-
-  <div class="issue">
-    <h3 id="issue-31--------supporting-aggregation-for-other-than-skos-hierarchies"><a href="http://www.w3.org/2011/gld/track/issues/31">Issue-31</a>:
-      Supporting aggregation for other than SKOS hierarchies</h3>
-    <p>The Data Cube vocabulary allows hierarchical code lists to be
-      used as dimensions values by means of SKOS. Consider whether to
-      extend this to support use of other hierarchical relations
-      (e.g. geo-spatial containment) without requiring mapping to SKOS.</p>
-  </div>
-
-  <div class="issue">
-    <h3 id="issue-32--------relationship-to-iso-19156---observations---measurements"><a href="http://www.w3.org/2011/gld/track/issues/32">Issue-32</a>:
-      Relationship to ISO 19156 - Observations &amp; Measurements</h3>
-    <p>
-      One use case for the Data Cube vocabulary is for the publication
-      of observational, sensor network and forecast data
-      sets. Existing standards for such publication include OGC
-      Observations &amp; Measurements (ISO 19156). There are multiple ways
-      that Data Cube can be mapped to the logical model of O&amp;M. 
-      Consider making an explicit statement of the ways in which Data
-      Cube can be related to O&amp;M as guidance for users seeking to
-      work with both specifications.</p>
-  </div>
-
-  <div class="issue">
-    <h3 id="issue-33--------collections-of-observations-and-well-formedness-of-slices"><a href="http://www.w3.org/2011/gld/track/issues/33">Issue-33</a>:
-      Collections of observations and well-formedness of slices</h3>
-    <p>
-      Experience with Data Cube has shown that publishers often wish
-      to publish slices comprising arbitrary collections of
-      observations.
-      Consider supporting this usage, either through a clarification
-      of <code>qb:Slice</code> or through an additional collection mechanism.</p>
-  </div>
-
-  <div class="issue">
-    <h3 id="issue-34--------clarify-or-drop-qb-subslice"><a href="http://www.w3.org/2011/gld/track/issues/34">Issue-34</a>:
-      Clarify or drop qb:subslice</h3>
-    <p>
-      Use of <code>qb:subslice</code> in abbreviated datasets can result
-      in ambiguity. Consider
-      clarifying or deprecating <code>qb:subslice</code>.</p>
-  </div>
-
-
-</div>
-
-
-
-
-
-
-<div class="appendix section" id="references"><!--OddPage--><h2><span class="secno">E. </span>References</h2>
-<p class="todo">Bring all references into <acronym title="World Wide Web Consortium">W3C</acronym> style</p>
-<div class="section" id="normative-references"><h3><span class="secno">E.1 </span>Normative references</h3><p>No normative references.</p></div><div class="section" id="informative-references"><h3><span class="secno">E.2 </span>Informative references</h3><dl class="bibliography"><dt id="bib-COG">[COG]</dt><dd>SDMX Contnent Oriented Guidelines, <a href="http://sdmx.org/?page_id=11">http://sdmx.org/?page_id=11</a>
+<p>The editors would like to thank John Sheridan for his comments,
+suggestions and support for the original work.</p>
+
+<p>Many individuals provided valuable comments on this specification
+as it made its way through the <abbr title="World Wide Web Consortium">W3C</abbr> process. We would like to 
+especially acknowledge the contributions of
+Benedikt Kaempgen, Sarven Capadisli and Curran  Kelleher.</p>
+
+</section>
+
+<section id="acknowledgements" class="appendix">
+
+<!--OddPage-->
+<h2><span class="secno">B. </span>Change history </h2>
+
+Changes since <a href="http://www.w3.org/TR/2012/WD-vocab-data-cube-20120405/"><abbr title="World Wide Web Consortium">W3C</abbr> Working Draft 5 April 2012</a>:
+
+<ul>
+  <li>Added <a href="#wf">section</a> on criteria for well-formed cubes. <a href="http://www.w3.org/2011/gld/track/issues/29">ISSUE-29</a></li>
+  <li>Added <a href="#normalize">section</a> on flattening algorithm
+  for handling abbreviated cubes.</li>
+  <li>Added <a href="#conformance">conformance section</a>.
+  </li><li>Clarified that <code><a href="#dfn-qb-componentrequired" class="internalDFN">qb:componentRequired</a></code> is only applicable to
+  attributes and that it defaults to optional.</li>
+  <li>Moved vocabulary reference into the normative body of the specification, adding hyperlinks for all qb: terms.</li>
+  <li>Added <a href="#schemes-hierarchy-nonskos">section</a> on non-skos hierarchies. <a href="http://www.w3.org/2011/gld/track/issues/31">ISSUE-31</a>.</li>
+  <li>Added <a href="#schemes-aggregation">note</a> that aggregation operations and inter-cube relations are out of scope for this version. <a href="http://www.w3.org/2011/gld/track/issues/30">ISSUE-30</a>.</li>
+  <li>Added <code><a href="#dfn-qb-observationgroup" class="internalDFN">qb:ObservationGroup</a></code> as a generalization of <code><a href="#dfn-qb-slice" class="internalDFN">qb:Slice</a></code>. <a href="http://www.w3.org/2011/gld/track/issues/33">ISSUE-33</a>.</li>
+  <li>Removed <code><a>qb:subSlice</a></code> as being problematic in how
+  they interact with attachment levels. <a href="http://www.w3.org/2011/gld/track/issues/34">ISSUE-34</a>.</li>
+  <li>Generalized range of <code><a href="#dfn-qb-codelist" class="internalDFN">qb:codeList</a></code> to allow <code>skos:Collection</code>. <a href="http://www.w3.org/2011/gld/track/issues/39">ISSUE-39</a>.</li>
+  <li>Moved namespace definitions to a normative <a href="#namespaces">section</a> within the body of the specification.</li>
+  <li>Moved Jeni Tennison from being listed as an author to being a
+  contributor. </li>
+</ul>
+
+
+</section>
+
+<section id="references_section" class="appendix">
+</section>
+
+
+
+<section id="references" class="appendix">
+<!--OddPage-->
+<h2><span class="secno">C. </span>References</h2><section id="normative-references"><h3><span class="secno">C.1 </span>Normative references</h3><dl class="bibliography"><dt id="bib-OWL2-PRIMER">[OWL2-PRIMER]</dt><dd>Pascal Hitzler; Markus Krötzsch; Bijan Parsia; Peter F. Patel-Schneider; Sebastian Rudolph. <a href="http://www.w3.org/TR/2009/REC-owl2-primer-20091027/"><cite>OWL 2 Web Ontology Language:Primer.</cite></a> 27 October 2009. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2009/REC-owl2-primer-20091027/">http://www.w3.org/TR/2009/REC-owl2-primer-20091027/</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-RDF-MT">[RDF-MT]</dt><dd>Patrick Hayes. <a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210"><cite>RDF Semantics.</cite></a> 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210">http://www.w3.org/TR/2004/REC-rdf-mt-20040210</a>
+</dd><dt id="bib-RDF-PRIMER">[RDF-PRIMER]</dt><dd>Frank Manola; Eric Miller. <a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/"><cite>RDF Primer.</cite></a> 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">http://www.w3.org/TR/2004/REC-rdf-primer-20040210/</a>
+</dd><dt id="bib-RDF-SCHEMA">[RDF-SCHEMA]</dt><dd>Dan Brickley; Ramanathan V. Guha. <a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210"><cite>RDF Vocabulary Description Language 1.0: RDF Schema.</cite></a> 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210">http://www.w3.org/TR/2004/REC-rdf-schema-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-SKOS-REFERENCE">[SKOS-REFERENCE]</dt><dd>Sean Bechhofer; Alistair Miles. <a href="http://www.w3.org/TR/2009/REC-skos-reference-20090818/"><cite>SKOS Simple Knowledge Organization System Reference.</cite></a> 18 August 2009. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2009/REC-skos-reference-20090818/">http://www.w3.org/TR/2009/REC-skos-reference-20090818/</a>
+</dd><dt id="bib-SPARQL-QUERY-11">[SPARQL-QUERY-11]</dt><dd>Steve Harris; Andy Seaborne. <a href="http://www.w3.org/TR/2012/PR-sparql11-query-20121108/"><cite>SPARQL 1.1 Query Language</cite></a> 8 November 2012. W3C Proposed Recommendation. URL: <a href="http://www.w3.org/TR/2012/PR-sparql11-query-20121108/">http://www.w3.org/TR/2012/PR-sparql11-query-20121108/</a>
+</dd><dt id="bib-SPARQL-UPDATE-11">[SPARQL-UPDATE-11]</dt><dd>Paul Gearon; Alexandre Passant; Axel Polleres. <a href="http://www.w3.org/TR/2012/PR-sparql11-update-20121108/"><cite>SPARQL 1.1 Update</cite></a> W3C Proposed Recommendation. 8 November 2012. URL: <a href="http://www.w3.org/TR/2012/PR-sparql11-update-20121108/">http://www.w3.org/TR/2012/PR-sparql11-update-20121108/</a>
+</dd><dt id="bib-TURTLE-TR">[TURTLE-TR]</dt><dd>Eric Prud'hommeaux, Gavin Carothers. <a href="http://www.w3.org/TR/2013/CR-turtle-20130219/"><cite>Turtle: Terse RDF Triple Language.</cite></a> 19 February 2013. W3C Candidate Recommendation. URL: <a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">http://www.w3.org/TR/2013/CR-turtle-20130219/</a>
+</dd></dl></section><section id="informative-references"><h3><span class="secno">C.2 </span>Informative references</h3><dl class="bibliography"><dt id="bib-COG">[COG]</dt><dd>SDMX Contnent Oriented Guidelines, <a href="http://sdmx.org/?page_id=11">http://sdmx.org/?page_id=11</a>
+</dd><dt id="bib-DC11">[DC11]</dt><dd>Dublin Core metadata initiative. <a href="http://dublincore.org/documents/dcmi-terms/"><cite>Dublin Core metadata element set, version 1.1.</cite></a> July 1999. Dublin Core recommendation. URL: <a href="http://dublincore.org/documents/dcmi-terms/">http://dublincore.org/documents/dcmi-terms/</a>
+</dd><dt id="bib-FOAF">[FOAF]</dt><dd>Dan Brickley, Libby Miller. <a href="http://xmlns.com/foaf/spec/"><cite>FOAF Vocabulary Specification 0.98.</cite></a> 9 August 2010. URL: <a href="http://xmlns.com/foaf/spec/">http://xmlns.com/foaf/spec/</a>
 </dd><dt id="bib-LOD">[LOD]</dt><dd>Linked Data, <a href="http://linkeddata.org/">http://linkeddata.org/</a>
 </dd><dt id="bib-OLAP">[OLAP]</dt><dd>Online Analytical Processing Data Cubes, <a href="http://en.wikipedia.org/wiki/OLAP_cube">http://en.wikipedia.org/wiki/OLAP_cube</a>
 </dd><dt id="bib-ORG">[ORG]</dt><dd>An Organization Ontology, <a href="http://www.epimorphics.com/public/vocabulary/org.html">http://www.epimorphics.com/public/vocabulary/org.html</a>
-</dd><dt id="bib-OS-GEO">[OS-GEO]</dt><dd>Ordnance Survey Administrative Geography Ontology v1, <a href="http://www.ordnancesurvey.co.uk/ontology/v1/AdministrativeGeography.rdf">http://www.ordnancesurvey.co.uk/ontology/v1/AdministrativeGeography.rdf</a>
-</dd><dt id="bib-RDF-PRIMER">[RDF-PRIMER]</dt><dd>Frank Manola; Eric Miller. <a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/"><cite>RDF Primer.</cite></a> 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">http://www.w3.org/TR/2004/REC-rdf-primer-20040210/</a> 
-</dd><dt id="bib-SCOVO">[SCOVO]</dt><dd>The Statistical Core Vocabulary, <a href="http://sw.joanneum.at/scovo/schema.html">http://sw.joanneum.at/scovo/schema.html</a><br>SCOVO: Using Statistics on the Web of data, <a href="http://sw-app.org/pub/eswc09-inuse-scovo.pdf">http://sw-app.org/pub/eswc09-inuse-scovo.pdf</a>
-</dd><dt id="bib-SKOS-PRIMER">[SKOS-PRIMER]</dt><dd>Antoine Isaac; Ed Summers. <a href="http://www.w3.org/TR/2009/NOTE-skos-primer-20090818/"><cite>SKOS Simple Knowledge Organization System Primer.</cite></a> 18 August 2009. W3C Note. URL: <a href="http://www.w3.org/TR/2009/NOTE-skos-primer-20090818/">http://www.w3.org/TR/2009/NOTE-skos-primer-20090818/</a> 
-</dd><dt id="bib-TURTLE-TR">[TURTLE-TR]</dt><dd>Eric Prud'hommeaux, Gavin Carothers. <a href="http://www.w3.org/TR/2011/WD-turtle-20110809/"><cite>Turtle: Terse RDF Triple Language.</cite></a> 09 August 2011. W3C Working Draft. URL: <a href="http://www.w3.org/TR/2011/WD-turtle-20110809/">http://www.w3.org/TR/2011/WD-turtle-20110809/</a>
-</dd></dl></div></div></body></html>
\ No newline at end of file
+</dd><dt id="bib-OS-GEO">[OS-GEO]</dt><dd>Ordnance Survey Administrative Geography Ontology, <a href="http://data.ordnancesurvey.co.uk/ontology/admingeo/">http://data.ordnancesurvey.co.uk/ontology/admingeo/</a>
+</dd><dt id="bib-SCOVO">[SCOVO]</dt><dd>The Statistical Core Vocabulary, <a href="http://sw.joanneum.at/scovo/schema.html">http://sw.joanneum.at/scovo/schema.html</a><br />SCOVO: Using Statistics on the Web of data, <a href="http://sw-app.org/pub/eswc09-inuse-scovo.pdf">http://sw-app.org/pub/eswc09-inuse-scovo.pdf</a>
+</dd><dt id="bib-SDMX20">[SDMX20]</dt><dd>SDMX Information Model: UML Conceptual Design (Version 2.0), November 2005, Statistical Data and Metadata Exchange Initiative. URL: <a href="http://sdmx.org/docs/2_0/SDMX_2_0%20SECTION_02_InformationModel.pdf">http://sdmx.org/docs/2_0/SDMX_2_0%20SECTION_02_InformationModel.pdf</a>
+</dd><dt id="bib-SKOS-PRIMER">[SKOS-PRIMER]</dt><dd>Antoine Isaac; Ed Summers. <a href="http://www.w3.org/TR/2009/NOTE-skos-primer-20090818/"><cite>SKOS Simple Knowledge Organization System Primer.</cite></a> 18 August 2009. W3C Note. URL: <a href="http://www.w3.org/TR/2009/NOTE-skos-primer-20090818/">http://www.w3.org/TR/2009/NOTE-skos-primer-20090818/</a>
+</dd><dt id="bib-VOID">[VOID]</dt><dd>Keith Alexander; Richard Cyganiak; Michael Hausenblas; Jun Zhao. <a href="http://www.w3.org/TR/void/"><cite>Describing Linked Datasets with the VoID Vocabulary</cite></a> 03 March 2011. Interest Group Note. URL: <a href="http://www.w3.org/TR/void/">http://www.w3.org/TR/void/</a>
+</dd></dl></section></section></body></html>