Docstoc

RDF

Document Sample
RDF Powered By Docstoc
					+


    Internet Technologies


     The Resource Description
    Framework (RDF and RDFa)

                            95-733 Internet Technologies
+

RDF and RDFa




               Notes from three articles on course schedule: “What is
               RDF” by Tim Bray and Joshua Tauberer, the “RDFa
               Primer” from W3C and from Google’s adoption of RDFa
               and Microformats.


                                             95-733 Internet Technologies
+
    A Knowledge Graph




95-733 Internet Technologies
+
    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
+
    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
+
    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
+
    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
+
    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
+
    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
+
    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
+
    XHTML Without and With RDFa

 All content on this site is licensed under

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

    a Creative Commons License

 </a>.


95-733 Internet Technologies
+
    A Link with a Flavor




95-733 Internet Technologies
+
    Labeling Title and Author

    <div>                                   RDFa introduces the
      <h2>The trouble with Bob</h2>         property attribute.
      <h3>Alice</h3>
      ...                                   What kind of title? A
    </div>                                  title of a person or a
                                            title to land or a title of
                                            a work?

   <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>
95-733 Internet Technologies
+ In RDFa, all property names are, in
  fact, URLs.




95-733 Internet Technologies
+
    Multiple Items Per Page

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




95-733 Internet Technologies
+
    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>                                                The   inner about
        </div>
                                                                  overrides the
                                                                  outer about.

95-733 Internet Technologies
+
    As A Graph




95-733 Internet Technologies
+
    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
 +
     Blog w/FOAF Contact Info

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

 95-733 Internet Technologies
+
    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
+
    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>                                      These people are all
</div>                                       friends of Alice and she
                                           Includes them in her
                                           normal HTML blog.
95-733 Internet Technologies
+
    Adding RDFa

                                                      First,describe
        <div xmlns:foaf="http://xmlns.com/foaf/0.1/"> these as
          <ul>                                        Persons.
            <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
+
    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
+
    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
+
    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
+
    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
+




95-733 Internet Technologies
+
    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
+
    Microformats Compete with RDFa
         Not from a standards body. A grassroots effort since
         2004.
                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.”


95-733 Internet Technologies
+
    Microformats Compete with RDFa

         As an exercise, visit:

         http://microformats.org and build an hCard and
         an hCalendar.

         Use hCard creator and hCalendar creator.

         Quiz. What information is requested by the XFN tool?




95-733 Internet Technologies
+
    Google adopted Microformats and
    RDFa in 2009

         Why? In support of “Rich Snippits”.


          “Google Rich Snippets provides structured data in
          Google search result snippets. Webmasters can provide
          this structured data by using microformats or RDFa to
          mark up their web pages. “

          See the Rich Snippit Testing Tool at :
          http://www.google.com/webmasters/tools/richsnippets

95-733 Internet Technologies
+
    Rich Snippits




     “This kind of markup is designed for sites containing
     specific types of structured data. Google currently
     supports the following information types: reviews,
     people profiles, business listings, and events.”

      From: http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=99170


95-733 Internet Technologies
+
    Examples from Google – A Review
    of a Pizza Joint
      The old way:

      <div> L’Amourita Pizza Reviewed by Ulysses
      Grant on Jan 6. Delicious, tasty pizza on
      Eastlake! L'Amourita serves up traditional wood-fired
      Neapolitan-style pizza, brought to your table
      promptly and without fuss. An ideal neighborhood
      pizza joint. Rating: 4.5
      </div>
      :



95-733 Internet Technologies
+
    Examples from Google – A Review
    of a Pizza Joint
      With RDFa:

      <div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Review">
       <span property="v:itemreviewed">L’Amourita Pizza</span>
       Reviewed by <span property="v:reviewer">Ulysses Grant</span>
       on
       <span property="v:dtreviewed" content="2009-01-06">Jan 6</span>.
       <span property="v:summary">Delicious, tasty pizza on Eastlake!</span>
       <span property="v:description">L'Amourita serves up traditional wood-fired
       Neapolitan-style pizza, brought to your table promptly and without fuss.
       An ideal neighborhood pizza joint.
       </span>
       Rating:
       <span property="v:rating">4.5</span>
      </div>
                                       Be sure to visit:
95-733 Internet Technologies
                                       http://rdf.data-vocabulary.org/rdf.xml
+
    Examples from Google – A Review
    of a Pizza Joint
       With Microformats:

       <div class="hreview">
         <span class="item">
           <span class="fn">L’Amourita Pizza</span>
         </span>
         Reviewed by <span class="reviewer">Ulysses Grant</span>
         on
         <span class="dtreviewed"> Jan 6<span class="value-title" title="2009-01-06">
         </span>
         <span class="summary">Delicious, tasty pizza on Eastlake!</span>
         <span class="description">L'Amourita serves up traditional
            wood-fired Neapolitan-style pizza, brought to your table promptly and
            without fuss. An ideal neighborhood pizza joint.
         </span>
         Rating: <span class="rating">4.5</span>
       </div>
