<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Interacting with Statistical Linked Data via OLAP Operations</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Benedikt K¨ampgen</string-name>
          <email>benedikt.kaempgen@kit.edu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sean O'Riain</string-name>
          <email>sean.oriain@deri.org</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andreas Harth</string-name>
          <email>harth@kit.edu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Digital Enterprise Research Institute, National University of Ireland</institution>
          ,
          <addr-line>Galway</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Institute AIFB, Karlsruhe Institute of Technology</institution>
          ,
          <addr-line>Karlsruhe</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>36</fpage>
      <lpage>49</lpage>
      <abstract>
        <p>Online Analytical Processing (OLAP) promises an interface to analyse Linked Data containing statistics going beyond other interaction paradigms such as follow-your-nose browsers, faceted-search interfaces and query builders. As a new way to interact with statistical Linked Data we define comon OLAP operations on data cubes modelled in RDF and show how a nested set of OLAP operations lead to an OLAP query. Then, we show how to transform an OLAP query to a SPARQL query which generates all required facts from the data cube. Both metadata and OLAP queries are issued directly on a triple store; therefore, if the RDF is modified or updated, changes are propagated directly to OLAP clients.</p>
      </abstract>
      <kwd-group>
        <kwd>OLAP</kwd>
        <kwd>query</kwd>
        <kwd>operation</kwd>
        <kwd>Linked Data</kwd>
        <kwd>statistics</kwd>
        <kwd>XBRL</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Linked Data provides easy access to large amounts of interesting statistics from
many organizations for information integration and decision support, including
financial information from institutions such as the UK government3 and the
U.S. Securities and Exchange Commission.4 However, interaction paradigms for
Linked Data such as follow-your-nose browsers, faceted-search interfaces, and
query builders [
        <xref ref-type="bibr" rid="ref10 ref12">10, 12</xref>
        ] do not allow users to analyse large amounts of numerical
