RollupOp
From www.b-kaempgen.de
Revision as of 13:02, 6 September 2013 by Benedikt Kämpgen (Talk | contribs)
This operator rolls up a Dimension of a Cube (the former LogicalOlapOp) to a specific higher Level. We assume a LEAN Data Cube (i.e., dataset with observations on the lowest levels only).
SliceOp gets as input an input operator, a List<Node[]> list with a header and levels according to Olap4ld_Metadata#getLevels.28.29 to rollup to.
Contents
Problem: How to rollup in Linked Data?
- In ROLAP, the LEVEL_NUMBER of a level does not lead to more difficult queries, since we simply need to group by the specific level column of the dimension table
- In OLAP4LD, the lower the level depth (the higher the level in the hierarchy), the longer the skos:narrower path.
- A hierarchy in Linked Data is represented using a skos:narrower path starting from skos:hasTopConcept from the skos:ConceptScheme. In a LEAN Data Cube, we only have observations on the lowest levels (the most detailed levels). How do we know which levels are the lowest levels?
- Solutions
- We add a new property HIERARCHY_MAX_LEVEL_NUMBER to HIERARCHY saying the number of levels. This number we can retrieve by aggregating the number of skos:ClassificationLevels attached to the code list.
- We compute the skos:narrowerTransitive closure from all skos:Concepts and either take observations that are linked to each concept directly or linked to a concept that is linked via skos:narrowerTransitive to the concept.
- We try solution 1.
Relationship between level_number, hierarchy_max_level_number and levelHeight
LevelHeight = MAX_LEVEL_NUMBER - LEVEL_NUMBER
Note: root level number = 0, but root level is implicit (slice).