an itroduction to the quis language

Post on 21-Mar-2017

63 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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/

top related