data in an exploratory fashion of “overview first, zoom and filter, then
details-ondemand” [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Online Analytical Processing (OLAP) operations on data cubes
for viewing statistics from different angles and granularities, filtering for
specific features, and comparing aggregated measures fulfil this information seeking
mantra and provide interfaces for decision-support from statistics [
        <xref ref-type="bibr" rid="ref2 ref25 ref4">2,4,25</xref>
        ].
However OLAP on statistical Linked Data imposes two main challenges:
– OLAP requires a model of data cubes, dimensions, and measures.
Automatically creating such a multidimensional schema from generic Linked Data is
difficult, and only semi-automatic methods have proved applicable [
        <xref ref-type="bibr" rid="ref16 ref18 ref21">16,18,21</xref>
        ].
The RDF Data Cube vocabulary (QB)5 is a Linked Data vocabulary to
model statistics in RDF. Several publishers have already used the
vocabulary for statistical datasets.6
– OLAP queries are complex and require specialised data models, e.g., star
schemas in relational databases, to be executed efficiently [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The typical
architecture of an OLAP system consists of an ETL pipeline that extracts,
transforms and loads data from the data sources into a data warehouse,
e.g., a relational or multidimensional database. OLAP clients such as JPivot
allow users to built OLAP queries and display results in pivot tables. An
OLAP engine, e.g., Mondrian, transforms OLAP queries into queries to the
data warehouse, and deploys mechanisms for fast data cube computation and
selection, under the additional complexity that data in the data warehouse
may change dynamically [
        <xref ref-type="bibr" rid="ref14 ref8">8, 14</xref>
        ].
      </p>
      <p>
        In this paper, we assume that statistical Linked Data has been modelled
using QB and focus on efficiently executing OLAP queries on statistical Linked
Data. In previous work [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] we have presented a proof-of-concept to interpret
Linked Data reusing QB as a multidimensional model and to automatically load
the data into a data warehouse used by common OLAP systems. The fact that
OLAP queries are executed not on the RDF directly but by a common OLAP
engine after automatically populating a data warehouse result in two drawbacks:
first, although the relational star schema we adopted is a quasi-standard logical
model for data warehouses, our approach requires a ROLAP engine to execute
OLAP queries; second, if statistical Linked Data is updated, e.g., if a single new
row is added, the entire ETL process has to be repeated, to have the changes
propagated. Figure 1 shows our new data flow of having an OLAP engine issuing
SPARQL queries directly to a triple store.
      </p>
      <p>The current work presents a new way to interact with statistical Linked Data:
– We define comon OLAP operations on data cubes as Linked Data reusing</p>
      <p>QB and show how a nested set of OLAP operations lead to an OLAP query.
– We show how to transform an OLAP query to a SPARQL query which
generates all required facts from the data cube.</p>
      <p>In the remainder of the paper, we first present a motivational scenario from
the financial domain in Section 2. As a prerequisite for our contribution, in
5 http://www.w3.org/TR/2012/WD-vocab-data-cube-20120405/
6 http://wiki.planet-data.eu/web/Datasets
Section 3, we formally define a multidimensional model of data cubes based
on QB. Then, in Section 4, we introduce OLAP operations on data cubes and
present a direct mapping of OLAP to SPARQL queries. We apply this mapping
in a small experiment in Section 5 and discuss some lessons learned in Section 6.
In Section 7, we describe related work, after which, in Section 5, we conclude
and describe future research.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Scenario: Analysing Financial Linked Data</title>
      <p>In this section we describe a scenario of analysing Linked Data containing
financial information. The Edgar Linked Data Wrapper7 provides access to XBRL
filings8 as Linked Data reusing QB. Those filings disclose balance sheets of a
large number of US organizations, for instance that RAYONIER INC had a
sales revenue net of 377,515,000 USD from 2010-07-01 to 2010-09-30.9</p>
      <p>Using LDSpider, we crawled Linked Data from the Edgar wrapper and stored
a data cube SecCubeGrossProfitMargin into an Open Virtuoso triple store. The
data cube contains single disclosures from financial companies such as
RAYONIER INC. Each disclosure either discloses cost of goods sold (CostOfGoodsSold)
or sales revenue net (Sales) as measures. The two measures have the unit USD
and an aggregation function that returns the number of disclosures, or - if only
one - the actual number. Any disclosure is fully dependent on the following
dimensions: the disclosing company (Issuer), the date a disclosure started (Dtstart)
and ended (Dtend) to be valid, and additional segment information (Segment).</p>
      <p>
        In our scenario, a business analyst wants to compare the number of
disclosures of cost of goods sold for two companies. He requests a pivot table with
issuers RAYONIER INC and WEYERHAEUSER CO on the columns, and the
possible periods for which disclosures are valid on the rows, and in the cells
showing the number of disclosed cost of goods sold, or - if only one - the actual
number. Figure 2 shows the needed pivot table.
7 http://edgarwrap.ontologycentral.com/
8
http://www.xbrl.org/Specification/XBRL-RECOMMENDATION-2003-1231+Corrected-Errata-2008-07-02.htm
9
http://edgarwrap.ontologycentral.com/archive/52827/0001193125-10238973#ds
In this section, as a precondition for OLAP queries on Linked Data, we formally
define the notion of data cubes in terms of QB. The definition is based on the
multidimensional models of Go´mez et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], Pedersen et al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and the Open
Java API for OLAP10 as well as on the Linked Data vocabularies of QB, SKOS11
and skosclass.12
Definition 1 (Linked Data store with terms and triples). The set of RDF
terms in a triple store consists of the set of IRIs I, the set of blank nodes B and
the set of literals L. A triple (s, p, o) ∈ T = (I ∪ B) × I × (I ∪ B ∪ L) is called
an RDF triple, where s is the subject, p is the predicate and o is the object.
      </p>
      <p>Given a triple store with statistical Linked Data, we use basic SPARQL triple
patterns on the store to help us defining sets of multidimensional elements. Given
a multidimensional element x iri(x) ∈ (I ∪ B) returns its IRI or blank node:
Member defines the set of members as M ember = {?x ∈ (I∪B)|(?x a
skos:Concept )}. Let V = 2Member, V ∈ V, ROLLU P M EM BER ⊆ M ember ×
M ember, rollupmember(V ) = {(v1, v2) ∈ V ×V |(iri(v1) skos:broader iri(v2)∨
iri(v2) skos:narrower iri(v1))}
Level defines the set of levels as Level = {(?x, V, rolluplevel(V )) ∈ (I ∪ B) ×
V × ROLLU P LEV EL|(?x a skosclass:ClassificationLevel ∧∀v ∈ V (iri(v)
skos:member ?x)}. Let L = 2Level, L ∈ L, ROLLU P LEV EL ⊆ Level ×
Level, rolluplevel(L) = {(l1, l2) ∈ L × L|(iri(l1) skosclass:depth x) ∧ (iri(l2)
skosclass:depth y) ∧ x ≤ y))}
Hierarchy defines the set of hierarchies as Hierarchy = {(?x, L, rolluplevel(L))
∈ (I ∪B)×L×ROLLU P LEV EL|(?x a skos:ConceptScheme )∧∀l ∈ L(iri(l)
skos:inScheme ?x)}. Let H = 2Hierarchy.
10 http://www.olap4j.org/
11 http://www.w3.org/2004/02/skos/
12 http://www.w3.org/2011/gld/wiki/ISO_Extensions_to_SKOS
Dimension defines the set of dimensions as Dimension = {(?x, H) ∈ (I ∪
B) × H|(?x a qb:DimensionProperty ) ∧ ∀h ∈ H(?x qb:codeList iri(h))}. Let
D = 2Dimension.</p>
      <p>Measure defines the set of measures as M easure = {(?x, aggr) ∈ (I ∪ B) ×
{U DF }|(?x a qb:MeasureProperty )} with U DF a default aggregation
function since QB so far does not provide a standard way to represent typical
aggregation functions such as SUM, AVG and COUNT: if only one value is
given, the value itself else the number of values is returned. Conceptually,
measures are treated as members of a dimension-hierarchy-level combination
labelled “Measures”. Let M = 2Measure.</p>
      <p>DataCubeSchema defines the set of data cube schemas as {(?x, D, M ) ∈ (I ∪
B)×D ×M|(?x a qb:DataStructureDefinition ∧∀d ∈ D(?x
qb:componentProperty ?comp∧?comp qb:dimensionProperty iri(d))∧∀m ∈ M (?x
qb:componentProperty ?comp∧?comp qb:measureProperty iri(m)))}.</p>
      <p>Fact defines the set of possible statistical facts as F act = {(?x, ?c0, . . . , ?ci, ?e0,
. . . , ?ej ) ∈ (I ∪ B) × (I ∪ B ∪ L) × . . . × (I ∪ B ∪ L) × L × . . . × L|(?x a
qb:Observation )∧(?x?d0c0∧?d0 a qb:DimensionProperty )∧. . .∧(?x?dici∧?di
a qb:DimensionProperty ) ∧ (?x?m0e0∧?m0 a qb:MeasureProperty ) ∧ . . . ∧
(?x?mj ej ∧?mj a qb:MeasureProperty )}. Let F = 2F act.</p>
      <p>DataCube defines the set of data cubes as DataCube = {(cs, F ) ∈
DataCubeSchema × F |cs = (?x, D, M ) ∧ D = {D0, . . . , D|D|} ∧ M = {m0, . . . , m|M|} ∧
∀c ∈ F (c = (?obs, c0, . . . , c|D|, e0, . . . , e|M|) : (?obs qb:dataSet ?ds∧?ds
qb:structure ?x) ∧ ∀Di ∈ D(?xiri(Di)ci ∧ iri(Di) qb:codeList ?h∧?l skos:inSchme
?h∧?v skos:member ?l ∧ (?v skos:notation ?ci∨?v skos:exactMatch ?ci)) ∧
∀mi ∈ M (?xiri(mi)ei ∨ ei = null).</p>
      <p>
        We distinguish metadata queries and OLAP queries on data cubes. Whereas
metadata queries return multidimensional objects such as the cube schema, the
dimensions, and the measures, OLAP queries return facts directly contained in
or derived from (e.g., by aggregation of several facts) the data cube.
Definition 1. According to Gray et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] a materialised data cube (cs, F ) with
cs = (x, D, M ) contains a set of facts M F = (?x, ?c0, . . . , ?c|D|, ?e0, . . . , ?e|M|)
with ?ci ∈ Ci with Ci : 0 ≤ i ≤ |D| all possible members of a dimension Di ∈ D
or the special ALL value, and with ej ∈ T : 0 ≤ j ≤ |M | with T a numeric
domain including the special null value in cases of cube sparsity. A data cube
can be materialised by a union of 2|D| sub-queries, each grouping the result on the
members of a subset of dimensions, replacing the values of the other dimensions
by a special ALL value, and computing each measure value by the measure’s
aggregation function. The number of facts from a materialised data cube is given
by |M F | = (|C0| + 1) · . . . · (|C|D|| + 1).
      </p>
      <p>
        Subqueries and aggregation functions in SPARQL 1.1 make easily possible
the concept of Gray et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] to fully materialise a data cube represented as
Linked Data reusing QB. However, due to its exponential size w.r.t. the number
of dimensions, such a SPARQL query is inefficient. OLAP queries may require
only a small subset of all possible facts of a data cube; therefore, in the next
section, we show how to evaluate OLAP queries using a single SPARQL query.
      </p>
    </sec>
    <sec id="sec-3">
      <title>Mapping OLAP Operations to SPARQL on QB</title>
      <p>
        In this section we show how to issue OLAP queries on a multidimensional model.
