The Semantic Web An Introduction


Published on

This presentation is entitled "The Semantic Web and Drupal: An Introduction", presented at Drupalcamp Atlanta, 9/19/09.

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

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

No notes for slide

The Semantic Web An Introduction

  1. 1. The Semantic Web and Drupal Bill Shaouy [email_address] An Introduction
  2. 2. The Static Web
  3. 3. The Interactive Web
  4. 4. The Semantic Web
  5. 5. What Is the Semantic Web? a technology that allows computers to perform browsing, searching, and authoring for us
  6. 6. Definition of “Semantic”
  7. 7. What’s In It for Site Owners Improved, more refined search results
  8. 8. What’s In It for Users Deeper, more specific search Steve Smith Steve Smith
  9. 9. What’s In It for Users Mapping events to calendars and address books
  10. 10. What’s In It for Users Highlight items with your browser, e.g. songs
  11. 11. What’s In It for Users A Social Network Between Sites
  12. 12. What’s In It for Users Automatically merge from different sites
  13. 13. “ The Web can reach its full potential only if it becomes a place where data can be shared and processed by automated tools as well as by people.” <ul><li>Tim Berners-Lee </li></ul><ul><li>Inventor of the World Wide Web </li></ul>
  14. 14. A Semantic Web Standard Must… 1. Express information flexibly. 2. Have content items in different places easily to relate to each other. 3. Use vocabularies for making assertions about things, but these vocabularies must be able to be mixed together.
  15. 15. RDF vs. Microformats The Drupal community is gravitating toward RDF
  16. 16. RDF <ul><li>Stands for “Resource Description Framework” </li></ul><ul><li>A means for expressing semantic information </li></ul><ul><li>Sometimes expressed as triples -- subject-predicate-object expressions </li></ul>
  17. 17. RDFa <ul><li>RDFa is RDF for the web </li></ul><ul><li>RDFa is a w3c web standard for embedding RDF in your web content </li></ul><ul><li>Turns the existing human-visible text and links into machine-readable data without repeating content </li></ul>
  18. 18. RDF Vocabulary <ul><li>Used for sites to speak a common language </li></ul><ul><li>e.g. Dublin Core (dc) for document descriptions </li></ul><ul><li>e.g. Friend of a Friend (foaf) for person information </li></ul>
  19. 19. Use Common Vocabularies This allows existing applications to make use of your information, without needing to be modified by developers to recognize your own URIs.
  20. 20. RDF Vocabulary Example Here’s a snippet from the Friend of a Friend (foaf) vocabulary: <rdf:Property rdf:about=&quot; firstName &quot; vs:term_status=&quot;testing&quot; rdfs:label=&quot;firstName&quot; rdfs:comment=&quot;The first name of a person.&quot;> <rdf:type rdf:resource=&quot;;/> <rdfs:domain rdf:resource=&quot;;/> <rdfs:range rdf:resource=&quot;;/> <rdfs:isDefinedBy rdf:resource=&quot;;/> </rdf:Property> <rdf:Property rdf:about=&quot; givenname &quot; vs:term_status=&quot;testing&quot; rdfs:label=&quot;Given name&quot; rdfs:comment=&quot;The given name of some person.&quot;> <rdf:type rdf:resource=&quot;;/> <rdfs:isDefinedBy rdf:resource=&quot;;/> </rdf:Property> <rdf:Property rdf:about=&quot; surname &quot; vs:term_status=&quot;testing&quot; rdfs:label=&quot;Surname&quot; rdfs:comment=&quot;The surname of some person.&quot;> <rdf:type rdf:resource=&quot;;/> <rdfs:domain rdf:resource=&quot;;/> <rdfs:range rdf:resource=&quot;;/> <rdfs:isDefinedBy rdf:resource=&quot;;/> </rdf:Property>
  21. 21. RDF Vocabulary Example … but you don’t need to know the vocabulary innards. Just use markup shorthand, e.g.: foaf:firstName
  22. 22. List of Popular Vocabularies dc : foaf : dcterms : dcmitype : sioc : skos : doap :
  23. 23. XHTML Markup Example <div> <h2>Much Ado About Nothing</h2> <h3>William Shakespeare</h3> ... </div>
  24. 24. XHTML Markup Example <div xmlns:dc=&quot;; > <h2 property=&quot;dc:title&quot; >Much Ado About Nothing</h2> <h3 property=&quot;dc:creator&quot; >William Shakespeare</h3> ... </div>
  25. 25. XHTML Markup Example <div> <p> John Doe </p> <p> Email: <a href=&quot;;></a> </p> <p> Phone: <a href=&quot;tel:+888-555-1111&quot;>888-555-1111</a> </p> </div>
  26. 26. XHTML Markup Example <div typeof=&quot;foaf:Person&quot; xmlns:foaf=&quot;; > <p property=&quot;foaf:name&quot; > John Doe </p> <p> Email: <a rel=&quot;foaf:mbox&quot; href=&quot;;></a> </p> <p> Phone: <a rel=&quot;foaf:phone&quot; href=&quot;tel:+888-555-1111&quot;>888-555-1111</a> </p> </div>
  27. 27. XHTML Markup Example <div> <ul> <li> <a href=&quot;;>Dan</a> </li> <li> <a href=&quot;;>Meg</a> </li> <li> <a href=&quot;;>Ray</a> </li> </ul> </div>
  28. 28. XHTML Markup Example <div xmlns:foaf=&quot;; about=&quot;#me&quot; rel=&quot;foaf:knows&quot; > <ul> <li typeof=&quot;foaf:Person&quot; > <a property=&quot;foaf:name&quot; rel=&quot;foaf:homepage&quot; href=&quot;;>Dan</a> </li> <li typeof=&quot;foaf:Person&quot; > <a property=&quot;foaf:name&quot; rel=&quot;foaf:homepage&quot; href=&quot;;>Meg</a> </li> <li typeof=&quot;foaf:Person&quot; > <a property=&quot;foaf:name&quot; rel=&quot;foaf:homepage&quot; href=&quot;;>Ray</a> </li> </ul> </div>
  29. 29. Triples in RDF Facts can be expressed as a subject-predicate-object triple
  30. 30. RDF N3 Notation Example: @prefix dc: <> . <urn:isbn:B00005U7WO> dc:title &quot;The Future of Ideas&quot; vocabulary subject object predicate
  31. 31. RDF N3 Notation @prefix dc: <> . @prefix geo: <> . @prefix edu: <> . <> geo:lat &quot;40.35&quot; ; geo:long &quot;-74.66&quot; . <> dc:title &quot;Department of Computer Science&quot; . <> edu:hasDept <> . Another example:
  32. 32. So We Know How to Produce Semantic Content. How Do We Consume It?
  33. 33. SPARQL A query language for RDF modeled roughly after SQL. @prefix bill: <> @prefix ex: <> bill:my_office ex:contains bill:my_computer . bill:my_office ex:contains bill:my_phone . For example, assume the following:
  34. 34. SPARQL A SPARQL query then might look like this: @prefix bill: <> @prefix ex: <> SELECT ?what WHERE { bill:my_office ex:contains ?what . }
  35. 35. SPARQL And the search results would be the following: ?what ----------------- bill:my_computer bill:my_phone
  36. 36. When is the Semantic Web Usable? Now! But…
  37. 37. The Two-To-Tango Problem Semantic content consumers need semantic content producers!
  38. 38. Enter Drupal
  39. 39. Module: RDF Enables the use of RDF metadata.
  40. 40. Module: RDF CCK Allows you to map RDF to CCK fields
  41. 41. RDF External Vocabulary Importer Allows you to import external RDF vocabularies into your site
  42. 42. Module: Open Calais <ul><li>Integrates the Thomson Reuters' Calais web service into Drupal. </li></ul><ul><li>Automatically creates rich semantic metadata for Drupal content. </li></ul><ul><li>Uses natural language processing, machine learning and other methods. </li></ul>
  43. 43. Open Calais Information <ul><li> </li></ul><ul><li> </li></ul>
  44. 44. Other Semantic Web Modules <ul><li>Feed API RDF Processor </li></ul><ul><li>Calais Marmoset </li></ul><ul><li>Neologism </li></ul>
  45. 45. RDF in Drupal 7 <ul><li>For D7, community is trying on getting RDF functionality into core </li></ul><ul><li> contributing to the effort, among others </li></ul>
  46. 46. RDF in Drupal 7 <ul><li>Goals for RDF in D7: </li></ul><ul><li>API for mapping triples to vocabularies </li></ul><ul><li>RDF markup for core content types </li></ul><ul><li>Provide a hook to allow overrides </li></ul>
  47. 47. <ul><li>Drupal group – </li></ul><ul><li>The Linked Data Organization – </li></ul><ul><li>DBPedia – </li></ul><ul><li>Schemaweb – </li></ul>Resources
  48. 48. <ul><li>RDF Resource Guide – </li></ul><ul><li>Semantic Web Tools – </li></ul><ul><li>Drupalcon Paris: The State of RDF in Drupal – </li></ul>Resources
  49. 49. “ (This) is too great an opportunity for us to pass up on. By adding semantic technology to Drupal core, I think we can make a notable contribution to the future of the web.” Thank You! -- Dries Buytaert