Your SlideShare is downloading. ×
SSN2013 Demo: tablet based visualization of transport data with SPARQLStream
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SSN2013 Demo: tablet based visualization of transport data with SPARQLStream


Published on

Published in: Technology, Business

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. ISWC 2013 SSN Workshop Demo: tablet-based visualisation of transport data in Madrid using SPARQLstream Jean-Paul Calbimonte, Alejandro Fernández Carrera, Oscar Corcho 22/10/2013 Ontology Engineering Group Facultad de Informática, Universidad Politécnica de Madrid,
  • 2. Sensor Networks and the Web users Volume Sensor Networks Velocity Variety WEB applications data streams Universal Web-based access to Sensor data 2
  • 3. EMT Bus transport in Madrid • EMT: Public transport company in Madrid 3
  • 4. Waiting times • How long do I wait for the next bus? Only in a few bus stops Have to physically go and watch EMT wants to be more WEB friendly 4
  • 5. EMT Web Services Bus stops EMT Services 443/geo/servicegeo.asmx getStopsLine getArriveStop <Stop> <IdStop>28</IdStop><PMV>61247</PMV> <Name>P CASTELLANA-JUZGADOS</Name> <PostalAdress>P de la Castellana, 187</PostalAdress> <CoordinateX>-3.68972639781606</CoordinateX> <CoordinateY>40.4650604583015</CoordinateY> </Stop> Bus waiting times <Arrives> <Arrive> <IdStop>30</IdStop> <idLine>5</idLine> <IsHead>True</IsHead> <Destination>CHAMARTIN</Destination> <IdBus>0000</IdBus> <TimeLeftBus>0</TimeLeftBus> <DistanceBus>16</DistanceBus> <PositionXBus>-1</PositionXBus> <PositionYBus>-1</PositionYBus> <PositionTypeBus>0</PositionTypeBus> </Arrive> Ad-hoc XML model Identifiers not web-friendly Not ready for integration w/ other datasets Working with EMT to define an Open Data strategy 5
  • 6. data as RDF W3C SSN Ontology static data Extracting data from EMT Bus stops <Stop> <IdStop>28</IdStop><PMV>61247</PMV> <Name>P CASTELLANA-JUZGADOS</Name> <PostalAdress>P de la Castellana, 187</PostalAdress> <CoordinateX>-3.68972639781606</CoordinateX> <CoordinateY>40.4650604583015</CoordinateY> </Stop> EMT Services 443/geo/servicegeo.asmx users applications 6
  • 7. Static part (bus stops) • Currently at: • • Graph: • All bus stops (query) • select distinct ?x where {?x a <>} • URI: • • (in the process of defining the URIs) • Could also be: or similar 7
  • 8. data as RDF W3C SSN Ontology static data Extracting data from EMT Bus stops <Stop> <IdStop>28</IdStop><PMV>61247</PMV> <Name>P CASTELLANA-JUZGADOS</Name> <PostalAdress>P de la Castellana, 187</PostalAdress> <CoordinateX>-3.68972639781606</CoordinateX> <CoordinateY>40.4650604583015</CoordinateY> </Stop> EMT Services Streaming data ? users applications 443/geo/servicegeo.asmx Bus waiting times Transform Bus waiting times to RDF Stream? 8
  • 9. EMT Live data streams Streaming data Morphstreams SPARQLStream queries users applications 9 EMT Services 443/geo/servicegeo.asmx Bus waiting times
  • 10. Endpoint available • We’ll be using this server for the hands-on: • • The instructions of a demo are on the github wiki: • • Register queries • Pull Data • Push data through websockets • Simple SPARQLStream endpoint 10
  • 11. Querying live data streams • Currently at: • • Example • SELECT DISTINCT ?timeto ?obs FROM NAMED STREAM <> [NOW - 59 S] WHERE { ?obs a <>. ?obs <><http://transporte.linkedd>. ?obs <> ?output. ?output <> ?av. ?av <> ?timeto. } 11
  • 12. Some commands in Linux • encoded_value=$(python -c "import urllib; print urllib.quote('''SELECT DISTINCT ?timeto ?obs FROM NAMED STREAM <> [NOW - 30 S] WHERE { ?obs a <>. ?obs <><ht tp://>. ?obs < t> ?output. ?output <> ?av. ?av < 12
  • 13. Sample result { "head": { "vars": [ "timeto" , "obs" ] }, "results": { "bindings": [ { "timeto": { "datatype": "" , "type": "typed-literal" , "value": "0" } , "obs": { "type": "uri" , "value": " 2013%2010:28:19%20%2B0200" } } ] } } 13
  • 14. Configuring Morph-streams • Main ingredients: 1. Data streams Link both models 2. Ontology (network) 3. R2RML mappings 14
  • 15. SSN Ontology with other ontologies W3C SSN Ontology tool for modeling our sensor data combine with domain ontologies 15
  • 16. R2RML mappings busObservation a rr:TriplesMap; rr:logicalTable :emtStream; rr:subjectMap [ rr:template "{stopid}/busline/{lineid}/observation/{timed}"; rr:class emt:BusObservation; rr:graph emt:busstops.srdf ]; rr:predicateObjectMap [ rr:predicateMap [ rr:constant ssn:observedProperty ]; rr:objectMap [ rr:constant emt:time_to_bus ]]; rr:predicateObjectMap [ rr:predicateMap [ rr:constant ssn:observationResult ]; rr:objectMap [ rr:parentTriplesMap :busOutput; rr:joinCondition "" ]]; busOutput a rr:TriplesMap; rr:logicalTable :emtStream; … 16
  • 17. morph-streams: Ontology-based query rewriting SELECT ?waittime ?stop FROM NAMED STREAM <> [NOW 300 S] WHERE { ?obs a emt:BusObservation; ssn:observedBy ?stop. ssn:observationResult ?result. ?result emt:timeToBusValue ?av. ?av qudt:numericValue ?waittime. } ω 300 second emt SELECT timetobus, stopid FROM second) Query rewriting SPARQLStream Client π Timetobus,stopid Algebra expression R2RML Mappings [triples/bin dings] Esper Query Processing Data translation [tuples] GSN pull/push Cosm Other SPARQLStream query processing 17
  • 18. SPARQLStream query Get Bus waiting times for a stop URI SPARQL endpoint Map4RDF iOS SPARQLStream endpoint EMT Map4RDF iOS SPARQL query Get Bus stops data and location 18 Morph-streams EMT Live Services R2RML Mappings Waiting times feed
  • 19. Map4RDF iOS 19
  • 20. Conclusions • A bit of evangelization at EMT • • • • • Use of Web standards for Open Data Use URIs for identifying stops, bus lines, etc Use well defined sensor ontologies (SSN) Use standard geolocation vocabularies Mix static and streaming dat through URIs • From the developer point of view • JSON results easy to consume • SPARQLstream endpoint through HTTP GET • The Demo is a very simple but practical example of how this can be done fairly easily 20