SlideShare a Scribd company logo
An Introduction to the QUIS Language
Javad Chamanara
University of Jena, Germany
MoSD course 2016
• Various tools
– R, Matlab, …
• Various languages
– SQL, Python, C, …
• Different data sources and formats
– Tables, sheets, flat files, …
• Transforming data for tool integration
• Similar concepts different presentations
• Sharing, reproduction, …
Motivation
To define the query in a uniform
way and QUIS it Equally
on various Data Sources to have a
proper Result back
Objectives
How it works
SELECT
Source
Select
Operation
Filter
Persistent
Container
Memory
variable
Target
Plot
Persistent
Container
Memory
variable
Joined
Container
Order
Group
Limit
Aggregate
Transform
The shortest query statement
SELECT FROM ds1.0
Query
Data Source:
Database, Folder, Book,
graph
Data Container:
Table, file, sheet, …
A statement with a Data Source
BIND ds1 CONNECTION=cnn1
SCOPE=xdata_10, udata
SELECT FROM ds1.0 INTO var1
Query
A statement with a CONNECTION
CONNECTION cnn1 ADAPTER=CSV
SOURCE_URI="D:ProjectsMoSDData"
BIND ds1 CONNECTION=cnn1 SCOPE=xdata_10, udata
SELECT FROM ds1.0 INTO var1
Query
Using result sets of previous queries
CONNECTION cnn1 ADAPTER=CSV
SOURCE_URI="D:ProjectsSoilData"
BIND ds1 CONNECTION=cnn1 SCOPE=xdata_10, udata
SELECT FROM ds1.0 INTO var1
SELECT FROM var1 INTO var2 ORDER BY
temp
Query
Joining two files (containers)
CONNECTION cnn1 ADAPTER=CSV
SOURCE_URI="D:ProjectsSoilData"
BIND ds1 CONNECTION=cnn1 SCOPE=data1, data2, udata
SELECT FROM ds1.data1 INNER JOIN
ds1.data2 ON xk == yk INTO joined
Query
Adding virtual schemas
PERSPECTIVE observation
{
ATTRIBUTE Temperature: Real MapTo = 1.8 * temperature + 32,
ATTRIBUTE SN: Real MapTo = soilNi / 1000,
}
SELECT USING PERS observation FROM ds1.0 INTO
var1
Query
Hierarchical virtual schemas
PERSPECTIVE location
{
ATTRIBUTE Longitude: Real MapTo = longitude,
ATTRIBUTE Latitude: Real MapTo = latitude,
ATTRIBUTE Elevation: Real MapTo = elevation / 0.3048,
}
PERSPECTIVE observation EXTENDS location
{
ATTRIBUTE Temperature: Real MapTo = 1.8 * temperature + 32,
ATTRIBUTE SN: Real MapTo = soilNi / 1000,
}
SELECT USING PERSPECTIVE observation FROM ds1.0 INTO var1
Query
The SELECT clauses
SELECT USING PERSPECTIVE observation FROM ds1.0 INTO var1
WHERE (Temperature > 50)
ORDER BY Elevation ASC
LIMIT SKIP 1 TAKE 20
Query
Utilizing functions
ATTRIBUTE ObsTime: Date MapTo = str.toDate(obs_time,
"HH:mm"),
ATTRIBUTE meanTemp: Real MapTo = avg(temperature),
SELECT USING PERS INLINE sum(rank) as tRank,
employee as e FROM ds1.0 INTO var1
WHERE (math.log(math.abs(pIndex))> 3)
Query
Streaming
SELECT USING PERS observation FROM ds1.0
INTO ds1.1
WHERE (Temperature > 50 AND Elevation >= 32 AND
Elevation < 50)
Query
SELECT FROM b2.0 INNER JOIN b2.1 ON PK <> FK
INTO PLOT p3 hax:Elevation v-axis:R.Temperature
pt:l hl:"Elevation (F)" vl:"Temperature (F)"
pl:"Temperature and Elevation"
WHERE (R.Temperature > 0)
ORDER BY Elevation
Query
SELECT FROM b2.0 PERS PLeft INNER JOIN b2.1 PERS PRight
ON PK <> FK
INTO PLOT p3 hax:Elevation v-axis:R.Temperature pt:l hl:"Elevation
(F)" vl:"Temperature (F)" pl:"Temperature and Elevation"
WHERE (R.Temperature > 0) ORDER BY Elevation
Plots
RQUIS
• A package for R users
• To access QUIS functionalities
• To facilitate heterogeneous data access
• In a unified manner
• Using one langauge
library(RQUIS)
library(ggplot2)
library(scales)
library(plyr)
engine <- quis.getEngine()
file <- system.file("extdata",
"ex1.xqt", package="RQUIS")
ld <- quis.loadProcess(engine, file)
rn <- quis.runProcess(engine)
err <- quis.getRunReport(engine)
data <- quis.getVariable(engine,
"meanDailyTemp")
schema <-
quis.getVariableSchema(engine,
"meanDailyTemp")
ggplot(data, aes(dayindex,
meantemp)) + geom_line() +
xlab("") + ylab("Mean Temperature
C°") +
ggtitle("2014 Average Daily
Temperature at SFO")
ggplot(data, aes(dayindex,
meantemp)) + geom_line() +
xlab("") + ylab("Mean Temperature
C°") +
ggtitle("2014 Average Daily
Temperature at SFO")
10
12
14
0 10 20 30
MeanTemperatureC°
2014 Average Daily Temperature at SFO
SELECT features FROM scope WHERE
(status == implemented)
SumUp
Source
Data Source
Variable
Operations
Projection
Filtering
Ordering
Grouping
Limiting
Target
Variable
Data Source
Plot
Adapters
CSV/Excel
Memory
DBMS
Thanks for your attention
Feedback
Source is available at: github.com/javadch
Binary is available at: http://fusion.cs.uni-jena.de/javad/quis/

More Related Content

PDF
Apache Solr lessons learned
PDF
Extending Spark for Qbeast's SQL Data Source​ with Paola Pardo and Cesare Cug...
PPTX
Query Reranking As A Service
PDF
Basic and logical implementation of r language
PDF
Vba vitals cheat sheet
PPTX
Apache Spark - Aram Mkrtchyan
PPT
IR-ranking
PPTX
2 the conceptual model
Apache Solr lessons learned
Extending Spark for Qbeast's SQL Data Source​ with Paola Pardo and Cesare Cug...
Query Reranking As A Service
Basic and logical implementation of r language
Vba vitals cheat sheet
Apache Spark - Aram Mkrtchyan
IR-ranking
2 the conceptual model

Viewers also liked (19)

PDF
Los envejecientes
PDF
Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di t...
PPTX
7 Source Control and Release Management
PPTX
Media technologies used
PPT
Pantallazos genesis 2
PPTX
Präsentation
PDF
Paul Bartz Recommendation Letter 1
PPTX
Kristin's Team---UR Conference Poster
PPTX
Preservemos nuestro ecosistema proyecto tita expotita
PDF
system on chip for telecommand system design
PPTX
soc ip core based for spacecraft application
PPTX
Addressing the OWASP Mobile Security Threats using Xamarin
PPT
Conceptual Approach
PPTX
What is big data?
PPT
Jensen Sterilitaet (1)
PPTX
Valoriser votre hébergement avec Gîtes de France
PPT
Big data ppt
PPTX
What is Big Data?
PPTX
Big data ppt
Los envejecientes
Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di t...
7 Source Control and Release Management
Media technologies used
Pantallazos genesis 2
Präsentation
Paul Bartz Recommendation Letter 1
Kristin's Team---UR Conference Poster
Preservemos nuestro ecosistema proyecto tita expotita
system on chip for telecommand system design
soc ip core based for spacecraft application
Addressing the OWASP Mobile Security Threats using Xamarin
Conceptual Approach
What is big data?
Jensen Sterilitaet (1)
Valoriser votre hébergement avec Gîtes de France
Big data ppt
What is Big Data?
Big data ppt
Ad

Similar to An Itroduction to the QUIS Language (20)

PPTX
Mindmap: Oracle to Couchbase for developers
PDF
What's new with Apache Spark's Structured Streaming?
PPTX
R language introduction
PPTX
CSMR: A Scalable Algorithm for Text Clustering with Cosine Similarity and Map...
PDF
Apache cassandra & apache spark for time series data
PDF
Easy, Scalable, Fault-tolerant stream processing with Structured Streaming in...
PPTX
R You Ready? An I/O Psychologist's Guide to R and Rstudio
PPTX
Flink Forward SF 2017: Timo Walther - Table & SQL API – unified APIs for bat...
PPT
Slides
PDF
managing big data
PPT
PPTX
Kafka Summit NYC 2017 - Easy, Scalable, Fault-tolerant Stream Processing with...
PDF
Spark Summit EU talk by Herman van Hovell
PDF
Text Mining Applied to SQL Queries: a Case Study for SDSS SkyServer
PDF
RUCK 2017 MxNet과 R을 연동한 딥러닝 소개
PPT
MapReduceAlgorithms.ppt
PDF
Beyond SQL: Speeding up Spark with DataFrames
PDF
Easy, scalable, fault tolerant stream processing with structured streaming - ...
PPTX
Meetup tensorframes
PDF
A Mapping-based Method to Query MongoDB Documents with SPARQL
Mindmap: Oracle to Couchbase for developers
What's new with Apache Spark's Structured Streaming?
R language introduction
CSMR: A Scalable Algorithm for Text Clustering with Cosine Similarity and Map...
Apache cassandra & apache spark for time series data
Easy, Scalable, Fault-tolerant stream processing with Structured Streaming in...
R You Ready? An I/O Psychologist's Guide to R and Rstudio
Flink Forward SF 2017: Timo Walther - Table & SQL API – unified APIs for bat...
Slides
managing big data
Kafka Summit NYC 2017 - Easy, Scalable, Fault-tolerant Stream Processing with...
Spark Summit EU talk by Herman van Hovell
Text Mining Applied to SQL Queries: a Case Study for SDSS SkyServer
RUCK 2017 MxNet과 R을 연동한 딥러닝 소개
MapReduceAlgorithms.ppt
Beyond SQL: Speeding up Spark with DataFrames
Easy, scalable, fault tolerant stream processing with structured streaming - ...
Meetup tensorframes
A Mapping-based Method to Query MongoDB Documents with SPARQL
Ad

More from javadch (11)

PDF
Data Lifecycle is not a Cycle, but a Plane!
PPTX
Scrum Project Management with Jira as showcase
PPTX
8 implementation notes
PPTX
6 The UI Structure and The Web API
PPTX
5 BEXIS Extensibility
PPTX
Research Data Management, BExIS Hands-On Workshop
PPTX
Added Value of Conceptual Modeling in Geosciences
PPTX
4 the 3rd party libraries
PPTX
3 the system architecture
PPTX
1 the big picture
PPTX
SciQL: A Scientific Query Language
Data Lifecycle is not a Cycle, but a Plane!
Scrum Project Management with Jira as showcase
8 implementation notes
6 The UI Structure and The Web API
5 BEXIS Extensibility
Research Data Management, BExIS Hands-On Workshop
Added Value of Conceptual Modeling in Geosciences
4 the 3rd party libraries
3 the system architecture
1 the big picture
SciQL: A Scientific Query Language

Recently uploaded (20)

PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
System and Network Administration Chapter 2
PDF
Cost to Outsource Software Development in 2025
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
System and Network Administraation Chapter 3
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Design an Analysis of Algorithms II-SECS-1021-03
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Designing Intelligence for the Shop Floor.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
iTop VPN Free 5.6.0.5262 Crack latest version 2025
CHAPTER 2 - PM Management and IT Context
Why Generative AI is the Future of Content, Code & Creativity?
System and Network Administration Chapter 2
Cost to Outsource Software Development in 2025
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Odoo POS Development Services by CandidRoot Solutions
Reimagine Home Health with the Power of Agentic AI​
Adobe Illustrator 28.6 Crack My Vision of Vector Design
System and Network Administraation Chapter 3
Wondershare Filmora 15 Crack With Activation Key [2025
Navsoft: AI-Powered Business Solutions & Custom Software Development
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx

An Itroduction to the QUIS Language

  • 1. An Introduction to the QUIS Language Javad Chamanara University of Jena, Germany MoSD course 2016
  • 2. • Various tools – R, Matlab, … • Various languages – SQL, Python, C, … • Different data sources and formats – Tables, sheets, flat files, … • Transforming data for tool integration • Similar concepts different presentations • Sharing, reproduction, … Motivation
  • 3. To define the query in a uniform way and QUIS it Equally on various Data Sources to have a proper Result back Objectives
  • 5. The shortest query statement SELECT FROM ds1.0 Query Data Source: Database, Folder, Book, graph Data Container: Table, file, sheet, …
  • 6. A statement with a Data Source BIND ds1 CONNECTION=cnn1 SCOPE=xdata_10, udata SELECT FROM ds1.0 INTO var1 Query
  • 7. A statement with a CONNECTION CONNECTION cnn1 ADAPTER=CSV SOURCE_URI="D:ProjectsMoSDData" BIND ds1 CONNECTION=cnn1 SCOPE=xdata_10, udata SELECT FROM ds1.0 INTO var1 Query
  • 8. Using result sets of previous queries CONNECTION cnn1 ADAPTER=CSV SOURCE_URI="D:ProjectsSoilData" BIND ds1 CONNECTION=cnn1 SCOPE=xdata_10, udata SELECT FROM ds1.0 INTO var1 SELECT FROM var1 INTO var2 ORDER BY temp Query
  • 9. Joining two files (containers) CONNECTION cnn1 ADAPTER=CSV SOURCE_URI="D:ProjectsSoilData" BIND ds1 CONNECTION=cnn1 SCOPE=data1, data2, udata SELECT FROM ds1.data1 INNER JOIN ds1.data2 ON xk == yk INTO joined Query
  • 10. Adding virtual schemas PERSPECTIVE observation { ATTRIBUTE Temperature: Real MapTo = 1.8 * temperature + 32, ATTRIBUTE SN: Real MapTo = soilNi / 1000, } SELECT USING PERS observation FROM ds1.0 INTO var1 Query
  • 11. Hierarchical virtual schemas PERSPECTIVE location { ATTRIBUTE Longitude: Real MapTo = longitude, ATTRIBUTE Latitude: Real MapTo = latitude, ATTRIBUTE Elevation: Real MapTo = elevation / 0.3048, } PERSPECTIVE observation EXTENDS location { ATTRIBUTE Temperature: Real MapTo = 1.8 * temperature + 32, ATTRIBUTE SN: Real MapTo = soilNi / 1000, } SELECT USING PERSPECTIVE observation FROM ds1.0 INTO var1 Query
  • 12. The SELECT clauses SELECT USING PERSPECTIVE observation FROM ds1.0 INTO var1 WHERE (Temperature > 50) ORDER BY Elevation ASC LIMIT SKIP 1 TAKE 20 Query
  • 13. Utilizing functions ATTRIBUTE ObsTime: Date MapTo = str.toDate(obs_time, "HH:mm"), ATTRIBUTE meanTemp: Real MapTo = avg(temperature), SELECT USING PERS INLINE sum(rank) as tRank, employee as e FROM ds1.0 INTO var1 WHERE (math.log(math.abs(pIndex))> 3) Query
  • 14. Streaming SELECT USING PERS observation FROM ds1.0 INTO ds1.1 WHERE (Temperature > 50 AND Elevation >= 32 AND Elevation < 50) Query
  • 15. SELECT FROM b2.0 INNER JOIN b2.1 ON PK <> FK INTO PLOT p3 hax:Elevation v-axis:R.Temperature pt:l hl:"Elevation (F)" vl:"Temperature (F)" pl:"Temperature and Elevation" WHERE (R.Temperature > 0) ORDER BY Elevation Query
  • 16. SELECT FROM b2.0 PERS PLeft INNER JOIN b2.1 PERS PRight ON PK <> FK INTO PLOT p3 hax:Elevation v-axis:R.Temperature pt:l hl:"Elevation (F)" vl:"Temperature (F)" pl:"Temperature and Elevation" WHERE (R.Temperature > 0) ORDER BY Elevation Plots
  • 17. RQUIS • A package for R users • To access QUIS functionalities • To facilitate heterogeneous data access • In a unified manner • Using one langauge
  • 20. file <- system.file("extdata", "ex1.xqt", package="RQUIS") ld <- quis.loadProcess(engine, file)
  • 21. rn <- quis.runProcess(engine) err <- quis.getRunReport(engine)
  • 22. data <- quis.getVariable(engine, "meanDailyTemp") schema <- quis.getVariableSchema(engine, "meanDailyTemp")
  • 23. ggplot(data, aes(dayindex, meantemp)) + geom_line() + xlab("") + ylab("Mean Temperature C°") + ggtitle("2014 Average Daily Temperature at SFO")
  • 24. ggplot(data, aes(dayindex, meantemp)) + geom_line() + xlab("") + ylab("Mean Temperature C°") + ggtitle("2014 Average Daily Temperature at SFO") 10 12 14 0 10 20 30 MeanTemperatureC° 2014 Average Daily Temperature at SFO
  • 25. SELECT features FROM scope WHERE (status == implemented) SumUp Source Data Source Variable Operations Projection Filtering Ordering Grouping Limiting Target Variable Data Source Plot Adapters CSV/Excel Memory DBMS
  • 26. Thanks for your attention Feedback Source is available at: github.com/javadch Binary is available at: http://fusion.cs.uni-jena.de/javad/quis/

Editor's Notes

  • #3: QUIS is a language and a runtime system that accepts queries like this one and executes them equally on different source. The QUIS language is more than just a SELECT statement, but the paper is about the data retrieval facility Result can be a perspective based collection (conceptual), a file or persisted set or a visualization. Use of SQL like syntax is intentional
  • #6: Shortest query statement ds1 is a data source which based on the actual source can be a folder (containing data files), a relational database in an RDBMS, a spreadsheet book, or a graph in a GDBMS. 0 in the index (referring to the name of) a data container which can respectively be a file, a table, a sheet, or a (sub)graph
  • #7: Defines the visibility scope/ Defines the versioning if any
  • #8: Defines the information needed to connect to the data source. Its possible to have more than one connections. BINDs can point to connections freely. Up to now, the return type is explicitly defined by the physical structure of the underlying data
  • #11: Defines the conceptual entity, provides a higher abstraction level A base for Semantic queries, smart id Can inherit Can have forward and/or reverse mappings
  • #12: If you change the SELECT’s perspective to “geo” the return value contains just long, lat, elevation
  • #13: INTO: memory variable, plot, external container Temperature is comming from the perspective, so its in Fahrenheit Elevation is comming from the perspective, so its in foot
  • #14: Aggregate functions Default functions Packages Inline perspective
  • #15: Streams the query result into a persistent media like a file Low memory footprint Good for large amount of data the result set tuples are of type observation! Ordering or aggregation affects the streaming
  • #16: A complex pipe line Select from a JOIN, filter and order then present the result as a plot
  • #21: The QUIS process file can be in an external file or be written inline
  • #26: The SELCECT statement works as a gateway. It accepts data from various sources, applies the operations on it and directs the resulting data to a designated target. The colors on features show the implementation, the darker the more.