95-733 Internet Technologies
+
    Examples from Google – People
       The old way:

       <div> My name is Bob Smith, but people call me
       Smithy. Here is my home page:
       <a href="http://www.example.com">www.example.com</a>.
       I live in Albuquerque, NM and work as an engineer at
       ACME Corp. My friends:
       <a href="http://darryl-blog.example.com">Darryl</a>,
       <a href="http://edna-blog.example.com">Edna</a>
       </div>



95-733 Internet Technologies
+
    Examples from Google – People
       In RDFa:

       <div xmlns:v="http://rdf.data-vocabulary.org/#"
        typeof="v:Person"> My name is
        <span property="v:name">Bob Smith</span>, but people call me
        <span property="v:nickname">Smithy</span>.
         Here is my homepage: <a href=http://www.example.com rel="v:url">
            www.example.com</a>.
         I live in
         <span rel="v:address">
            <span typeof="v:Address">
              <span property="v:locality">Albuquerque</span>,
              <span property="v:region">NM</span>
            </span>
         </span> and work as an
         <span property="v:title">engineer</span> at
         <span property="v:affiliation">ACME Corp</span>.
         My friends: <a href="http://darryl-blog.example.com" rel="v:friend">Darryl</a>,
         <a href="http://edna-blog.example.com" rel="v:friend">Edna</a>
       </div>
95-733 Internet Technologies
+
    Examples from Google – People
       In Microformats:

       <div class="vcard"> My name is
         <span class="fn">Bob Smith</span>,
         but people call me
         <span class="nickname">Smithy</span>.
         Here is my home page:
         <a href=http://www.example.com class="url">www.example.com</a>.
         I live in
         <span class="adr">
            <span class="locality">Albuquerque</span>,
            <span class="region">NM</span>
          </span> and work as an
          <span class="title">engineer</span>
          at
          <span class="org">ACME Corp</span>.
          My friends: <a href=http://darryl-blog.example.com rel="friend">Darryl</a>,
          <a href="http://edna-blog.example.com" rel="friend">Edna</a>
       </div>
95-733 Internet Technologies
+
    Examples from Google – Events
       The old way:

       <div>
       <a href="http://www.example.com/events/spinaltap">Spinal Tap</a>
       <img src="spinal_tap.jpg" /> After their highly-publicized search for a
       new drummer, Spinal Tap kicks off their latest comeback tour with a
       San Francisco show. When: Oct 15, 7:00PM—9:00PM Where: Warfield
       Theatre, 982 Market St, San Francisco, CA Category: Concert
       </div>




95-733 Internet Technologies
+
    Examples from Google – Events
       In RDFa:

       <div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Event">
        <a href="http://www.example.com/events/spinaltap" rel="v:url" property="v:summary">
        Spinal Tap</a>
        <img src="spinal_tap.jpg" rel="v:photo" />
        <span property="v:description">After their highly-publicized search for a
        new drummer, Spinal Tap kicks off their latest comeback tour with a San
        Francisco show.
        </span> When:
        <span property="v:startDate" content="2009-10-15T19:00-08:00">Oct 15, 7:00PM</span>
        <span property="v:endDate" content="2009-10-15T21:00-08:00">9:00PM</span>
        Where:
        <span rel="v:location">
           <span typeof="v:Organization">
             <span property="v:name">Warfield Theatre</span>,




95-733 Internet Technologies
+
    Examples from Google – Events
        <span rel="v:address">
          <span typeof="v:Address">
             <span property="v:street-address">982 Market St</span>,
             <span property="v:locality">San Francisco</span>,
             <span property="v:region">CA</span>
          </span>
          </span>
        <span rel="v:geo">
             <span typeof="v:Geo">
                <span property="v:latitude" content="37.774929" ></span>
                <span property="v:longitude" content="-122.419416" ></span>
             </span>
         </span>
       </span>
       </span>
         Category:
         <span property="v:eventType">Concert</span>
       </div>



95-733 Internet Technologies
+
    Examples from Google – Events
        In Microformat:

     <div class="vevent">
     <a href="http://www.example.com/events/spinaltap" class="url summary">Spinal Tap</a>
     <img src="spinal_tap.jpg" class="photo" />
     <span class="description">After their highly-publicized search for a new drummer,
     Spinal Tap kicks off their latest comeback tour with a San Francisco show.</span>
     When: <span class="dtstart"> Oct 15, 7:00PM<span class="value-title" title="2009-10-15T19:00
     </span>
     </span>
     <span class="dtend"> 9:00PM<span class="value-title" title="2009-10-15T21:00-08:00">
     </span>
     </span> Where: <div class="location vcard">
     <span class="fn org">Warfield Theatre</span>,
     <span class="adr">
     <span class="street-address">982 Market St</span>,
     <span class="locality">San Francisco</span>,
     <span class="region">CA</span>
     </span>
