W3C home > Mailing lists > Public > public-gld-comments@w3.org > July 2013

Data Cube validation: Issue and proposed change

From: Dave Reynolds <dave.e.reynolds@gmail.com>
Date: Thu, 18 Jul 2013 17:03:06 +0100
Message-ID: <51E811BA.5070906@gmail.com>
To: public-gld-comments@w3.org
# Summary

The Candidate Recommendation for the RDF Data Cube Vocabulary [1] 
defines a normalization algorithm and a set of integrity checking rules. 
These rules are intended to guide Data Cube implementers and enable 
mechanical checking for well-formed cubes. They are marked as "At Risk" 
in the Candidate Recommendation.

A case has been noted [2] where a data set can pass the defined 
integrity checks but where information that would normally be expected 
is missing. An integrity checker that implemented just the minimal 
published algorithm would miss this error case.

The specification states that "processors MAY apply full RDFS closure in 
place of the update operation defined [in the spec]". An integrity 
checker which implemented this MAY clause would detect this error case.

The WG proposes to modify the normalization algorithm enable to detect 
this case.

# Details

Each value (instance of qb:Observation) in a cube should define a cube 
(instance qb:DataSet) that it is a part of. This is checked by IC-1 [3].

Each cube (instance of qb:DataSet) should define its structure 
(qb:structure value). This is checked by IC-2 [4].

However, IC-2 will only detect cubes which have been explicitly declared 
as instances of qb:DataSet. So for example:

ex:obs1 a qb:Observation;
     # useful data omitted
     qb:dataSet ex:qb-mistake .

ex:qb  a qb:DataSet;
     rdfs:label "my intended data set";
     qb:structure ex:dsd .

will validate.

The omission is that the closure rules included in the normalization 
algorithm [5] fail to infer the rdf:type of ex:qb-mistake, even though 
under full RDFS inference this would be inferred.

# Proposed resolution

The WG proposes to modify the specification to address this oversight.

This would be done by replacing closure rule

   INSERT {
       ?o  rdf:type qb:Observation .
   } WHERE {
       ?o qb:dataSet [] .
   };

by

   INSERT {
       ?o  rdf:type qb:Observation .
       ?ds rdf:type qb:DataSet .
   } WHERE {
       ?o qb:dataSet ?ds .
   };

A diff of an editor's draft showing the proposed change is at [6]. The 
only change is to section 10.1 and to the change history.

This change does not affect the intent of the integrity checking, does 
not invalidate any data publications and is unlikely to affect any data 
cube validator implementations. For this reason the WG believes such a 
change could be carried out as part of requesting transition to PR and 
does not require a restart of a LC/CR cycle.

We are posting this note on the public comments group to enable Data 
Cube implementers to note the proposal and comment if appropriate.

Dave

[1] http://www.w3.org/TR/2013/CR-vocab-data-cube-20130625
[2] 
http://lists.w3.org/Archives/Public/public-gld-comments/2013Jul/0008.html
[3] http://www.w3.org/TR/2013/CR-vocab-data-cube-20130625#ic-1
[4] http://www.w3.org/TR/2013/CR-vocab-data-cube-20130625#ic-2
[5] 
http://www.w3.org/TR/2013/CR-vocab-data-cube-20130625/#normalize-algorithm
[6] 
https://dvcs.w3.org/hg/gld/raw-file/default/data-cube/static-issue-68-diff.html#normalize-algorithm
Received on Thursday, 18 July 2013 16:03:35 UTC

This archive was generated by hypermail 2.3.1 : Thursday, 18 July 2013 16:03:36 UTC