ISWC GoodRelations Tutorial Part 4

Post on 22-Nov-2014

2,642 views 1 download

description

This is part 4 of the ISWC 2009 tutorial on the GoodRelations ontology and RDFa for e-commerce on the Web of Linked Data.See alsohttp://www.ebusiness-unibw.org/wiki/Web_of_Data_for_E-Commerce_Tutorial_ISWC2009

transcript

The Web of Data for E-Commerce in Brief

A Hands-on Introduction to the GoodRelations Ontology, RDFa, and Yahoo! SearchMonkey

October 25, 2009

Westfields Conference Center near Washington, DC, USA

Martin Hepp Universität der Bundeswehr München, Munich, Germany

Richard Cyganiak Digital Enterprise Research Institute (DERI), Ireland

08:30-10:30 Overview and Motivation: Why the Web of Data is Now 30’

Quick Review of Prerequisites 15’ The GoodRelations Ontology: E-Commerce on the Web of Data 75’

10:30-10:45 Coffee Break

10:45-12:30 RDFa: Bridging the Web of Documents with the Web of Data 45’

Expressing GoodRelations in RDFa: A Running Example 30’ GoodRelations – Advanced Topics 30’

12:30-13:30 Lunch Break

13:30-16:00 Hands-on Exercise: Annotating a Web Shop 60’

Querying the Web of Data for Offerings – SPARQL 15’ Querying the Web of Data – Exercises 15’

16:00-16:30 Coffee Break

16:30-18:00 Publishing Semantic Web Data: Make Your RDF Available 30’

Yahoo SearchMonkey and Yahoo BOSS 45’ Discussion, Conclusion, Feedback Round 15’

2

Logistics

SPARQL

Query Language

Endpoint Specification

25.10.2009 3

SPARQL: Query Language Specification

25.10.2009 4

http://www.w3.org/TR/rdf-sparql-query/

SPARQL Query Structure

# comments

PREFIX gr:<http://purl.org/goodrelations/v1#>

SELECT ?var1 ?var2 WHERE {?var1 rdf:type gr:Offering. ?var1 gr:validThrough ?var2. FILTER (?date < "2009-05-25T00:00:00Z"^^xsd:dateTime)}

25.10.2009 5

SPARQL: Matching Literals

PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>

SELECT ?v WHERE { ?v ?p "abc"^^xsd:datatype }

25.10.2009 6

SPARQL: Matching Strings

PREFIX dc: <http://purl.org/dc/elements/1.1/>

SELECT ?title

WHERE { ?x dc:title ?title

FILTER regex(?title, "^SPARQL")

}

^= Starts with

25.10.2009 7

SPARQL Query

# find expired offerings:

PREFIX gr:<http://purl.org/goodrelations/v1#>

SELECT ?o, ?date WHERE {?o rdf:type gr:Offering. ?o gr:validThrough ?date. FILTER (?date < "2009-05-25T00:00:00Z"^^xsd:dateTime)}

25.10.2009 8

SPARQL Query

# find label for UPC/EAN "0001067792600“

PREFIX gr:<http://purl.org/goodrelations/v1#>

PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>

SELECT ?uri, ?label WHERE {?uri rdf:type gr:ProductOrServiceModel. ?uri gr:hasEAN_UCC-13 "0001067792600"^^xsd:string. ?uri rdfs:label ?label}

25.10.2009 9

Quizzes

• Why is it important to use the OPTIONAL

clause for patterns that cannot be

assumed to be found?

• What is a Semantic Sitemap?

25.10.2009 10

Publishing Data on the Semantic Web

25.10.2009 11

Publishing RDF Data on the Web

• Publishing RDF/XML files

• RDFa - Embedding RDF in XHTML

• dataRSS

25.10.2009 12

Step 1: Publish File

Save the RDF/XML file under the filename

• semanticweb.rdf

in the root directory of your Web server so

that it becomes available as

• http://example.org/semanticweb.rdf

25.10.2009 13

Point to RDF/XML from HTML/XHTML

• Add a link element pointing to this file to

the header of your main Web page (or

other pages, too):

25.10.2009 14

