Upload
armin-haller
View
4.102
Download
3
Embed Size (px)
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 & 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: [email protected]
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: [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
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:
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: [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!
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: [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
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