A Semantic Data Model for Web Applications

44
Armin Haller & Florian Rosenberg A Semantic Data Model for Web Applications CSIRO ICT Centre Conference

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.

Transcript of A Semantic Data Model for Web Applications

Page 1: A Semantic Data Model for Web Applications

Armin Haller & Florian Rosenberg

A Semantic Data Model for Web ApplicationsCSIRO ICT Centre Conference

Page 2: A Semantic Data Model for Web Applications

Semantic Web

Adds machine readable data to Web resources

Page 3: A Semantic Data Model for Web Applications

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

Page 4: A Semantic Data Model for Web Applications

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>

Page 5: A Semantic Data Model for Web Applications

Web Resource

A Book – Metadata elements

Title

Author

PublisherDate

Contributor

Page 6: A Semantic Data Model for Web Applications

Four principles to add machine readable data

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

resources

Page 7: A Semantic Data Model for Web Applications

Semantic Web

1. Identify resources– Uniquely assign a Uniform

Resource Identifier (URI) to every Web resource

Page 8: A Semantic Data Model for Web Applications

Title

Author

PublisherDate

Contributor

Web Resource

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

Page 9: A Semantic Data Model for Web Applications

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“

Page 10: A Semantic Data Model for Web Applications

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

Page 11: A Semantic Data Model for Web Applications

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

Page 12: A Semantic Data Model for Web Applications

Web Resource

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

dc:title

has a

which is

Page 13: A Semantic Data Model for Web Applications

Web Resource

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

dc:creator

has a

whose name

is

Page 14: A Semantic Data Model for Web Applications

Web Resource

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

dc:contributor

has a

whose name is

Page 15: A Semantic Data Model for Web Applications

Web Resource

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

dc:publisher

which is

has a

Page 16: A Semantic Data Model for Web Applications

Web Resource

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

dc:date

has a

which is

Page 17: A Semantic Data Model for Web Applications

@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

Page 18: A Semantic Data Model for Web Applications

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

Page 19: A Semantic Data Model for Web Applications

Semantic Web

4. Link to other Web resources

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

Page 20: A Semantic Data Model for Web Applications

Web Resource

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

dc:creator

has a

whose name

is

Page 21: A Semantic Data Model for Web Applications

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

Page 22: A Semantic Data Model for Web Applications

Where is the semantic Web?

Page 23: A Semantic Data Model for Web Applications

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

Page 24: A Semantic Data Model for Web Applications

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

Page 25: A Semantic Data Model for Web Applications

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>

Page 26: A Semantic Data Model for Web Applications

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>

Page 27: A Semantic Data Model for Web Applications

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

Page 28: A Semantic Data Model for Web Applications

Forms, metadata vs. data

e.g. Book purchase on Amazon First Name:

Last Name:

Jane

Doe

Email: [email protected]

Password: ********

Gender:

Birthday: 03 04 1976

Male Female

Page 29: A Semantic Data Model for Web Applications

1976

Forms, metadata vs. data

e.g. Book purchase on AmazonFirst Name:

Last Name:

Jane

Doe

Email: [email protected]

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

Page 30: A Semantic Data Model for Web Applications

1976

Forms, metadata vs. data

e.g. Book purchase on AmazonFirst Name: Jane

Doe

Email: [email protected]

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:

Page 31: A Semantic Data Model for Web Applications

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

Page 32: A Semantic Data Model for Web Applications

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

Page 33: A Semantic Data Model for Web Applications

Issue – Adding RDFa for data to forms

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

First Name:

Last Name:

Jane

Doe

Email: [email protected]

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!

Page 34: A Semantic Data Model for Web Applications

Making input data available on the Semantic Web!

Page 35: A Semantic Data Model for Web Applications

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

Page 36: A Semantic Data Model for Web Applications

RaUL form model

Defines meta model for form elements

Page 37: A Semantic Data Model for Web Applications

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

First Name:

Last Name:

Jane

Doe

Email: [email protected]

Password: ********

Gender:

Birthday: 03 04 1976

Male Female

foaf:firstName

foaf:surname

foaf:mbox

foaf:sha1

foaf:gender

time:day, time:month, time:year

Page 38: A Semantic Data Model for Web Applications

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

Page 39: A Semantic Data Model for Web Applications

JavaScript RDFa API

– Parses RDFa– Manages data binding of form

input to data model

Page 40: A Semantic Data Model for Web Applications

Lifecycle

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

– Actor: ontology engineer

Page 41: A Semantic Data Model for Web Applications

Lifecycle

2. Form Deployment: form submitted by calling ActiveRaUL

– Generic form models in a public namespace standard form models

– Actor: ontology engineer

Page 42: A Semantic Data Model for Web Applications

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

Page 43: A Semantic Data Model for Web Applications

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

Page 44: A Semantic Data Model for Web Applications

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