A Semantic Data Model for Web Applications

Preview:

DESCRIPTION

This presentation gives a short overview of the Semantic Web, RDFa and Linked Data. The second part briefly discusses ActiveRaUL, our model and system for developing form-based Web applications using Semantic Web technologies.

Citation preview

Armin Haller & Florian Rosenberg

A Semantic Data Model for Web ApplicationsCSIRO ICT Centre Conference

Semantic Web

Adds machine readable data to Web resources

Semantic Web

“First step is putting data on the Web in a form that machines can naturally understand, or converting it to that form. This creates what I call a Semantic Web - a web of data that can be processed directly or indirectly by machines.” – Tim Berners-Lee

Web Resource

A page about a book

<html>

<head>

<title>Tractatus Logico-Philosophicus</title>

</head>

<body>

<p>

<img src="tractatus.png" /><br/>

Written by: Ludwig Wittgenstein <br />

With an Introduction by: Bertrand Russell

</p>

<p>

New York <br />

Harcourt, Brace & Company, Inc. <br />

London: Kegan Paul, Trench, Trubner & Co.,

Ltd. <br />

<p>1922</p>

</body>

</html>

Web Resource

A Book – Metadata elements

Title

Author

PublisherDate

Contributor

Four principles to add machine readable data

1. Identify resources2. Reuse ontologies3. Express meaning4. Link to other Web

resources

Semantic Web

1. Identify resources– Uniquely assign a Uniform

Resource Identifier (URI) to every Web resource

Title

Author

PublisherDate

Contributor

Web Resource

1. Identify resourceshttp://example.org/book/Tractatus_Logico-Philosophicus

Semantic Web

2. Reuse Ontologies– Specification of a

conceptualization, ie. a description of the concepts and relationships in a domain

– Link to information in ontologies by their URI to reuse the same definition of common concepts, such as the "book" or the "title“

Title

Author

PublisherDate

Contributor

Web Resource

2. Reuse ontologies – e.g. Dublin Core

http://purl.org/dc/elements/1.1/creator

http://purl.org/dc/elements/1.1/date

http://purl.org/dc/elements/1.1/publisher

http://purl.org/dc/elements/1.1/contributor

http://purl.org/dc/elements/1.1/title

Semantic Web

3. Express meaning– Add structured information and

set of rules to Web resources– Use knowledge representation

language – typically RDF• statements about Web resources

in the form of Subject-Predicate-Object(S P O) triples

Web Resource

3. Express meaninghttp://example.org/book/Tractatus_Logico-Philosophicus

dc:title

has a

which is

Web Resource

3. Express meaninghttp://example.org/book/Tractatus_Logico-Philosophicus

dc:creator

has a

whose name

is

Web Resource

3. Express meaninghttp://example.org/book/Tractatus_Logico-Philosophicus

dc:contributor

has a

whose name is

Web Resource

3. Express meaninghttp://example.org/book/Tractatus_Logico-Philosophicus

dc:publisher

which is

has a

Web Resource

3. Express meaninghttp://example.org/book/Tractatus_Logico-Philosophicus

dc:date

has a

which is

@prefix dc: <http://purl.org/dc/terms/> .@prefix : <http://example.org/book#> .

:Tractatus_Logico-Philosophicus dc:title "Tractatus Logico-Philospohicus" .

:Tractatus_Logico-Philosophicus dc:creator "Ludwig Wittgenstein" .

:Tractatus_Logico-Philosophicus dc:contributor "Bertrand Russell" .

:Tractatus_Logico-Philosophicus dc:publisher "Harcourt, Brace & Company, Inc." .

:Tractatus_Logico-Philosophicus dc:date "1922" .

Resulting triples

3. Express meaning

<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF

xmlns:dc="http://purl.org/dc/terms/"

xmlns="http://example.org/book#"

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description rdf:about="http://example.org/book#Tractatus_Logico Philosophicus">

<dc:title>Tractatus Logicao-Philospohicus</dc:title>

<dc:creator>Ludwig Wittgenstein</dc:creator>

<dc:contributor>Bertrand Russell</dc:contributor>

<dc:publisher>Harcourt, Brace &amp; Company, Inc.</dc:publisher>

<dc:date>1922</dc:date>

</rdf:Description>

</rdf:RDF>

Resulting triples in RDF/XML

3. Express meaning

Semantic Web

4. Link to other Web resources

– Progressively link to existing Web resources that someone else has defined already

Web Resource

4. Link to other Web resourceshttp://example.org/book/Tractatus_Logico-Philosophicus

dc:creator

has a

whose name

is

Web Resource

4. Link to other Web resourceshttp://example.org/book/Tractatus_Logico-Philosophicus

dc:creator

has a

http://dbpedia.org/page/Ludwig_Wittgenstein

whose name is

Where is the semantic Web?

RDF for agents

RDF annotations often express metadata (as in our book example)

– usually stored in a separate .rdf file – useful for agents, limited use for

humans

RDFa for agents and humans

RDFa = RDF in attributes– a way to mark up data in a web

page– RDFa encodes RDF triples in

HTML– useful for agents and (relatively)

easy to use for humans

HTML<html>

<head>

<title>Tractatus Logico-Philosophicus</title>

</head>

<body>

<p>

<img src="tractatus.png" /><br />

Written by: Ludwig Wittgenstein <br />

With an Introduction by: Bertrand Russell <br /><br />

