1 / 62

Internet Technologies

Internet Technologies The Resource Description Framework (RDF and RDFa) RDF and RDFa Notes from two articles on course schedule: “What is RDF” by Tim Bray and Joshua Tauberer and the “RDFa Primer” from W3C A Knowledge Graph Triples Start Node Edge Label End Node

andrew
Download Presentation

Internet Technologies

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Internet Technologies The Resource Description Framework (RDF and RDFa) 95-733 Internet Technologies

  2. RDF and RDFa Notes from two articles on course schedule: “What is RDF” by Tim Bray and Joshua Tauberer and the “RDFa Primer” from W3C 95-733 Internet Technologies

  3. A Knowledge Graph 95-733 Internet Technologies

  4. Triples Start Node Edge Label End Node vincent_donofrio starred_in law_&_order_ci law_&_order_ci is_a tv_show the_thirteenth_floor similar_plot_as the_matrix 95-733 Internet Technologies

  5. Notation 3 (N3) or Turtle Format @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix ex: <http://www.example.org/> . ex:vincent_donofrio ex:starred_in ex:law_and_order_ci . ex:law_and_order_ci rdf:type ex:tv_show . ex:the_thirteenth_floor ex:similar_plot_as ex:the_matrix . 95-733 Internet Technologies

  6. RDF/XML <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://www.example.org/"> <rdf:Description rdf:about="http://www.example.org/vincent_donofrio"> <ex:starred_in> <ex:tv_show rdf:about="http://www.example.org/law_and_order_ci" /> </ex:starred_in> </rdf:Description> <rdf:Description rdf:about="http://www.example.org/the_thirteenth_floor"> <ex:similar_plot_as rdf:resource="http://www.example.org/the_matrix" /> </rdf:Description> </rdf:RDF> 95-733 Internet Technologies

  7. Another RDF/XML <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www. w3.org/2003/01/geo/wgs84_pos#" xmlns:edu="http://www.example.org/"> <rdf:Description rdf:about="http://www.princeton.edu"> <geo:lat>40.35</geo:lat> <geo:long>-74.66</geo:long> <edu:hasDept rdf:resource="http://www.cs.princeton.edu" dc:title="Department of Computer Science"/> </rdf:Description> </rdf:RDF> 95-733 Internet Technologies

  8. As A Table Subject Predicate Object ----------------------------- ----------- -------- <http://www.princeton.edu> edu:hasDept <http://www.cs.princeton.edu> <http://www.princeton.edu> geo:lat "40.35" <http://www.princeton.edu> geo:long "-74.66" <http://www.cs.princeton.edu> dc:title "Department of Computer Science" 95-733 Internet Technologies

  9. Notation 3 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix geo: <http://www. w3.org/2003/01/geo/wgs84_pos#> . @prefix edu: <http://www.example.org/> . <http://www.princeton.edu> geo:lat "40.35" ; geo:long "-74.66" . <http://www.cs.princeton.edu> dc:title "Department of Computer Science" . <http://www.princeton.edu> edu:hasDept <http://www.cs.princeton.edu> . 95-733 Internet Technologies

  10. From the RDFa W3C Primer “When web data meant for humans is augmented with hints meant for computer programs, these programs become significantly more helpful.” 95-733 Internet Technologies

  11. XHTML Without and With RDFa All content on this site is licensed under <a href="http://creativecommons.org/licenses/by/3.0/"> a Creative Commons License </a> All content on this site is licensed under <a rel="license" href="http://creativecommons.org/licenses/by/3.0/"> a Creative Commons License </a>. The rel, in a link, describes the relationship between the current page and the linked page. 95-733 Internet Technologies

  12. A Link with a Flavor 95-733 Internet Technologies

  13. Labeling Title and Author <div> <h2>The trouble with Bob</h2> <h3>Alice</h3> ... </div> <div xmlns:dc="http://purl.org/dc/elements/1.1/"> <h2 property="dc:title">The trouble with Bob</h2> <h3 property="dc:creator">Alice</h3> ... </div> RDFa introduces the property attribute. What kind of title? A title of a person or a title to land or a title of a work? 95-733 Internet Technologies

  14. In RDFa, all property names are, in fact, URLs. 95-733 Internet Technologies

  15. Multiple Items Per Page RDFa provides @about, an attribute for specifying the exact URL to which the contained RDFa markup applies <div xmlns:dc="http://purl.org/dc/elements/1.1/"> <div about="/alice/posts/trouble_with_bob"> <h2 property="dc:title">The trouble with Bob</h2> <h3 property="dc:creator">Alice</h3> ... </div> <div about="/alice/posts/jos_barbecue"> <h2 property="dc:title">Jo's Barbecue</h2> <h3 property="dc:creator">Eve</h3> ... </div> </div> 95-733 Internet Technologies

  16. As a Diagram 95-733 Internet Technologies

  17. Alice Gives Bob Credit <div about="/alice/posts/trouble_with_bob"> <h2 property="dc:title">The trouble with Bob</h2> The trouble with Bob is that he takes much better photos than I do: <div about="http://example.com/bob/photos/sunset.jpg"> <img src="http://example.com/bob/photos/sunset.jpg" /> <span property="dc:title">Beautiful Sunset</span> by <span property="dc:creator">Bob</span>. </div> </div> The inner about overrides the outer about. 95-733 Internet Technologies

  18. As A Graph 95-733 Internet Technologies

  19. Blog Contact Info <div> <p> Alice Birpemswick </p> <p> Email: <a href="mailto:alice@example.com">alice@example.com</a> </p> <p> Phone: <a href="tel:+1-617-555-7332">+1 617.555.7332</a> </p> </div> This is mainly useful for viewing. 95-733 Internet Technologies

  20. Blog w/FOAF Contact Info The Dublin core has no vocabulary for describing friendships. But foaf does. <div typeof="foaf:Person" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <p property="foaf:name">Alice Birpemswick</p> <p>Email: <a rel="foaf:mbox" href="mailto:alice@example.com"> alice@example.com</a> </p> <p> Phone: <a rel="foaf:phone" href="tel:+1-617-555-7332">+1 617.555.7332</a> </p> </div> The typeof is an RDFa attribute that is specifically meant to declare a new data item with a certain type. 95-733 Internet Technologies

  21. As A Graph Alice didn't specify @about like she did when adding blog entry metadata. What is she associating these properties with, then? In fact, the @typeof on the enclosing div implicitly sets the subject of the properties marked up within that div. The name, email address, and phone number are associated with a new node of type foaf:Person. This node has no URL to identify it, so it is called a blank node. 95-733 Internet Technologies

  22. Social Networks <div> <ul> <li> <a href="http://example.com/bob/">Bob</a> </li> <li> <a href="http://example.com/eve/">Eve</a> </li> <li> <a href="http://example.com/manu/">Manu</a> </li> </ul> </div> These people are all friends of Alice and she Includes them in her normal HTML blog. 95-733 Internet Technologies

  23. Adding RDFa First,describe these as Persons. <div xmlns:foaf="http://xmlns.com/foaf/0.1/"> <ul> <li typeof="foaf:Person"> <a href="http://example.com/bob/">Bob</a> </li> <li typeof="foaf:Person"> <a href="http://example.com/eve/">Eve</a> </li> <li typeof="foaf:Person"> <a href="http://example.com/manu/">Manu</a> </li> </ul> </div> 95-733 Internet Technologies

  24. Add Homepages Use rel for the link relationships. <div xmlns:foaf="http://xmlns.com/foaf/0.1/"> <ul> <li typeof="foaf:Person"> <a rel="foaf:homepage" href="http://example.com/bob/">Bob</a> </li> <li typeof="foaf:Person"> <a rel="foaf:homepage" href="http://example.com/eve/">Eve</a> </li> <li typeof="foaf:Person"> <a rel="foaf:homepage" href="http://example.com/manu/">Manu</a> </li> </ul> </div> 95-733 Internet Technologies

  25. Describe Text as Names <div xmlns:foaf="http://xmlns.com/foaf/0.1/"> <ul> <li typeof="foaf:Person"> <a property="foaf:name" rel="foaf:homepage" href="http://example.com/bob/">Bob</a> </li> <li typeof="foaf:Person"> <a property="foaf:name" rel="foaf:homepage" href="http://example.com/eve/">Eve</a> </li> <li typeof="foaf:Person"> <a property="foaf:name" rel="foaf:homepage" href="http://example.com/manu/">Manu</a> </li> </ul> </div> 95-733 Internet Technologies

  26. Claim in Primer “Alice is ecstatic that, with so little additional markup, she's able to fully express both a pleasant human-readable page and a machine-readable dataset.” 95-733 Internet Technologies

  27. Using foaf:knows <div xmlns:foaf="http://xmlns.com/foaf/0.1/" about="#me" rel="foaf:knows"> <ul> <li typeof="foaf:Person"> <a property="foaf:name" rel="foaf:homepage" href="http://example.com/bob">Bob</a> </li> <li typeof="foaf:Person"> <a property="foaf:name" rel="foaf:homepage" href="http://example.com/eve">Eve</a> </li> <li typeof="foaf:Person"> <a property="foaf:name" rel="foaf:homepage" href="http://example.com/manu">Manu</a> </li> </ul> </div> Alice knows these people with these names and homepages. 95-733 Internet Technologies

  28. 95-733 Internet Technologies

  29. Building Custom Vocabularies 1. Selecting a URL where the vocabulary will reside, e.g. http://example.com/photos/vocab#. 2. Distributing an RDF document, at that URL, which defines the classes and properties that make up the vocabulary. For example, Alice may want to define classes Photo and Camera, as well as the property takenWith that relates a photo to the camera with which it was taken. 3. Using the vocabulary in XHTML+RDFa with the usual prefix declaration mechanism, e.g. xmlns:photo="http://example.com/photos/vocab#", and typeof="photo:Camera". 95-733 Internet Technologies

  30. Microformats Compete with RDFa hCard Business card data XFN Friends and contacts hCalendar Events hReview Review movies, books, etc.. “When web data meant for humans is augmented with hints meant for computer programs, these programs become significantly more helpful.” But, perhaps we will use microformats rather than RDFa. 95-733 Internet Technologies

  31. Microformats Compete with RDFa As an exercise, visit http://microformats.org and build an hCard and an hCalendar. Use hCard creator and hCalendar creator. 95-733 Internet Technologies

  32. RDF On Its Own • RDFa is RDF in XHTML. • The Resource Description Framework (RDF) is a W3C recommendation for • an XML encoding of metadata. • A standard for encoding metadata is important for finding and • describing resources. A “resource” is anything with a URI. This would • include people, books, devices and so on. • Card catalogs, for example, have been used for years to record metadata • about the collection of materials in libraries. Is Google the card catalogue • for the web? Are we done? 95-733 Internet Technologies

  33. RDF Is All About Making Statements • An RDF Document contains Statements. • A statement can be thought of as an ordered triple composed of three items: (resource, property-type, property-value) • A Resource is anything that can be identified. • A Predicate is a property name that has a URI. The Predicate may or may not actually be resolvable. • A Value is another Resource or a literal • Statements may be represented in RDF XML, abbreviated RDF XML, N-Triples or graphs. 95-733 Internet Technologies

  34. RDF Triples It is required that each resource have a URI. http://www.andrew.cmu.edu http://www.andrew.cmu.edu/~mm6/my.xml#root().child(1) mailto:mm6@andrew.cmu.edu urn:isbn:0764532367 (resource, property-type, property-value) A property is a specific characteristic, attribute or relationship of a resource. Each property has a specific meaning that can be identified by the property’s name and the associated schema. The schema must actually be pointed to by the property’s namespace. Using RDF Schema we can describe the property names, values and value ranges that are permitted for the property. 95-733 Internet Technologies

  35. A Simple Description <RDF> <Description about = "Some URI"> <creator>property value </creator> <title>property value </title> </Description> </RDF> 95-733 Internet Technologies

  36. Resource Valued Property <RDF> <Description about = "Some URI"> <creator rdf:resource = "www.andrew.cmu.edu/~mm6"/> </Description> <Description about = "www.andrew.cmu.edu/~mm6"> <FN>Mike McCarthy</FN> </Description> </RDF> 95-733 Internet Technologies

  37. Making Many Statements <RDF> <Description about = "Some URI"> <creator>property value</creator> <title>property value</title> </Description> <Description about = "Some URI"> <creator>property value</creator> <title>property value</title> </Description> : : </RDF> 95-733 Internet Technologies

  38. Blank Nodes <RDF> <Description about = "Some URI"> <creator> <Description> <FN>Joe Smith</FN> <EMAIL>joes@mycom.com</EMAIL> </Description> </creator> </Description> </RDF> 95-733 Internet Technologies

  39. XML Valued Property <RDF> <Description about = "Some URI"> <generates rdf:parseType="Literal"> <html><body></body></html> </generates> </Description> </RDF> 95-733 Internet Technologies

  40. A Type Property <RDF> <Description about = ”SomeURL"> <rdf:type rdf:resource= "http://www.schemas.org/www/WebPage"/> </Description> </RDF> 95-733 Internet Technologies

  41. An Abbreviated Type Property <RDF> <TypeName about = "Some URI"> <creator>property value </creator> <title>property value</title> </TypeName> </RDF> 95-733 Internet Technologies

  42. RDF Notations • English • RDF XML • Abbreviated RDF XML • N-Triples • Graph 95-733 Internet Technologies

  43. Another RDF ApplicationComposite Capabilities/Preference Profiles • The CC/PP working group was formed in August • 1999. • Its mission was to develop an RDF-based • framework for the management of device profile • information. • Now under W3C’s Ubiquitous Web Applications • Working Group (UWAWG) 95-733 Internet Technologies

  44. An RDF Application CC/PP • A composite capability/preference profile is a collection • of information which describes the capabilities, • hardware, system software and applications used by • someone accessing the web. Information might • include: • Preferred language (Spanish, French, etc.) • Sound (on/off) • Images (on/off) • Class of device (phone, PC, printer, etc.) • Screen size • Available bandwidth • Version of HTML supported, and so on. 95-733 Internet Technologies

  45. Composite Capability/Preference Profiles (CC/PP) DEVICE PROFILE CC/PP provides the equivalent of database fields and associated model for formalizing the device profiles CC/PP RDF RDF is language which provides a standard way for using XML to represent metadata in the form of properties and relationships of items on the Web. XML The device profile and user preferences might be stored in a CC/PP repository. CC/PP is in turn an RDF application. 95-733 Internet Technologies

  46. Composite Capability/Preference Profiles (CC/PP) • The location of the device profile is sent with a request for • a Web page. • The CC/PP data is accessed and on the basis of the • profile, a Web server can choose the right content. This • might be a certain XHTML file or perhaps a suitable • document would be generated on the fly. • A document on the server may refer to its own document • profile-describing the required capabilities of its client. • The server might match and send or generate and send. 95-733 Internet Technologies

  47. Each variant of the document has a document profile describing the browser support it needs to display it DEVICE PROFILES DOCUMENT PROFILES NEGOTIATE CORRECT CONTENT FOR DEVICES If none of the document variants are suitable, existing document may be transformed by style sheet or tool for the purpose, or new document generated DEVICES RECEIVE RIGHT MARK-UP 95-733 Internet Technologies

  48. Processing RDF in Java • XSLT? • DOM? • SAX? • StAX? • Open source Jena from HP Research provides another approach 95-733 Internet Technologies

  49. Jena Example 1 // Modified from HP's Jena Tutorial // ~/mm6/www/95-733/examples/Jena import com.hp.hpl.jena.rdf.model.*; import com.hp.hpl.jena.vocabulary.*; public class Tutorial01 extends Object { // some definitions static String personURI = http://somewhere/JohnSmith; static String fullName = "John Smith"; 95-733 Internet Technologies

  50. public static void main (String args[]) { // create an empty model (An empty RDF graph) Model model = ModelFactory.createDefaultModel(); // create the resource Resource johnSmith = model.createResource(personURI); // add the property johnSmith.addProperty(VCARD.FN, fullName); model.write(System.out); } } 95-733 Internet Technologies

More Related