SlideShare a Scribd company logo
1 of 20
Download to read offline
Een relationele interface voor
Promotoren:
Leen Brouns
Tim De Pauw
Bart Van Loon
Kader
2009: ex-The DataTank
2010: iRail.be vs. NMBS
2011: data.gov.be & psi.belgium.be
2012: Open Knowledge Foundation vzw
Kader
Waarom beter wel?
PHP5.3 data-adapter RESTful
small data: 1 HTTP-request
betekenis toevoegen
RDF
Resource Description Framework
The Semantic Web
Architectuur
Genoeg?
auto-documentatie
statistieken
semantiek
feedback
5 sterren van open data
errorhandling
webformats
REST
Een relationele interface
Voor data-consumenten:
● Selecteren
● Filteren
● Sorteren
● Limiteren
● Aggregeren
Extra: semantiek
SQL
● Enkel tabulaire data
● Geen semantiek
SPARQL
● Enkel semantiek
● Drempel te hoog?
HTSQL
● Enkel tabulaire data
● Interessante syntaxis
SELECT X FROM Y WHERE A<B
SELECT ?lib WHERE { ?lib is_a schema:library}
http://.../library{name,count(department)}
SPECTQL
● Geïnspireerd door HTSQL
● 5 acties via GET
● Extra laag boven REST
● Test-omgeving: http://hostname/spectql
Spectql Provides an Easy and Concise The datatank Query Language
data.iRail.be/spectql
Architectuur
Architectuur + SPECTQL
Parser-generator
Bison/Yacc
● Leest grammatica en genereert parser
● Geen bison-bibliotheek in eindproduct vereist
● PHP-support in alpha
Lemon
● Vereist bibliotheek in eindproduct
● Gelijkaardige syntaxis grammatica
● Geen PHP-support
Lime
● Lemon-clone voor PHP
Grammatica
%class spectql
%left '&'
%left '|'
%left '+' '-'
%left '*' '/'
%left '>' EQ '<' '~'
stmt = expression
| expression ':' format
.
expression = resource/$ '?' filterlist { $3-> execute($$); }
| resource
| calc { $$ = $1->execute(); }
.
vertalen naar PHP
$ lime spectql.lime > spectql.class.php
SPECTQLTokenizer
Verloop
Router
ParseTree
SPECTQLController
http://.../spectql/query
/query
SPECTQLParser
/query
array(tokens)
Calc Link Select
... ... ... ...
execute()
Toekomst
● Semantiek in SPECTQL
● Sorteermechanismen: geo, string, int ...
● Meegeleverd met The DataTank 2.0
○ maart 2012
● The DataTank op semtech - 6 februari
● The DataTank gebruikt door
○ iRail: API v2.0 in maart
○ Apps For X - evenementen
○ FlatTurtle bvba
○ IBBT - MultiMediaLab
○ TeleTicketService
○ Nog veel meer...
Bedankt
Q&A
Credits
● RDF Graph: CC BY NC SA - Peter Morville

More Related Content

More from Pieter Colpaert

More from Pieter Colpaert (14)

Apps For Flanders
Apps For FlandersApps For Flanders
Apps For Flanders
 
[Okfn] sncf
[Okfn] sncf[Okfn] sncf
[Okfn] sncf
 
Apps For Flanders at Random Hacks of Kindness
Apps For Flanders at Random Hacks of KindnessApps For Flanders at Random Hacks of Kindness
Apps For Flanders at Random Hacks of Kindness
 
V-ICT-OR Shopt IT - OKFN Belgium
V-ICT-OR Shopt IT - OKFN BelgiumV-ICT-OR Shopt IT - OKFN Belgium
V-ICT-OR Shopt IT - OKFN Belgium
 
The DataTank @ weblinks barcamp
The DataTank @ weblinks barcampThe DataTank @ weblinks barcamp
The DataTank @ weblinks barcamp
 
Creatic
CreaticCreatic
Creatic
 
The DataTank at ogdcamp Warsaw
The DataTank at ogdcamp WarsawThe DataTank at ogdcamp Warsaw
The DataTank at ogdcamp Warsaw
 
iRail summer of code
iRail summer of codeiRail summer of code
iRail summer of code
 
Open data with public transport at GentM
Open data with public transport at GentMOpen data with public transport at GentM
Open data with public transport at GentM
 
iRail fosdem
iRail fosdemiRail fosdem
iRail fosdem
 
iRail at hack democracy
iRail at hack democracyiRail at hack democracy
iRail at hack democracy
 
iRail meetup
iRail meetupiRail meetup
iRail meetup
 
Bash 4
Bash 4Bash 4
Bash 4
 
Free culture
Free cultureFree culture
Free culture
 

Verdediging masterproef