New York <br />

Harcourt, Brace & Company, Inc. <br />

London: Kegan Paul, Trench, Trubner & Co., Ltd. <br />

<p>1922</p>

</body>

</html>

RDFa example<html prefix="dc: http://purl.org/dc/terms/“

base="http://example.org/book/Tractatus_Logico-Philosophicus">

<head>

<title about="" property="dc:title">Tractatus Logico Philosophicus</title>

</head>

<body>

<p about="">

<img src="tractatus.png" /><br />

Written by: <span property="dc:creator">Ludwig Wittgenstein</span> <br />

With an Introduction by: <span property="dc:contributor"> Bertrand Russell</span><br /><br />

New York <br />

<span property="dc:publisher">Harcourt, Brace & Company, Inc. </span><br />

London: Kegan Paul, Trench, Trubner & Co., Ltd. <br />

<p about=""><span property="dc:date">1922</span></p>

</body>

</html>

RDFa – metadata vs. data

RDFa mostly used for metadata, e.g. the book metadata as before

But: the principle of the Semantic Web and Linked Data is to add meaning to metadata and data

– Data could be metadata,– but it could be data, e.g. a book

purchase at Amazon

Forms, metadata vs. data

e.g. Book purchase on Amazon First Name:

Last Name:

Jane

Doe

Email: jane.doe@example.com

Password: ********

Gender:

Birthday: 03 04 1976

Male Female

1976

Forms, metadata vs. data

e.g. Book purchase on AmazonFirst Name:

Last Name:

Jane

Doe

Email: jane.doe@example.com

Password: ********

Gender:

Birthday: 03 04

Male FemaleTitle:

Author:

Tractatus Logico Phi

Ludwig Wittgenstein

Price: 25 GBP

Amount: 1

Delivery Address:

10 Downing Street

London

SW1A 2AA

United Kingdom

1976

Forms, metadata vs. data

e.g. Book purchase on AmazonFirst Name: Jane

Doe

Email: jane.doe@example.com

Password: ********

Gender:

Birthday: 03 04

Male FemaleTitle:

Author:

Tractatus Logico Phi

Ludwig Wittgenstein

Price: 25 GBP

Amount:

1

Delivery Address:

10 Downing Street

London

SW1A 2AA

United Kingdom

197604

1

Cardholder:

CC Number:

Expiry Date:

CVV: 999

Price:

Type: Mastercard

Jane Doe

5999 9999 9999 9999

04 13

25 GBP

Last Name:

Forms, metadata vs. data

e.g. Book purchase on Amazon

197604

FemaleTitle:

Author:

Tractatus Logico Phi

Ludwig Wittgenstein

Price: 25 GBP

Amount: 1

Delivery Address:

10 Downing Street

London

SW1A 2AA

United Kingdom

metadata

metadata

metadata / data

data

data

data

data

data

Issue – Adding RDFa for data to forms

Form input elements can be annotated with RDFa

But: RDFa annotations for input data is not possible no binding

Issue – Adding RDFa for data to forms

e.g. “Jane” can not be defined as foaf:firstName

First Name:

Last Name:

Jane

Doe

Email: jane.doe@example.com

Password: ********

Gender:

Birthday: 03 04 1976

Male Female

<span about="" property="foaf:firstName" content=""> <input type="text" name=“First Name" value="" />

</span>span>

No binding!

Making input data available on the Semantic Web!

Model and System for semantic Web applications

– RDF-based model for forms (RaUL)http://purl.org/NET/raul#

– RESTful Web service (ActiveRaUL)http://raul.deri.ie/raul

– JavaScript RDFa API

RaUL form model

Defines meta model for form elements

RaUL form model – Triples defining the structure of a form– Triples defining the data

First Name:

Last Name:

Jane

Doe

Email: jane.doe@example.com

Password: ********

Gender:

Birthday: 03 04 1976

Male Female

foaf:firstName

foaf:surname

foaf:mbox

foaf:sha1

foaf:gender

time:day, time:month, time:year

ActiveRaUL Web service

Model-View-Controller

– Model: RaUL

– View: Rendering service to generate RaUL-based Web forms in XHTML+RDFa

– Controller: Web service that maps HTTP terms to CRUD operations on RaUL Web forms

JavaScript RDFa API

– Parses RDFa– Manages data binding of form

input to data model

Lifecycle

1. Form Modeling: form model in RDF based on the RaUL ontology

– Actor: ontology engineer

Lifecycle

2. Form Deployment: form submitted by calling ActiveRaUL

– Generic form models in a public namespace standard form models

– Actor: ontology engineer

Lifecycle

3. Form Usage: access and manipulate a form model by calling ActiveRaUL

– submit instance data for a form bound to a data model

– Actor: Web user or agent

Lifecycle

4. Data Reuse: Add link to existing, local data or data in the Linked data cloud

– RDFa API retrieves data from that URI and prefills form controls

– Actor: Form Provider

Conclusion

RDFa annotated Web forms which follow the principles of Linked Open Data.

Advantages:1. Non-ambiguous model: typed through an

ontological model.2. RDF data submission: submitted data encoded in

RDF.3. Explicit form structure: form elements are

explicitly modelled as RDF statements. 4. External schema augmentation: reuse existing

schemas for form data5. Reuse of Linked Open Data: retrieve data from

the Linked Open Data cloud

Recommended