Upload
javadch
View
63
Download
2
Embed Size (px)
Citation preview
An Introduction to the QUIS Language
Javad ChamanaraUniversity 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, …
Moti
vatio
n
To define the query in a uniform way and QUIS it Equally
on various Data Sources to have a proper Result back
Obj
ectiv
es
How it worksSE
LECT
Source Select
Operation
Filter
Persistent ContainerMemory variable
Target
Plot
Persistent ContainerMemory variableJoined
Container
Order
Group
Limit
Aggregate
Transform
The shortest query statement
SELECT FROM ds1.0Que
ryData 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
Que
ry
A statement with a CONNECTION
CONNECTION cnn1 ADAPTER=CSV SOURCE_URI="D:\Projects\MoSD\Data\"BIND ds1 CONNECTION=cnn1 SCOPE=xdata_10, udata
SELECT FROM ds1.0 INTO var1
Que
ry
Using result sets of previous queries
CONNECTION cnn1 ADAPTER=CSV SOURCE_URI="D:\Projects\Soil\Data\"BIND ds1 CONNECTION=cnn1 SCOPE=xdata_10, udata
SELECT FROM ds1.0 INTO var1SELECT FROM var1 INTO var2 ORDER BY temp
Que
ry
Joining two files (containers)
CONNECTION cnn1 ADAPTER=CSV SOURCE_URI="D:\Projects\Soil\Data\"BIND ds1 CONNECTION=cnn1 SCOPE=data1, data2, udata
SELECT FROM ds1.data1 INNER JOIN ds1.data2 ON xk == yk INTO joined
Que
ry
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
Que
ry
Hierarchical virtual schemasPERSPECTIVE 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
Que
ry
The SELECT clausesSELECT USING PERSPECTIVE observation FROM ds1.0 INTO var1
WHERE (Temperature > 50)ORDER BY Elevation ASCLIMIT SKIP 1 TAKE 20
Que
ry
Utilizing functionsATTRIBUTE 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)
Que
ry
StreamingSELECT USING PERS observation FROM ds1.0
INTO ds1.1WHERE (Temperature > 50 AND Elevation >= 32 AND Elevation < 50)
Que
ry
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
Que
ry
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
Plot
s
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
Mea
n Te
mpe
ratu
re C
°2014 Average Daily Temperature at SFO
SELECT features FROM scope WHERE (status == implemented)
Sum
Up
Source
Data SourceVariable
Operations
ProjectionFilteringOrderingGroupingLimiting
Target
VariableData SourcePlot
Adapters
CSV/ExcelMemoryDBMS
Thanks for your attentionFe
edba
ck
Source is available at: github.com/javadchBinary is available at: http://fusion.cs.uni-jena.de/javad/quis/