<html lang="en"> <head> <title></title> <link rel="meta" type="application/rdf+xml" title="RDF/XML data for ***your company name***" href="http://www.example.org/semanticweb.rdf" /> </head> ...

Notify Semantic Web Search Engines

To do so, simply paste the URI

• http://example.org/semanticweb.rdf

into the respective fields of the following

submission pages:

• http://pingthesemanticweb.com/

• http://sindice.com/main/submit

• http://swoogle.umbc.edu/index.php?

option=com_swoogle_service&service=submit

25.10.2009 15

Server Configuration

• Rewrite

– http://example.org/semanticweb to

– http://example.org/semanticweb.rdf

• Correct media type rdf+xml

– The content type (media type) of the file

returned must be set correctly to "rdf+xml".

25.10.2009 16

Content Negotiation

25.10.2009 17

Web Page

HTML/XHTML

Meta-Data

RDF/XML

Web

Server

http GET

Returns

Web Page

HTML/XHTML

Meta-Data

RDF/XML

?

Server Configuration

On Appache servers, simply edit

the .htaccess file: #Rewrite rule to serve RDF/XML content from the

vocabulary URI

RewriteRule ^semanticweb$ semanticweb.rdf

#Directive to ensure *.rdf files served as appropriate content type

#if not present in main apache config

AddType application/rdf+xml .rdf

25.10.2009 18

Publishing RDF/XML Data on MS IIS Platforms

• Ionics Isapi Rewrite Filter for IIS 5.0 and IIS 6.0

– http://iirf.codeplex.com/

• Microsoft URL Rewrite Module for IIS 7.0

– http://support.microsoft.com/kb/324064

(Thanks to Christophe Debruyne and Robert

Meersman for the hint!)

• ModRewrite

– http://www.micronovae.com/ModRewrite/

ModRewrite.html (Thanks to Sergio Fernández for the link!)

25.10.2009 19

Semantic Sitemaps

• Efficient means of telling a Semantic Web

search engine which RDF files are

available

25.10.2009 20

http://sw.deri.org/2007/07/sitemapextension/

Additional Information

• Cool URIs for the Semantic Web, W3C

Interest Group Note 03 December 2008

http://www.w3.org/TR/cooluris/

25.10.2009 21

RDFa: Bridging the Web of

Documents with the Web of Data

Martin Hepp

25.10.2009 22

Learning Goal

• Understand the data quality problems that

can result from the „naive“ Semantic Web

• Understand the RDFa syntax for

embedding RDF data into XHTML

documents

• Be able to express GoodRelations data in

RDFa

25.10.2009 23

Data Redundancy and Data Quality Problems

25.10.2009 24

Addresses

Copy of

Addresses

Copy of

Addresses

Addresses Addresses

Time

Data Redundancy in the Semantic Web

25.10.2009 25

Web Page

HTML/XHTML

Meta-Data

RDF/XML

Web Page

HTML/XHTML

Meta-Data

RDF/XML

Time

Embedding RDF in XHTML

• Being able to represent meaning and rendering

information in a single document

25.10.2009 26

Web

Server

http GET

Returns

XHTML +

RDFa

XHTML +

RDFa

XHTML +

=

Resource Description Framework

in attributes

25.10.2009 27

What is RDFa?

• From the Web of Documents' point-of-

view: a set of new (X)HTML attributes to

express metadata within (X)HTML

• From the Web of Data point-of-view: a

serialization format for RDF (such as RDF/

XML, etc.), where the RDF triples are

"embedded" into (X)HTML

25.10.2009 28

Yahoo SearchMonkey

Currently considers RDF data only if

• submitted via the (proprietary) dataRSS

feed format or if

• embedded inside XHTML pages via

RDFa.

25.10.2009 29

http://www.ebusiness-unibw.org/tools/rdf2datarss/

RDF in Attributes

<h1 property="dc:title">GoodRelations

RDFa minimal example</h1>

25.10.2009 30

Subject – Predicate – Object

• @about (URIorSafeCURIE) … for setting

the subject of a statement

• @typeof (CURIEs) … for setting the

type(s) of a resource (syntactic sugar)

• @href/@resource (URIorSafeCURIE) …

for setting the object of a statement

25.10.2009 31

