Grddl In A Nutshell V1

4,762 views

Published on

Takahashi style tutorial on GRDDL (version 1)

Published in: Technology

Grddl In A Nutshell V1

  1. 1. GRDDL in a nutshell fabien, gandon, inria
  2. 2. I want my data back <ul><li>from my web pages. </li></ul>
  3. 3. many data <ul><li>in my web page </li></ul>
  4. 4. I want your data back <ul><li>from your web pages. </li></ul>
  5. 5. many data <ul><li>in many web pages </li></ul>
  6. 6. open your data <ul><li>to anyone who might use it </li></ul>W3C ©
  7. 7. deep web in particular…
  8. 8. many dialects <ul><li>of XML are in use </li></ul><ccxml version=&quot;1.0&quot; xmlns=&quot;http://www.w3.org/2002/09/ccxml&quot;> <eventprocessor> <transition event=&quot;connection.alerting&quot; name=&quot;evt&quot;> <log expr=&quot;'The number called is' + evt.connection.remote + '.'&quot;/> <if cond=&quot;evt.connection.remote == 'tel:+18315551234'&quot;> <log expr=&quot;'Go away! we do not want to answer the phone.'&quot;/> <reject/> <else/> <log expr=&quot;'We like you! We are going to answer the call.'&quot;/> <accept/> </if> </transition> <transition event=&quot;connection.connected&quot;> <log expr=&quot;'Call was answered,Time to disconnect it.'&quot;/> <disconnect/> </transition> <transition event=&quot;connection.disconnected&quot;> <log expr=&quot;'Call has been disconnected. Ending CCXML Session.'&quot;/> <exit/> </transition> </eventprocessor> </ccxml> <ul><ul><li><mroot> </li></ul></ul><ul><ul><li><mrow> </li></ul></ul><ul><ul><li><mn>1</mn> </li></ul></ul><ul><ul><li><mo>-</mo> </li></ul></ul><ul><ul><li><mfrac> </li></ul></ul><ul><ul><li><mi>x</mi> </li></ul></ul><ul><ul><li><mn>2</mn> </li></ul></ul><ul><ul><li></mfrac> </li></ul></ul><ul><ul><li></mrow> </li></ul></ul><ul><ul><li><mn>3</mn> </li></ul></ul><ul><ul><li></mroot> </li></ul></ul><users> <person login=&quot;fgandon&quot; uid=&quot;19536&quot;> <home>/net/user/fg</home> <pref>/sys/19536.inf</pref> <access_level>8</access_level> </person> <person login=&quot;fgandon&quot; uid=&quot;19536&quot;> <home>/net/user/fg</home> <pref>/sys/19536.inf</pref> <access_level>8</access_level> </person> </users> <p:pipeline name=&quot;fig2&quot; xmlns:p=&quot;http://example.org/PipelineNamespace&quot;> <p:input port=&quot;doc&quot; sequence=&quot;no&quot;/> <p:output port=&quot;out&quot; step=&quot;xform&quot; source=&quot;result&quot;/> <p:choose name=&quot;vcheck&quot; step=&quot;fig2&quot; source=&quot;doc&quot;> <p:when test=&quot;/*[@version &lt; 2.0]&quot;> <p:output name=&quot;valid&quot; step=&quot;val1&quot; source=&quot;result&quot;/> <p:step type=&quot;p:validate&quot; name=&quot;val1&quot;> <p:input port=&quot;document&quot; step=&quot;fig2&quot; source=&quot;doc&quot;/> <p:input port=&quot;schema&quot; href=&quot;v1schema.xsd&quot;/> </p:step> </p:when> <p:otherwise> <p:output name=&quot;valid&quot; step=&quot;val2&quot; source=&quot;result&quot;/> <p:step type=&quot;p:validate&quot; name=&quot;val2&quot;> <p:input port=&quot;document&quot; step=&quot;fig2&quot; source=&quot;doc&quot;/> <p:input port=&quot;schema&quot; href=&quot;v2schema.xsd&quot;/> </p:step> </p:otherwise> </p:choose> <p:step type=&quot;p:xslt&quot; name=&quot;xform&quot;> <p:input port=&quot;document&quot; step=&quot;vcheck&quot; source=&quot;valid&quot;/> <p:input port=&quot;stylesheet&quot; href=&quot;stylesheet.xsl&quot;/> </p:step> </p:pipeline> <ul><ul><li><HTML> <HEAD> </li></ul></ul><ul><ul><li><TITLE>title</TITLE> </li></ul></ul><ul><ul><li><LINK REL=STYLESHEET TYPE=&quot;text/css&quot; HREF=&quot;http://style.com/cool&quot; TITLE=&quot;Cool&quot;> </li></ul></ul><ul><ul><li></HEAD> </li></ul></ul><ul><ul><li><BODY> </li></ul></ul><ul><ul><li><H1>Headline is blue</H1> </li></ul></ul><ul><ul><li><P STYLE=&quot;color: green&quot;>While the paragraph is green. </li></ul></ul><ul><ul><li></BODY> </li></ul></ul><ul><ul><li></HTML> </li></ul></ul>
  9. 9. resources <ul><li>many ways to weave data with the web </li></ul>
  10. 10. embedding explicit <ul><li>several initiatives to make data </li></ul>
  11. 11. your data <ul><li>GRRDL = an easy way to open </li></ul>
  12. 12. XML data <ul><li>GRRDL = an easy way to extract RDF from </li></ul>http://www.flickr.com/photos/cho45/1402634073/
  13. 13. imagine…
  14. 14. guitar, <ul><li>Stephan wishes to buy a </li></ul>
  15. 15. reviews, <ul><li>he visits a site offering </li></ul>
  16. 16. reviews & profiles <ul><li>he uses GRDDL to aggregate </li></ul>
  17. 17. GRDDL at work
  18. 18. GRDDL step 1 declare a document is a source
  19. 19. GRDDL step 2 link it to one or more extractors
  20. 20. GRDDL step 3 let GRDDL agents extract RDF from the document
  21. 21. generic profile <ul><li>declare an XHTML document is a source </li></ul><head profile=&quot;http://www.w3.org/2003/g/data-view&quot; > <title>The man who mistook his wife for a hat</title> <link rel=&quot;transformation&quot;  href=&quot;http://www.w3.org/2000/06/ dc-extract/dc-extract.xsl&quot; /> <meta name=&quot;DC.Subject&quot; content=&quot;clinical tales&quot; /> … </head>
  22. 22. transformation <ul><li>link an XHTML document to a </li></ul><head profile=&quot;http://www.w3.org/2003/g/data-view&quot;> <title>The man who mistook his wife for a hat</title> < link rel=&quot;transformation&quot;  href=&quot;http://www.w3.org/2000/06/ dc-extract/dc-extract.xsl&quot; /> <meta name=&quot;DC.Subject&quot; content=&quot;clinical tales&quot; /> … </head>
  23. 23. GRDDL agent <ul><li>what is extracted by a standard </li></ul><head profile=&quot;http://www.w3.org/2003/g/data-view&quot;> <title> The man who mistook his wife for a hat </title> <link rel=&quot;transformation&quot;  href=&quot;http://www.w3.org/2000/06/ dc-extract/dc-extract.xsl&quot; /> < meta name=&quot;DC.Subject&quot; content=&quot;clinical tales&quot; /> … </head> # dc:title &quot;The man who mistook his wife for a hat&quot;  # dc:subject &quot;clinical tales&quot;
  24. 24. custom profile declare a source and a transformation at once
  25. 25. custom profile <ul><li>no transformation, just reference the </li></ul><head profile=&quot;http://purl.org/NET/erdf/profile&quot; > <title>Fabien’s agenda</title> (…) </head>
  26. 26. transformation <ul><li>profile document = GRDDL source giving the </li></ul><html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;> <head profile=&quot;http://www.w3.org/2003/g/data-view&quot; > <link rel=&quot;transformation&quot; href=&quot; http://www.w3.org/2003/g/glean-profile &quot; /> </head> <body> <p> <a rel=&quot;profileTransformation&quot; href=&quot;http://purl.org/NET/erdf/extract-rdf&quot;>GRDDL transform</a> </p> </body> </html>
  27. 27. XML document declare a source and a transformation for an
  28. 28. generic profile <ul><li>declare an XML document is a source </li></ul><book xmlns=&quot;http://example.org/book/&quot; xmlns:grddl=&quot;http://www.w3.org/2003/g/data-view#&quot; grddl:transformation=&quot; http://example.org/book/getAuthor.xsl &quot; > <title>The man who mistook his wife for a hat</title> … </book>
  29. 29. transformation <ul><li>link an XML document to a </li></ul><book xmlns=&quot;http://example.org/book/&quot; xmlns:grddl=&quot;http://www.w3.org/2003/g/data-view#&quot; grddl:transformation=&quot; http://example.org/book/getAuthor.xsl &quot; > <title>The man who mistook his wife for a hat</title> … </book>
  30. 30. message <ul><li>take away </li></ul>
  31. 31. Don't bury your data in some HTML page or XML document
  32. 32. data… when you publish a document that contains
  33. 33. do reference GRDDL profiles and/or transformations
  34. 34. fabien, gandon

×