1. Rui Pereira, Jácome Cunha, João Paulo Fernandes,
Jorge Mendes and João Saraiva
Embedding Model-Driven Spreadsheet
Queries in Spreadsheet Systems
VL/HCC 2014
Melbourne, Australia
2. Problem: Querying Spreadsheets
1
› “poor man’s database”
› No way to query what data they contain
Spreadsheets are generally used to store information
Attempts to replicate traditional querying systems
› Highly restrict user’s spreadsheet data
› Denormalization
› Headers present
› Column letters ≠ Column labels
› Data evolution not supported
4. 3
Google QUERY Function
Question – What was the total per year, in decreasing
order, from 2010 onwards?
=query(A1:E53;”SELECT A, sum(E) WHERE A >= 2010
GROUP BY A ORDER BY sum(E) DESC”)
5. 4
QuerySheet
Question – What was the total per year, in decreasing
order, from 2010 onwards?
SELECT Year, sum(Total)
WHERE Year >= 2010
GROUP BY Year
Order BY sum(Total) DESC
6. 5
Previous Empirical Study
› Easier to construct queries
› Intuitive and Understandable queries
› Productive/Faster
Our goal with Model-Driven Querying:
› Semantic errors
› Syntax errors
› Low SQL knowledge Construction still difficult
Recurring problem among participants:
7. 6
Embedded Spreadsheet SQL
› Guide end-users in constructing queries
› Reduce the number of errors
› Continue taking advantage of positive aspects of
QuerySheet
› SQL knowledge not needed
12. 10
Conclusions and Future Work
› Approach built on model-driven querying language
› Visual query construction
› Elimination of construction errors
› Fully embedded model-driven querying system
› Synchronization between model, instance, and query
Embedded Spreadsheet SQL
We still need to:
› Add missing expressions to the Embedded Query
› Validation through empirical study
13. Rui Pereira, Jácome Cunha, João Paulo Fernandes,
Jorge Mendes and João Saraiva
Embedding Model-Driven Spreadsheet
Queries in Spreadsheet Systems
VL/HCC 2014
Melbourne, Australia
Editor's Notes
Now with our query model, which is also synchronized with the model, will only present valid attributes and queriable values.
The first query model is devised from the ClassSheet, but when the ClassSheet evolves, the Query model also evolves, maintaining the Query and ClassSheet model synchronized