Subject – Predicate – Object

• @property (CURIEs) … for relating a

resource to a literal value, that is, for

datatype properties

• @rel/@rev (reserved word | CURIE)+ …

for relating a resource to another resource,

that is, for object properties

25.10.2009 32

Subject – Predicate – Object

• @content (CDATA) … for setting a literal

object value

• @datatype (CURIE) … for the datatype of

a literal object value - if not specified, then

the default value is xsd:string

25.10.2009 33

DOCTYPE

34

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"><html xmlns="http://www.w3.org/1999/xhtml"<head profile="http://www.w3.org/1999/xhtml/vocab">

<title>GoodRelations RDFa minimal example</title></head>(…)

25.10.2009

Example - Markup

• http://www.w3.org/TR/xhtml-rdfa-primer/

alice-example.html

• Install Operator on FF

• Debug page

25.10.2009 35

RDFa: Simplistic Usage Reusing existing text and values at their original position

25.10.2009 36

RDFa: Snippet Style Embedding additional meta-data in the same document,

but detached from the human-readable content

25.10.2009 37

RDF2RDFa Tool: Snippets

25.10.2009 38

http://www.ebusiness-unibw.org/tools/rdf2rdfa/

25.10.2009 39

Quizzes

• Why is RDFa important to simplify the

creation of Semantic Web content?

• How does RDFa contribute to a better

quality of Semantic Web data?

• What is the main principle of RDFa?

• Name the key elements and give a simple

example of using RDFa.

Hands-on Exercises: Creating,

Publishing, and Querying

Martin Hepp

25.10.2009 40

Step-by-Step (1) • Data Sources

– Form-based data entry

– RDBMS

– XML, e.g. BMEcat

– CSV

– Google CSV, RSS 1.0,

RSS 2.0

• Amount of Detail and

Data Model

– What shall be included?

– How shall the type of

products be represented?

41

• Data Delivery Options

– RDFa: Embedding meta-

data in XHTML

– RDF/XML: Extra file

– dataRSS: Yahoo feed

format

Step-by-Step (2)

• Update Mechanism & Data Management

– PHP on demand

– Script-based data dump

• Publishing the Data

– Server configuration

– Notifying Semantic Web crawlers, Yahoo, …

– Semantic Sitemaps

• Applications

42

GoodRelations Annotator

43

http://www.ebusiness-unibw.org/tools/goodrelations-annotator/

osCommerce Extension

44

http://code.google.com/p/goodrelations-for-oscommerce/

Joomla/VirtueMart Extension

45

http://code.google.com/p/goodrelations-for-joomla/

Google Product Feed Converter

25.10.2009 46

http://tr.im/sLcX

BMEcat2GoodRelations

• Converts complete catalogs from the popular

BMEcat XML Schema into GoodRelations

25.10.2009 47

http://www.ebusiness-unibw.org/tools/bmecat2goodrelations/

GoodRelations in MediaWiki

25.10.2009 48

http://www.ebusiness-unibw.org/wiki/RDFaInMediaWiki

GoodRelations in Oxid eSales

• Popular shop

software

• Free recipe for adding

GoodRelations,

developed by Daniel

Bingel

25.10.2009 49

http://www.ebusiness-unibw.org/wiki/GoodRelations4Oxid

GoodRelations Validator

50

http://www.ebusiness-unibw.org/tools/goodrelations-validator/

GoodRelations CookBook

25.10.2009 51

http://www.ebusiness-unibw.org/wiki/GoodRelations#Recipes_and_Examples

Task 1

• Use the GoodRelations Annotator to

create a description for your business or a

business that you know.

25.10.2009 52

Task 2

• Using Turtle & GoodRelations, describe the

following business.

– Miller Tax Consulting Inc., having two stores, selling

office supplies and tax consultancy

• Convert the Turtle to RDF/XML and validate it.

• Convert the RDF/XML to RDFa using

RDF2RDFa and paste it into a page of your

choice.

25.10.2009 53

Task 3

• Query the SPARQL endpoint at

http://loc.openlinksw.com/sparql

for the product properties and values for the

product with the EAN/UPC code

8714574993836.

25.10.2009 54

Thank you.

25.10.2009 55