Internet Technologies

Post on 01-Jan-2016

16 views 0 download

description

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 - PowerPoint PPT Presentation

transcript

95-733 Internet Technologies

Internet Technologies

The Resource Description Framework (RDF and RDFa)

95-733 Internet Technologies

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

A Knowledge Graph

95-733 Internet Technologies

Triples

Start Node Edge Label End Node

vincent_donofrio starred_in law_&_order_cilaw_&_order_ci is_a tv_showthe_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 hintsmeant 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/"> 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, describesthe relationship between the current pageand the linked page.

95-733 Internet Technologies

A Link with a Flavor

95-733 Internet Technologies

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 theproperty attribute.

What kind of title? Atitle of a person or a title to land or a title of a work?

95-733 Internet Technologies

In RDFa, all property names are, in fact, URLs.

95-733 Internet Technologies

Multiple Items Per Page

<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>

RDFa provides @about, an attribute for specifying the exact URL to which the contained RDFa markup applies

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> </div>

The inner aboutoverrides 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

<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 Dublin core has no vocabulary fordescribing friendships.But foaf does.

The typeof is an RDFa attribute that is specifically meant to declare a new data item with a certain type.

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></div>

These people are allfriends of Alice and she Includes them in her normal HTML blog.

95-733 Internet Technologies

Adding RDFa

<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>

First,describethese as Persons.

95-733 Internet Technologies

Add Homepages

<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>

Use rel for the linkrelationships.

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

hCard Business card dataXFN Friends and contactshCalendar EventshReview 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

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

• 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?

RDF On Its Own

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

(resource, property-type, property-value)

It is required that each resource have a URI.

http://www.andrew.cmu.eduhttp://www.andrew.cmu.edu/~mm6/my.xml#root().child(1)mailto:mm6@andrew.cmu.eduurn:isbn:0764532367

A property is a specific characteristic, attributeor relationship of a resource. Each property has a specific meaningthat 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> <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 Notations

• English • RDF XML

• Abbreviated RDF XML

• N-Triples

• Graph

95-733 Internet Technologies

Another RDF Application Composite 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

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 mightinclude:

• 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.

An RDF Application CC/PP

95-733 Internet Technologies

Composite Capability/Preference Profiles (CC/PP)DEVICE PROFILE

CC/PP

RDF

XML

CC/PP provides the equivalentof database fields and associatedmodel for formalizing the device profiles

RDF is language which providesa standard way for using XML torepresent metadata in the form ofproperties and relationships ofitems on the Web.

The device profile and user preferences might be stored in aCC/PP repository. CC/PP is in turn an RDF application.

95-733 Internet Technologies

• 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.

Composite Capability/Preference Profiles (CC/PP)

95-733 Internet Technologies

Each variant of the document has adocument profile describing the browsersupport it needs to display it

DEVICE PROFILESDOCUMENT PROFILES

NEGOTIATE CORRECTCONTENT FOR DEVICES

If none of the document variants are suitable,existing document may be transformed by stylesheet or tool for the purpose, or new documentgenerated

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 Tutorial0316fa474: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#" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#" > <rdf:Description rdf:nodeID="A0"> <vcard:Given>John</vcard:Given> <vcard:Family>Smith</vcard:Family> </rdf:Description> <rdf:Description rdf:about="http://somewhere/JohnSmith"> <vcard:FN>John Smith</vcard:FN> <vcard:N rdf:nodeID="A0"/> </rdf:Description></rdf:RDF>

Notes:16fa… is a blanknode with familyand given properties.The main resource hasa blank node as the value of the N property.The main resource alsohas a FN property witha value.

95-733 Internet Technologies

Reading OWL with Jenaimport 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

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 collectionsof 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 otherusers.

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

95-733 Internet Technologies

The Semantic WebThe challenge of the Semantic Web is to provide a language that expresses bothdata 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 definethe relations between concepts and specify logical rules for reasoning about them.

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

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

When writing code against traditional XML data, the programmer must know what thethe 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 WebAn 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. Forexample:

“(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, andan 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 toan ontology.

95-733 Internet Technologies

The Semantic Web

Many automated web based services already exist without semantics, but other programssuch 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 aservice 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.