+ All Categories
Home > Documents > Internet Technologies

Internet Technologies

Date post: 01-Jan-2016
Category:
Upload: mufutau-frye
View: 16 times
Download: 0 times
Share this document with a friend
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
62
95-733 Internet Technologies Internet Technologies The Resource Description Framework (RDF and RDFa)
Transcript
Page 1: Internet Technologies

95-733 Internet Technologies

Internet Technologies

The Resource Description Framework (RDF and RDFa)

Page 2: Internet Technologies

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

Page 3: Internet Technologies

95-733 Internet Technologies

A Knowledge Graph

Page 4: Internet Technologies

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

Page 5: Internet Technologies

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 .

Page 6: Internet Technologies

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>

Page 7: Internet Technologies

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>

Page 8: Internet Technologies

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"

Page 9: Internet Technologies

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

Page 10: Internet Technologies

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

Page 11: Internet Technologies

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.

Page 12: Internet Technologies

95-733 Internet Technologies

A Link with a Flavor

Page 13: Internet Technologies

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?

Page 14: Internet Technologies

95-733 Internet Technologies

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

Page 15: Internet Technologies

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

Page 16: Internet Technologies

95-733 Internet Technologies

As a Diagram

Page 17: Internet Technologies

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.

Page 18: Internet Technologies

95-733 Internet Technologies

As A Graph

Page 19: Internet Technologies

95-733 Internet Technologies

Blog Contact Info

<div> <p> Alice Birpemswick </p> <p> Email: <a href="mailto:[email protected]">[email protected]</a> </p> <p> Phone: <a href="tel:+1-617-555-7332">+1 617.555.7332</a> </p></div> This is mainly useful

for viewing.

Page 20: Internet Technologies

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:[email protected]">

[email protected]</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.

Page 21: Internet Technologies

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.

Page 22: Internet Technologies

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.

Page 23: Internet Technologies

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.

Page 24: Internet Technologies

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.

Page 25: Internet Technologies

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>

Page 26: Internet Technologies

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

Page 27: Internet Technologies

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.

Page 28: Internet Technologies

95-733 Internet Technologies

Page 29: 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".

Page 30: Internet Technologies

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.

Page 31: Internet Technologies

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.

Page 32: Internet Technologies

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

Page 33: Internet Technologies

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.

Page 34: Internet Technologies

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:[email protected]: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.

Page 35: Internet Technologies

95-733 Internet Technologies

A Simple Description

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

Page 36: Internet Technologies

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>

Page 37: Internet Technologies

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>

Page 38: Internet Technologies

95-733 Internet Technologies

Blank Nodes

<RDF> <Description about = "Some URI"> <creator> <Description> <FN>Joe Smith</FN> <EMAIL>[email protected]</EMAIL> </Description> </creator> </Description></RDF>

Page 39: Internet Technologies

95-733 Internet Technologies

XML Valued Property

<RDF>

<Description about = "Some URI">

<generates rdf:parseType="Literal">

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

</generates>

</Description>

</RDF>

Page 40: Internet Technologies

95-733 Internet Technologies

A Type Property

<RDF>

<Description about = ”SomeURL">

<rdf:type rdf:resource=

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

</Description>

</RDF>

Page 41: Internet Technologies

95-733 Internet Technologies

An Abbreviated Type Property

<RDF>

<TypeName about = "Some URI">

<creator>property value

</creator>

<title>property value</title>

</TypeName>

</RDF>

Page 42: Internet Technologies

95-733 Internet Technologies

RDF Notations

• English • RDF XML

• Abbreviated RDF XML

• N-Triples

• Graph

Page 43: Internet Technologies

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)

Page 44: Internet Technologies

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

Page 45: Internet Technologies

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.

Page 46: Internet Technologies

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)

Page 47: Internet Technologies

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

Page 48: Internet Technologies

95-733 Internet Technologies

Processing RDF in Java

• XSLT?

• DOM?

• SAX?

• StAX?

• Open source Jena from HP Research provides another approach

Page 49: Internet Technologies

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

Page 50: Internet Technologies

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

}

}

Page 51: Internet Technologies

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>

Page 52: Internet Technologies

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();

Page 53: Internet Technologies

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

Page 54: Internet Technologies

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() + " ");

Page 55: Internet Technologies

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); }}

Page 56: Internet Technologies

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.

Page 57: Internet Technologies

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();

Page 58: Internet Technologies

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.

Page 59: Internet Technologies

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

Page 60: Internet Technologies

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.

Page 61: Internet Technologies

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.

Page 62: Internet Technologies

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.


Recommended