95-733 Internet Technologies
+
    Examples from Google – Events

      <span class="geo">
      <span class="latitude">
      <span class="value-title" title="37.774929" >
      </span> </span> <span class="longitude">
      <span class="value-title" title="-122.419416">
      </span>
      </span>
      </span>
      </div> Category: <span class="category">Concert</span>
      </div>


95-733 Internet Technologies
+
    Quiz


      For each RDFa document, draw a knowledge graph.

      For each RDFa attribute, trace its meaning with
      the ontology at http://rdf.data-vocabulary.org/#.




95-733 Internet Technologies
+
                      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
+
    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
+
    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
+
    A Simple Description

    <RDF>
         <Description about = "Some URI">
              <creator>property value
              </creator>
              <title>property value
              </title>
       </Description>
    </RDF>

95-733 Internet Technologies
+
    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
+
    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
+
    Blank Nodes
    <RDF>

      <Description about = "Some URI">

            <creator>

                <Description>    <!– no about attribute holding a URI 

                   <FN>Joe Smith</FN>

                   <EMAIL>joes@mycom.com</EMAIL>

                </Description>

             </creator>

      </Description>

    </RDF>
95-733 Internet Technologies
+
    XML Valued Property

    <RDF>

        <Description about = "Some URI">

            <generates rdf:parseType="Literal">

                 <html><body></body></html>

            </generates>

       </Description>

    </RDF>

95-733 Internet Technologies
+
    A Type Property

    <RDF>

        <Description about = ”SomeURL">

            <rdf:type rdf:resource=

                 "http://www.schemas.org/www/WebPage"/>

       </Description>

    </RDF>




95-733 Internet Technologies
+
    An Abbreviated Type Property

    <RDF>

        <TypeName about = "Some URI">

             <creator>property value

             </creator>

             <title>property value</title>

        </TypeName>

    </RDF>

95-733 Internet Technologies
+
    RDF has several notations:

    •   Natural language (English, Spanish,…)
    •   RDF XML
    •   Abbreviated RDF XML
    •   N-Triples
    •   Graph




95-733 Internet Technologies
+
       Another 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
Composite Capability/Preference Profiles (CC/PP)
       DEVICE PROFILE




                               CC/PP provides a model for formalizing device profiles.

            CC/PP


             RDF



             XML




95-733 Internet Technologies
   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
        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
+
    Processing RDF in Java

       XSLT?

       DOM?

       SAX?

       StAX?

       Open source Jena from HP Research provides another
        approach




95-733 Internet Technologies
+
    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
      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
   D:\McCarthy\www\95-733\examples\Jena>java Tutorial01

   <rdf:RDF
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#" >

     <rdf:Description rdf:about="http://somewhere/JohnSmith">
        <vcard:FN>John Smith</vcard:FN>
     </rdf:Description>

   </rdf:RDF>




95-733 Internet Technologies
+
    A Resource Valued Predicate
     // Modified from HP's Jena Tutorial

     import com.hp.hpl.jena.rdf.model.*;

     import com.hp.hpl.jena.vocabulary.*;

     public class Tutorial03 extends Object {

        public static void main (String args[]) {

           String personURI    = "http://somewhere/JohnSmith";

           String givenName     = "John";

           String familyName = "Smith";

           String fullName     = givenName + " " + familyName;

           // create an empty model

           Model model = ModelFactory.createDefaultModel();

95-733 Internet Technologies
       // create the resource
       // and add the properties cascading style
       Resource johnSmith = model.createResource(personURI)
                                .addProperty(VCARD.FN, fullName)
                                   .addProperty(VCARD.N,
                                      model.createResource()
                                         .addProperty(VCARD.Given, givenName)
                                            .addProperty(VCARD.Family, familyName))




95-733 Internet Technologies
              // list the statements in the graph
               StmtIterator iter = model.listStatements();
               // print out the predicate, subject and object of each statement
               while (iter.hasNext()) {

                         Statement stmt = iter.nextStatement(); // get next statement
                         Resource subject = stmt.getSubject(); // get the subject
                         Property predicate = stmt.getPredicate(); // get the predicate
                         RDFNode object = stmt.getObject(); // get the object

                         System.out.print(subject.toString());
                         System.out.print(" " + predicate.toString() + " ");




95-733 Internet Technologies
                   if (object instanceof Resource) {

                          System.out.print(object.toString());

                      } else {

                          // object is a literal

                          System.out.print(" \"" + object.toString() + "\"");

                     }
                     System.out.println(" .");
                  } // end while
                  System.out.println("===================");
                  model.write(System.out);
              }
          }


