Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1

  • 2,560 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,560
On Slideshare
2,551
From Embeds
9
Number of Embeds
2

Actions

Shares
Downloads
69
Comments
0
Likes
2

Embeds 9

http://www.slideshare.net 8
http://ngoding.co 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Creating Semantic Mashups: Bridging Web 2.0 and the Semantic Web Jamie Taylor, Colin Evans, Toby Segaran
  • 2. Why is Semantic Data Interesting?
  • 3. Why is Semantic Data Interesting? •Walmart demo
  • 4. Why is Semantic Data Interesting? •Walmart demo • http://blog.kiwitobes.com/?p=51
  • 5. Why is Semantic Data Interesting? •Walmart demo • http://blog.kiwitobes.com/?p=51 •Political Query
  • 6. Why is Semantic Data Interesting? •Walmart demo • http://blog.kiwitobes.com/?p=51 •Political Query • http://www.freebase.com/view/guid/9202a8c04000641f8000000008053940
  • 7. Why is Semantic Data Interesting? •Walmart demo • http://blog.kiwitobes.com/?p=51 •Political Query • http://www.freebase.com/view/guid/9202a8c04000641f8000000008053940 •Venture Spin
  • 8. Why is Semantic Data Interesting? •Walmart demo • http://blog.kiwitobes.com/?p=51 •Political Query • http://www.freebase.com/view/guid/9202a8c04000641f8000000008053940 •Venture Spin • http://www.perlgoddess.com/FreeSpin/FreeSpin.swf
  • 9. Semantic Data is Flexible Data • The data for these demos all used structured semantics • The data was not specifically designed for the demo • The demos can utilize any data set with shared semantics (e.g., Venture Spin)
  • 10. Overview
  • 11. Overview •Introduction to semantic ideas
  • 12. Overview •Introduction to semantic ideas •Technologies and Architectural techniques
  • 13. Overview •Introduction to semantic ideas •Technologies and Architectural techniques •Build something now looking to the Future
  • 14. Goals
  • 15. Goals •Enough to get you started with semantic technologies
  • 16. Goals •Enough to get you started with semantic technologies •Understand advantages and issues with semantic architectures
  • 17. Goals •Enough to get you started with semantic technologies •Understand advantages and issues with semantic architectures •Basic understanding of semantic representation
  • 18. Goals •Enough to get you started with semantic technologies •Understand advantages and issues with semantic architectures •Basic understanding of semantic representation •Ability to use basic semantic repository
  • 19. Goals •Enough to get you started with semantic technologies •Understand advantages and issues with semantic architectures •Basic understanding of semantic representation •Ability to use basic semantic repository •Working overview of a semantic system
  • 20. Semantics: Why do we care? As web developers we want to: • Increase the utility of our applications e.g., help users get stuff done • Build applications with greater efficiency
  • 21. Web 1.0 Web 1.0 •Single function applications •Publishing large private databases
  • 22. Web 1.0: Stovepipes Diner and a Movie
  • 23. Web 1.0: Stovepipes • Data is in silos • No information sharing except in the user’s head • The end user drives system and data integration ...usually through “copy & paste”
  • 24. Web 2.0 Web 2.0 •Leverage silos of content •User-generated content •Open APIs facilitate mash-ups •The “Social Web”
  • 25. Web 2.0: UI Mashups
  • 26. Web 2.0: UI Mashups • Mash-ups only allow shallow integration at the UI • Data is still in silos • User-generated content is also in silos Data doesn’t stray far from its point of creation
  • 27. Today • Even with open APIs and mash-ups, users still do most of the system integration • With the proliferation of user-generated content, system integration is more important than ever! • Data, whether user-generated, or proprietary, is not easily accessible or transferable • We’re still fighting with stovepipe systems
  • 28. History of Web Integration Users’ Brain Web 1.0 Point of Integration
  • 29. History of Web Integration Users’ Brain UI (Mash-up) Web 1.0 Web 2.0 Point of Integration
  • 30. History of Web Integration Users’ Brain UI (Mash-up) Semantic Web 1.0 Web 2.0 Mash-ups Point of Integration
  • 31. Integration Scaling Users benefit as more data is made available Web 2.0 Mashup in application Utility increase as number of sources increases
  • 32. Integration Scaling Easy to integrate first few sources, but complexity increases as Web 2.0 Mashup number of sources increases Integration effort grows with number of sources
  • 33. Integration Scaling Pay a slightly higher start-up cost, but Semantic Mashup quickly benefit. Note: red line is should somewhat sloping up :-) Treat sources uniformly
  • 34. Why Semantics
  • 35. Why Semantics •Developing Content is expensive
  • 36. Why Semantics •Developing Content is expensive •Developing Web applications is expensive
  • 37. Why Semantics •Developing Content is expensive •Developing Web applications is expensive •Use existing systems/sources where possible
  • 38. Cracking the Stovepipe • Semantics facilitate shared meaning through • Subject Identity • Strong Semantics • Open APIS + Open Data • These principles make it much easier to combine stovepipe systems and integrate data
  • 39. Creating Meaning Ridley Scott directed Blade Runner
  • 40. Creating Meaning Ridley Scott directed Blade Runner subject
  • 41. Creating Meaning Ridley Scott directed Blade Runner subject predicate
  • 42. Creating Meaning Ridley Scott directed Blade Runner subject predicate object
  • 43. Creating Meaning
  • 44. Creating Meaning Ridley Scott
  • 45. Creating Meaning Ridley directed Scott
  • 46. Creating Meaning Ridley Blade directed Scott Runner
  • 47. Creating Meaning Ridley Blade directed Scott Runner subject predicate object
  • 48. Using Shared Meaning Creating Triples in Javascript: myRDF = new RDF() t1 = new Triple('A', 'geo', '37.44, -122.14') t2 = new Triple('B', 'company', 'Wal-mart') myRDF.addTriples([t1, t2]) http://rdflib.net/
  • 49. Using Shared Meaning http://kiwitobes.com/maptest/ http://rdflib.net/
  • 50. Using Shared Meaning Example of a service (Freebase): function businessindustry(store) {    at=store.Match(null,null,'industry',null)    for (i=0;i<at.length;i++) {       subject=at[i].subject       industry=at[i].object       query=[{'type':'/business/company',               'name':null,               'industry':industry}]              Metaweb.read(query,                    function(r) {                       t=[]                       for (i=0;i<r.length;i++) {                          t.push(new Triple(subject, 'company',r[i].name,'','','en'))                       }                       store.addTriples(t)                    })      } }
  • 51. Using Shared Meaning Example of a service (Upcoming): function eventsearch(store) { at=store.Match(null,null,'event',null)     for (i=0;i<at.length;i++) {        subject=at[i].subject        event=at[i].object                var request = new XMLHttpRequest();         request.open(quot;GETquot;, 'upcomingread.php?query='+event, true);        request.onreadystatechange = function()        {            if (request.readyState == 4) {               var items = request.responseXML.getElementsByTagName(quot;eventquot;);               t=[]               for (j=0;j<items.length;j++) {                address=items[j].getAttribute('venue_address')+', '+                items[j].getAttribute('venue_city')+', '+                items[j].getAttribute('venue_state_code')+' '+ items[j].getAttribute('venue_zip')                               t.push(new Triple(subject,'address',address))               }               store.addTriples(t)            }        };        request.send(null);     } }
  • 52. Identifying Shared Meaning
  • 53. The Meaning of “is” is http://dbpedia.org/resource/IS
  • 54. The Meaning of “is” is http://dbpedia.org/resource/IS •URI’s provide strong references
  • 55. The Meaning of “is” is http://dbpedia.org/resource/IS •URI’s provide strong references •Much like pointing in the physical world
  • 56. The Meaning of “is” is http://dbpedia.org/resource/IS •URI’s provide strong references •Much like pointing in the physical world “this is red”
  • 57. The Meaning of “is” is http://dbpedia.org/resource/IS •URI’s provide strong references •Much like pointing in the physical world “this is red” “this is a pen”
  • 58. The Meaning of “is” is http://dbpedia.org/resource/IS •URI’s provide strong references •Much like pointing in the physical world “this is red” “this is a pen” •a URIref is an unambiguous pointer to something of meaning
  • 59. Creating Meaning http://... http://... ridley_scott blade_runner
  • 60. Creating Meaning http://... http://... ridley_scott blade_runner
  • 61. Creating Meaning http://... http://... ridley_scott http://...directed blade_runner
  • 62. Creating Meaning http://... http://... ridley_scott http://...directed blade_runner
  • 63. Creating Meaning http://... http://... ridley_scott http://...directed blade_runner subject predicate object
  • 64. Creating Meaning fb = Namespace(quot;http://www.freebase.com/view/en/quot;) graph.add( ( fb(quot;blade_runnerquot;), fb(quot;directed_byquot;), fb(quot;ridley_scottquot;) )
  • 65. Two Types of URIrefs
  • 66. Two Types of URIrefs •Things/states (subjects, objects)
  • 67. Two Types of URIrefs •Things/states (subjects, objects) •Blade Runner
  • 68. Two Types of URIrefs •Things/states (subjects, objects) •Blade Runner •Ridley Scott
  • 69. Two Types of URIrefs •Things/states (subjects, objects) •Blade Runner •Ridley Scott •Movies
  • 70. Two Types of URIrefs •Things/states (subjects, objects) •Blade Runner •Ridley Scott •Movies •Relations (predicates)
  • 71. Two Types of URIrefs •Things/states (subjects, objects) •Blade Runner •Ridley Scott •Movies •Relations (predicates) •directed by
  • 72. Two Types of URIrefs •Things/states (subjects, objects) •Blade Runner •Ridley Scott •Movies •Relations (predicates) •directed by •acted in
  • 73. Graph Data Models
  • 74. Graph Data Models quot;Blade Runnerquot; name
  • 75. Graph Data Models quot;Blade Runnerquot; name Jun 25, 1982 release date
  • 76. Graph Data Models quot;Blade Runnerquot; name 1981 release date actor quot;Harrison Fordquot;
  • 77. Graph Data Models quot;Blade Runnerquot; name Jun 25, 1982 release date quot;Harrison Fordquot; actor name
  • 78. Graph Data Models quot;Blade Runnerquot; name Jun 25, 1982 release date quot;Harrison Fordquot; actor name birth date Jul 13, 1942
  • 79. Graph Data Models from rdflib import * fb = Namespace(quot;http://www.freebase.com/view/en/quot;) graph = ConjunctiveGraph() br = fb(quot;blade_runnerquot;) graph.add((br, fb(quot;namequot;), Literal(“Blade Runner”)) graph.add((br, fb(quot;release_datequot;), Literal(“Jun 25, 1982”)) hf = fb(“harrison_ford”) graph.add((hf, fb(quot;namequot;), Literal(“Harrison Ford”)) graph.add((hf, fb(quot;birth_datequot;), Literal(“Jul 13, 1942”)) graph.add((br, fb(quot;actorquot;), hf))
  • 80. Graph Integration
  • 81. Graph Integration B A C D E
  • 82. Graph Integration B B A A C C D E E F
  • 83. Graph Integration B B A A C C D E E F
  • 84. Graph Integration B A C D E F
  • 85. W3C Vision Tim Berners-Lee’s Giant Global Graph
  • 86. Stack Attack: Semantic Web taken from http://www.w3.org/2007/Talks/0130-sb-W3CTechSemWeb/layerCake-4.png
  • 87. Stack Attack: J2EE
  • 88. Take What You Need taken from http://www.w3.org/2007/Talks/0130-sb-W3CTechSemWeb/layerCake-4.png
  • 89. Take What You Need taken from http://www.w3.org/2007/Talks/0130-sb-W3CTechSemWeb/layerCake-4.png
  • 90. Linked Open Data •Web of Open Data (“global graph”) •Expressed in RDF •Lack of ontological agreement •how many ways are there to express lat/lon?! •Canonical references are problematic •Closest thing we have to the Semantic Web ...more like a test bed
  • 91. Tabulator Browsing the Global Graph http://dig.csail.mit.edu/2005/ajar/ajaw/data#Tabulator
  • 92. Open Data http://demo.openlibrary.org/dev/docs/data R Data http://theinfo.org/ http://theinfo.org/get/data
  • 93. Just Enough RDF Don’t get caught up in the serial representation - any RDF library will take care of that for you transparently. Focus on the data model
  • 94. Just Enough RDF Don’t get caught up in the serial representation - any RDF library will take care of that for you transparently. •RDF is a Data Model Focus on the data model
  • 95. Just Enough RDF Don’t get caught up in the serial representation - any RDF library will take care of that for you transparently. •RDF is a Data Model Focus on the data model •A very simple model!
  • 96. Just Enough RDF Don’t get caught up in the serial representation - any RDF library will take care of that for you transparently. •RDF is a Data Model Focus on the data model •A very simple model! •RDF has many (inconvenient) serializations
  • 97. Just Enough RDF Don’t get caught up in the serial representation - any RDF library will take care of that for you transparently. •RDF is a Data Model Focus on the data model •A very simple model! •RDF has many (inconvenient) serializations •RDF-XML
  • 98. Just Enough RDF Don’t get caught up in the serial representation - any RDF library will take care of that for you transparently. •RDF is a Data Model Focus on the data model •A very simple model! •RDF has many (inconvenient) serializations •RDF-XML •N3
  • 99. Just Enough RDF Don’t get caught up in the serial representation - any RDF library will take care of that for you transparently. •RDF is a Data Model Focus on the data model •A very simple model! •RDF has many (inconvenient) serializations •RDF-XML •N3 •Turtle
  • 100. RDF Data Model • Nodes (“Subjects”) • connect via Links (“Predicates”) • to Objects • either Nodes or Literals
  • 101. RDF Data Model • Nodes are referenced by URIs (http://foo/bar/) • Links are referenced by URIs • Literals are text strings, sometimes with a URI type and a language attached • Literal types typically are XML Schema URIs (examples)
  • 102. RDF Data Model • RDF is typically expressed in statements or triples • Triples are composed of a node, a link, and either another node or a literal • <http://www.w3.org/People/Berners-Lee/card#i> <http://www.w3.org/2000/01/rdf-schema#label> “Tim Berners-Lee”
  • 103. RDF Graphs • RDF triples are typically grouped into graphs • Graph Query • Triple (s, p, o) • Graph query languages (RDQL, SPARQL)
  • 104. Query Graph from rdflib import * fb = Namespace(quot;http://www.freebase.com/view/en/quot;) graph = ConjunctiveGraph() starredin = fb[quot;starred_inquot;] graph.add((fb[quot;carrie_fisherquot;], starredin, fb[quot;star_warsquot;])) graph.add((fb[quot;harrison_fordquot;], starredin, fb[quot;star_warsquot;])) graph.add((fb[quot;harrison_fordquot;], starredin, fb[quot;blade_runnerquot;])) graph.add((fb[quot;daryl_hannahquot;], starredin, fb[quot;blade_runnerquot;]))
  • 105. Triple Query for triple in graph.triples((None, starredin, fb[quot;star_warsquot;])): print triple for subject in graph.subjects(predicate=starredin, object=fb[quot;star_warsquot;]): print subject
  • 106. SPARQL Query SELECT ?costar WHERE { fb:carrie_fisher fb:starred_in ?movie . ?actor fb:starred_in ?movie . ?actor fb:starred_in ?othermovie . ?costar fb:starred_in ?othermovie . FILTER (?othermovie != ?movie && ?actor != ?costar) }
  • 107. RDFLib SPARQL Query print list(graph.query( quot;quot;quot;SELECT ?costar WHERE { fb:carrie_fisher fb:starred_in ?movie . ?actor fb:starred_in ?movie . ?actor fb:starred_in ?othermovie . ?costar fb:starred_in ?othermovie . FILTER (?othermovie != ?movie && ?actor != ?costar) } quot;quot;quot;, initNs=dict(fb=Namespace(quot;http://www.freebase.com/view/en/quot;))))
  • 108. μformats •Semantics embedded in display markup (XHTML) •Strong (predefined) semantics •Each μformat defines an “ontology” <div class=quot;hreviewquot;> <span><span class=quot;ratingquot;>5</span> out of 5 stars</span> <h4 class=quot;summaryquot;>Crepes on Cole is awesome</h4> <span class=quot;reviewer vcardquot;>Reviewer: <span class=quot;fnquot;>Tantek</span> - <abbr class=quot;dtreviewedquot; title=quot;20050418T2300-0700quot;>April 18, 2005</abbr></span> <div class=quot;description item vcardquot;><p> <span class=quot;fn orgquot;>Crepes on Cole</span> is one of the best little creperies in <span class=quot;adrquot;><span class=quot;localityquot;>San Francisco</span></span>. Excellent food and service. Plenty of tables in a variety of sizes WP identifies 22 distinct for parties large and small. </p></div> places called San Francisco in the world <p>Visit date: <span>April 2005</span></p> <p>Food eaten: <span>Florentine crepe</span></p> </div>
  • 109. RDFa •Yet another RDF serialization •Like μformats, embeddable in HTML •Like RDF high expressability + extensibility •Like any RDF serialization, you don’t want to create them by hand! <p xmlns:dc=quot;http://purl.org/dc/elements/1.1/quot; about=quot;http://www.example.com/books/wikinomicsquot;> In his latest book <cite property=quot;dc:titlequot;>Wikinomics</cite>, <span property=quot;dc:authorquot;>Don Tapscott</span> explains deep changes in technology, demographics and business. The book is due to be published in <span property=quot;dc:datequot; content=quot;2006-10-01quot;>October 2006</span>. </p>
  • 110. What I mean by Ontology
  • 111. What I mean by Ontology Ontology:
  • 112. What I mean by Ontology Ontology: An explicit specification of a conceptualization
  • 113. What I mean by Ontology Ontology: An explicit specification of a conceptualization Conceptualization:
  • 114. What I mean by Ontology Ontology: An explicit specification of a conceptualization Conceptualization: Abstract, simplified view of the world that we wish to represent for some purpose
  • 115. What I mean by Ontology Ontology: An explicit specification of a conceptualization Conceptualization: Abstract, simplified view of the world that we wish to represent for some purpose
  • 116. Ontology
  • 117. Ontology IS NOT:
  • 118. Ontology IS NOT: • Magic
  • 119. Ontology IS NOT: • Magic • Universal
  • 120. Ontology IS NOT: • Magic • Universal • Change the world
  • 121. Ontology IS NOT: IS: • Magic • Universal • Change the world
  • 122. Ontology IS NOT: IS: • Magic • An artifact • Universal • Change the world
  • 123. Ontology IS NOT: IS: • Magic • An artifact • Universal • An API • Change the world
  • 124. Ontology IS NOT: IS: • Magic • An artifact • Universal • An API • Change the world • A Social Contract
  • 125. Movie Ontology name release_date imdb_rating movie rt_rating
  • 126. Movie Ontology name release_date imdb_rating name movie rt_rating actor actor
  • 127. Movie Ontology name release_date imdb_rating name movie rt_rating actor name actor address showing theater showing show time
  • 128. Ontology Declaration from rdflib import * fbCommon = Namespace(quot;http://www.freebase.com/view/common/quot;) oName = fbCommon[quot;object/namequot;] oType = fbCommon[quot;object/typequot;] fbPeople = Namespace(quot;http://www.freebase.com/view/people/quot;) personType = fbPeople[quot;personquot;] pPhoto = fbPeople[quot;person/photoquot;] fbFilm = Namespace(quot;http://www.freebase.com/view/film/quot;) filmType = fbFilm[quot;filmquot;] fImdbId = fbFilm[quot;film/imdb_idquot;] fImdbRating = fbFilm[quot;film/imdb_ratingquot;] fRtRating = fbFilm[quot;film/rt_ratingquot;] fActor = fbFilm[quot;film/actorquot;] theaterType = fbFilm[quot;theaterquot;] tAddress = fbFilm[quot;theater/addressquot;] tShowing = fbFilm[quot;theater/showingquot;] showingType = fbFilm[quot;showingquot;] sTime = fbFilm[quot;showing/timequot;] fbDining = Namespace(quot;http://www.freebase.com/view/dining/quot;) restaurantType = fbDining[quot;restaurantquot;] rAddress = fbFilm[quot;restaurant/addressquot;]
  • 129. What is Freebase? • Structured Database • Strong Collaboratively Edited Subjects • Strong Collaboratively Developed Semantics • Open API + Open Data
  • 130. What’s in Freebase? • Over 3.3 million subjects • ~750,000 people • ~450,000 locations • ~50,000 companies • ~40,000 movies • Over 1000 types and 3000 properties
  • 131. http://www.freebase.com/view/en/blade_runner
  • 132. Freebase Data Model
  • 133. Freebase Data Model
  • 134. MQL •JSON structure •Schemas (ontologies) form object abstraction •Query by example Fill in the parts you know Result fills in the rest
  • 135. MQL •JSON structure Show me the IMDB links for films by George Lucas: •Schemas (ontologies) form [{ object abstraction quot;namequot; : null, quot;imdb_idquot; : [ ], •Query by example quot;initial_release_datequot;:null, Fill in the parts you know quot;directed_byquot;:quot;George Lucasquot;, quot;typequot; : quot;/film/filmquot; Result fills in the rest }]
  • 136. MQL performance [ { Carrie Star quot;filmquot; : [ film actor film starring Fisher Wars { quot;filmquot; : { quot;namequot; : null, ter quot;starringquot; : [ { Carrie Fisherʼs Costars: ac quot;actorquot; : { ar quot;filmquot; : [ ch { quot;filmquot; : { Princess [{ quot;namequot; : null, quot;starringquot; : [ Leia quot;filmquot; : [{ { quot;actorquot; : { quot;namequot; : null quot;filmquot; : { }, quot;limitquot; : 2 quot;namequot; : null, ] } quot;starringquot; : [{ }, quot;limitquot; : 2 quot;actorquot; : null ], } quot;namequot; : null }] }, quot;limitquot; : 2 } ] } }], }, quot;limitquot; : 2 quot;idquot; : quot;/en/carrie_fisherquot;, ], } quot;idquot; : quot;/en/carrie_fisherquot;, quot;typequot; : quot;/film/actorquot; quot;typequot; : quot;/film/actorquot; } }] ]
  • 137. A Semantic Architecture Semantic Architecture •A little knowledge... ...goes a long way •Leverage Silos of Content •Effort ∝ semantic coverage
  • 138. A Semantic Architecture Semantic Architecture Semantic Mapping Layer
  • 139. A Semantic Architecture Semantic Architecture Semantic Mash-up Layer Semantic Plugin Layer
  • 140. Film Mashup • Strong Identity through IMDB IDs • Pulls data from: • IMDB (movie & actor data & rating) • Rotten Tomatoes (rating) • Freebase (pictures & restaurants) • Fandango (movie theaters)
  • 141. Movie Ontology name release_date imdb_rating name movie rt_rating actor name actor address showing theater showing show time
  • 142. MIT SIMILE http://www.cse.msu.edu/~dunham/exhibit/top100.html
  • 143. MIT SIMILE http://www.cse.msu.edu/~dunham/exhibit/top100.html
  • 144. MIT SIMILE http://www.cse.msu.edu/~dunham/exhibit/top100.html
  • 145. MIT SIMILE http://www.cse.msu.edu/~dunham/exhibit/top100.html
  • 146. MIT SIMILE http://www.cse.msu.edu/~dunham/exhibit/top100.html
  • 147. Useful Places • Freebase/MQL: • http://www.freebase.com/ • Javascript RDF Library (used in Toby’s map demo) • http://www.jibbering.com/rdf-parser/ • LIBrdf (Python) • http://rdflib.net/ • MIT Semantic Visualization Widgets • http://simile.mit.edu/
  • 148. Useful Places • SPARQL: • http://www.w3.org/TR/rdf-sparql-query/ • Linked Open Data/Semantic Web Interest Group (SWIG) • http://www.w3.org/2001/sw/interest/ • http://www.w3.org/DesignIssues/LinkedData.html • Tabulator (Linked Open Data Browser): • http://www.w3.org/2005/ajar/tab