Jarrar: The Next Generation of the Web 3.0: The Semantic Web

610 views

Published on

Invited talk at Techcon #2 in Ramallah, titled: The Next Generation of the Web 3.0 - The Semantic Web

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
610
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Jarrar: The Next Generation of the Web 3.0: The Semantic Web

  1. 1. TechCon#2 – Developer Day Ankars Suites, Ramallah, Palestine October 12, 2032 The Next Generation of the Web 3.0 The Semantic Web Dr. Mustafa Jarrar Sina Institute, University of Birzeit mjarrar@birzeit.edu www.jarrar.info Jarrar © 2013 1
  2. 2. What/why The Semantic Web, in short The RDFa scenario find a developer position, max 10 minutes from Ramallah Jarrar © 2013 2
  3. 3. What/why The Semantic Web, in short The RDFa scenario Bad results, as it is string-matching search, i.e., not meaningful search find a developer position, max 10 minutes from Ramallah Jarrar © 2013 3
  4. 4. What/why The Semantic Web, in short The RDFa scenario Shared meanings of things, This meaning is embedded inside web pages.  1 Ontology 2 ―The semantic web‖ mission: syntax to semantic based search  The next generation of the web. 3 4 find a developer position, max 10 minutes from Ramallah 3 billion pages Jarrar © 2013 4
  5. 5. Let’s go back Jarrar © 2013 5
  6. 6. From Web 1.0 to Web 2.0 Social Community, Collaboration, Sharing Jarrar © 2013 6
  7. 7. Where Web 2.0 is going? most Web 2.0 sites provide APIs Jarrar © 2013 7
  8. 8. Wikipedia edited in real-time by anyone (in 252 languages, millions of articles) written collaboratively by volunteers around the world. API Jarrar © 2013 8
  9. 9. A social network for sharing photos •3,464 uploads in the last minute · •160,129 things tagged with morning · •2.3 million things geotagged this month In 2008 API Jarrar © 2013 9
  10. 10. Upload, View, and Share Videos (and tags...) API Jarrar © 2013 10
  11. 11. e-Buy and e-Sell Millions of items are listed, bought, sold, and discussed daily. API Jarrar © 2013 11
  12. 12. We know this! What is social? API Jarrar © 2013 12
  13. 13. Upcoimg.org A social event calendar website, uses iCalender, supports an open API for the submission of event descriptions. API Jarrar © 2013 13
  14. 14. Blog (Your Own Journal) Commentary, news, personal diaries... + comments/discussions (+106 million blogs, as of 2007) API Jarrar © 2013 14
  15. 15. Business/Professional Networking 16 million registered users (2007) 60 million registered users (2007) Social employability API Jarrar © 2013 15
  16. 16. Social Networking Find your friends, socialize, group, share/organize events, and more…(55 million active members) API Jarrar © 2013 16
  17. 17. Web 2.0 Technologies Companies are competing in gathering content from people and offering this content back through APIs (i.e. structured data) Content syndication How can you deliver recent news to your users without forcing them to visit your website?  RSS, Atom Mashups How can you remix free content and make a new website? Web APIs (programmable web) How can make use of the free content inside my website? Jarrar © 2013 17
  18. 18. Content Syndication Millions of online publishers including newspapers, commercial web sites and blogs now publish their latest news headlines, product offers or blog postings in standard format news feed. A typical web feed logo Jarrar © 2013 18
  19. 19. Content Syndication The two main families of web syndication formats are RSS and Atom. Jarrar © 2013 19
  20. 20. Mashups / Programmable Web (The Puzzle of APIs) Jarrar © 2013 20
  21. 21. Mashups • A new type of web applications. • Combines data from more than one source into a single integrated tool. • Creating a new and distinct web service that was not originally provided by either source. • Content is typically sourced via an API* or a RSS Feed Let’s see some examples.. Jarrar © 2013 21
  22. 22. Mashups (Example) Ask500People.com Real-time mashup of votes from around the world Jarrar © 2013 22
  23. 23. Mashups (Example) ePartyGuide.com Yahoo! MapsYahoo! LocalFlickr- Jarrar © 2013 23
  24. 24. Mashups (Example) Combines Google maps with real-estate databases Google MapsReal-estate- Jarrar © 2013 24
  25. 25. Mashups (Example) A unified and comprehensive view of the current global state of infectious diseases and their effect on human and animal health Google NewsProMEDWorld Health OrganizationJarrar © 2013 25
  26. 26. Mashups (Example) A visually rich application that combines the Amazon API to show the relationship between movies, bands, actors, etc. Amazon APIYou TubeOthersJarrar © 2013 26
  27. 27. Be Innovative… (The Puzzle of APIs) Jarrar © 2013 27
  28. 28. Find popular APIs Jarrar © 2013 28
  29. 29. Find popular APIs here Also, How-To start a mashup Jarrar © 2013 29
  30. 30. (APIX + APIY = Money) … Be innovative to know x and y ;-) See the ―Mashup Market‖ Jarrar © 2013 30
  31. 31. The Mashup Phenomena  From Web of Documents (Hypertext) into Web of Data In other words, The Web is becoming a Database, where a data source is seen as a table, and a mashup is seen a query over multiple tables/sources.  Data Web
  32. 32. Web 2.0 challenges Suppose you want to build a mashup: Build up your publications “publications webpage”, combining all data from all sources/APIs? • How to link data items cross sources? • How to answer structured queries (over different APIs) such as ―Give me all people who works-at Birzeit and previously lived in Belgium‖? • How to know the meaning/type of data Items? Bessan is a person name, or a city name?  Linking data items cross sources, such that it becomes easy to integrate search, and retrieve (use RDF). Jarrar © 2013 32
  33. 33. From Web 2.0 to Web 3.0 The four principles of Linked Data -Tim Berners-Lee 1. Use URIs to denote things. 2. Use HTTP URIs so that these things can be referred to and looked up ("dereferenced") by people and user agents. 3. Provide useful information about the thing when its URI is dereferenced, leveraging standards such as RDF, SPARQL. 4. Include links to other related things (using their URIs) when publishing data on the Web. Jarrar © 2013 33
  34. 34. Linked Data • A community project to publish various open datasets as RDF on the Web and by setting RDF links between data items from different data sources. • Data items are linked across datasets (Palestine in DBPedia is the same Palestine in Yago, in Fliker, YouTube, ….) • By Sep 2011 this had grown to 39 billion RDF triples. Jarrar © 2013 34
  35. 35. Linking Data • • • How are same entities described in different datasets linked? AGAIN: By linking the Global Identifier, that is, the URI! Let’s have a look at real examples from real datasets: <http://dbpedia.org/resource/Bethlehem> owl:sameAs <http://sws.geonames.org/284315/> • Linking the entity ―Bethlehem‖ between the DBPedia dataset and the Geonames dataset in the Linking Open Data cloud. • This is done by linking the URIs of ―Bethlehem‖ in both datasets using owl:sameAs. <http://dbpedia.org/resource/Tim_Berners-Lee> owl:sameAs <http://www4.wiwiss.fu-berlin.de/dblp/resource/person/100007> • Linking the entity ―Tim Berners-Lee‖ between the DBPedia dataset and the DBLP dataset . • This is done by linking the URIs of ―Tim Berners-Lee‖ in both datasets using owl:sameAs. Jarrar © 2013 35
  36. 36. Resources  http://dbpedia.org/resource/Bethlehem (Bethlehem URI in DBPedia) http://sws.geonames.org/284315/  (Bethlehem URI in Geonames) Jarrar © 2013 36
  37. 37. There are many ways to consume such data Among them is RDFa (Resource Description Framework in Attributes) W3C Recommendation, in 2008 Jarrar © 2013 37
  38. 38. RDFa • Bridges the gap between the Web of Documents and the Web of Data (Web 3.0). • Makes XHTML web pages structured data (by embedding RDF triples inside XHTML). • i.e., using RDFa we build small RDF graphs and embed them inside XHTML pages. Jarrar © 2013 38
  39. 39. RDFa • As stated by Google Webmasters guide, RDFa can be roughly viewed as a way to label content to describe a specific type of information, such as a restaurant review, an event, a person, or a product listing. • These information types are called entities or items. Each entity has a number of properties. For example, a Person has the properties name, address, job title, company, and email address. • In general, RDFa uses simple attributes in XHTML tags (often <span> or <div>) to assign brief and descriptive names to entities and properties. Jarrar © 2013 39
  40. 40. Example 1 Jarrar © 2013 40
  41. 41. Example 1 Jarrar © 2013 41
  42. 42. Example 2 Consider this HTML block: <div> My name is George Mousa. My friends call me Geno. I live in Nablus, Palestine. I work as an engineer at Birzeit University. </div> Annotate the HTML block above with RDFa: <div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Person"> My name is <span property="v:name"> George Mousa </span>. My friends call me <span property="v:nickname"> Geno </span>. I live in Nablus, Palestine. I work as an engineer at <span property="v:affiliation"> Birzeit University </span>. </div> Jarrar © 2013 42
  43. 43. Example 2 <div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Person"> My name is <span property="v:name"> George Mousa </span>. My friends call me <span property="v:nickname"> Geno </span>. I live in Nablus, Palestine. I work as an engineer at <span property="v:affiliation"> Birzeit University </span>. </div> • The example begins with a namespace declaration using xmlns. This indicates the namespace where the vocabulary is specified. • Also on the first line, typeof="v:Person" indicates that the markedup content represents a Person. • Each property of the person (such as the name and nickname) is labeled using property. • To indicate a URL, use rel instead of property. Consider adding the following to our example inside the Person DIV My home page is: <a href="http://www.example.com" rel="v:url">www.example.com</a>. • "rel" is used to convey the relationship between two entities—in this case, a Person entity and a webpage entity. Jarrar © 2013 43
  44. 44. Example 2 • In our example, we have addressing information about George Mousa. <div> • • • ... I live in Nablus, Palestine. I work as an engineer ... </div> We use nesting. Nesting is when one information type includes the other. In this case, we want to include George’s Address information (typeof="v:Address") in the typeof="v:Person“ entity. Here, we use rel to indicate a relationship between George (the entity v:Person) and his address (the entity v:Address). <div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Person"> My name is <span property="v:name"> George Mousa </span>. My friends call me <span property="v:nickname"> Geno </span>. I live in <span rel="v:Address"> <span typeof="v:Address"> <span property="v:city">Nablus</span>, <span property="v:country">Palestine</span> </span> </span>. I work as an engineer at <span property="v:affiliation"> Birzeit University </span>. Jarrar © 2013 44 </div>
  45. 45. Let’s draw a graph of our example! v:Person “George Mousa” v:nickname “Geno” v:Address v:city “Nablus” “Palestine” “Birzeit University” Jarrar © 2013 45
  46. 46. Jobs.ps Use Case Page 1 Page n Jarrar © 2013 46
  47. 47. RDF (short tutorial) Let’s go a little deeper to know how RDF represents data. Jarrar © 2013 47
  48. 48. Recall XML <address> <name>Universsity of Birzeit</name> <street>Almarj 435</street> <town>Birzeit</town> </address> Jarrar © 2013 48
  49. 49. Recall XML XML Markup 1: <address> <name>University of Birzeit</name> <street>Almarj 435</street> <town>Birzeit</town> </address> XML stylesheets are also usable to transform XML representations XML Markup 2: <address> <name>University of Birzeit</name> <place> <street>Almarj 435</street> <town>Birzeit</town> </place> </address> Jarrar © 2013 49
  50. 50. Why XML is Not Enough • It provides syntax, but not semantics, which is important when exchanging/representing data over the Web. <aaaa> <bbbb>Universsity of Birzeit</aaaa> <cccc>Almarj 435</cccc> <dddd>Birzeit</dddd> </aaaa> • Not primitive. Same data can be represented in many ways, which is a problem when exchanging/representing data over the Web. <address> <name>University of Birzeit</name> <street>Almarj 435</street> <town>Birzeit</town> </address> <address name=―University of Birzeit‖> <street>Almarj 435</street> <town>Birzeit</town> </address> Jarrar © 2013 50
  51. 51. What is RDF? • It is used for describing resources on the web. • Makes use of URIs to identify web resources and is written in XML. • It is not a language but a framework • You see it as a way of writing XML  making it meaningful and more primitive. • You may see it independent, RDF data might never occur in XML form • W3C standard Jarrar © 2013 51
  52. 52. What is RDF? Data is represented in RDF as a directed labeled graph. An RDF graph is a set of triples, of the form <Subject, Predicate, Object> Each Subject and each Predicate must be a URI; that is, it has to be a unique identifier, not a literal. An Object can be either a URI or a literal. Jarrar © 2013 52
  53. 53. Example http://www.amazon.com/Orientalism-Edward-W-Said/dp/039474067Xc 11$ :WrittenBy Edward Said Orientalism <?xml version="1.0"?> <rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:a="http://www.example.com" xmlns:w="http://en.wikipedia.org/wiki/"> <rdf:Description rdf:about="http://www.amazon.com/Orientalism-Edward-W-Said/dp/039474067X"> <a:Title>Orientalism</a:Title> <a:Price>11$</a:Price> <a:Author>Edward_Said</a:Author> </rdf:Description> </rdf:RDF> Jarrar © 2013 53
  54. 54. Example a:Author http://en.wikipedia.org/wiki/Edward_Said 25/9/2003 11$ Orientalism 1/11/1935 a:BirthCity http://www.amazon.com/Orientalism-Edward-W-Said/dp/039474067Xc Edward Saïd <?xml version="1.0"?> <rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# Jerusalem xmlns:a="http://www.example.com/" xmlns:w="http://en.wikipedia.org/wiki/"> <rdf:Description rdf:about="http://www.amazon.com/Orientalism-Edward-W-Said/dp/039474067X"> <a:Title>Orientalism</a:Title> <a:Price>11$</a:Price> <a:Author> <rdf:Description rdf:about="w:Edward_Said"> <a:BirthCity>Jerusalem</a:BirthCity> <a:BornAt>1/11/1935</a:BornAt> <a:DiedA>25/9/2003</a:DiedA> </rdf:Description> </a:Author> </rdf:Description> </rdf:RDF> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> Jarrar © 2013 54
  55. 55. Example :Author 25/9/2003 http://en.wikipedia.org/wiki/Edward_Said :BirthCity http://www.amazon.com/Orientalism-Edward-W-Said/dp/039474067Xc <?xml version="1.0"?> Orientalism Edward <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 11$ 1/11/1935 xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:a="http://www.example.com#" xmlns:w="http://en.wikipedia.org/wiki/"> http://en.wikipedia.org/wiki/Jerusalem <rdf:Description rdf:about="http://www.amazon.com/Orientalism-Edward-W-Said/dp/039474067X"> <a:Title>Orientalism</a:Title> <a:Price>11$</a:Price> <a:Author> <rdf:Description rdf:about="w:Edward_Said"> <a:BornAt>1/11/1935</a:BornAt> <a:DiedA>25/9/2003</a:DiedA> 760800 Palestine <a:BirthCity> <rdf:Description rdf:about="http://en.wikipedia.org/wiki/Jerusalem"> <a:Population>760800</a:Population> <a:CapitalOf>Palestine</a:CapitalOf> </rdf:Description> </a:BirthCity> </rdf:Description> </a:Author> </rdf:Description> </rdf:RDF> Jarrar © 2013 Saïd 55
  56. 56. Some slides borrowed from Mohammad A. ZeinEddin Facebook Open Graph Jarrar © 2013 56
  57. 57. Definitions • Social Web: relations between people and people… people and objects. • Social graph: a graph that represents the social web… • Open Graph protocol: a way to transform any regular webpage to a rich object in a social graph. • Facebook open graph: a way to integrate a transformed (an object) webpage into facebook. Jarrar © 2013 57
  58. 58. How to transform a webpage to be a part of the Open Graph • Add the Open Graph schema (http://ogp.me/ns#) to the webpage html tag. • Add some meta data properties to your webpage. The minimum needed are: – – type – url – • title Image Now the webpage is an Open Graph object. Jarrar © 2013 58
  59. 59. How to transform a webpage to an object A regular employee webpage: <html> <head> <title>Mohammad ZeinEddin</title> </head> <body> The employee webpage </body> </html> A “minimal” facebook open graph object for the previous webpage: <html xmlns:og="http://ogp.me/ns#"> <head> <title>Mohammad ZeinEddin </title> <meta property="og:title" content=“Mohammad ZeinEddin"/> <meta property="og:type" content=" public_figure"/> <meta property="og:url" content="http://www.birzeit.edu/employees/mohammad.zeineddin"/> <meta property="og:image" content="https://ritaj.birzeit.edu/profile/photo?person_id_v=45761&attche_type=PIC"/> </head> <body> The employee webpage </body> </html> Jarrar © 2013 59
  60. 60. One page  One object • Note that the webpage can represent only one object. • The Object can be anything. • Facebook has some predefined object types like activity, sport, company, restaurant, cause, university, city, game and many others… (Facebook Open Graph) • You can define any object type within your own schema. Jarrar © 2013 60
  61. 61. Our Employee webpage is now an object OBJECT EMPLOYEE Jarrar © 2013 61
  62. 62. Make a relation between a fecebook user and the object When a User RECOMMEND an Employee… a relation is constructed… User Action OBJECT RECOMMEND EMPLOYEE Jarrar © 2013 62
  63. 63. Now it can be integrated into facebook open graph New Relation https://developers.facebook.com/docs/concepts/opengraph/ Jarrar © 2013 63
  64. 64. Users are connected through social objects Are connected through https://developers.facebook.com/docs/concepts/opengraph/ Modified Jarrar © 2013 64
  65. 65. Why Facebook choose Open Graph • It is a minimal RDFa. • Facebook needs one namespace and one prefix! They didn’t like the following: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <meta property="dc:creator" content=―Mohammad ZeinEddin" /> <link rel="foaf:primaryTopic" href="http://example.org/john-d/#me" /> • Facebook reuse one html tag attribute: <meta property="og:title" content=―Mohammad ZeinEddin"/> Jarrar © 2013 65
  66. 66. Facebook Graph Search FB? Oracle? When can we Google the web in this way Jarrar © 2013 66
  67. 67. Conclusion (Informally Speaking) From Web of documents to Web of Objects Jarrar © 2013 67
  68. 68. Related Research @Birzeit Arabic Ontology MashQL for (Query/mashing up web data) Jarrar © 2013 68
  69. 69. MashQL This research was initiated at the University of Cyprus A language for querying and Mashing up the Web 3.0 With the following assumptions in mind:  The user does not know the schema.  There is no offline or inline schemaontology.  The query may involve multiple sources.  an expressive language. (not a single-purpose interface) Jarrar © 2013 69
  70. 70. Example 1 “Lara’s articles after 2007?” RDF Input From: http://www.site1.com/rdf www.site1.com/rdf :B1 :B1 :B1 :B1 :B2 :B2 :Title “Linked Data” :Author “Lara T.” :PubYear 2008 :Publisher “Springer” :Title “Data on the Web” :Author “Abiteboul S.” http://www.site2.com/rdf www.site2.com/rdf :A1 :A1 :A1 :A1 :A1 :A2 :A2 :A2 :A2 Query Everything Author ―^Lara‖ YearPubYear > 2007 Title ArticleTitle rdf:Type bibo:Article :Title “Data Web” :Author “Tom Lara” :Author “Bob Hacker” :Year 2007 rdf:Type bibo:Article :Title “Semantic Web” :Author “Tom Lara” :Year 2005  Interactive Query Formulation.  MashQL queries are translated into and executed as SPARQL. Jarrar © 2013 70
  71. 71. Example 1 “Lara’s articles after 2007?” RDF Input From: http://www.site1.com/rdf www.site1.com/rdf :B1 :B1 :B1 :B1 :B2 :B2 :Title “Linked Data” :Author “Lara T.” :PubYear 2008 :Publisher “Springer” :Title “Data on the Web” :Author “Abiteboul S.” http://www.site2.com/rdf www.site2.com/rdf :A1 :A1 :A1 :A1 :A1 :A2 :A2 :A2 :A2 Query Everything Jarrar © 2013 rdf:Type bibo:Article :Title “Data Web” :Author “Tom Lara” :Author “Bob Hacker” :Year 2007 rdf:Type bibo:Article :Title “Semantic Web” :Author “Tom Lara” :Year 2005 71
  72. 72. Example 1 “Lara’s articles after 2007?” RDF Input From: http://www.site1.com/rdf www.site1.com/rdf :B1 :B1 :B1 :B1 :B2 :B2 :Title “Linked Data” :Author “Lara T.” :PubYear 2008 :Publisher “Springer” :Title “Data on the Web” :Author “Abiteboul S.” http://www.site2.com/rdf www.site2.com/rdf :A1 :A1 :A1 :A1 :A1 :A2 :A2 :A2 :A2 Query Everything Everything Article A1 A2 B1 Types Individuals rdf:Type bibo:Article :Title “Data Web” :Author “Tom Lara” :Author “Bob Hacker” :Year 2007 rdf:Type bibo:Article :Title “Semantic Web” :Author “Tom Lara” :Year 2005 Background queries SELECT X WHERE {?X ?P ?O} Union SELECT X WHERE {?S ?P ?X} SELECT X WHERE {?S rdf:Type ?X} Jarrar © 2013 72
  73. 73. Example 1 “Lara’s articles after 2007?” RDF Input From: http://www.site1.com/rdf www.site1.com/rdf :B1 :B1 :B1 :B1 :B2 :B2 :Title “Linked Data” :Author “Lara T.” :PubYear 2008 :Publisher “Springer” :Title “Data on the Web” :Author “Abiteboul S.” http://www.site2.com/rdf www.site2.com/rdf :A1 :A1 :A1 :A1 :A1 :A2 :A2 :A2 :A2 Query Everything Author Author Title PubYear Type Year Contains Lara Equals Equals Contains Contains OneOf Not Between LessThan MoreThan rdf:Type bibo:Article :Title “Data Web” :Author “Tom Lara” :Author “Bob Hacker” :Year 2007 rdf:Type bibo:Article :Title “Semantic Web” :Author “Tom Lara” :Year 2005 Background query SELECT P WHERE {?Everything ?P ?O} Jarrar © 2013 73
  74. 74. Example 1 “Lara’s articles after 2007?” RDF Input From: http://www.site1.com/rdf www.site1.com/rdf :B1 :B1 :B1 :B1 :B2 :B2 :Title “Linked Data” :Author “Lara T.” :PubYear 2008 :Publisher “Springer” :Title “Data on the Web” :Author “Abiteboul S.” http://www.site2.com/rdf www.site2.com/rdf :A1 :A1 :A1 :A1 :A1 :A2 :A2 :A2 :A2 Query Everything Author ―^Lara Year PubYear Author Title PubYear Type Year MoreTh 2007 Equals Equals Contains OneOf Not Between LessThan MoreThan MoreThan rdf:Type bibo:Article :Title “Data Web” :Author “Tom Lara” :Author “Bob Hacker” :Year 2007 rdf:Type bibo:Article :Title “Semantic Web” :Author “Tom Lara” :Year 2005 Background query SELECT P WHERE {?Everything ?P ?O} Jarrar © 2013 74
  75. 75. Example 1 “Lara’s articles after 2007?” RDF Input From: http://www.site1.com/rdf www.site1.com/rdf :B1 :B1 :B1 :B1 :B2 :B2 :Title “Linked Data” :Author “Lara T.” :PubYear 2008 :Publisher “Springer” :Title “Data on the Web” :Author “Abiteboul S.” http://www.site2.com/rdf www.site2.com/rdf :A1 :A1 :A1 :A1 :A1 :A2 :A2 :A2 :A2 Query Everything Author ―^Lara YearPubYear > 2007 Title Author Author Title Title PubYear Type Year ArticleTitle rdf:Type bibo:Article :Title “Data Web” :Author “Tom Lara” :Author “Bob Hacker” :Year 2007 rdf:Type bibo:Article :Title “Semantic Web” :Author “Tom Lara” :Year 2005 Background query SELECT P WHERE {?Everything ?P ?O} Jarrar © 2013 75
  76. 76. Example 1 “Lara’s articles after 2007?” RDF Input From: http://www.site1.com/rdf www.site1.com/rdf :B1 :B1 :B1 :B1 :B2 :B2 :Title “Linked Data” :Author “Lara T.” :PubYear 2008 :Publisher “Springer” :Title “Data on the Web” :Author “Abiteboul S.” http://www.site2.com/rdf www.site2.com/rdf :A1 :A1 :A1 :A1 :A1 :A2 :A2 :A2 :A2 Query Everything Author ―^Lara YearPubYear > 2007 Title ArticleTitle rdf:Type bibo:Article :Title “Data Web” :Author “Tom Lara” :Author “Bob Hacker” :Year 2007 rdf:Type bibo:Article :Title “Semantic Web” :Author “Tom Lara” :Year 2005 PREFIX S1: <http://site1.com/rdf> PREFIX S2: <http://site1.com/rdf> SELECT ?ArticleTitle FROM <http://site1.com/rdf> FROM <http://site2.com/rdf> WHERE { {?X S1:Author ?X1} UNION {?X S2:Author ?X1} {?X S1:PubYear ?X2} UNION {?X S2:Year ?X2} {{?X S1:Title ?ArticleTitle} UNION {?X S2:Title ?ArticleTitle}} FILTER regex(?X1, “^Hacker”) JarrarFILTER (?X2 © 2013 > 2000)} 76
  77. 77. Example 2 “Recent articles from Cyprus?” Query Article Title ArticleTitle Author Address Country ―Cyprus‖ Year > 2008  Retrieve every Article that: has a title, written by author, who has address, this address has a country called Cyprus, and the article is published after 2008. Jarrar © 2013 77
  78. 78. MashQL Editor       Alpha version (Not public YET!) Web Ajax-based. Open sources Java Script libraries (from Yahoo) Oracle 11g as RDF store. Graphs Signature Index for fast user-interaction. URI Normalization based on heuristics. (but some URIs are too cryptic) Jarrar © 2013 78
  79. 79. MashQL Firefox Add-On (Light-mashups @ your browser) The browser becomes a web composer (not only a navigator ) Jarrar © 2013 79
  80. 80. Evaluation (DBLP, Experiment 1) (User Interaction Response Time) How long it takes to generate the next list? Query Any Article  O:(?S Type ?O)   Title ―^World-Wide Web‖  Creator Type Name Year Query Q1 Q2 Q3 Q4  Person   ―^Berners-Lee‖   P:(?S Type Article)(?S ?P ?O1)  P:(?S Type Article) (?S Creator ?O1) (?O1 ?P ?O2)  O:(?S Type Article) (?S Creator ?O1)(?O1 Type ?O) > 2007 DBLP (9M triples) GS Oracle 0.003 0.001 0.001 0.001 0.005 0.136 0.187 1.208 DBLP (4M triples) GS Oracle 0.003 0.001 0.001 0.001 Jarrar © 2013 0.004 0.148 0.846 0.835 DBLP (2M triples) GS Oracle 0.003 0.001 0.001 0.001 0.003 0.108 0.671 0.650 80
  81. 81. Evaluation (DBPedia, Experiment 2)  P:(?S :Type :Album) (?S :PreviousAlbum ?O1) (?O1 ?P ? O2) Query Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 DBPedia (32 M) 0.003 0.002 0.005 0.005 0.005 0.005 0.007 0.005 0.007 DBPedia (16 M) DBPedia (8 M) 0.003 0.003 0.002 0.002 0.004 0.003 0.004 0.004 0.004 0.004 0.005 0.005 0.007 0.007 0.005 0.005 0.007 © 2013 0.007 Jarrar DBPedia (4 M) 0.003 0.002 0.003 0.004 0.004 0.005 0.007 0.005 0.006 81
  82. 82. Evaluation (DBPedia, Experiment 3)  P3:(?S Type ?Album) (?S ?RelatedTo1 ?O1) (?O1 ?RelatedT02 ?O2) (?O2 ?P3 ?O4) Query Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 (B32) 32 M GS Oracle 0.001 0.027 0.026 17.450 0.048 49.656 0.087 5348.774 0.135 0.185 0.234 0.265 0.280 - DBPedia (16 M ) 0.001 0.010 0.010 0.022 0.036 0.055 0.076 0.098 Jarrar0.110 © 2013 DBPedia (8 M ) 0.001 0.006 0.011 0.017 0.032 0.047 0.061 0.077 0.092 DBPedia (4 M ) 0.001 0.005 0.010 0.011 0.011 0.016 0.023 0.027 0.034 82
  83. 83. Graph Signature (a native RDF Index) • Summary of all paths. • We query the Graph Signature instead of the Data Graph. Jarrar © 2013 83
  84. 84. Conclusions  ―Query and mash up the Data Web as simple as filtering up Web Feeds‖ is a query formulation problem.  End-users can navigate, query, and mash up unknown graphs. without knowing the schema. Data is schema-free. Multiple sources.  MashQL is expressive as SPARQL. Except NAMED GRAPH.  MashQL is not merely a SPARQL interface, or limited RDF. It has its own path-pattern intuition (can be similarly used for XML and DB). Jarrar © 2013 84
  85. 85. Thank You Download the slides from www.jarrar.info Reading: Mustafa Jarrar and Marios D. Dikaiakos: A Data Mashup Language for the Data Web. Proceedings of LDOW, WWW'09. ACM. ISSN 1613-0073. (2009). http://www.jarrar.info/publications/JD09.pdf.htm Mustafa Jarrar and Marios D. Dikaiakos: MashQL: A Query-by-Diagram Language Towards Semantic Data Mashups. Proceedings of ONISW'08, part of the ACM CiKM conference. ACM. pages (89-96) ISBN 9781605582559. (2008). http://www.jarrar.info/publications/onisw10-jarrar.pdf.htm Jarrar © 2013 85

×