Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Energy to Live

Energy to Live

The Energy to Live project was created during the course "Semantic Technologies" at Graz University of Technology.

F9bf9c0311137e6c4878d74cd54a8e41?s=128

Maximilian Fellner

January 18, 2012
Tweet

More Decks by Maximilian Fellner

Other Decks in Technology

Transcript

  1. Energy to Live Android, Spring und Sesame Maximilian Fellner Sumann

    Florian Solic Gernot
  2. Überblick ›  „Energy to Live“ ›  Android ›  Spring Web

    REST-API ›  Spring SPARQL Workbench
  3. flickr.com/photos/pagedooley/4370352638

  4. flickr.com/photos/riot/3195335908

  5. Energy to Live ›  Aufzeichnen vom Energieverbrauch ›  Fahrzeugrouten › 

    Routendaten sammeln ›  GPS Daten ›  Routendaten speichern ›  RDF Triple – Store (Sesame) ›  Routendaten anzeigen ›  SPARQL Abfragen
  6. Client – Server Architektur ›  Client - Android + GPS

    ›  Server - Tomcat (Java) ›  Sesame Triple-Store ›  Spring Framework ›  REST-API (Client-Server Kommunikation) ›  Workbench (Browser + SPARQL)
  7. Architektur Design

  8. Android – “Energy2Live”

  9. flickr.com/photos/mikeancient/2235415860

  10. “Energy2Live” ›  Tracks aufzeichnen ›  oder manuell eingeben

  11. “Energy2Live” ›  Lokaler SQLite Speicher ›  OrmLite ›  Annotierte Model-Klassen

    ›  Adapter-Pattern ›  Vorteile ›  Lokale Persistenz ›  Interkompatibilität
  12. “Energy2Live” ›  Upload zum server (XStream) <st.energy2live.data.track.TrackLog>! <vehicle class="st.energy2live.data.vehicle.VehicleA">! <name>Golf</name>!

    <manuFacturer>VW</manuFacturer>! <fuelConsumtion>7.5</fuelConsumtion>! <id>1</id>! </vehicle>! <trackPoints>! <st.energy2live.data.track.TrackPoint>! <dateTime>2012-01-18 08:59:21.496 UTC</dateTime>! <point>! <latitude>47.0574579</latitude>! <longitude>15.4731218</longitude>! </point>! </st.energy2live.data.track.TrackPoint>! </trackPoints>! <trackDistance>122.0</trackDistance>! </st.energy2live.data.track.TrackLog>!
  13. Client-Server Kommunikation

  14. Client-Server Kommunikation ›  REST - HTTP ›  Tomcat + Spring

    ›  Request - Response ›  Aktionen ›  Benutzer erstellen ›  Anmelden ›  Routen erstellen
  15. Client-Server Kommunikation ›  Neuen Benutzer anlegen ›  Überprüfen ›  Anlegen

    ›  Neue Routen anlegen ›  Login (Session) ›  HTTP - POST ›  Java Objekt Serialisierung ›  Sesame Verbindung ›  RDF-XML Triple
  16. Client-Server Kommunikation ›  Routen Struktur ›  Fahrzeuge ›  GEO Punkte

    ›  Datum + Zeit
  17. Client-Server Kommunikation ›  Benutzer Struktur ›  Eigenschaften ›  Privatsphäre (privacy)

  18. flickr.com/photos/kevinwhite/508710091

  19. Webclient

  20. Webclient Darstellung der gesammelten Daten ›  Benutzer ›  Benutzerinformationen › 

    Route ›  Detailansicht ›  Distanz ›  Verbrauch ›  Karte (Google Maps) ›  Benutzerdefinierte Darstellung ›  Manuelle Eingabe (SPARQL Queries)
  21. Webclient ›  Benutzer ›  Benutzerinformationen SELECT ?id ?name ?mbox ?homepage

    ?user WHERE { ?user rdf:type foaf:Person . ?user foaf:name ?name . ?user foaf:mbox ?mbox . ?user foaf:homepage ?homepage . ?user user:privacy "0" . ?user user:id ?id }
  22. Webclient ›  Route ›  Fahrzeug ›  GEO Punkte ›  Datum

    + Zeit SELECT ?geolat ?geolong ?trackdate WHERE { <http://tracker.com/track/3> track:Trackpoints ?trackpoints . <http://tracker.com/user/thomasmuster> user:privacy "0" . ?trackpoints ?type ?trackpointsobject . ?trackpointsobject rdf:type geo:Point . ?trackpointsobject geo:lat ?geolat . ?trackpointsobject geo:long ?geolong . ?trackpointsobject dc:date ?trackdate }
  23. Fragen? Fork us on github.com/mfellner/energy2live