95-733 Internet Technologies
  D:\McCarthy\www\95-733\examples\Jena>java Tutorial03
  16fa474:fd074695f6:-8000 http://www.w3.org/2001/vcard-rdf/3.0#Given "John" .
  http://somewhere/JohnSmith http://www.w3.org/2001/vcard-rdf/3.0#FN "John Smith" .
  16fa474:fd074695f6:-8000 http://www.w3.org/2001/vcard-rdf/3.0#Family "Smith" .
  http://somewhere/JohnSmith http://www.w3.org/2001/vcard-rdf/3.0#N 16fa474:fd074695f6:-8000
  .
  ===================
  <rdf:RDF
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"    Notes:
     xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#" >      16fa… is a blank
    <rdf:Description rdf:nodeID="A0">                           node with family
     <vcard:Given>John</vcard:Given>                            and given
     <vcard:Family>Smith</vcard:Family>
                                                                properties.
    </rdf:Description>
    <rdf:Description rdf:about="http://somewhere/JohnSmith"> The main resource has
     <vcard:FN>John Smith</vcard:FN>                            a blank node as the value
     <vcard:N rdf:nodeID="A0"/>                                 of the N property.
    </rdf:Description>                                          The main resource also
  </rdf:RDF>                                                    has a FN property with
                                                             a value.



95-733 Internet Technologies
+
    Reading OWL with Jena

    import com.hp.hpl.jena.rdf.model.*;

    import com.hp.hpl.jena.ontology.*;

    import java.io.*;

    import java.net.*;

    public class ReadWineOntology extends Object {

       public static void main (String args[]) throws Exception {

          // create an empty model

          OntModel model = ModelFactory.createOntologyModel();




95-733 Internet Technologies
           // read the wine.xml file either way

             model.read("file:D:/McCarthy/www/95-733/examples/Jena/wine.xml");
             //model.read("http://www.andrew.cmu.edu/user/mm6/ontology/wine.xml");

             // write it to standard out

             model.write(System.out);

         }

      The
      } next step is to use Jena to make or verify deductions.




95-733 Internet Technologies
+
    The Semantic Web

      These notes are from an article entitled “The Semantic Web” by Tim Berners-Lee,
      James Hendler and Ora Lassila appearing in Scientific American, May 2001


      By augmenting web pages with data directed at computers and by adding documents
      solely for computers, we will transform the web into the Semantic Web.

      Intuitive software will be developed that will allow anyone to create Semantic Web
      Pages.

      For the semantic web to function, computers must have access to structured collections
      of information and sets of inference rules that can be used to conduct automated
      reasoning.

      XML has no built-in mechanism to convey the meaning of the user’s new tags to other
      users.




95-733 Internet Technologies
+
    The Semantic Web

        The challenge of the Semantic Web is to provide a language that expresses both
        data and rules for reasoning about the data and that allows rules from an
        existing knowledge-representation system to be exported unto the Web.

        Ontologies: Collections of statements written in a language such as RDF that define
        the relations between concepts and specify logical rules for reasoning about them.

        Computers will “understand” the meaning of semantic data on a web page by
        following links to specified ontologies.

        Consider the statement “a hex-head bolt is a type of machine bolt”. We could encode this
        in RDF.

        When writing code against traditional XML data, the programmer must know what the
        the document author uses each tag for.

        Meaning is expressed by RDF, which encodes it in a set of triples.


95-733 Internet Technologies
+
    The Semantic Web

         An RDF document makes assertions that particular things (people, web pages,
         or whatever) have properties (such as “is sister of”, “is the author of”) with
         certain values (another person, another Web page).

         We can remove ambiguity by associating each of the three parts with a URI. For
         example:

             “(filed 5 in database A) (is a field of type) (zip code)” could be replaced with
             three URI’s.

         An ontology is a document or file that formally defines the relations among terms.

         An ontology may express a rule “If a city code is associated with a state code, and
         an address uses that city code, then that address has the associated state code.”

         A program can then draw conclusions.

         The meaning of terms or XML codes can be defined by pointers from the page to
         an ontology.
95-733 Internet Technologies
+
    The Semantic Web

          Many automated web based services already exist without semantics, but other programs
          such as agents have no way to locate one that will perform a specific function.

          Service Discovery will happen only when there is a common language to describe a
          service in a way that lets other agents “understand” both the function offered
          and how to take advantage of it.

          Services can advertise their functions in directories analogous to the Yellow Pages.

          Devices can advertise their abilities with RDF.




95-733 Internet Technologies

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:10
posted:2/23/2012
language:English
pages:75