We define common OLAP operations on single data cubes [
        <xref ref-type="bibr" rid="ref19 ref20 ref22 ref23">19,20,22,23</xref>
        ]. A nested
set of OLAP operations lead to an OLAP query. We describe how to evaluate
such an OLAP query using SPARQL on QB. Figure 3 illustrates the effect of
common OLAP operations, with inputs and outputs.
      </p>
      <p>Note, this paper focuses on direct querying of single data cubes, the
integration of several data cubes through Drill-Across or set-oriented operations such
as union, intersection, difference is out-of-scope. Multiple datasets can already
be queried together if they are covered by one qb:DataStructureDefinition.</p>
      <p>
        Each OLAP operation has as input and output a data cube. Therefore,
operations can be nested. A nested set of OLAP operations lead to an OLAP query.
For interpreting a set of OLAP operations as an OLAP query and evaluate it
using a SPARQL query on QB, we adopt the notion of subcube queries [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
Definition 2. We define an OLAP query as a subcube query [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] on a
certain cube (cs, C) with cs = (?uri, D, M ), represented as a tuple with as many
elements as dimensions and measures: (q0, ..., q|D|, m0, ..., m|M|) with dom(qi) =
{?, ALL, x} with ? for an inquired dimension, with ALL for an aggregated
dimension, with x for one or more members to fix a dimension, and with mi a
measure to query for.
      </p>
      <p>As examples, we describe three distinguishable subcube queries:
– A full-cube query returns exactly the tuples from a DataCubeInstance and
inquires all dimensions: (?, ?, ?, ..., m0, ..., m|M|).
– A point query asks for a data cube comprising one specific instance tuple:
(a0, a1, ..., a|D|, m0, ..., m|M|) with ai a member of a dimension Di.
– A fully-aggregated query asks for the measures aggregated over all
dimensions: (ALL, ALL, . . . , ALL, m0, . . . , m|M|).</p>
      <p>In the following we describe how to evaluate each OLAP operation in terms
of this query model and how a nested set of OLAP operations results in one
specific OLAP subcube query. We assume that names and schemas of input
and output data cubes are implicitly given and we focus on the data cube facts
which will be queried for. An input data cube is represented as a full-cube query
(?, ?, ?, ..., m0, ..., m|M|).</p>
      <p>Projection is defined as P rojection : DataCube × M easure → DataCube and
removes a measure from the input cube and allows to query only for specific
measures. We evaluate P rojection by removing a measure from the subcube
query tuple.</p>
      <p>Slice is defined as Slice : DataCube × Dimension → DataCube and removes
a dimension from the input cube and aggregates over the members of a
dimension. We evaluate Slice by setting the tuple element of that dimension
to ALL.</p>
      <p>Dice is defined as Dice : DataCube × Dimension × V → DataCube and allows
to filter for and aggregate over certain dimension members. We evaluate Dice
by setting the tuple element of that dimension to this particular member or
set of members and aggregate over the set. Note, dice is not a selection
operation but a combined filter and slice operation.</p>
      <p>Roll-Up is defined as Roll−U p : DataCube×Dimension×Level → DataCube
and allows to create a cube that contains instance data on a higher
aggregation level. We evaluate roll-up by replacing the inquired members of a
dimension with members of a higher level. Note, we do not define Drill − Down,
since it can be seen as an inverse operation to Roll − U p.</p>
      <p>As an example, consider an OLAP query on our SecCubeGrossProfitMargin
cube for the cost of goods sold (CostOfGoodsSold) for each issuer and each
date until when each disclosure is valid (dtend), filtering by disclosures from two
specific segments. A nested set of OLAP operations that queries the requested
facts can be composed as follows. In all our queries, we use prefixes to make
URIs more readable:
S l i c e (</p>
      <p>Dice (</p>
      <p>P r o j e c t i o n (
e d g a r : Se cCu b e G r oss P r of it M ar gi n ,
e d g a r : CostOfGoodsSold ) ,
e d g a r : segment ,
{ e d g a r : segmentAHealthCareInsuranceCompany ,
e d g a r :
s e g m e n t A R e s i d e n t i a l R e a l E s t a t e D e v e l o p e r M e m b e r } )
,
( ? , ∗ , ? , { e d g a r : segmentAHealthCareInsuranceCompany ,
e d g a r : s e g m e n t A R e s i d e n t i a l R e a l E s t a t e D e v e l o p e r M e m b e r } ,
e d g a r : CostOfGoodsSold )</p>
      <p>Next, we describe how to evaluate such an OLAP query using a SPARQL
query on QB. Since OLAP hierarchies add considerable complexity to QB and
since a Roll − U p has a similar effect to a Slice operation, in this paper, we
assume data cubes with only one hierarchy and level per dimension. A subcube
query Q = (q0, . . . , q|D|, m0, ..., m|M|) can be translated into a SPARQL query
using the following steps:
1. We initialise the SPARQL query using the URI of the data cube. We query
for all instance data from the data cube, i.e., observations linking to datasets
which link to the data structure definition.
2. For each selected measure, we incorporate it in the SPARQL query by
selecting additional variables for each measure and by aggregating them using the
aggregation function of that measure, using OPTIONAL patterns in case we
query for several measures.
3. For each inquired dimension, we query for all the instances of skos:Concept
in a level of a hierarchy of the dimension and for the represented values used
(from members either linked via skos:notation or skos:exactMatch) in the
observations. We query for the observations showing property-value pairs
for each of these variables. To display inquired dimensions in the result and
correctly aggregating the measures, we group by each dimension variable.
4. For each fixed dimension, we filter for those observations that exhibit for
each dimension one of the listed members.</p>
      <p>We transform our example from above to the following SPARQL query. Note,
“UDF” represents the standard aggregation function from our scenario:
s e l e c t ?dimMem0 ?dimMem1 UDF( ? measureValues0 ) where {
? obs qb : d a t a S e t ? ds .
? ds qb : s t r u c t u r e e d g a r : S e c C u b e G r o s s P r o f i t M a r g i n .
? obs e d g a r : i s s u e r ? v a l u e s 0 .</p>
      <p>?dimMem0 s k o s : member ? l e v e l 0 .
? l e v e l 0 s k o s : inScheme ? h i e r a r c h y 0 .
e d g a r : i s s u e r qb : c o d e L i s t ? h i e r a r c h y 0 .</p>
      <p>?dimMem0 s k o s : exactMatch ? v a l u e s 0 .
? obs e d g a r : dtend ? v a l u e s 1 .</p>
      <p>?dimMem1 s k o s : member ? l e v e l 1 .
? l e v e l 1 s k o s : inScheme ? h i e r a r c h y 1 .
e d g a r : dtend qb : c o d e L i s t ? h i e r a r c h y 1 .</p>
      <p>?dimMem1 s k o s : n o t a t i o n ? v a l u e s 1 .
? obs e d g a r : segment ? v a l u e s 2 .</p>
      <p>? sli c er M em0 s k o s : member ? l e v e l 2 .
? l e v e l 2 s k o s : inScheme ? h i e r a r c h y 2 .
e d g a r : segment qb : c o d e L i s t ? h i e r a r c h y 2 .
? sli c er M em0 s k o s : exactMatch ? v a l u e s 2 . F i l t e r ( ?
sli c erMe m0 = e d g a r :
segmentAHealthCareInsuranceCompany
OR ? sl i cerM e m0 = e d g a r :</p>
      <p>s e g m e n t A R e s i d e n t i a l R e a l E s t a t e D e v e l o p e r M e m b e r )
? obs e g a r : CostOfGoodsSold ? measureValue0 .
} group by ?dimMem0 ?dimMem1
5</p>
    </sec>
    <sec id="sec-4">
      <title>Experiment</title>
      <p>In this section we demonstrate in a small experiment the applicability of our
OLAP-to-SPARQL mapping to our scenario from the financial domain. The
SecCubeGrossProfitMargin cube contains 17,448 disclosures that either disclose
cost of goods sold or sales revenue net. The values of the measures fully depend
on one of 625 different issuers, the date a disclosure started (27 members of
dimension Dtstart) and ended (20 members of Dtend) to be valid, and additional
information (21,227 members of Segment). The two measures have the unit USD
and an aggregation function that returns the number of disclosures, or - if only
one - the actual number. If fully materialised according to Definition 1, the cube
contains 626 · 28 · 21 · 21, 228 = 7, 813, 772, 064 facts. To compute all of its facts,
24 = 16 SPARQL subqueries would be needed.</p>
      <p>
        OLAP interface allow users to interactively combine OLAP operations into an
expression of an OLAP query language. Results of the query shall be visualised
using a pivot table, a compact format to display multidimensional data [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. As
far as we know, MDX is the most widely used OLAP query language, adopted
by OLAP engines such as Microsoft SQL Server, the Open Java API for OLAP,
XML for Analysis (XMLA), and Mondrian. Therefore, we show that an MDX
query can be transformed into an OLAP subcube query according to Definition 2
and evaluate the subcube query using a SPARQL query. The result is a subset of
all possible facts from a data cube. The pivot table determines what dimensions
to display on its columns and rows.
      </p>
      <p>In order to answer the OLAP question of our scenario, we created the
following MDX query. Multidimensional elements are described there using URIs.13
For an introduction to MDX, see its website.14 A more detailed description of
how to transform an MDX query into an OLAP query due to space constraints
we leave for future work when we evaluate our OLAP-to-SPARQL mapping more
thoroughly.
13 Note URIs need to be translated to an MDX-compliant format that does not use
reserved MDX-specific characters.
14 http://msdn.microsoft.com/en-us/library/aa216770%28v=sql.80%29.aspx
SELECT
{ edgar : cik1417907idConcept , edgar : c i k 1 0 6 5 3 5 i d C o n c e p t } ON</p>
      <p>COLUMNS,
C r o s s J o i n ( edgar : d t s t a r t R o o t L e v e l . Members , edgar :
dtendRootLevel . Members ) ON ROWS
FROM [ edgar : SecCubeGrossProfitMargin ]
WHERE { edgar : CostOfGoodsSold }</p>
      <p>A nested set of OLAP operations to compose our OLAP query is as follows:
S l i c e ( P r o j e c t i o n (
edgar : SecCubeGrossProfitMargin ,
edgar : CostOfGoodsSold ) ,
edgar : segment )</p>
      <p>This query can then be represented as a subcube query with dimensions
Issuer, Dtstart, Dtend, Segment: (?, ?, ?, ∗, CostOf GoodsSold). The resulting
SPARQL query is as follows:
s e l e c t ?dimMem0 ?dimMem1 ?dimMem2 count ( xsd : decimal ( ?
measureValue0 ) ) sum( xsd : decimal ( ? measureValue0 ) )
where {
? obs qb : da t aS et ? ds .
? ds qb : s t r u c t u r e edgar : SecCubeGrossProfitMargin .
? obs edgar : i s s u e r ? v a l u e s 0 .</p>
      <p>?dimMem0 s k o s : member ? l e v e l 0 .
? l e v e l 0 s k o s : inScheme ? h i e r a r c h y 0 .
edgar : i s s u e r qb : c o d e L i s t ? h i e r a r c h y 0 .</p>
      <p>?dimMem0 s k o s : exactMatch ? v a l u e s 0 .
? obs edgar : d t s t a r t ? v a l u e s 1 .</p>
      <p>?dimMem1 s k o s : member ? l e v e l 1 .
? l e v e l 1 s k o s : inScheme ? h i e r a r c h y 1 .
edgar : d t s t a r t qb : c o d e L i s t ? h i e r a r c h y 1 .</p>
      <p>?dimMem1 s k o s : n o t a t i o n ? v a l u e s 1 .
? obs edgar : dtend ? v a l u e s 2 .</p>
      <p>?dimMem2 s k o s : member ? l e v e l 2 .
? l e v e l 2 s k o s : inScheme ? h i e r a r c h y 2 .
edgar : dtend qb : c o d e L i s t ? h i e r a r c h y 2 .</p>
      <p>?dimMem2 s k o s : n o t a t i o n ? v a l u e s 2 .
? obs edgar : CostOfGoodsSold ? measureValue0 .
} group by ?dimMem0 ?dimMem1 ?dimMem2</p>
      <p>The aggregation function used is a non-standard one, therefore, we had to
compute the SUM and COUNT for the measure. We run the query after a reboot
of the triple store. The query took 18sec and returned 58 facts to be filled into
the requested pivot table. The number of 7, 813, 772, 064 potential facts in the
cube does not have a strong influence on the query since the cube is very sparse,
for instance, the triple store contains observations only for a fraction of segment
members.</p>
    </sec>
    <sec id="sec-5">
      <title>Discussion</title>
      <p>
        Data from the data cube is queried on demand, and no materialization is done.
We correctly aggregate data on one specific granularity, defined by the
mentioned inquired and fixed dimensions. Dimensions that are not mentioned will
be automatically handled as having an ALL value [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], representing all possible
values of the dimension. The aggregation results in correct calculations, since we
assume only one hierarchy-level per dimension in this work. Only if observations
would be defined on different granularities, e.g., gender male, female, and total,
aggregating over them would result in incorrect numbers.
      </p>
      <p>Filling the pivot table with measure values from the SPARQL result requires
matching of the member values for each fact for the following reasons: first, if
the data cube is sparse, i.e., not for every possible combination of members a
value is given, then, for non-occurring combinations the SPARQL query does
not return a value; second, all member combinations of inquired dimensions are
calculated, even though only specific combinations might be selected, as in the
case of the two issuers in the OLAP query of our scenario. Indexing of either
the pivot table or the SPARQL result table may allow faster population of the
pivot table.</p>
      <p>
        In summary, though our OLAP algebra to SPARQL mapping may not result
in the most efficient SPARQL query and require additional efforts for populating
the pivot table, it correctly computes all required facts from the data cube
without the need for explicitly introducing the non-relational ALL member or
using sub-queries [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
7
      </p>
    </sec>
    <sec id="sec-6">
      <title>Related Work</title>
      <p>
        Kobilarov and Dickinson [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] have combined browsing, faceted-search, and
querybuilding capabilities for more powerful Linked Data exploration, similar to OLAP,
but not focusing on statistical data. Though years have passed since then,
current literature on Linked Data interaction paradigms does not seem to expand
on analysing large amounts of statistics.
      </p>
      <p>
        OLAP query processing in general has long been a topic of research [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
OLAP operations have been defined on a logical level [
        <xref ref-type="bibr" rid="ref1 ref20 ref26">1, 20, 26</xref>
        ] or on a
conceptual level [
        <xref ref-type="bibr" rid="ref22 ref25 ref3">3,22,25</xref>
        ]. Execution of OLAP operations mainly is concerned with the
computation of the data cube and with storing parts of the results of that
computation to efficiently return the results, to require few disk or memory space,
and to remain easy to update if data sources change [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Approaches mainly
depend on the type of data structure on which to perform the computations
and in which to store the results. Data structures can roughly be grouped into
ROLAP, using relational tables and star or snowflake schemas, and MOLAP,
using multidimensional arrays for direct storing and querying of data cubes.
      </p>
      <p>
        Specific approaches regarding OLAP on Linked Data seem to have
concentrated so far on multidimensional modelling from ontologies [
        <xref ref-type="bibr" rid="ref15 ref16 ref17 ref6">6, 15–17</xref>
        ]. For
instance, Nebot et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] recognise the potential of OLAP to analyse RDF data,
but do not provide a dedicated query engine and require a multidimensional
database that needs to be updated if RDF data changes. Entity-centric object
databases [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] show some resemblance to OLAP querying, however, have so far
not been applied to Linked Data.
      </p>
      <p>In this work we use the graph-based RDF data model for querying and storing
of multidimensional data reusing QB. Here, both schema information and actual
data is accessed using Linked Data principles and managed using an RDF store.
Our approach focuses on OLAP queries that can be composed by common OLAP
operations and can be represented as a subcube query. Our mapping allows
translating OLAP queries into one SPARQL query to be run on the RDF without
storage of intermediate results. In our small experiment the produced SPARQL
query showed sufficiently fast, but queries are expected to become insufficient for
larger datasets. Since no materialization is done, only few extra space is required
for a hashmap to fill the pivot table with the SPARQL result set, and updates
to the RDF are propagated directly to OLAP clients. Although there may be
more efficient querying approaches such as special indexing and caching, to the
best of our knowledge, this is the first work on computing and querying of data
cubes represented in RDF.
8</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusions and Future Work</title>
      <p>We have presented an approach to interact with statistical Linked Data using
common Online Analytical Processing operations of “overview first, zoom and
filter, then details-on-demand”. For that, we define common OLAP operations
on single data cubes in RDF reusing the RDF Data Cube vocabulary, map nested
sets of OLAP operations to OLAP subcube queries, and evaluate those OLAP
queries using SPARQL. Both metadata and OLAP queries are issued directly
on a triple store; therefore, if the RDF is modified or updated, changes are
propagated directly to OLAP clients. Though, our OLAP-to-SPARQL mapping
may not result in the most efficient SPARQL query and require additional effort
in populating resulting pivot tables, we correctly calculate requested facts of a
data cube without the need for explicitly introducing the non-relational ALL
member or using subqueries.</p>
      <p>Future work may be conducted in three areas: 1) extending our current
approach with OLAP hierarchies and Drill-Across queries; 2) implementing an
OLAP engine to more thoroughly evaluate our current approach and to
investigate more efficient OLAP query execution plans; 3) investigating possible OLAP
clients that map OLAP operations to intuitive user interactions.</p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgements</title>
      <p>This work was supported by the German Ministry of Education and Research
(BMBF) within the SMART project (Ref. 02WM0800) and the European
Community’s Seventh Framework Programme FP7/2007-2013 (PlanetData, Grant
257641).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Agrawal</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gupta</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sarawagi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Modeling Multidimensional Databases</article-title>
          .
          <source>In: Proc. of the Thirteenth International Conference on Data Engineering</source>
          (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Chaudhuri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dayal</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>An overview of data warehousing and OLAP technology</article-title>
          .
          <source>ACM SIGMOD Record</source>
          <volume>26</volume>
          (
          <year>1997</year>
          )
          <fpage>65</fpage>
          -
          <lpage>74</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramakrishnan</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barford</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yegneswaran</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Composite Subset Measures</article-title>
          .
          <source>In: Proc. of the 32nd International Conference on Very Large Databases</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Codd</surname>
            ,
            <given-names>E. F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Codd</surname>
            ,
            <given-names>S. B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salley</surname>
          </string-name>
          , C. T.:
          <article-title>Providing OLAP to User-Analysts: An IT Mandate</article-title>
          . (
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cunningham</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Galindo-Legaria</surname>
            ,
            <given-names>C. A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Graefe</surname>
          </string-name>
          , G.:
          <article-title>PIVOT and UNPIVOT: optimization and execution strategies in an RDBMS</article-title>
          .
          <source>In: Proc. of the Thirtieth International Conference on Very Large Databases</source>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Diamantini</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Potena</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Semantic enrichment of strategic datacubes</article-title>
          .
          <source>In: Proc. of the ACM 11th international workshop on Data warehousing and OLAP</source>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. G´omez,
          <string-name>
            <surname>L. I.</surname>
          </string-name>
          , G´omez,
          <string-name>
            <given-names>S. A.</given-names>
            ,
            <surname>Vaisman</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. A.</surname>
          </string-name>
          :
          <article-title>A Generic Data Model and Query Language for Spatiotemporal OLAP Cube Analysis Categories and Subject Descriptors</article-title>
          .
          <source>In: Proc. of EDBT 2012</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Gray</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bosworth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lyaman</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pirahesh</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          :
          <article-title>Data cube: a relational aggregation operator generalizing GROUP-BY, CROSS-TAB, and SUB-TOTALS</article-title>
          .
          <source>In: Proc. of the Twelfth International Conference on Data Engineering</source>
          (
          <year>1995</year>
          )
          <fpage>152</fpage>
          -
          <lpage>159</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Harinarayan</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rajaraman</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Implementing data cubes efficiently</article-title>
          .
          <source>ACM SIGMOD Record</source>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Harth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>VisiNav: A system for visual search and navigation on web data</article-title>
          .
          <source>Journal of Web Semantics</source>
          <volume>8</volume>
          (
          <issue>4</issue>
          ) (
          <year>2010</year>
          )
          <fpage>348</fpage>
          -
          <lpage>354</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. K¨ampgen,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Harth</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Transforming Statistical Linked Data for Use in OLAP Systems</article-title>
          .
          <source>In: Proc. of I-Semantics 2011</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kobilarov</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dickinson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Humboldt: Exploring Linked Data</article-title>
          .
          <source>In: Proc. of Linked Data on the Web Workshop (LDOW</source>
          <year>2008</year>
          )
          <article-title>at WWW 2008</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          , Han,
          <string-name>
            <given-names>J</given-names>
            .,
            <surname>Gonzalez</surname>
          </string-name>
          , H.:
          <article-title>High-dimensional OLAP: a minimal cubing approach</article-title>
          .
          <source>In: Proc. of the Thirtieth International Conference on Very Large Databases</source>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Morfonios</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konakas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ioannidis</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kotsis</surname>
          </string-name>
          , N.:
          <article-title>ROLAP implementations of the data cube</article-title>
          .
          <source>ACM Computing Surveys</source>
          <volume>39</volume>
          (
          <year>2007</year>
          )
          <fpage>12</fpage>
          -
          <lpage>es</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Nebot</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berlanga</surname>
          </string-name>
          , R.:
          <article-title>Building data warehouses with semantic web data</article-title>
          .
          <source>Decision Support Systems</source>
          <volume>52</volume>
          (
          <year>2012</year>
          )
          <fpage>853</fpage>
          -
          <lpage>868</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Nebot</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berlanga</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , P´erez,
          <string-name>
            <given-names>J. M.</given-names>
            ,
            <surname>Aramburu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            ,
            <surname>Vej</surname>
          </string-name>
          ,
          <string-name>
            <surname>S. L.</surname>
          </string-name>
          :
          <article-title>Multidimensional Integrated Ontologies : A Framework for Designing Semantic Data Warehouses</article-title>
          .
          <source>Journal on Data Semantics</source>
          (
          <year>2009</year>
          )
          <fpage>1</fpage>
          -
          <lpage>36</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. Niinim¨aki,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Niemi</surname>
          </string-name>
          ,
          <string-name>
            <surname>T.</surname>
          </string-name>
          :
          <article-title>An ETL Process for OLAP Using RDF/OWL Ontologies</article-title>
          .
          <source>Journal on Data Semantics XIII</source>
          <volume>5530</volume>
          (
          <year>2009</year>
          )
          <fpage>97</fpage>
          -
          <lpage>119</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Pardillo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Maz´on, J.-N.:
          <article-title>Using Ontologies for the Design of Data Warehouses</article-title>
          .
          <source>International Journal of Database Management Systems</source>
          <volume>3</volume>
          (
          <year>2011</year>
          )
          <fpage>73</fpage>
          -
          <lpage>87</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Pardillo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Maz´on, J.-N.,
          <string-name>
            <surname>Trujillo</surname>
          </string-name>
          , J.:
          <article-title>Bridging the semantic gap in OLAP models: platform-independent queries</article-title>
          .
          <source>In: Proc. of the ACM 11th international workshop on Data warehousing and OLAP</source>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Pedersen</surname>
            ,
            <given-names>T. B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shoshani</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jensen</surname>
            ,
            <given-names>C. S.</given-names>
          </string-name>
          :
          <article-title>Object-extended OLAP querying</article-title>
          .
          <source>Data Knowl. Eng</source>
          .
          <volume>68</volume>
          (
          <year>2009</year>
          )
          <fpage>453</fpage>
          -
          <lpage>480</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Romero</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          , Abell´o,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Automating multidimensional design from ontologies</article-title>
          .
          <source>In: Proc. of the ACM tenth international workshop on Data warehousing and OLAP</source>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Romero</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          , Abell´o,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>On the Need of a Reference Algebra for OLAP</article-title>
          .
          <source>In: Proc. of DaWaK 2007</source>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Romero</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marcel</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , Abell´o,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Peralta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Bellatreche</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          :
          <article-title>Describing analytical sessions using a multidimensional algebra</article-title>
          .
          <source>In: Proc. of the 13th international conference on Data warehousing and knowledge discovery</source>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Shneiderman</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>The Eyes Have It : A Task by Data Type Taxonomy for Information Visualizations</article-title>
          . Information
          <string-name>
            <surname>Visualization</surname>
          </string-name>
          (
          <year>1996</year>
          )
          <fpage>336</fpage>
          -
          <lpage>343</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Trujillo</surname>
          </string-name>
          , J.:
          <article-title>Bridging the Semantic Gap in OLAP Models : Platform-independent Queries Categories</article-title>
          and
          <string-name>
            <given-names>Subject</given-names>
            <surname>Descriptors</surname>
          </string-name>
          .
          <source>Computing Systems</source>
          (
          <year>2008</year>
          )
          <fpage>89</fpage>
          -
          <lpage>96</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Vassiliadis</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : Modeling Multidimensional Databases, Cubes and
          <string-name>
            <given-names>Cube</given-names>
            <surname>Operations</surname>
          </string-name>
          .
          <source>In: Proc. of the 10th International Conference on Scientific and Statistical Database Management</source>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Vassiliadis</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sellis</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>A survey of logical models for OLAP databases</article-title>
          .
          <source>ACM Sigmod Record</source>
          <volume>28</volume>
          (
          <year>1999</year>
          )
          <fpage>64</fpage>
          -
          <lpage>69</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>