Generating static version for pubrules checking
authorDave Reynolds <dave@epimorphics.com>
Thu, 29 Mar 2012 15:38:30 +0100
changeset 144 d85e49aab14d
parent 143 ef72bc3cb3e2
child 145 7726c698d1d7
Generating static version for pubrules checking
data-cube/static.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data-cube/static.html	Thu Mar 29 15:38:30 2012 +0100
@@ -0,0 +1,2288 @@
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body><pre>&lt;?xml version='1.0' encoding='UTF-8'?&gt;
+&lt;!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'&gt;
+&lt;html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"&gt;
+&lt;head&gt;
+	&lt;title&gt;The RDF Data Cube Vocabulary&lt;/title&gt;
+	&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type" /&gt;
+	
+	
+	
+  &lt;style type="text/css"&gt;
+.todo { background-color: #fdd; border: 1px solid #800; margin: 1em 0em; padding: 1em; page-break-inside: avoid ; font-style: italic; }
+.todo:before { content: 'TODO: '; }
+.spare-table { border-collapse: collapse; margin-left: 5ex; }
+.spare-table thead { border-bottom: black 1px solid; }
+.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; }
+  &lt;/style&gt;
+&lt;style type="text/css"&gt;
+/*****************************************************************
+ * ReSpec CSS
+ * Robin Berjon (robin at berjon dot com)
+ * v0.05 - 2009-07-31
+ *****************************************************************/
+
+
+/* --- INLINES --- */
+em.rfc2119 { 
+    text-transform:     lowercase;
+    font-variant:       small-caps;
+    font-style:         normal;
+    color:              #900;
+}
+
+h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
+h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
+    border: none;
+}
+
+dfn {
+    font-weight:    bold;
+}
+
+a.internalDFN {
+    color:  inherit;
+    border-bottom:  1px solid #99c;
+    text-decoration:    none;
+}
+
+a.externalDFN {
+    color:  inherit;
+    border-bottom:  1px dotted #ccc;
+    text-decoration:    none;
+}
+
+a.bibref {
+    text-decoration:    none;
+}
+
+code {
+    color:  #ff4500;
+}
+
+
+/* --- WEB IDL --- */
+pre.idl {
+    border-top: 1px solid #90b8de;
+    border-bottom: 1px solid #90b8de;
+    padding:    1em;
+    line-height:    120%;
+}
+
+pre.idl::before {
+    content:    "WebIDL";
+    display:    block;
+    width:      150px;
+    background: #90b8de;
+    color:  #fff;
+    font-family:    initial;
+    padding:    3px;
+    font-weight:    bold;
+    margin: -1em 0 1em -1em;
+}
+
+.idlType {
+    color:  #ff4500;
+    font-weight:    bold;
+    text-decoration:    none;
+}
+
+/*.idlModule*/
+/*.idlModuleID*/
+/*.idlInterface*/
+.idlInterfaceID, .idlDictionaryID {
+    font-weight:    bold;
+    color:  #005a9c;
+}
+
+.idlSuperclass {
+    font-style: italic;
+    color:  #005a9c;
+}
+
+/*.idlAttribute*/
+.idlAttrType, .idlFieldType, .idlMemberType {
+    color:  #005a9c;
+}
+.idlAttrName, .idlFieldName, .idlMemberName {
+    color:  #ff4500;
+}
+.idlAttrName a, .idlFieldName a, .idlMemberName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlMethod*/
+.idlMethType {
+    color:  #005a9c;
+}
+.idlMethName {
+    color:  #ff4500;
+}
+.idlMethName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlParam*/
+.idlParamType {
+    color:  #005a9c;
+}
+.idlParamName {
+    font-style: italic;
+}
+
+.extAttr {
+    color:  #666;
+}
+
+/*.idlConst*/
+.idlConstType {
+    color:  #005a9c;
+}
+.idlConstName {
+    color:  #ff4500;
+}
+.idlConstName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlException*/
+.idlExceptionID {
+    font-weight:    bold;
+    color:  #c00;
+}
+
+.idlTypedefID, .idlTypedefType {
+    color:  #005a9c;
+}
+
+.idlRaises, .idlRaises a.idlType, .idlRaises a.idlType code, .excName a, .excName a code {
+    color:  #c00;
+    font-weight:    normal;
+}
+
+.excName a {
+    font-family:    monospace;
+}
+
+.idlRaises a.idlType, .excName a.idlType {
+    border-bottom:  1px dotted #c00;
+}
+
+.excGetSetTrue, .excGetSetFalse, .prmNullTrue, .prmNullFalse, .prmOptTrue, .prmOptFalse {
+    width:  45px;
+    text-align: center;
+}
+.excGetSetTrue, .prmNullTrue, .prmOptTrue { color:  #0c0; }
+.excGetSetFalse, .prmNullFalse, .prmOptFalse { color:  #c00; }
+
+.idlImplements a {
+    font-weight:    bold;
+}
+
+dl.attributes, dl.methods, dl.constants, dl.fields, dl.dictionary-members {
+    margin-left:    2em;
+}
+
+.attributes dt, .methods dt, .constants dt, .fields dt, .dictionary-members dt {
+    font-weight:    normal;
+}
+
+.attributes dt code, .methods dt code, .constants dt code, .fields dt code, .dictionary-members dt code {
+    font-weight:    bold;
+    color:  #000;
+    font-family:    monospace;
+}
+
+.attributes dt code, .fields dt code, .dictionary-members dt code {
+    background:  #ffffd2;
+}
+
+.attributes dt .idlAttrType code, .fields dt .idlFieldType code, .dictionary-members dt .idlMemberType code {
+    color:  #005a9c;
+    background:  transparent;
+    font-family:    inherit;
+    font-weight:    normal;
+    font-style: italic;
+}
+
+.methods dt code {
+    background:  #d9e6f8;
+}
+
+.constants dt code {
+    background:  #ddffd2;
+}
+
+.attributes dd, .methods dd, .constants dd, .fields dd, .dictionary-members dd {
+    margin-bottom:  1em;
+}
+
+table.parameters, table.exceptions {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    margin: 0.5em 0;
+    width:  100%;
+}
+table.parameters { border-bottom:  1px solid #90b8de; }
+table.exceptions { border-bottom:  1px solid #deb890; }
+
+.parameters th, .exceptions th {
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+    font-family:    initial;
+    font-weight:    normal;
+    text-shadow:    #666 1px 1px 0;
+}
+.parameters th { background: #90b8de; }
+.exceptions th { background: #deb890; }
+
+.parameters td, .exceptions td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+    vertical-align: top;
+}
+
+.parameters tr:first-child td, .exceptions tr:first-child td {
+    border-top: none;
+}
+
+.parameters td.prmName, .exceptions td.excName, .exceptions td.excCodeName {
+    width:  100px;
+}
+
+.parameters td.prmType {
+    width:  120px;
+}
+
+table.exceptions table {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    width:  100%;
+}
+
+/* --- TOC --- */
+.toc a {
+    text-decoration:    none;
+}
+
+a .secno {
+    color:  #000;
+}
+
+/* --- TABLE --- */
+table.simple {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    border-bottom:  3px solid #005a9c;
+}
+
+.simple th {
+    background: #005a9c;
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+}
+
+.simple th[scope="row"] {
+    background: inherit;
+    color:  inherit;
+    border-top: 1px solid #ddd;
+}
+
+.simple td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+}
+
+.simple tr:nth-child(even) {
+    background: #f0f6ff;
+}
+
+/* --- DL --- */
+.section dd &gt; p:first-child {
+    margin-top: 0;
+}
+
+.section dd &gt; p:last-child {
+    margin-bottom: 0;
+}
+
+.section dd {
+    margin-bottom:  1em;
+}
+
+.section dl.attrs dd, .section dl.eldef dd {
+    margin-bottom:  0;
+}
+
+/* --- EXAMPLES --- */
+pre.example {
+    border-top: 1px solid #ff4500;
+    border-bottom: 1px solid #ff4500;
+    padding:    1em;
+    margin-top: 1em;
+}
+
+pre.example::before {
+    content:    "Example";
+    display:    block;
+    width:      150px;
+    background: #ff4500;
+    color:  #fff;
+    font-family:    initial;
+    padding:    3px;
+    font-weight:    bold;
+    margin: -1em 0 1em -1em;
+}
+
+/* --- EDITORIAL NOTES --- */
+.issue {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #ffc;
+}
+
+.issue::before {
+    content:    "Issue";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.note {
+    margin: 1em 0em 0em;
+    padding:    1em;
+    border: 2px solid #cff6d9;
+    background: #e2fff0;
+}
+
+.note::before {
+    content:    "Note";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #cff6d9;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+/* --- Best Practices --- */
+div.practice {
+    border: solid #bebebe 1px;
+    margin: 2em 1em 1em 2em;
+}
+
+span.practicelab {
+    margin: 1.5em 0.5em 1em 1em;
+    font-weight: bold;
+    font-style: italic;
+}
+
+span.practicelab   { background: #dfffff; }
+
+span.practicelab {
+    position: relative;
+    padding: 0 0.5em;
+    top: -1.5em;
+}
+
+p.practicedesc {
+    margin: 1.5em 0.5em 1em 1em;
+}
+
+@media screen {
+    p.practicedesc {
+        position: relative;
+        top: -2em;
+        padding: 0;
+        margin: 1.5em 0.5em -1em 1em;
+    }
+}
+
+/* --- SYNTAX HIGHLIGHTING --- */
+pre.sh_sourceCode {
+  background-color: white;
+  color: black;
+  font-style: normal;
+  font-weight: normal;
+}
+
+pre.sh_sourceCode .sh_keyword { color: #005a9c; font-weight: bold; }           /* language keywords */
+pre.sh_sourceCode .sh_type { color: #666; }                            /* basic types */
+pre.sh_sourceCode .sh_usertype { color: teal; }                             /* user defined types */
+pre.sh_sourceCode .sh_string { color: red; font-family: monospace; }        /* strings and chars */
+pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; }     /* regular expressions */
+pre.sh_sourceCode .sh_specialchar { color: 	#ffc0cb; font-family: monospace; }  /* e.g., \n, \t, \\ */
+pre.sh_sourceCode .sh_comment { color: #A52A2A; font-style: italic; }         /* comments */
+pre.sh_sourceCode .sh_number { color: purple; }                             /* literal numbers */
+pre.sh_sourceCode .sh_preproc { color: #00008B; font-weight: bold; }       /* e.g., #include, import */
+pre.sh_sourceCode .sh_symbol { color: blue; }                            /* e.g., *, + */
+pre.sh_sourceCode .sh_function { color: black; font-weight: bold; }         /* function calls and declarations */
+pre.sh_sourceCode .sh_cbracket { color: red; }                              /* block brackets (e.g., {, }) */
+pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: #00FFFF; }   /* TODO and FIXME */
+
+/* Predefined variables and functions (for instance glsl) */
+pre.sh_sourceCode .sh_predef_var { color: #00008B; }
+pre.sh_sourceCode .sh_predef_func { color: #00008B; font-weight: bold; }
+
+/* for OOP */
+pre.sh_sourceCode .sh_classname { color: teal; }
+
+/* line numbers (not yet implemented) */
+pre.sh_sourceCode .sh_linenum { display: none; }
+
+/* Internet related */
+pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }
+
+/* for ChangeLog and Log files */
+pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
+pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: #00008B; font-weight: bold; }
+pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: #006400; }
+
+/* for Prolog, Perl... */
+pre.sh_sourceCode .sh_variable { color: #006400; }
+
+/* for LaTeX */
+pre.sh_sourceCode .sh_italics { color: #006400; font-style: italic; }
+pre.sh_sourceCode .sh_bold { color: #006400; font-weight: bold; }
+pre.sh_sourceCode .sh_underline { color: #006400; text-decoration: underline; }
+pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
+pre.sh_sourceCode .sh_argument { color: #006400; }
+pre.sh_sourceCode .sh_optionalargument { color: purple; }
+pre.sh_sourceCode .sh_math { color: orange; }
+pre.sh_sourceCode .sh_bibtex { color: blue; }
+
+/* for diffs */
+pre.sh_sourceCode .sh_oldfile { color: orange; }
+pre.sh_sourceCode .sh_newfile { color: #006400; }
+pre.sh_sourceCode .sh_difflines { color: blue; }
+
+/* for css */
+pre.sh_sourceCode .sh_selector { color: purple; }
+pre.sh_sourceCode .sh_property { color: blue; }
+pre.sh_sourceCode .sh_value { color: #006400; font-style: italic; }
+
+/* other */
+pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
+pre.sh_sourceCode .sh_paren { color: red; }
+pre.sh_sourceCode .sh_attribute { color: #006400; }
+
+&lt;/style&gt;&lt;link href="http://www.w3.org/StyleSheets/TR/W3C-WD" rel="stylesheet" type="text/css" charset="utf-8" /&gt;&lt;/head&gt;
+
+&lt;body style="display: inherit;"&gt;&lt;div class="head"&gt;&lt;p&gt;&lt;a href="http://www.w3.org/"&gt;&lt;img width="72" height="48" alt="W3C" src="http://www.w3.org/Icons/w3c_home" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h1 id="title" class="title"&gt;The RDF Data Cube Vocabulary&lt;/h1&gt;&lt;h2 id="w3c-working-draft-03-april-2012"&gt;&lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; Working Draft 03 April 2012&lt;/h2&gt;&lt;dl&gt;&lt;dt&gt;This version:&lt;/dt&gt;&lt;dd&gt;&lt;a href="http://www.w3.org/TR/2012/WD-data-cube-20120403/"&gt;http://www.w3.org/TR/2012/WD-data-cube-20120403/&lt;/a&gt;&lt;/dd&gt;&lt;dt&gt;Latest published version:&lt;/dt&gt;&lt;dd&gt;&lt;a href="http://www.w3.org/TR/data-cube/"&gt;http://www.w3.org/TR/data-cube/&lt;/a&gt;&lt;/dd&gt;&lt;dt&gt;Latest editor's draft:&lt;/dt&gt;&lt;dd&gt;&lt;a href="http://dvcs.w3.org/hg/gld/raw-file/default/data-cube/index.html"&gt;http://dvcs.w3.org/hg/gld/raw-file/default/data-cube/index.html&lt;/a&gt;&lt;/dd&gt;&lt;dt&gt;Editors:&lt;/dt&gt;&lt;dd&gt;&lt;a href="http://richard.cyganiak.de/"&gt;Richard Cyganiak&lt;/a&gt;, &lt;a href="http://www.deri.ie/"&gt;DERI, NUI Galway&lt;/a&gt;&lt;/dd&gt;
+&lt;dd&gt;&lt;span&gt;Dave Reynolds&lt;/span&gt;, &lt;a href="http://www.epimorphics.com/"&gt;Epimorphics Ltd&lt;/a&gt;&lt;/dd&gt;
+&lt;dt&gt;Author:&lt;/dt&gt;&lt;dd&gt;&lt;a href="http://www.jenitennison.com/blog/"&gt;Jeni Tennison&lt;/a&gt;, &lt;a href="http://www.tso.co.uk/"&gt;TSO&lt;/a&gt;&lt;/dd&gt;
+&lt;/dl&gt;&lt;p class="copyright"&gt;&lt;a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"&gt;Copyright&lt;/a&gt; © 2012 &lt;a href="http://www.w3.org/"&gt;&lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt;&lt;/a&gt;&lt;sup&gt;®&lt;/sup&gt; (&lt;a href="http://www.csail.mit.edu/"&gt;&lt;acronym title="Massachusetts Institute of Technology"&gt;MIT&lt;/acronym&gt;&lt;/a&gt;, &lt;a href="http://www.ercim.eu/"&gt;&lt;acronym title="European Research Consortium for Informatics and Mathematics"&gt;ERCIM&lt;/acronym&gt;&lt;/a&gt;, &lt;a href="http://www.keio.ac.jp/"&gt;Keio&lt;/a&gt;), All Rights Reserved. &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; &lt;a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer"&gt;liability&lt;/a&gt;, &lt;a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks"&gt;trademark&lt;/a&gt; and &lt;a href="http://www.w3.org/Consortium/Legal/copyright-documents"&gt;document use&lt;/a&gt; rules apply.&lt;/p&gt;&lt;hr /&gt;&lt;/div&gt;
+
+&lt;div id="abstract" class="introductory section"&gt;&lt;h2&gt;Abstract&lt;/h2&gt;
+&lt;p&gt;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 &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; &lt;a href="http://www.w3.org/TR/REC-rdf-syntax/"&gt;RDF&lt;/a&gt;
+(Resource Description Framework) standard. The model underpinning the
+Data Cube vocabulary is
+compatible with the cube model that underlies &lt;a href="http://sdmx.org"&gt;SDMX&lt;/a&gt; (Statistical Data
+and Metadata eXchange), an ISO standard for exchanging and sharing
+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.&lt;/p&gt;
+&lt;/div&gt;&lt;div class="introductory section" id="sotd"&gt;&lt;h2&gt;Status of This Document&lt;/h2&gt;&lt;p&gt;&lt;em&gt;This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; publications and the latest revision of this technical report can be found in the &lt;a href="http://www.w3.org/TR/"&gt;&lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; technical reports index&lt;/a&gt; at http://www.w3.org/TR/.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;This document was published by the &lt;a href="http://www.w3.org/2011/gld/"&gt;Government Linked Data Working Group&lt;/a&gt; as a First Public Working Draft. This document is intended to become a &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; Recommendation. If you wish to make comments regarding this document, please send them to &lt;a href="mailto:public-gld-comments@w3.org"&gt;public-gld-comments@w3.org&lt;/a&gt; (&lt;a href="mailto:public-gld-comments-request@w3.org?subject=subscribe"&gt;subscribe&lt;/a&gt;, &lt;a href="http://lists.w3.org/Archives/Public/public-gld-comments/"&gt;archives&lt;/a&gt;). All feedback is welcome.&lt;/p&gt;&lt;p&gt;Publication as a Working Draft does not imply endorsement by the &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; 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.&lt;/p&gt;&lt;p&gt;This document was produced by a group operating under the &lt;a href="http://www.w3.org/Consortium/Patent-Policy-20040205/"&gt;5 February 2004 &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; Patent Policy&lt;/a&gt;. &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; maintains a &lt;a rel="disclosure" href=""&gt;public list of any patent disclosures&lt;/a&gt; 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 &lt;a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential"&gt;Essential Claim(s)&lt;/a&gt; must disclose the information in accordance with &lt;a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure"&gt;section 6 of the &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; Patent Policy&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div id="toc" class="section"&gt;&lt;h2 class="introductory"&gt;Table of Contents&lt;/h2&gt;&lt;ul class="toc"&gt;&lt;li class="tocline"&gt;&lt;a href="#introduction" class="tocxref"&gt;&lt;span class="secno"&gt;1. &lt;/span&gt;Introduction&lt;/a&gt;&lt;ul class="toc"&gt;&lt;li class="tocline"&gt;&lt;a href="#intro-cube" class="tocxref"&gt;&lt;span class="secno"&gt;1.1 &lt;/span&gt;A Data Cube vocabulary&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#intro-rdf" class="tocxref"&gt;&lt;span class="secno"&gt;1.2 &lt;/span&gt;RDF and Linked Data&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#intro-sdmx" class="tocxref"&gt;&lt;span class="secno"&gt;1.3 &lt;/span&gt;SDMX and related standards&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#intro-scovo" class="tocxref"&gt;&lt;span class="secno"&gt;1.4 &lt;/span&gt;Relationship to SCOVO&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#intro-audience" class="tocxref"&gt;&lt;span class="secno"&gt;1.5 &lt;/span&gt;Audience and scope&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#intro-conventions" class="tocxref"&gt;&lt;span class="secno"&gt;1.6 &lt;/span&gt;Document conventions&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#data-cubes" class="tocxref"&gt;&lt;span class="secno"&gt;2. &lt;/span&gt;Data cubes&lt;/a&gt;&lt;ul class="toc"&gt;&lt;li class="tocline"&gt;&lt;a href="#cubes-model" class="tocxref"&gt;&lt;span class="secno"&gt;2.1 &lt;/span&gt;The cube model - dimensions, attributes, measures&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#cubes-slices" class="tocxref"&gt;&lt;span class="secno"&gt;2.2 &lt;/span&gt;Slices&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#example" class="tocxref"&gt;&lt;span class="secno"&gt;3. &lt;/span&gt;An example&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#outline" class="tocxref"&gt;&lt;span class="secno"&gt;4. &lt;/span&gt;Outline of the vocabulary&lt;/a&gt;&lt;ul class="toc"&gt;&lt;li class="tocline"&gt;&lt;a href="#index" class="tocxref"&gt;&lt;span class="secno"&gt;4.1 &lt;/span&gt;Vocabulary index&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#dsd" class="tocxref"&gt;&lt;span class="secno"&gt;5. &lt;/span&gt;Creating data structure definitions&lt;/a&gt;&lt;ul class="toc"&gt;&lt;li class="tocline"&gt;&lt;a href="#dsd-dimensions" class="tocxref"&gt;&lt;span class="secno"&gt;5.1 &lt;/span&gt;Dimensions, attributes and measures&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#dsd-cog" class="tocxref"&gt;&lt;span class="secno"&gt;5.2 &lt;/span&gt;Content oriented guidelines&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#dsd-example" class="tocxref"&gt;&lt;span class="secno"&gt;5.3 &lt;/span&gt;Example&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#dsd-dsd" class="tocxref"&gt;&lt;span class="secno"&gt;5.4 &lt;/span&gt;ComponentSpecifications and DataStructureDefinitions&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#dsd-mm" class="tocxref"&gt;&lt;span class="secno"&gt;5.5 &lt;/span&gt;Handling multiple measures&lt;/a&gt;&lt;ul class="toc"&gt;&lt;li class="tocline"&gt;&lt;a href="#dsd-mm-obs" class="tocxref"&gt;&lt;span class="secno"&gt;5.5.1 &lt;/span&gt;Multi-measure observations&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#dsd-mm-dim" class="tocxref"&gt;&lt;span class="secno"&gt;5.5.2 &lt;/span&gt;Measure dimension&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#datasets" class="tocxref"&gt;&lt;span class="secno"&gt;6. &lt;/span&gt;Expressing data sets&lt;/a&gt;&lt;ul class="toc"&gt;&lt;li class="tocline"&gt;&lt;a href="#dataset-basic" class="tocxref"&gt;&lt;span class="secno"&gt;6.1 &lt;/span&gt;Data sets and observations&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#slices" class="tocxref"&gt;&lt;span class="secno"&gt;7. &lt;/span&gt;Slices&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#schemes" class="tocxref"&gt;&lt;span class="secno"&gt;8. &lt;/span&gt;Concept schemes and code lists&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#metadata" class="tocxref"&gt;&lt;span class="secno"&gt;9. &lt;/span&gt;DataSet metadata&lt;/a&gt;&lt;ul class="toc"&gt;&lt;li class="tocline"&gt;&lt;a href="#metadata-categorization" class="tocxref"&gt;&lt;span class="secno"&gt;9.1 &lt;/span&gt;Categorizing a data set&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#metadata-publishers" class="tocxref"&gt;&lt;span class="secno"&gt;9.2 &lt;/span&gt;Describing publishers&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#namespaces-used-appendix" class="tocxref"&gt;&lt;span class="secno"&gt;A. &lt;/span&gt;Namespaces used in this document&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#vocab-reference" class="tocxref"&gt;&lt;span class="secno"&gt;B. &lt;/span&gt;Vocabulary reference&lt;/a&gt;&lt;ul class="toc"&gt;&lt;li class="tocline"&gt;&lt;a href="#reference-datasets" class="tocxref"&gt;&lt;span class="secno"&gt;B.1 &lt;/span&gt;DataSets&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#reference-observations" class="tocxref"&gt;&lt;span class="secno"&gt;B.2 &lt;/span&gt;Observations&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#reference-slices" class="tocxref"&gt;&lt;span class="secno"&gt;B.3 &lt;/span&gt;Slices&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#reference-components" class="tocxref"&gt;&lt;span class="secno"&gt;B.4 &lt;/span&gt;Dimensions, Attributes, Measures&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#reference-component-properties" class="tocxref"&gt;&lt;span class="secno"&gt;B.5 &lt;/span&gt;Reusable general purpose component properties&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#reference-dsd" class="tocxref"&gt;&lt;span class="secno"&gt;B.6 &lt;/span&gt;Data Structure Definitions&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#reference-compspec" class="tocxref"&gt;&lt;span class="secno"&gt;B.7 &lt;/span&gt;Component specifications - for qualifying component use in a DSD&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#reference-slice-definitions" class="tocxref"&gt;&lt;span class="secno"&gt;B.8 &lt;/span&gt;Slice definitions&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#reference-concepts" class="tocxref"&gt;&lt;span class="secno"&gt;B.9 &lt;/span&gt;Concepts&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#acknowledgements" class="tocxref"&gt;&lt;span class="secno"&gt;C. &lt;/span&gt;Acknowledgements&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#issues" class="tocxref"&gt;&lt;span class="secno"&gt;D. &lt;/span&gt;Open issues&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#references" class="tocxref"&gt;&lt;span class="secno"&gt;E. &lt;/span&gt;References&lt;/a&gt;&lt;ul class="toc"&gt;&lt;li class="tocline"&gt;&lt;a href="#normative-references" class="tocxref"&gt;&lt;span class="secno"&gt;E.1 &lt;/span&gt;Normative references&lt;/a&gt;&lt;/li&gt;&lt;li class="tocline"&gt;&lt;a href="#informative-references" class="tocxref"&gt;&lt;span class="secno"&gt;E.2 &lt;/span&gt;Informative references&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
+
+&lt;div id="introduction" class="section"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;1. &lt;/span&gt;Introduction&lt;/h2&gt;
+
+&lt;div id="intro-cube" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;1.1 &lt;/span&gt;A Data Cube vocabulary&lt;/h3&gt;
+
+&lt;p&gt;
+Statistical data is a foundation for policy
+prediction, planning and adjustments and
+underpins many of the mash-ups and visualisations
+we see on the web. There is strong interest
+in being able to publish statistical data in a web-friendly format
+to enable it to be linked and combined with related information.
+&lt;/p&gt;
+
+&lt;p&gt;
+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 &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; &lt;a href="http://www.w3.org/TR/REC-rdf-syntax/"&gt;RDF&lt;/a&gt;
+(Resource Description Framework) standard and published following the
+principles of
+&lt;a href="http://linkeddata.org/"&gt;linked data&lt;/a&gt;.
+The vocabulary is based upon the approach used by the SDMX ISO standard
+for statistical data exchange. This &lt;em&gt;cube&lt;/em&gt; 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 [&lt;cite&gt;&lt;a class="bibref" rel="biblioentry" href="#bib-OLAP"&gt;OLAP&lt;/a&gt;&lt;/cite&gt;].
+&lt;/p&gt;
+
+&lt;p&gt;
+The Data Cube vocabulary is focused purely on the
+publication of multi-dimensional data on the web. We envisage a series of modular
+vocabularies being developed which extend this core foundation. In
+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 &amp;quot;micro-data&amp;quot;, as encompassed by &lt;a href="http://www.ddialliance.org/"&gt;DDI&lt;/a&gt;)
+or publication of statistical reference metadata.
+&lt;/p&gt;
+
+&lt;p&gt;The Data Cube in turn builds upon the following existing RDF
+vocabularies:&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;&lt;a href="http://www.w3.org/2004/02/skos/"&gt;SKOS&lt;/a&gt; for concept schemes&lt;/li&gt;
+  &lt;li&gt;&lt;a href="http://sw.joanneum.at/scovo/schema.html"&gt;SCOVO&lt;/a&gt; for
+core statistical structures&lt;/li&gt;
+  &lt;li&gt;&lt;a href="http://rdfs.org/ns/void-guide"&gt;VoiD&lt;/a&gt; for data access&lt;/li&gt;
+  &lt;li&gt;&lt;a href="http://xmlns.com/foaf/0.1/"&gt;FOAF&lt;/a&gt; for organisations&lt;/li&gt;
+  &lt;li&gt;&lt;a href="http://purl.org/dc/terms/"&gt;Dublin Core Terms&lt;/a&gt; for
+metadata&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/div&gt;
+
+
+&lt;div id="intro-rdf" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;1.2 &lt;/span&gt;RDF and Linked Data&lt;/h3&gt;
+
+&lt;p&gt;&lt;em&gt;Linked data&lt;/em&gt; is an approach to publishing data on the web, enabling
+datasets to be linked together through references to common concepts.
+  The approach [&lt;cite&gt;&lt;a class="bibref" rel="biblioentry" href="#bib-LOD"&gt;LOD&lt;/a&gt;&lt;/cite&gt;]
+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 [&lt;cite&gt;&lt;a class="bibref" rel="biblioentry" href="#bib-RDF-PRIMER"&gt;RDF-PRIMER&lt;/a&gt;&lt;/cite&gt;]
+provides a standard for the representation of the
+information that describes those entities and concepts, and is returned
+by dereferencing the URIs. &lt;/p&gt;
+
+&lt;p&gt;There are a number of benefits to being able to publish multi-dimensional data, such as statistics,
+using RDF and the linked data approach:&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;The individual observations, and groups of observations, become
+(web) addressable. This allows publishers and third parties to annotate
+and link to this data; for example a report can reference the specific
+figures it is based on allowing for fine grained provenance trace-back.&lt;/li&gt;
+  &lt;li&gt;Data can be flexibly combined across datasets and between
+statistical and non-statistical sets (for example &lt;em&gt;find all
+Religious schools in census areas with high values for National
+Indicators pertaining to religious tolerance&lt;/em&gt;). The statistical
+data becomes an integral part of the broader web of linked data.&lt;/li&gt;
+  &lt;li&gt;For publishers who currently only offer static files then
+publishing as linked-data offers a flexible, non-proprietary, machine
+readable means of publication that supports an out-of-the-box web API
+for programmatic access.&lt;/li&gt;
+  &lt;li&gt;It enables reuse of standardized tools and components.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/div&gt;
+
+
+&lt;div id="intro-sdmx" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;1.3 &lt;/span&gt;SDMX and related standards&lt;/h3&gt;
+
+&lt;p&gt;The Statistical Data and Metadata Exchange (SDMX) Initiative
+was organised in 2001 by seven international organisations (BIS,
+ECB, Eurostat, IMF, OECD, World Bank and the UN) to
+realise greater efficiencies in statistical practice. These
+organisations all
+collect significant amounts of data, mostly from the national level,
+to support policy. They also disseminate data at the supra-national
+and international levels.&lt;/p&gt;
+
+&lt;p&gt;
+There have been a number of important results from this work: two
+versions of a set of technical specifications - ISO:TS 17369
+(SDMX) - and the release of several recommendations for
+structuring and harmonising cross-domain statistics, the SDMX
+Content-Oriented Guidelines. All of the products are available at
+&lt;a href="http://www.sdmx.org"&gt;www.sdmx.org&lt;/a&gt;. The standards are now
+being widely adopted
+around the world for the collection, exchange, processing, and
+dissemination of aggregate statistics by official statistical
+organisations. The UN Statistical Commission recommended
+SDMX as the preferred standard for statistics in 2007.
+&lt;/p&gt;
+
+&lt;p&gt;The SDMX specification defines a core &lt;em&gt;information model&lt;/em&gt;
+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.
+&lt;/p&gt;
+
+&lt;p&gt;A key component of the SDMX standards package are
+the &lt;strong&gt;Content-Oriented Guidelines&lt;/strong&gt; (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
+terms are available separately for use along with the Data Cube
+vocabulary.
+&lt;/p&gt;
+&lt;/div&gt;
+
+
+&lt;div id="intro-scovo" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;1.4 &lt;/span&gt;Relationship to SCOVO&lt;/h3&gt;
+
+&lt;p&gt;The Statistical Core Vocabulary (SCOVO) [&lt;cite&gt;&lt;a class="bibref" rel="biblioentry" href="#bib-SCOVO"&gt;SCOVO&lt;/a&gt;&lt;/cite&gt;] 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
+model is extensible both on the schema and the instance level for more
+specialized use cases.&lt;/p&gt;
+&lt;p&gt;While SCOVO addresses the basic use case of expressing statistical
+data in RDF, its minimalist design is limiting, and it does not
+support important scenarios that occur in statistical publishing, such
+as:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;definition and publication of the structure of a dataset
+independent from concrete data,&lt;/li&gt;
+  &lt;li&gt;data flows which group together datasets that share the same
+structure, for example from different national data providers,&lt;/li&gt;
+  &lt;li&gt;definition of &amp;quot;slices&amp;quot; through a dataset, such as an individual
+time series or cross-section, for individual annotation,&lt;/li&gt;
+  &lt;li&gt;distinctions between dimensions, attributes and measures.&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;
+The design of the Data Cube vocabulary is informed by SCOVO,
+and every SCOVO dataset can be re-expressed within the vocabulary.
+&lt;/p&gt;
+&lt;/div&gt;
+
+
+&lt;div id="intro-audience" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;1.5 &lt;/span&gt;Audience and scope&lt;/h3&gt;
+
+&lt;p&gt;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.&lt;/p&gt;
+&lt;/div&gt;
+
+
+&lt;div id="intro-conventions" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;1.6 &lt;/span&gt;Document conventions&lt;/h3&gt;
+
+&lt;p&gt;
+The names of RDF entities -- classes, predicates, individuals -- are
+URIs. These are usually expressed using a compact notation where the
+name is written &lt;code&gt;prefix:localname&lt;/code&gt;, and where the &lt;code&gt;prefix&lt;/code&gt;
+identifies a &lt;i&gt;namespace URI&lt;/i&gt;. The namesapce identified by the prefix is 
+ prepended to the &lt;code&gt;localname&lt;/code&gt; to obtain the full URI.
+&lt;/p&gt;
+
+&lt;p&gt;
+In this document we shall use the conventional prefix names for the
+&lt;a href="#namespaces-used-appendix"&gt;well-known namespaces&lt;/a&gt;:
+&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;&lt;code&gt;rdf, rdfs&lt;/code&gt; -- the core RDF namespaces&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;dc&lt;/code&gt; -- Dublin Core&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;skos&lt;/code&gt; -- Simple Knowledge Organization System&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;foaf&lt;/code&gt; -- Friend Of A Friend&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;void&lt;/code&gt; -- Vocabulary of Interlinked Datasets&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;scovo&lt;/code&gt; -- Statistical Core Vocabulary&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;We also introduce the prefix &lt;code&gt;qb&lt;/code&gt; for the Data Cube
+  namespace &lt;a href="http://purl.org/linked-data/cube#"&gt;http://purl.org/linked-data/cube#&lt;/a&gt;.&lt;/p&gt;
+
+&lt;p&gt;All RDF examples are written in Turtle syntax [&lt;cite&gt;&lt;a class="bibref" rel="biblioentry" href="#bib-TURTLE-TR"&gt;TURTLE-TR&lt;/a&gt;&lt;/cite&gt;].&lt;/p&gt;
+&lt;/div&gt;
+
+&lt;/div&gt;
+
+
+&lt;div id="data-cubes" class="section"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;2. &lt;/span&gt;Data cubes&lt;/h2&gt;
+
+
+&lt;div id="cubes-model" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;2.1 &lt;/span&gt;The cube model - dimensions, attributes, measures&lt;/h3&gt;
+
+&lt;p&gt;A statistical data set comprises a collection of observations made
+at some points across some logical space. The collection can be characterized by
+a set of dimensions that define what the observation applies to (e.g. time,
+area, gender) along with metadata describing what has been
+measured (e.g. economic activity, population), how it was measured and how the
+observations are expressed (e.g. units, multipliers, status). We can
+think of the statistical data set as a multi-dimensional
+space, or hyper-cube, indexed by those dimensions. This space is
+commonly referred to
+as a &lt;em&gt;cube&lt;/em&gt; for short; though the name shouldn't be taken
+literally, it is not meant to imply that
+there are exactly three dimensions (there can be more or fewer) nor
+that
+all the dimensions are somehow similar in size.&lt;/p&gt;
+
+&lt;p&gt;A cube is organized according to a set of &lt;em&gt;dimensions&lt;/em&gt;,
+&lt;em&gt;attributes&lt;/em&gt; and &lt;em&gt;measures&lt;/em&gt;. We collectively call these &lt;em&gt;components&lt;/em&gt;.&lt;/p&gt;
+
+&lt;p&gt;The &lt;em&gt;dimension&lt;/em&gt; components serve to identify
+the observations. A set of values for all the dimension
+components
+is sufficient to identify a single observation. Examples of dimensions
+include the
+time to which the observation applies, or a geographic region which the observation covers.&lt;/p&gt;
+
+&lt;p&gt;The &lt;em&gt;measure&lt;/em&gt; components represent the phenomenon being
+observed.&lt;/p&gt;
+
+&lt;p&gt;The &lt;em&gt;attribute&lt;/em&gt; 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
+of the observation (e.g. &lt;em&gt;estimated&lt;/em&gt;, &lt;em&gt;provisional&lt;/em&gt;).&lt;/p&gt;
+&lt;/div&gt;
+
+
+&lt;div id="cubes-slices" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;2.2 &lt;/span&gt;Slices&lt;/h3&gt;
+
+&lt;p&gt;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
+dimensions and be able to refer to all observations with those
+dimension values as a single entity. We call such a selection a &lt;em&gt;slice&lt;/em&gt;
+through the cube. For example, given a data set on regional performance
+indicators then we might group all the observations about a given indicator
+and a given region into a slice, each slice would then represent a time series of observed values.&lt;/p&gt;
+
+&lt;p&gt;A data publisher may identify slices through the data for various
+purposes. They can be a useful grouping to which metadata might be attached, for example to note a
+change in measurement process which
+affects a particular time or region. Slices also enable the publisher to
+identify and label particular subsets of the data which should be presented to the
+user - they can enable the consuming application to more easily
+  construct the appropriate graph or chart for presentation.&lt;/p&gt;
+
+&lt;p&gt;In statistical applications it is common to work with
+slices in which a single dimension is left unspecified. 
+In particular,
+to refer to such slices in which the single free dimension is time as &lt;em&gt;Time
+Series&lt;/em&gt; and to refer slices along non-time dimensions as &lt;em&gt;Sections&lt;/em&gt;.
+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.&lt;/p&gt;
+&lt;/div&gt;
+
+&lt;/div&gt;
+
+&lt;div id="example" class="section"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;3. &lt;/span&gt;An example&lt;/h2&gt;
+
+&lt;p&gt;In order to illustrate the use of the data cube vocabulary we will
+use a small demonstration
+data set extracted from
+&lt;a href="http://statswales.wales.gov.uk/index.htm"&gt;StatsWales&lt;/a&gt; report
+number 003311 which describes life expectancy broken down by region
+(unitary authority), age and time. The extract we will use is:&lt;br /&gt;
+&lt;/p&gt;
+
+&lt;table cellspacing="0" cellpadding="2" border="1" style="text-align: left; width: 80%;"&gt;
+  &lt;tbody&gt;
+    &lt;tr&gt;
+      &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top; text-align: center; font-weight: bold;" rowspan="1" colspan="2"&gt;2004-2006&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top; text-align: center; font-weight: bold;" rowspan="1" colspan="2"&gt;2005-2007&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top; text-align: center; font-weight: bold;" rowspan="1" colspan="2"&gt;2006-2008&lt;br /&gt;
+      &lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top; text-align: center; font-weight: bold;"&gt;Male&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top; text-align: center; font-weight: bold;"&gt;Female&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top; text-align: center; font-weight: bold;"&gt;Male&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top; text-align: center; font-weight: bold;"&gt;Female&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top; text-align: center; font-weight: bold;"&gt;Male&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top; text-align: center; font-weight: bold;"&gt;Female&lt;br /&gt;
+      &lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td style="vertical-align: top; text-align: right; font-weight: bold;"&gt;Newport&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;76.7&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;80.7&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;77.1&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;80.9&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;77.0&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;81.5&lt;br /&gt;
+      &lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td style="vertical-align: top; text-align: right; font-weight: bold;"&gt;Cardiff&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;78.7&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;83.3&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;78.6&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;83.7&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;78.7&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;83.4&lt;br /&gt;
+      &lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td style="vertical-align: top; text-align: right; font-weight: bold;"&gt;Monmouthshire&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;76.6&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;81.3&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;76.5&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;81.5&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;76.6&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;81.7&lt;br /&gt;
+      &lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td style="vertical-align: top; text-align: right; font-weight: bold;"&gt;Merthyr
+Tydfil&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;75.5&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;79.1&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;75.5&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;79.4&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;74.9&lt;br /&gt;
+      &lt;/td&gt;
+      &lt;td style="vertical-align: top;"&gt;79.6&lt;br /&gt;
+      &lt;/td&gt;
+    &lt;/tr&gt;
+  &lt;/tbody&gt;
+&lt;/table&gt;
+
+&lt;p&gt;We can see that there are three dimensions - time period (rolling averages over three year timespans),
+  region and sex. Each observation represents the life expectancy for that population (the measure) and
+  we will need an attribute to define the units (years) of the measured values.&lt;/p&gt;
+
+&lt;p&gt;An example of slicing the data would be to define slices in which the time and sex are
+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.&lt;/p&gt;
+
+&lt;/div&gt;
+
+
+&lt;div id="outline" class="section"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;4. &lt;/span&gt;Outline of the vocabulary&lt;/h2&gt;
+
+&lt;img src="images/qb-fig1.png" /&gt;
+
+&lt;div id="index" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;4.1 &lt;/span&gt;Vocabulary index&lt;/h3&gt;
+
+  &lt;p&gt;&lt;b&gt;Classes:&lt;/b&gt;
+    &lt;a href="#ref_qb_Attachable"&gt;qb:Attachable&lt;/a&gt;
+    &lt;a href="#ref_qb_AttributeProperty"&gt;qb:AttributeProperty&lt;/a&gt;
+    &lt;a href="#ref_qb_CodedProperty"&gt;qb:CodedProperty&lt;/a&gt;
+    &lt;a href="#ref_qb_ComponentProperty"&gt;qb:ComponentProperty&lt;/a&gt;
+    &lt;a href="#ref_qb_ComponentSet"&gt;qb:ComponentSet&lt;/a&gt;
+    &lt;a href="#ref_qb_ComponentSpecification"&gt;qb:ComponentSpecification&lt;/a&gt;
+    &lt;a href="#ref_qb_DataSet"&gt;qb:DataSet&lt;/a&gt;
+    &lt;a href="#ref_qb_DataStructureDefinition"&gt;qb:DataStructureDefinition&lt;/a&gt;
+    &lt;a href="#ref_qb_DimensionProperty"&gt;qb:DimensionProperty&lt;/a&gt;
+    &lt;a href="#ref_qb_MeasureProperty"&gt;qb:MeasureProperty&lt;/a&gt;
+    &lt;a href="#ref_qb_Observation"&gt;qb:Observation&lt;/a&gt;
+    &lt;a href="#ref_qb_Slice"&gt;qb:Slice&lt;/a&gt;
+    &lt;a href="#ref_qb_SliceKey"&gt;qb:SliceKey&lt;/a&gt;
+  &lt;/p&gt;
+  &lt;p&gt;&lt;b&gt;Properties:&lt;/b&gt;
+    &lt;a href="#ref_qb_attribute"&gt;qb:attribute&lt;/a&gt;
+    &lt;a href="#ref_qb_codeList"&gt;qb:codeList&lt;/a&gt;
+    &lt;a href="#ref_qb_component"&gt;qb:component&lt;/a&gt;
+    &lt;a href="#ref_qb_componentAttachment"&gt;qb:componentAttachment&lt;/a&gt;
+    &lt;a href="#ref_qb_componentProperty"&gt;qb:componentProperty&lt;/a&gt;
+    &lt;a href="#ref_qb_componentRequired"&gt;qb:componentRequired&lt;/a&gt;
+    &lt;a href="#ref_qb_concept"&gt;qb:concept&lt;/a&gt;
+    &lt;a href="#ref_qb_dataSet"&gt;qb:dataSet&lt;/a&gt;
+    &lt;a href="#ref_qb_dimension"&gt;qb:dimension&lt;/a&gt;
+    &lt;a href="#ref_qb_measure"&gt;qb:measure&lt;/a&gt;
+    &lt;a href="#ref_qb_measureDimension"&gt;qb:measureDimension&lt;/a&gt;
+    &lt;a href="#ref_qb_measureType"&gt;qb:measureType&lt;/a&gt;
+    &lt;a href="#ref_qb_observation"&gt;qb:observation&lt;/a&gt;
+    &lt;a href="#ref_qb_order"&gt;qb:order&lt;/a&gt;
+    &lt;a href="#ref_qb_slice"&gt;qb:slice&lt;/a&gt;
+    &lt;a href="#ref_qb_sliceKey"&gt;qb:sliceKey&lt;/a&gt;
+    &lt;a href="#ref_qb_sliceStructure"&gt;qb:sliceStructure&lt;/a&gt;
+    &lt;a href="#ref_qb_structure"&gt;qb:structure&lt;/a&gt;
+    &lt;a href="#ref_qb_subSlice"&gt;qb:subSlice&lt;/a&gt;
+  &lt;/p&gt;
+&lt;/div&gt;
+
+&lt;/div&gt;
+
+
+&lt;div id="dsd" class="section"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;5. &lt;/span&gt;Creating data structure definitions&lt;/h2&gt;
+
+&lt;p&gt;A &lt;code&gt;qb:DataStructureDefinition&lt;/code&gt; 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
+  data sets much of this information is implicit within the RDF component properties
+  found on the observations. However, the explicit declaration of the structure has
+  several benefits:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;it enables verification that the data set matches the expected structure,
+   in particular helps with detection of incoherent sets obtained by 
+   combining differently structured source data;&lt;/li&gt;
+  &lt;li&gt;it allows a consumer to easily determine what dimensions are available for query
+    and their presentational order, which in turn simplifies UI construction;&lt;/li&gt;
+  &lt;li&gt;it supports transmission of the structure information in associated SDMX data flows.&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;It is common, when publishing statistical data, to have a regular series of publications which
+all follow the same structure. The notion of a Data Structure Definition (DSD) allows us to define
+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.&lt;/p&gt;
+
+&lt;div id="dsd-dimensions" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;5.1 &lt;/span&gt;Dimensions, attributes and measures&lt;/h3&gt;
+
+&lt;p&gt;The Data Cube vocabulary represents the dimensions, attributes and measures
+  as RDF properties. Each is an instance of the abstract &lt;code&gt;qb:ComponentProperty&lt;/code&gt; 
+  class,  which in turn has sub-classes &lt;code&gt;qb:DimensionProperty&lt;/code&gt;,
+  &lt;code&gt;qb:AttributeProperty&lt;/code&gt; and &lt;code&gt;qb:MeasureProperty&lt;/code&gt;.&lt;/p&gt;
+
+&lt;p&gt;A component property encapsulates several pieces of information:&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;the concept being represented (e.g. time or geographic area),&lt;/li&gt;
+  &lt;li&gt;the nature of the component (dimension, attribute or measure) as represented by the type of the component property,&lt;/li&gt;
+  &lt;li&gt;the type or code list used to represent the value.&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;The same &lt;em&gt;concept&lt;/em&gt; can be manifested in different components. For example, the concept
+  of &lt;em&gt;currency&lt;/em&gt; may be used as a dimension (in a data set dealing with exchange rates) or as
+  an attribute (when describing the currency in which an observed trade took place). The concept of time
+  is typically used only as a dimension but may be encoded as a data value (e.g. an &lt;code&gt;xsd:dateTime&lt;/code&gt;)
+  or as a symbolic value (e.g. a URI drawn from the reference time URI set developed by data.gov.uk).
+  In statistical agencies it is common to have a standard thesaurus of statistical concepts which 
+  underpin the components used in multiple different data sets.&lt;/p&gt;
+
+&lt;p&gt;To support this reuse of general statistical concepts the data cube vocabulary provides the &lt;code&gt;qb:concept&lt;/code&gt; property which
+  links a &lt;code&gt;qb:ComponentProperty&lt;/code&gt; to the concept it represents. We use the SKOS
+  vocabulary [&lt;cite&gt;&lt;a class="bibref" rel="biblioentry" href="#bib-SKOS-PRIMER"&gt;SKOS-PRIMER&lt;/a&gt;&lt;/cite&gt;] 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 &lt;code&gt;skos:Concept&lt;/code&gt; along with the specific &lt;code&gt;qb:ComponentProperty&lt;/code&gt;. However, if
+  such reuse is not expected then it is not required to do so - the &lt;code&gt;qb:concept&lt;/code&gt;
+  link is optional and a simple instance of the appropriate subclass of &lt;code&gt;qb:ComponentProperty&lt;/code&gt; is
+  sufficient.&lt;/p&gt;
+
+&lt;p&gt;The representation of the possible values of the component is described using the &lt;code&gt;rdfs:range&lt;/code&gt;
+   property of the component in the usual RDF manner. Thus, for example, values of a time dimension might
+  be represented using literals of type &lt;code&gt;xsd:dateTime&lt;/code&gt; or as URIs drawn from a time reference service.&lt;/p&gt;
+
+&lt;p&gt;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 &lt;code&gt;qb:codeList&lt;/code&gt; denoting a &lt;code&gt;skos:ConceptScheme&lt;/code&gt;.
+  In such a case the &lt;code&gt;rdfs:range&lt;/code&gt; of the component might be left as simply &lt;code&gt;skos:Concept&lt;/code&gt; but 
+  a useful design pattern is to also define an &lt;code&gt;rdfs:Class&lt;/code&gt;
+  whose members are all the &lt;code&gt;skos:Concept&lt;/code&gt;s within a particular scheme. In that way 
+  the &lt;code&gt;rdfs:range&lt;/code&gt; can be made more specific which enables generic RDF tools to perform
+  appropriate range checking.&lt;/p&gt;
+
+&lt;p&gt;Note that in the SDMX extension vocabulary there is 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 &lt;code&gt;skos:Concept&lt;/code&gt;
+  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.&lt;/p&gt;
+
+&lt;p&gt;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. 
+&lt;/p&gt;
+&lt;/div&gt;
+
+&lt;div id="dsd-cog" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;5.2 &lt;/span&gt;Content oriented guidelines&lt;/h3&gt;
+
+&lt;p&gt;The SDMX standard includes a set of &lt;em&gt;content oriented guidelines&lt;/em&gt; (COG) [&lt;cite&gt;&lt;a class="bibref" rel="biblioentry" href="#bib-COG"&gt;COG&lt;/a&gt;&lt;/cite&gt;]
+ 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:&lt;/p&gt;
+  &lt;ul&gt;
+    &lt;li&gt;&lt;code&gt;sdmx-concept&lt;/code&gt;: SKOS Concepts for each COG defined concept;&lt;/li&gt;
+    &lt;li&gt;&lt;code&gt;sdmx-code&lt;/code&gt;: SKOS Concepts and ConceptSchemes for each COG defined code list;&lt;/li&gt;
+    &lt;li&gt;&lt;code&gt;sdmx-dimension&lt;/code&gt;: component properties corresponding to each COG concept that can be used as a dimension;&lt;/li&gt;
+    &lt;li&gt;&lt;code&gt;sdmx-attribute&lt;/code&gt;: component properties corresponding to each COG concept that can be used as a attribute;&lt;/li&gt;
+    &lt;li&gt;&lt;code&gt;sdmx-measure&lt;/code&gt;: component properties corresponding to each COG concept that can be used as a measure.&lt;/li&gt;
+  &lt;/ul&gt;
+
+&lt;p&gt;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.&lt;/p&gt;
+&lt;/div&gt;
+
+
+&lt;div id="dsd-example" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;5.3 &lt;/span&gt;Example&lt;/h3&gt;
+
+&lt;p&gt;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
+   (primary) measure which corresponds to the topic of the data set (life expectancy) and
+  encodes a value in years. Hence, we need the following components.&lt;/p&gt;
+
+&lt;p&gt;&lt;b&gt;Time.&lt;/b&gt; There is a suitable predefined concept in the SMDX-COG for this, REF_PERIOD, so 
+  we could reuse the corresponding component property &lt;code&gt;sdmx-dimension:refPeriod&lt;/code&gt;. However,
+  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.&lt;/p&gt;
+
+&lt;pre&gt;  eg:refPeriod  a rdf:Property, qb:DimensionProperty;
+      rdfs:label &amp;quot;reference period&amp;quot;@en;
+      rdfs:subPropertyOf sdmx-dimension:refPeriod;
+      rdfs:range interval:Interval;
+      qb:concept sdmx-concept:refPeriod . &lt;/pre&gt;
+
+&lt;p&gt;&lt;b&gt;Region.&lt;/b&gt; 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 [&lt;cite&gt;&lt;a class="bibref" rel="biblioentry" href="#bib-OS-GEO"&gt;OS-GEO&lt;/a&gt;&lt;/cite&gt;].&lt;/p&gt;
+
+&lt;pre&gt;  eg:refArea  a rdf:Property, qb:DimensionProperty;
+      rdfs:label &amp;quot;reference area&amp;quot;@en;
+      rdfs:subPropertyOf sdmx-dimension:refArea;
+      rdfs:range admingeo:UnitaryAuthority;
+      qb:concept sdmx-concept:refArea . &lt;/pre&gt;
+
+&lt;p&gt;&lt;b&gt;Sex.&lt;/b&gt; In this case we can use the corresponding COG component &lt;code&gt;sdmx-dimension:sex&lt;/code&gt; 
+    directly, since the default code list for it includes the terms we need.&lt;/p&gt;
+
+&lt;p&gt;&lt;b&gt;Measure.&lt;/b&gt; This property will give the value of each observation.
+  We could use the default &lt;code&gt;smdx-measure:obsValue&lt;/code&gt; for this (defining
+  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.&lt;/p&gt;
+  
+&lt;pre&gt;  eg:lifeExpectancy  a rdf:Property, qb:MeasureProperty;
+      rdfs:label &amp;quot;life expectancy&amp;quot;@en;
+      rdfs:subPropertyOf sdmx-measure:obsValue;
+      rdfs:range xsd:decimal . &lt;/pre&gt;
+  
+&lt;p&gt;&lt;b&gt;Unit measure attribute.&lt;/b&gt; 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).
+  This is defined using attributes which qualify the interpretation of the observed value.
+  Specifically in this example we can use the predefined &lt;code&gt;sdmx-attribute:unitMeasure&lt;/code&gt;
+  which in turn corresponds to the COG concept of &lt;code&gt;UNIT_MEASURE&lt;/code&gt;. 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 &lt;code&gt;http://dbpedia.org/resource/Year&lt;/code&gt;
+  which corresponds to the topic of the Wikipedia page on &amp;quot;Years&amp;quot;.&lt;/p&gt;
+
+&lt;p&gt;This covers the minimal components needed to define the structure of this data set.&lt;/p&gt;
+&lt;/div&gt;
+
+
+&lt;div id="dsd-dsd" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;5.4 &lt;/span&gt;ComponentSpecifications and DataStructureDefinitions&lt;/h3&gt;
+
+&lt;p&gt;To combine the components into a specification for the structure of this
+  dataset we need to declare a &lt;code&gt;qb:DataStuctureDefinition&lt;/code&gt;
+  resource which in turn will reference a set of &lt;code&gt;qb:ComponentSpecification&lt;/code&gt; resources.
+  The &lt;code&gt;qb:DataStuctureDefinition&lt;/code&gt; will be reusable across other data sets with the same structure.&lt;/p&gt;
+
+&lt;p&gt;In the simplest case the &lt;code&gt;qb:ComponentSpecification&lt;/code&gt; simply references the
+  corresponding &lt;code&gt;qb:ComponentProperty&lt;/code&gt; (ususally using one of the sub properties
+  &lt;code&gt;qb:dimension&lt;/code&gt;, &lt;code&gt;qb:measure&lt;/code&gt; or &lt;code&gt;qb:attribute&lt;/code&gt;). 
+  However, it is also possible to qualify the
+  component specification in several ways.&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;An Attribute may be optional in which case the specification should set 
+    &lt;code&gt;qb:componentRequired &amp;quot;false&amp;quot;^^xsd:boolean.&lt;/code&gt;&lt;/li&gt;
+  &lt;li&gt;The components may be ordered by giving an integer value for &lt;code&gt;qb:order&lt;/code&gt;. 
+    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.&lt;/li&gt;
+  &lt;li&gt;By default the values of all of the components will be attached to each individual observation,
+    a so called &lt;em&gt;flattened&lt;/em&gt; 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 &lt;code&gt;qb:componentAttachment&lt;/code&gt; property of the specification should
+    reference the class corresponding to the attachment level (e.g. &lt;code&gt;qb:DataSet&lt;/code&gt; for attributes
+    that will be attached to the overall data set).&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;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
+   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.&lt;/p&gt;
+
+&lt;p&gt;So the structure of our example data set (and other similar datasets) can be declared by:&lt;/p&gt;
+
+&lt;pre&gt;  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;] .&lt;/pre&gt;
+
+&lt;p&gt;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
+ them using blank nodes.
+&lt;/p&gt;
+&lt;/div&gt;
+      
+
+&lt;div id="dsd-mm" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;5.5 &lt;/span&gt;Handling multiple measures&lt;/h3&gt;
+
+&lt;p&gt;Our example data set is relatively simple in having a single observable (in this case &amp;quot;life expectancy&amp;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
+  on trades might provide quantity, value, weight for each trade).&lt;/p&gt;
+  
+&lt;p&gt;There are two approaches to representing multiple measures. In the SDMX information model, each 
+  observation can record a single observed value. In a data set with multiple observations then we 
+  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 &lt;em&gt;observation&lt;/em&gt; usually denotes an observation event which can include multiple
+  observed values.  Similarly in Business Intelligence applications and OLAP, a single &amp;quot;cell&amp;quot; in the data cube will 
+  typically contain values for multiple measures.
+&lt;/p&gt;
+  
+&lt;p&gt;The data cube vocabulary permits either representation approach to be used though they cannot be mixed
+  within the same data set.&lt;/p&gt;
+  
+
+&lt;div id="dsd-mm-obs" class="section"&gt;
+&lt;h4&gt;&lt;span class="secno"&gt;5.5.1 &lt;/span&gt;Multi-measure observations&lt;/h4&gt;
+  
+&lt;p&gt; 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 &lt;code&gt;qb:MeasureProperty&lt;/code&gt; components
+  in the data structure definition and attach an instance of each property to the observations within 
+  the data set.&lt;/p&gt;
+
+&lt;p&gt;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:&lt;/p&gt;
+&lt;pre&gt;eg:dsd1 a qb:DataStructureDefinition;
+    rdfs:comment &amp;quot;shipments by time (multiple measures approach)&amp;quot;@en;
+    qb:component 
+        [ qb:dimension  sdmx-dimension:refTime; ],
+        [ qb:measure    eg-measure:quantity; ],
+        [ qb:measure    eg-measure:weight; ] . &lt;/pre&gt;
+        
+&lt;p&gt;This would correspond to individual observations such as:&lt;/p&gt;
+&lt;pre&gt;eg:dataset1 a qb:DataSet;
+    qb:structure eg:dsd1 .
+    
+eg:obs1a  a qb:Observation;
+    qb:dataSet eg:dataset1;
+    sdmx-dimension:refTime &amp;quot;30-07-2010&amp;quot;^^xsd:date;
+    eg-measure:weight 1.3 ;
+    eg-measure:quantity 42 ;
+    . &lt;/pre&gt;
+    
+&lt;p&gt;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 &lt;code&gt;qb:MeasureProperty&lt;/code&gt; itself (e.g. to indicate
+  the &lt;em&gt;unit of measure&lt;/em&gt; 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 &lt;em&gt;measure dimension&lt;/em&gt; approach.&lt;/p&gt; 
+&lt;/div&gt;
+
+
+&lt;div id="dsd-mm-dim" class="section"&gt;
+&lt;h4&gt;&lt;span class="secno"&gt;5.5.2 &lt;/span&gt;Measure dimension&lt;/h4&gt;
+  
+&lt;p&gt;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 &lt;em&gt;measure dimension&lt;/em&gt;.
+  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 &lt;code&gt;qb:DataStructureDefinition&lt;/code&gt; which is restricted
+  to using the &lt;em&gt;measure dimension&lt;/em&gt; representation.&lt;/p&gt;
+  
+&lt;p&gt;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 -- &lt;code&gt;qb:measureType&lt;/code&gt;.
+  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 &lt;code&gt;qb:measureType&lt;/code&gt; 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.&lt;/p&gt;
+
+&lt;p&gt;The data structure definition for our above example, using this representation approach, would then be:&lt;/p&gt;
+&lt;pre&gt;eg:dsd2 a qb:DataStructureDefinition;
+    rdfs:comment &amp;quot;shipments by time (measure dimension approach)&amp;quot;@en;
+    qb:component 
+        [ qb:dimension  sdmx-dimension:refTime; ],
+        [ qb:measure    eg-measure:quantity; ],
+        [ qb:measure    eg-measure:weight; ],
+        [ qb:dimension  qb:measureType; ] . &lt;/pre&gt;
+        
+&lt;p&gt;This would correspond to individual observations such as:&lt;/p&gt;
+&lt;pre&gt;eg:dataset2 a qb:DataSet;
+    qb:structure eg:dsd2 .
+    
+eg:obs2a  a qb:Observation;
+    qb:dataSet eg:dataset2;
+    sdmx-dimension:refTime &amp;quot;30-07-2010&amp;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 &amp;quot;30-07-2010&amp;quot;^^xsd:date;
+    qb:measureType eg-measure:quantity ;
+    eg-measure:quantity 42 . &lt;/pre&gt;
+    
+
+&lt;p&gt;Note the duplication of having the measure property show up both as the property that 
+  carries the measured value, and as the value of the measure dimension. We accept 
+  this duplication as necessary to ensure the uniform cube/dimension mechanism and 
+  a uniform way of declaring and using measure properties on all kinds of datasets.&lt;/p&gt;&lt;p&gt;
+  
+&lt;/p&gt;&lt;p&gt;Those familiar with SDMX should also note that in the RDF representation there is 
+  no need for a separate &amp;quot;primary measure&amp;quot; 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 &lt;code&gt;sdmx:DataStructureDefinition&lt;/code&gt;.&lt;/p&gt;
+&lt;/div&gt;
+
+&lt;/div&gt;
+
+&lt;/div&gt;
+
+
+&lt;div id="datasets" class="section"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;6. &lt;/span&gt;Expressing data sets&lt;/h2&gt;
+
+&lt;p&gt;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:&lt;/p&gt;
+
+&lt;dl&gt;
+  &lt;dt&gt;Observations&lt;/dt&gt;
+  &lt;dd&gt;This is the actual data, the measured numbers. In a statistical table, the observations 
+       would be the numbers in the table cells.&lt;/dd&gt;
+
+  &lt;dt&gt;Organizational structure&lt;/dt&gt;
+  &lt;dd&gt;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 &lt;em&gt;slices&lt;/em&gt; 
+    as described earlier in &lt;a href="#cubes-slices"&gt;section 2.2&lt;/a&gt;.
+
+  &lt;/dd&gt;&lt;dt&gt;Internal metadata&lt;/dt&gt;
+  &lt;dd&gt;Having located an observation, we need certain metadata in order to be able to interpret it. 
+    What is the unit of measurement? Is it a normal value or a series break? 
+    Is the value measured or estimated? These metadata are provided as &lt;em&gt;attributes&lt;/em&gt; and can 
+    be attached to individual observations, or to higher levels as defined by the ComponentSpecification
+    described earlier.&lt;/dd&gt;
+
+  &lt;dt&gt;External metadata&lt;/dt&gt;
+  &lt;dd&gt;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 &lt;a href="#metadata"&gt;section 9&lt;/a&gt;.&lt;/dd&gt;
+&lt;/dl&gt;
+
+
+&lt;div id="dataset-basic" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;6.1 &lt;/span&gt;Data sets and observations&lt;/h3&gt;
+
+&lt;p&gt;A resource representing the entire data set is created and typed as &lt;code&gt;qb:DataSet&lt;/code&gt; and
+  linked to the corresponding data structure definition via the &lt;tt&gt;qb:structure&lt;/tt&gt; property.&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;Pitfall&lt;/strong&gt;: Note the capitalization of &lt;tt&gt;qb:&lt;strong&gt;D&lt;/strong&gt;ata&lt;strong&gt;S&lt;/strong&gt;et&lt;/tt&gt;, 
+which differs from the capitalization in other vocabularies, such as
+&lt;a href="http://semanticweb.org/wiki/VoiD"&gt;void:Dataset&lt;/a&gt; and &lt;a href="http://www.w3.org/egov/wiki/Data_Catalog_Vocabulary"&gt;dcat:Dataset&lt;/a&gt;. This unusual capitalization is chosen for compatibility
+with the SDMX standard. The same applies to the related property &lt;tt&gt;qb:data&lt;strong&gt;S&lt;/strong&gt;et&lt;/tt&gt;.&lt;/p&gt;
+
+&lt;p&gt;Each observation is represented as an instance of type &lt;code&gt;qb:Observation&lt;/code&gt;.
+  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 &lt;code&gt;qb:dataSet&lt;/code&gt; property. For example:&lt;/p&gt;
+
+&lt;p&gt;Thus for our running example we might expect to have:&lt;/p&gt;
+
+&lt;pre&gt;  eg:dataset-le1 a qb:DataSet;
+      rdfs:label &amp;quot;Life expectancy&amp;quot;@en;
+      rdfs:comment &amp;quot;Life expectancy within Welsh Unitary authorities - extracted from Stats Wales&amp;quot;@en;
+      qb:structure eg:dsd-le ;
+      .  
+
+  eg:o1 a qb:Observation;
+      qb:dataSet  eg:dataset-le1 ;
+      eg:refArea                 admingeo:newport_00pr ;                  
+      eg:refPeriod               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;gt; ;
+      sdmx-dimension:sex         sdmx-code:sex-M ;
+      sdmx-attribute:unitMeasure &amp;lt;http://dbpedia.org/resource/Year&amp;gt; ;
+      eg:lifeExpectancy          76.7 ;
+      .
+
+  eg:o2 a qb:Observation;
+      qb:dataSet  eg:dataset-le1 ;
+      eg:refArea                 admingeo:cardiff_00pt ;                  
+      eg:refPeriod               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;gt; ;
+      sdmx-dimension:sex         sdmx-code:sex-M ;
+      sdmx-attribute:unitMeasure &amp;lt;http://dbpedia.org/resource/Year&amp;gt; ;
+      eg:lifeExpectancy          78.7 ;
+      .
+
+  eg:o3 a qb:Observation;
+      qb:dataSet  eg:dataset-le1 ;
+      eg:refArea                 admingeo:monmouthshire_00pp ;                  
+      eg:refPeriod               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;gt; ;
+      sdmx-dimension:sex         sdmx-code:sex-M ;
+      sdmx-attribute:unitMeasure &amp;lt;http://dbpedia.org/resource/Year&amp;gt; ;
+      eg:lifeExpectancy          76.6 ;
+      .
+
+  ...
+&lt;/pre&gt;
+
+&lt;p&gt;This &lt;em&gt;flattened&lt;/em&gt; 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:&lt;/p&gt;
+
+&lt;pre&gt;  eg:dataset-le1 a qb:DataSet;
+      rdfs:label &amp;quot;Life expectancy&amp;quot;@en;
+      rdfs:comment &amp;quot;Life expectancy within Welsh Unitary authorities - extracted from Stats Wales&amp;quot;@en;
+      qb:structure eg:dsd-le ;  
+      sdmx-attribute:unitMeasure &amp;lt;http://dbpedia.org/resource/Year&amp;gt; ;
+      .
+      
+  eg:o1 a qb:Observation;
+      qb:dataSet  eg:dataset-le1 ;
+      eg:refArea                 admingeo:newport_00pr ;                  
+      eg:refPeriod               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;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               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;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               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;gt; ;
+      sdmx-dimension:sex         sdmx-code:sex-M ;
+      eg:lifeExpectancy          76.6 ;
+      .
+
+  ...
+&lt;/pre&gt;
+
+&lt;p&gt;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.&lt;/p&gt;
+&lt;/div&gt;
+
+&lt;/div&gt;
+
+
+&lt;div id="slices" class="section"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;7. &lt;/span&gt;Slices&lt;/h2&gt;
+
+&lt;p&gt;Slices allow us to group subsets of observations together. This not intended
+  to represent arbitrary selections from the observations but uniform slices
+  through the cube in which one or more of the dimension values are fixed.&lt;/p&gt;
+  
+&lt;p&gt;Slices may be used for a number of reasons:&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;to guide consuming applications in how to present the data (e.g. to organize
+      data as a set of time series);&lt;/li&gt;
+  &lt;li&gt;to provide an identity (URI) for the slice to enable to be annotated or externally referenced;&lt;/li&gt;
+  &lt;li&gt;to reduce the verbosity of the data set by only stating each fixed dimensional value once.&lt;/li&gt;
+&lt;/ul&gt;  
+
+&lt;p&gt;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. &amp;quot;male life expectancy observations for 2004-6&amp;quot; 
+ and guide applications to present a comparative chart across regions. &lt;/p&gt;
+
+&lt;p&gt;We first define the structure of the slices we want by associating a &amp;quot;slice key&amp;quot; which the
+   data structure definition. This is done by creating a &lt;code&gt;qb:SliceKey&lt;/code&gt; which
+   lists the component properties (which must be dimensions) which will be fixed in the
+   slice. The key is attached to the DSD using &lt;code&gt;qb:sliceKey&lt;/code&gt;. For example: &lt;/p&gt;
+   
+&lt;pre&gt;  eg:sliceByRegion a qb:SliceKey;
+      rdfs:label &amp;quot;slice by region&amp;quot;@en;
+      rdfs:comment &amp;quot;Slice by grouping regions together, fixing sex and time values&amp;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 .
+&lt;/pre&gt;   
+
+&lt;p&gt;In the instance data then slices are represented by instances of &lt;code&gt;qb:Slice&lt;/code&gt; which 
+  link to the observations in the slice via &lt;code&gt;qb:observation&lt;/code&gt; and to the key by means
+  of &lt;code&gt;qb:sliceStructure&lt;/code&gt;. Data sets indicate
+  the slices they contain by means of &lt;code&gt;qb:slice&lt;/code&gt;. Thus in our example we would have:&lt;/p&gt;
+
+&lt;pre&gt;  eg:dataset-le2 a qb:DataSet;
+      rdfs:label &amp;quot;Life expectancy&amp;quot;@en;
+      rdfs:comment &amp;quot;Life expectancy within Welsh Unitary authorities - extracted from Stats Wales&amp;quot;@en;
+      qb:structure eg:dsd-le-slice2 ;  
+      sdmx-attribute:unitMeasure &amp;lt;http://dbpedia.org/resource/Year&amp;gt; ;
+      qb:slice eg:slice2;
+      .
+  
+  eg:slice2 a qb:Slice;
+      qb:sliceStructure  eg:sliceByRegion ;
+      eg:refPeriod               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;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               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;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               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;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               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;gt; ;
+      sdmx-dimension:sex         sdmx-code:sex-M ;
+      eg:lifeExpectancy          76.6 ;
+      .
+
+  ...
+&lt;/pre&gt;
+
+&lt;p&gt;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 
+for observed values uniformly without having to first parse the data structure
+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:
+&lt;/p&gt;
+&lt;pre&gt;  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 &amp;quot;Life expectancy&amp;quot;@en;
+      rdfs:comment &amp;quot;Life expectancy within Welsh Unitary authorities - extracted from Stats Wales&amp;quot;@en;
+      qb:structure eg:dsd-le-slice3 ;  
+      sdmx-attribute:unitMeasure &amp;lt;http://dbpedia.org/resource/Year&amp;gt; ;
+      qb:slice eg:slice3 ;
+      .
+  
+  eg:slice3 a qb:Slice;
+      qb:sliceStructure  eg:sliceByRegion ;
+      eg:refPeriod               &amp;lt;http://reference.data.gov.uk/id/gregorian-interval/2004-01-01T00:00:00/P3Y&amp;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 ;
+      .
+
+  ...
+&lt;/pre&gt;
+
+&lt;p&gt;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 &lt;code&gt;qb:subSlice&lt;/code&gt;. In that case, when providing non-flattened
+  data with dimensions attached to the slice level, then
+  it is permissible to nest the &lt;code&gt;qb:Slice&lt;/code&gt; 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.&lt;/p&gt;
+&lt;/div&gt;
+
+
+&lt;div id="schemes" class="section"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;8. &lt;/span&gt;Concept schemes and code lists&lt;/h2&gt;
+
+&lt;p&gt;The values for dimensions within a data set must be unambiguously
+   defined. They may be typed values (e.g. &lt;code&gt;xsd:dateTime&lt;/code&gt; for time instances)
+   or codes drawn from some code list. Similarly, many attributes
+   used in data sets represent coded values from some controlled term list rather 
+   than free text descriptions. In the Data Cube vocabulary such codes are
+   represented by URI references in the usual RDF fashion.&lt;/p&gt;
+ 
+&lt;p&gt;Sometimes
+   appropriate URI sets already exist for the relevant dimensions (e.g. the representations
+   of area and time periods in our running example). In other cases the data set being
+   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 &lt;code&gt;skos:Concept&lt;/code&gt; and the overall
+   set of admissible values using &lt;code&gt;skos:ConceptScheme&lt;/code&gt;.&lt;/p&gt;
+   
+&lt;p&gt;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:&lt;/p&gt;
+
+&lt;pre&gt;sdmx-code:sex a skos:ConceptScheme;
+    skos:prefLabel &amp;quot;Code list for Sex (SEX) - codelist scheme&amp;quot;@en;
+    rdfs:label &amp;quot;Code list for Sex (SEX) - codelist scheme&amp;quot;@en;
+    skos:notation &amp;quot;CL_SEX&amp;quot;;
+    skos:note &amp;quot;This  code list provides the gender.&amp;quot;@en;
+    skos:definition &amp;lt;http://sdmx.org/wp-content/uploads/2009/01/02_sdmx_cog_annex_2_cl_2009.pdf&amp;gt; ;
+    rdfs:seeAlso sdmx-code:Sex ;
+    sdmx-code:sex skos:hasTopConcept sdmx-code:sex-F ;
+    sdmx-code:sex skos:hasTopConcept sdmx-code:sex-M .
+
+sdmx-code:Sex a rdfs:Class, owl:Class;
+    rdfs:subClassOf skos:Concept ;
+    rdfs:label &amp;quot;Code list for Sex (SEX) - codelist class&amp;quot;@en;
+    rdfs:comment &amp;quot;This  code list provides the gender.&amp;quot;@en;
+    rdfs:seeAlso sdmx-code:sex .
+
+sdmx-code:sex-F a skos:Concept, sdmx-code:Sex;
+    skos:topConceptOf sdmx-code:sex;
+    skos:prefLabel &amp;quot;Female&amp;quot;@en ;
+    skos:notation &amp;quot;F&amp;quot; ;
+    skos:inScheme sdmx-code:sex .
+
+sdmx-code:sex-M a skos:Concept, sdmx-code:Sex;
+    skos:topConceptOf sdmx-code:sex;
+    skos:prefLabel &amp;quot;Male&amp;quot;@en ;
+    skos:notation &amp;quot;M&amp;quot; ; 
+    skos:inScheme sdmx-code:sex .
+&lt;/pre&gt;
+
+&lt;p&gt;&lt;code&gt;skos:prefLabel&lt;/code&gt; is used to give a name to the code, 
+&lt;code&gt;skos:note&lt;/code&gt; gives a description and &lt;code&gt;skos:notation&lt;/code&gt; 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
+each use of &lt;code&gt;skos:notation&lt;/code&gt; 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).&lt;/p&gt;
+
+&lt;p&gt;It is convenient and good practice when developing a code list to also 
+create an Class to denote all the codes within the code
+list, irrespective of hierarchical structure. This allows the range of an
+&lt;code&gt;qb:ComponentProperty&lt;/code&gt; to be defined by using &lt;code&gt;rdfs:range&lt;/code&gt;
+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
+same as that of the concept scheme but with leading upper case.&lt;/p&gt;
+
+&lt;p&gt;This code list can then be associated with a coded property, such as a dimension:&lt;/p&gt;
+
+&lt;pre&gt;  eg:sex a sdmx:DimensionProperty, sdmx:CodedProperty;
+      qb:codeList sdmx-code:sex ;
+      rdfs:range sdmx-code:Sex .
+&lt;/pre&gt;
+
+&lt;p&gt;Explicitly declaring  the code list using &lt;code&gt;qb:codeList&lt;/code&gt;
+  is not mandatory but can be helpful in those cases where a concept scheme has been defined.&lt;/p&gt;
+  
+&lt;p&gt;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 
+&lt;code&gt;skos:narrower&lt;/code&gt; relationship to link from the &lt;code&gt;skos:hasTopConcept&lt;/code&gt;
+codes down through the tree or lattice of child codes. 
+In some publishing tool chains the corresponding transitive closure 
+&lt;code&gt;skos:narrowerTransitive&lt;/code&gt; will be automatically inferred. 
+The use of &lt;code&gt;skos:narrower&lt;/code&gt; 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 &lt;code&gt;skos:inScheme&lt;/code&gt;.&lt;/p&gt;
+&lt;/div&gt;
+
+
+&lt;div id="metadata" class="section"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;9. &lt;/span&gt;DataSet metadata&lt;/h2&gt;
+
+&lt;p&gt;DataSets should be marked up with metadata to support discovery, presentation and
+processing. Metadata such as a display label (&lt;code&gt;rdfs:label&lt;/code&gt;),
+descriptive comment (&lt;code&gt;rdfs:comment&lt;/code&gt;) and creation date (&lt;code&gt;dcterms:date&lt;/code&gt;)
+are common to most resources. We recommend use of Dublin Core Terms
+for representing the key metadata annotations commonly needed for DataSets.&lt;/p&gt;
+
+
+&lt;div id="metadata-categorization" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;9.1 &lt;/span&gt;Categorizing a data set&lt;/h3&gt;
+
+&lt;p&gt;Publishers of statistics often categorize their data sets into different statistical 
+domains, such as &lt;em&gt;Education&lt;/em&gt;, &lt;em&gt;Labour&lt;/em&gt;, or &lt;em&gt;Transportation&lt;/em&gt;.
+We encourage use of &lt;code&gt;dcterms:subject&lt;/code&gt; to record such a classification of
+a whole data set.
+The classification terms can include coarse grained classifications, such
+as the List of Subject-matter Domains from the SDMX Content-oriented Guidelines, 
+and fine grained classifications to support discovery of data sets.&lt;/p&gt;
+
+&lt;p&gt;The classification schemes are typically represented using the SKOS vocabulary. For 
+convenience the SMDX Subject-matter Domains have been encoded as a SKOS concept scheme
+at &lt;a href="http://purl.org/linked-data/sdmx/2009/subject"&gt;http://purl.org/linked-data/sdmx/2009/subject#&lt;/a&gt;.&lt;/p&gt;
+
+&lt;p&gt;Thus our sample dataset might be marked up by:&lt;/p&gt;
+
+&lt;pre&gt;  eg:dataset1 a qb:DataSet;
+      rdfs:label &amp;quot;Life expectancy&amp;quot;@en;
+      rdfs:comment &amp;quot;Life expectancy within Welsh Unitary authorities - extracted from Stats Wales&amp;quot;@en;
+      dcterms:date &amp;quot;2010-08-11&amp;quot;^^xsd:date;
+      dcterms:subject
+          sdmx-subject:3.2 ,      # regional and small area statistics
+          sdmx-subject:1.4 ,      # Health
+          admingeo:wales_gor_l ;  # Wales
+      ...
+&lt;/pre&gt;
+
+&lt;p&gt;where &lt;code&gt;eg:Wales&lt;/code&gt; is a &lt;code&gt;skos:Concept&lt;/code&gt; drawn from an appropriate controlled
+vocabulary for places.&lt;/p&gt;
+&lt;/div&gt;
+
+
+&lt;div id="metadata-publishers" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;9.2 &lt;/span&gt;Describing publishers&lt;/h3&gt;
+
+&lt;p&gt;The organization that publishes a dataset should be recorded as part of the dataset metadata.
+Again we recommend use of the Dublin Core term &lt;code&gt;dcterms:publisher&lt;/code&gt; for this.
+The organization should be represented as an instance of &lt;code&gt;foaf:Agent&lt;/code&gt;, or
+some more specific subclass such as &lt;code&gt;org:Organization&lt;/code&gt; [&lt;cite&gt;&lt;a class="bibref" rel="biblioentry" href="#bib-ORG"&gt;ORG&lt;/a&gt;&lt;/cite&gt;].&lt;/p&gt;
+
+&lt;pre&gt;eg:dataset1 a qb:DataSet;
+    dc:publisher &amp;lt;http://example.com/meta#organization&amp;gt; .
+    
+&amp;lt;http://example.com/meta#organization&amp;gt; a org:Organization, foaf:Agent;
+    rdfs:label &amp;quot;Example org&amp;quot; .    
+&lt;/pre&gt;
+
+&lt;p&gt;Note that the SDMX extension vocabulary supports further description of 
+  publication pipelines (data flows, reporting taxonomies, maintainers, provision agreements).&lt;/p&gt;
+&lt;/div&gt;
+
+&lt;/div&gt;
+
+&lt;div class="appendix section" id="namespaces-used-appendix"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;A. &lt;/span&gt;Namespaces used in this document&lt;/h2&gt;
+
+&lt;table class="spare-table"&gt;
+  &lt;thead&gt; &lt;tr&gt;
+    &lt;th&gt;prefix&lt;/th&gt;
+    &lt;th&gt;namespace URI&lt;/th&gt;
+    &lt;th&gt;vocabulary&lt;/th&gt;
+  &lt;/tr&gt;
+  &lt;/thead&gt;
+  &lt;tbody&gt;
+    &lt;tr&gt;
+      &lt;td&gt;rdf&lt;/td&gt;
+      &lt;td&gt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&lt;/td&gt;
+      &lt;td&gt;RDF core&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;rdfs&lt;/td&gt;
+      &lt;td&gt;http://www.w3.org/2000/01/rdf-schema#&lt;/td&gt;
+      &lt;td&gt;RDF Schema&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;skos&lt;/td&gt;
+      &lt;td&gt;http://www.w3.org/2004/02/skos/core#&lt;/td&gt;
+      &lt;td&gt;Simple Knowledge Organization System&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;foaf&lt;/td&gt;
+      &lt;td&gt;http://xmlns.com/foaf/0.1/&lt;/td&gt;
+      &lt;td&gt;Friend Of A Friend&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;void&lt;/td&gt;
+      &lt;td&gt;http://rdfs.org/ns/void#&lt;/td&gt;
+      &lt;td&gt;Vocabulary of Interlinked Datasets&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;scovo&lt;/td&gt;
+      &lt;td&gt;http://purl.org/NET/scovo#&lt;/td&gt;
+      &lt;td&gt;Statistical Core Vocabulary&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;dc&lt;/td&gt;
+      &lt;td&gt;http://purl.org/dc/elements/1.1/&lt;/td&gt;
+      &lt;td&gt;Dublin Core&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;qb&lt;/td&gt;
+      &lt;td&gt;http://purl.org/linked-data/cube#&lt;/td&gt;
+      &lt;td&gt;The Data Cube vocabulary&lt;/td&gt;
+    &lt;/tr&gt;
+  &lt;/tbody&gt;
+&lt;/table&gt;
+&lt;/div&gt;
+
+
+&lt;div class="appendix section" id="vocab-reference"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;B. &lt;/span&gt;Vocabulary reference&lt;/h2&gt;
+
+
+&lt;div id="reference-datasets" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;B.1 &lt;/span&gt;DataSets&lt;/h3&gt;
+
+&lt;dl class="vocab_reference"&gt;
+
+  &lt;dt id="ref_qb_DataSet"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:DataSet&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;qb:Attachable&lt;/code&gt;
+    &lt;em&gt;Equivalent to: &lt;/em&gt;
+      &lt;code&gt;scovo:Dataset&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;Represents a collection of observations, possibly organized into various slices, conforming to some common dimensional structure.&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;/div&gt;
+
+
+&lt;div id="reference-observations" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;B.2 &lt;/span&gt;Observations&lt;/h3&gt;
+
+&lt;dl class="vocab_reference"&gt;
+
+  &lt;dt id="ref_qb_Observation"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:Observation&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;qb:Attachable&lt;/code&gt;
+    &lt;em&gt;Equivalent to: &lt;/em&gt;
+      &lt;code&gt;scovo:Item&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;A single observation in the cube, may have one or more associated measured values&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_dataSet"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:dataSet&lt;/code&gt;
+    (
+    &lt;code&gt;qb:Observation&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;qb:DataSet&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;indicates the data set of which this observation is a part&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_observation"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:observation&lt;/code&gt;
+    (
+    &lt;code&gt;qb:Slice&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;qb:Observation&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;indicates a observation contained within this slice of the data set&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;/div&gt;
+
+
+&lt;div id="reference-slices" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;B.3 &lt;/span&gt;Slices&lt;/h3&gt;
+
+&lt;dl class="vocab_reference"&gt;
+
+  &lt;dt id="ref_qb_Slice"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:Slice&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;qb:Attachable&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;Denotes a subset of a DataSet defined by fixing a subset of the dimensional values, component properties on the Slice&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_slice"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:slice&lt;/code&gt;
+    (
+    &lt;code&gt;qb:DataSet&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;qb:Slice&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;Indicates a subset of a DataSet defined by fixing a subset of the dimensional values&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_subSlice"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:subSlice&lt;/code&gt;
+    (
+    &lt;code&gt;qb:Slice&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;qb:Slice&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;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&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;/div&gt;
+
+
+&lt;div id="reference-components" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;B.4 &lt;/span&gt;Dimensions, Attributes, Measures&lt;/h3&gt;
+&lt;dl class="vocab_reference"&gt;
+
+  &lt;dt id="ref_qb_Attachable"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:Attachable&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;Abstract superclass for everything that can have attributes and dimensions&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_ComponentProperty"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:ComponentProperty&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;rdf:Property&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;Abstract super-property of all properties representing dimensions, attributes or measures&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_DimensionProperty"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:DimensionProperty&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;qb:ComponentProperty&lt;/code&gt;
+      &lt;code&gt;qb:CodedProperty&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;The class of components which represent the dimensions of the cube&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_AttributeProperty"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:AttributeProperty&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;qb:ComponentProperty&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;The class of components which represent attributes of observations in the cube, e.g. unit of measurement&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_MeasureProperty"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:MeasureProperty&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;qb:ComponentProperty&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;The class of components which represent the measured value of the phenomenon being observed&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_CodedProperty"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:CodedProperty&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;qb:ComponentProperty&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;Superclass of all coded ComponentProperties&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;/div&gt;
+
+
+&lt;div id="reference-component-properties" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;B.5 &lt;/span&gt;Reusable general purpose component properties&lt;/h3&gt;
+&lt;dl class="vocab_reference"&gt;
+
+  &lt;dt id="ref_qb_measureType"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:measureType&lt;/code&gt;
+    (
+    -&amp;gt; 
+    &lt;code&gt;qb:MeasureProperty&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;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)&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;/div&gt;
+
+
+&lt;div id="reference-dsd" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;B.6 &lt;/span&gt;Data Structure Definitions&lt;/h3&gt;
+&lt;dl class="vocab_reference"&gt;
+
+  &lt;dt id="ref_qb_DataStructureDefinition"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:DataStructureDefinition&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;qb:ComponentSet&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;Defines the structure of a DataSet or slice&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_structure"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:structure&lt;/code&gt;
+    (
+    &lt;code&gt;qb:DataSet&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;qb:DataStructureDefinition&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;indicates the structure to which this data set conforms&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_component"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:component&lt;/code&gt;
+    (
+    &lt;code&gt;qb:DataStructureDefinition&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;qb:ComponentSpecification&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;indicates a component specification which is included in the structure of the dataset&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;/div&gt;
+
+
+&lt;div id="reference-compspec" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;B.7 &lt;/span&gt;Component specifications - for qualifying component use in a DSD&lt;/h3&gt;
+&lt;dl class="vocab_reference"&gt;
+
+  &lt;dt id="ref_qb_ComponentSpecification"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:ComponentSpecification&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;qb:ComponentSet&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;Used to define properties of a component (attribute, dimension etc) which are specific to its usage in a DSD.&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_ComponentSet"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:ComponentSet&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;Abstract class of things which reference one or more ComponentProperties&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_componentProperty"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:componentProperty&lt;/code&gt;
+    (
+    &lt;code&gt;qb:ComponentSet&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;qb:ComponentProperty&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;indicates a ComponentProperty (i.e. attribute/dimension) expected on a DataSet, or a dimension fixed in a SliceKey&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_order"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:order&lt;/code&gt;
+    (
+    &lt;code&gt;qb:ComponentSpecification&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;xsd:int&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;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&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_componentRequired"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:componentRequired&lt;/code&gt;
+    (
+    &lt;code&gt;qb:ComponentSpecification&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;xsd:boolean&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;Indicates whether a component property is required (true) or optional (false) in the context of a DSD or MSD&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_componentAttachment"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:componentAttachment&lt;/code&gt;
+    (
+    &lt;code&gt;qb:ComponentSpecification&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;rdfs:Class&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;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.&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_dimension"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:dimension&lt;/code&gt;
+    (
+    -&amp;gt; 
+    &lt;code&gt;qb:DimensionProperty&lt;/code&gt;
+    ; &lt;em&gt;sub property of: &lt;/em&gt;
+    &lt;code&gt;qb:componentProperty&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;An alternative to qb:componentProperty which makes explicit that the component is a dimension&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_measure"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:measure&lt;/code&gt;
+    (
+    -&amp;gt; 
+    &lt;code&gt;qb:MeasureProperty&lt;/code&gt;
+    ; &lt;em&gt;sub property of: &lt;/em&gt;
+    &lt;code&gt;qb:componentProperty&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;An alternative to qb:componentProperty which makes explicit that the component is a measure&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_attribute"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:attribute&lt;/code&gt;
+    (
+    -&amp;gt; 
+    &lt;code&gt;qb:AttributeProperty&lt;/code&gt;
+    ; &lt;em&gt;sub property of: &lt;/em&gt;
+    &lt;code&gt;qb:componentProperty&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;An alternative to qb:componentProperty which makes explicit that the component is a attribute&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_measureDimension"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:measureDimension&lt;/code&gt;
+    (
+    -&amp;gt; 
+    &lt;code&gt;qb:DimensionProperty&lt;/code&gt;
+    ; &lt;em&gt;sub property of: &lt;/em&gt;
+    &lt;code&gt;qb:componentProperty&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;An alternative to qb:componentProperty which makes explicit that the component is a measure dimension&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;/div&gt;
+
+
+&lt;div id="reference-slice-definitions" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;B.8 &lt;/span&gt;Slice definitions&lt;/h3&gt;
+&lt;dl class="vocab_reference"&gt;
+
+  &lt;dt id="ref_qb_SliceKey"&gt;
+    &lt;em&gt;Class:&lt;/em&gt; &lt;code&gt;qb:SliceKey&lt;/code&gt;
+    &lt;em&gt;Sub class of: &lt;/em&gt;
+      &lt;code&gt;qb:ComponentSet&lt;/code&gt;
+  &lt;/dt&gt;
+ &lt;dd&gt;Denotes a subset of the component properties of a DataSet which are fixed in the corresponding slices&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_sliceStructure"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:sliceStructure&lt;/code&gt;
+    (
+    &lt;code&gt;qb:Slice&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;qb:SliceKey&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;indicates the sub-key corresponding to this slice&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_sliceKey"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:sliceKey&lt;/code&gt;
+    (
+    &lt;code&gt;qb:DataSet&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;qb:SliceKey&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;indicates a slice key which is used for slices in this dataset&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;/div&gt;
+
+
+&lt;div id="reference-concepts" class="section"&gt;
+&lt;h3&gt;&lt;span class="secno"&gt;B.9 &lt;/span&gt;Concepts&lt;/h3&gt;
+&lt;dl class="vocab_reference"&gt;
+
+  &lt;dt id="ref_qb_concept"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:concept&lt;/code&gt;
+    (
+    &lt;code&gt;qb:ComponentProperty&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;skos:Concept&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;gives the concept which is being measured or indicated by a ComponentProperty&lt;/dd&gt;
+
+  &lt;dt id="ref_qb_codeList"&gt;
+    &lt;em&gt;Property:&lt;/em&gt; &lt;code&gt;qb:codeList&lt;/code&gt;
+    (
+    &lt;code&gt;qb:CodedProperty&lt;/code&gt;
+    -&amp;gt; 
+    &lt;code&gt;skos:ConceptScheme&lt;/code&gt;
+  ) 
+  &lt;/dt&gt;
+  &lt;dd&gt;gives the code list associated with a CodedProperty&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;/div&gt;
+
+&lt;/div&gt;
+
+
+&lt;div class="appendix section" id="acknowledgements"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;C. &lt;/span&gt;Acknowledgements&lt;/h2&gt;
+
+&lt;p&gt;This work is based on a collaboration that was initiated in a
+workshop on Publishing statistical datasets in SDMX and the semantic
+web, hosted by ONS in Sunningdale, United Kingdom in February 2010 and
+continued at the ODaF 2010 workshop in Tilburg. The authors would like
+to thank all the participants at those workshops for their input into
+this work but especially Arofan Gregory for his patient
+explanations of SDMX and insight in the need and requirements 
+for a core Data Cube representation.&lt;/p&gt;
+
+&lt;p&gt;The authors would also like to thank John Sheridan for his comments,
+suggestions and support for this work.&lt;/p&gt;
+&lt;/div&gt;
+
+
+&lt;div id="issues" class="section"&gt;
+
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;D. &lt;/span&gt;Open issues&lt;/h2&gt;
+
+&lt;p&gt;
+  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.
+&lt;/p&gt;
+
+  &lt;div class="issue"&gt;
+    &lt;h3 id="issue-29------criteria-for-well-formedness"&gt;&lt;a href="http://www.w3.org/2011/gld/track/issues/29"&gt;Issue-29&lt;/a&gt;:
+    Criteria for well-formedness&lt;/h3&gt;
+    &lt;p&gt;Specify additional &lt;em&gt;well-formedness&lt;/em&gt; criteria to which
+    cube-publishers should adhere to facilitate tool interoperability.&lt;/p&gt;
+  &lt;/div&gt;
+
+  &lt;div class="issue"&gt;
+    &lt;h3 id="issue-30--------declaring-relations-between-cubes"&gt;&lt;a href="http://www.w3.org/2011/gld/track/issues/30"&gt;Issue-30&lt;/a&gt;:
+      Declaring relations between cubes&lt;/h3&gt;
+    &lt;p&gt;Consider extending the vocabulary to support declaring
+      relations between data cubes (or between measures within a cube).&lt;/p&gt;
+  &lt;/div&gt;
+
+  &lt;div class="issue"&gt;
+    &lt;h3 id="issue-31--------supporting-aggregation-for-other-than-skos-hierarchies"&gt;&lt;a href="http://www.w3.org/2011/gld/track/issues/31"&gt;Issue-31&lt;/a&gt;:
+      Supporting aggregation for other than SKOS hierarchies&lt;/h3&gt;
+    &lt;p&gt;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.&lt;/p&gt;
+  &lt;/div&gt;
+
+  &lt;div class="issue"&gt;
+    &lt;h3 id="issue-32--------relationship-to-iso-19156---observations---measurements"&gt;&lt;a href="http://www.w3.org/2011/gld/track/issues/32"&gt;Issue-32&lt;/a&gt;:
+      Relationship to ISO 19156 - Observations &amp;amp; Measurements&lt;/h3&gt;
+    &lt;p&gt;
+      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;amp; Measurements (ISO 19156). There are multiple ways
+      that Data Cube can be mapped to the logical model of O&amp;amp;M. 
+      Consider making an explicit statement of the ways in which Data
+      Cube can be related to O&amp;amp;M as guidance for users seeking to
+      work with both specifications.&lt;/p&gt;
+  &lt;/div&gt;
+
+  &lt;div class="issue"&gt;
+    &lt;h3 id="issue-33--------collections-of-observations-and-well-formedness-of-slices"&gt;&lt;a href="http://www.w3.org/2011/gld/track/issues/33"&gt;Issue-33&lt;/a&gt;:
+      Collections of observations and well-formedness of slices&lt;/h3&gt;
+    &lt;p&gt;
+      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 &lt;code&gt;qb:Slice&lt;/code&gt; or through an additional collection mechanism.&lt;/p&gt;
+  &lt;/div&gt;
+
+  &lt;div class="issue"&gt;
+    &lt;h3 id="issue-34--------clarify-or-drop-qb-subslice"&gt;&lt;a href="http://www.w3.org/2011/gld/track/issues/34"&gt;Issue-34&lt;/a&gt;:
+      Clarify or drop qb:subslice&lt;/h3&gt;
+    &lt;p&gt;
+      Use of &lt;code&gt;qb:subslice&lt;/code&gt; in abbreviated datasets can result
+      in ambiguity. Consider
+      clarifying or deprecating &lt;code&gt;qb:subslice&lt;/code&gt;.&lt;/p&gt;
+  &lt;/div&gt;
+
+
+&lt;/div&gt;
+
+
+
+
+
+
+&lt;div id="references" class="appendix section"&gt;
+&lt;!-- OddPage --&gt;
+&lt;h2&gt;&lt;span class="secno"&gt;E. &lt;/span&gt;References&lt;/h2&gt;
+&lt;p class="todo"&gt;Bring all references into &lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt; style&lt;/p&gt;
+&lt;div id="normative-references" class="section"&gt;&lt;h3&gt;&lt;span class="secno"&gt;E.1 &lt;/span&gt;Normative references&lt;/h3&gt;&lt;p&gt;No normative references.&lt;/p&gt;&lt;/div&gt;&lt;div id="informative-references" class="section"&gt;&lt;h3&gt;&lt;span class="secno"&gt;E.2 &lt;/span&gt;Informative references&lt;/h3&gt;&lt;dl class="bibliography"&gt;&lt;dt id="bib-COG"&gt;[COG]&lt;/dt&gt;&lt;dd&gt;SDMX Contnent Oriented Guidelines, &lt;a href="http://sdmx.org/?page_id=11"&gt;http://sdmx.org/?page_id=11&lt;/a&gt;
+&lt;/dd&gt;&lt;dt id="bib-LOD"&gt;[LOD]&lt;/dt&gt;&lt;dd&gt;Linked Data, &lt;a href="http://linkeddata.org/"&gt;http://linkeddata.org/&lt;/a&gt;
+&lt;/dd&gt;&lt;dt id="bib-OLAP"&gt;[OLAP]&lt;/dt&gt;&lt;dd&gt;Online Analytical Processing Data Cubes, &lt;a href="http://en.wikipedia.org/wiki/OLAP_cube"&gt;http://en.wikipedia.org/wiki/OLAP_cube&lt;/a&gt;
+&lt;/dd&gt;&lt;dt id="bib-ORG"&gt;[ORG]&lt;/dt&gt;&lt;dd&gt;An Organization Ontology, &lt;a href="http://www.epimorphics.com/public/vocabulary/org.html"&gt;http://www.epimorphics.com/public/vocabulary/org.html&lt;/a&gt;
+&lt;/dd&gt;&lt;dt id="bib-OS-GEO"&gt;[OS-GEO]&lt;/dt&gt;&lt;dd&gt;Ordnance Survey Administrative Geography Ontology v1, &lt;a href="http://www.ordnancesurvey.co.uk/ontology/v1/AdministrativeGeography.rdf"&gt;http://www.ordnancesurvey.co.uk/ontology/v1/AdministrativeGeography.rdf&lt;/a&gt;
+&lt;/dd&gt;&lt;dt id="bib-RDF-PRIMER"&gt;[RDF-PRIMER]&lt;/dt&gt;&lt;dd&gt;Frank Manola; Eric Miller. &lt;a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/"&gt;&lt;cite&gt;RDF Primer.&lt;/cite&gt;&lt;/a&gt; 10 February 2004. W3C Recommendation. URL: &lt;a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/"&gt;http://www.w3.org/TR/2004/REC-rdf-primer-20040210/&lt;/a&gt; 
+&lt;/dd&gt;&lt;dt id="bib-SCOVO"&gt;[SCOVO]&lt;/dt&gt;&lt;dd&gt;The Statistical Core Vocabulary, &lt;a href="http://sw.joanneum.at/scovo/schema.html"&gt;http://sw.joanneum.at/scovo/schema.html&lt;/a&gt;&lt;br /&gt;SCOVO: Using Statistics on the Web of data, &lt;a href="http://sw-app.org/pub/eswc09-inuse-scovo.pdf"&gt;http://sw-app.org/pub/eswc09-inuse-scovo.pdf&lt;/a&gt;
+&lt;/dd&gt;&lt;dt id="bib-SKOS-PRIMER"&gt;[SKOS-PRIMER]&lt;/dt&gt;&lt;dd&gt;Antoine Isaac; Ed Summers. &lt;a href="http://www.w3.org/TR/2009/NOTE-skos-primer-20090818/"&gt;&lt;cite&gt;SKOS Simple Knowledge Organization System Primer.&lt;/cite&gt;&lt;/a&gt; 18 August 2009. W3C Note. URL: &lt;a href="http://www.w3.org/TR/2009/NOTE-skos-primer-20090818/"&gt;http://www.w3.org/TR/2009/NOTE-skos-primer-20090818/&lt;/a&gt; 
+&lt;/dd&gt;&lt;dt id="bib-TURTLE-TR"&gt;[TURTLE-TR]&lt;/dt&gt;&lt;dd&gt;Eric Prud'hommeaux, Gavin Carothers. &lt;a href="http://www.w3.org/TR/2011/WD-turtle-20110809/"&gt;&lt;cite&gt;Turtle: Terse RDF Triple Language.&lt;/cite&gt;&lt;/a&gt; 09 August 2011. W3C Working Draft. URL: &lt;a href="http://www.w3.org/TR/2011/WD-turtle-20110809/"&gt;http://www.w3.org/TR/2011/WD-turtle-20110809/&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</pre></body></html>
\ No newline at end of file