Building linked data apps


Published on

Presentation about how to use linked data in your iPhone app

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Hi everybody. So far I had a great time and I’m very proud to be here! I hope you are still interested after so many presentations in such a short time. I’m going to talk about Linked Data and how you can use it in your own iPhone applications. I developed a web service and client, called Lodsy, for accessing Linked Data more easily But first I’ll introduce my self.
  • But who am I ? My name is Henk Jurriens
  • I come from Holland and I live in Deventer, a small but very nice city.
  • and I have one big passion : programming. A long time ago, it started with the famous Commodore VIC-20 Hacking Basic, playing
  • Currently, I work for Profict and we’re mainly focused on JEE. But I’m also interested in other topics such as JVM languages, web frameworks. For example : Grails and Groovy, HTML 5 Groovy is a new dynamic language and looks like Java. Grails is a web framework and based on Groovy. You can be very productive with Grails!
  • Talking about HTML 5, 11 and 12 june we’re going to organize the first Dutch HTML5 Hackathon. You’re welcome!
  • Anyway if you want to know more about me... But let’s talk about Linked Data
  • Where am I going to talk about? Explaining Linked Data What tools you can use for developing for iPhone Lodsy
  • The goal of Linked Data is to extend the Web with data by publishing various open datasets as RDF links between data items from different data sources
  • DBpedia - a dataset containing extracted data from Wikipedia; it contains about 2.18 million concepts described by 218 million triples, including abstracts in 11 different languages (see GeoNames provides RDF descriptions of more than 6,500,000 geographical features worldwide. FOAF - a dataset describing persons, their properties and relationships
  • Circle size Triple count Very large >1B Large 1B-10M Medium 10M-500k Small 500k-10k Very small <10k Linked Data is growing very fast. Millions of triples
  • Another definition of Linked Data
  • Tim Berners Lee, inventor of the World Wide Web, published a set of principles for Linked Data 5. Just do it!
  • The technology stack looks likes this. I’ll explain a few . Gleaning Resource Descriptions from Dialects of Languages. RDFa (or Resource Description Framework – in – attributes)
  • In essence a simple data model It’s about writing down relations Motivation Web is a global, universal information space for documents Can we do same for data? RDF is the data format for that database
  • a restaurant has a title ... and this is called a graph
  • this is called a triple : (s, p, v)
  • in a database table it looks likes this
  • But of course a restaurant has more properties....
  • and a restaurant has relations...
  • a restaurant has a title ...
  • different standards for describing resources Dublin Core is a standard for describing different kinds of resources
  • Turtle or N3 RDF/XML
  • Turtle RDF/XML
  • - Pull values from structured and semi-structured data - Explore data by quering
  • an example of a data set
  • returns all triples with a property dc:title
  • Google is harvesting rdf data Drupal and WordPress are using it for adding metadata to posts Amazon And Facebook!
  • There are different technologies you can use for developing iPhone Apps such as ....
  • SDK : main development tool, XCode, Interface Builder Objective C is the programming language for developing iPhone applications
  • within an application you have different views. The 2 most important views - tableview - webView
  • and this is an example of an webView and this is really nice! In this webView you can use HTML5
  • I don’t go in detail about HTML5, but it has really nice features. And Robert did a great job by his presentation “Introduction to HTML5”. Especially the canvas-tag
  • Also I’m using CSS3 for some nice animation
  • Also I’m using google maps api for the maps
  • There are many javascript libraries.. but iProcessing.js makes your live easier with drawing on the canvas
  • For accessing Linked Data I created a Web service and a iPhone App using this service. First take a look at the architecture
  • Lodsy is an application for exploring Linked Data. Exploring is based on concepts, for example a person, a restaurant These concepts can be filtered by facets
  • Lodsy - web application offering services for the client, in this case a iPhone app LOD - Linked Open Data, Triple Store - triple store for storing triples iPhone - a client for consuming the Lodsy services
  • Lodsy has the following services SPARQL is an endpoint for sparql queries.. Facets is a services for request facets.. later I’ll explain what facets are Views is a services for the visualization of triples
  • Facet is a term from “Faceted Navigation” Faceted Navigation is a method of exploring your information by filtering on specific terms, a facet In our example, a facet is a property of a concept “Restaurant”
  • Facets are mapped to a property of our triple. And a has also a type. This type can be used for different types input methods. Such as - text field - calendar field - etc
  • restaurant
  • Person
  • facet
  • Building linked data apps

    1. 1. Building Linked Data Apps for the iPhone
    2. 7. 11/12 juni HTML Hackathon
    3. 8. <ul><li>Henk Jurriens </li></ul><ul><li> </li></ul><ul><li> </li></ul>
    4. 9. <ul><li>Linked Data </li></ul><ul><li>Developing for iPhone </li></ul><ul><li>Lodsy </li></ul>
    5. 10. Linked Open Data
    6. 11. Data sets <ul><li>DBPedia </li></ul><ul><li>GeoName </li></ul><ul><li>FOAF </li></ul>
    7. 12. 8-10-2007
    8. 13. 28-2-2008
    9. 14. 5-3-2009
    10. 15. 14-7-2009
    11. 16. <ul><li>&quot;a term used to describe a recommended best practice for exposing, sharing, and connecting pieces of data, information, and knowledge on the Semantic Web&quot; </li></ul>
    12. 17. Linked Data Principles <ul><ul><li>Use URI as names for things </li></ul></ul><ul><ul><li>Use HTTP URIs so that people can look up those names </li></ul></ul><ul><ul><li>When someone looks up a URI, provide useful information, using the standards (RDF, SPARQL) </li></ul></ul><ul><ul><li>Include links to other URIs, so that they can discover more things </li></ul></ul><ul><ul><li>Include links to other URIs, so that they can discover more things </li></ul></ul>
    13. 18. Technology stack URI HTTP RDF, RDF/XML, RDF Schema RDFa GRDDL SPARQL
    14. 19. Resource Description Framework
    15. 20. restaurant “ Ostermalmshallen” title
    16. 21. subject value property subject has a property with “ value ” (s,p,v)
    17. 22. id title description type 1 Ostermalmshallen A very nice... market ... ... ... ...
    18. 23. “ Ostermalmshallen” title “ A very nice ...” market description restaurant type
    19. 24. “ Ostermalmshallen” title “ A very nice ...” market description type restaurant owner Jurriens person name
    20. 25. RDF names things with URIs
    21. 26. < > “ Ostermalmshallen” < >
    22. 27. <ul><li>Dublin Core </li></ul><ul><li>FOAF </li></ul><ul><li>Geo </li></ul><ul><li> </li></ul>
    23. 28. Writing down graphs
    24. 29. < > < > &quot;Ostermalm Food Hall&quot; . > &quot;Ostermalm Food Hall&quot; .
    25. 30. SPARQL
    26. 31. <ul><li>Prefix declarations </li></ul><ul><li>Dataset definition </li></ul><ul><li>Result clause </li></ul><ul><li>Query pattern </li></ul><ul><li>Queri modifiers </li></ul>
    27. 32. <ul><li># prefix declarations </li></ul><ul><li>PREFIX foo: < > </li></ul><ul><li>... </li></ul><ul><li># dataset definition </li></ul><ul><li>FROM ... </li></ul><ul><li># result clause </li></ul><ul><li>SELECT ... </li></ul><ul><li># query pattern </li></ul><ul><li>WHERE { </li></ul><ul><li>... </li></ul><ul><li>} </li></ul><ul><li># query modifiers </li></ul><ul><li>ORDER BY ... </li></ul>
    28. 33. <ul><li>SPARQL endpoints </li></ul><ul><ul><li>Generic </li></ul></ul><ul><ul><li>Specific </li></ul></ul>
    29. 34. <ul><li>Result of SPARQL queries </li></ul><ul><ul><li>XML </li></ul></ul><ul><ul><li>JSON </li></ul></ul><ul><ul><li>RDF (RDF/XML, N3) </li></ul></ul>
    30. 35. <ul><li>@prefix foaf: < > . </li></ul><ul><li>@prefix dc: < > . </li></ul><ul><li>@prefix geo: < > . </li></ul><ul><li>< > <dc:title> &quot;Ostermalm Food Hall&quot; . </li></ul><ul><li>< > <foaf:img> < > . </li></ul><ul><li>< > <geo:wgs84_pos#lat> &quot;59.332788&quot; . </li></ul><ul><li>< > <geo:wgs84_pos#long> &quot;18.064488&quot; . </li></ul>
    31. 36. <ul><li>PREFIX dc: < >. </li></ul><ul><li>SELECT ?title </li></ul><ul><li>WHERE { </li></ul><ul><li>?restaurant dc:title ?title . </li></ul><ul><li>} </li></ul>
    32. 37. Good news
    33. 38. more
    34. 39. Developing for iPhone
    35. 40. Technologies Objective C HTML iPhone SDK
    36. 41. REST
    37. 45. HTML 5
    38. 46. CSS3
    39. 47. Google Maps API
    40. 49. <ul><li>iProcessing.js </li></ul><ul><li>jQTouch </li></ul>Libraries
    41. 50. Lodsy
    42. 51. Concepts Facets
    43. 52. Architecture Lodsy LOD Triple store
    44. 53. <ul><li>SPARQL </li></ul><ul><li>Facets </li></ul><ul><li>Views </li></ul>
    45. 54. SPARQL <ul><li>q= < > ?p ?v </li></ul><ul><li>q = ?s < > ?v </li></ul><ul><li>q = ?s < > ?v | </li></ul><ul><ul><li>?s < > ?v </li></ul></ul>
    46. 55. Facets
    47. 56. Facet Name Property Type Title < > String Email < > Email ... ... ...
    48. 57. Views
    49. 58. rdfView
    50. 59. mapView
    51. 60. mapDetail
    52. 61. Demo
    53. 65. Future work
    54. 66. One more thing
    55. 68. Questions?