Erich Neuhold
Claudia Niederée
Michael Fuchs
Fraunhofer Institute IPSI
Darmstadt Germany
http://ipsi.fraunhofer.de
© Fraunhofer IPSI
Content
related Standards
Operationalization: A Semantic Web
Application Development Framework
Open Issues
2
© Fraunhofer IPSI
The Next Generation of the Web
…
Calendar
…
Calendar
Request/Task Interpretation/Task Preferences
Interpretation
WSDL* e
1. register Regist
descriptio
ry
USER
n
SOAP*
3. compose,
wrapping orchestrate
Service
component 4. call, exploit Application
7
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
© Fraunhofer IPSI
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
HTML-based UI Dialog Models -
Shortcomings
no (or little) client side validation
restricted client side interaction
restricted control of submitted data
strong bias towards one user
interface agent (Web Browser)
static form composition
Software Agent
HTML needs not to be "well formed"
User Interface Layer
(not parseable)
Application Layer mixing layout and structure
authors authors
autho rs id name autho rs id name
id na me 1 Rudar id na me 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 4 Hollow 3 Glue 4 Hollow
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
8
© Fraunhofer IPSI
HTML – Properties and
Shortcomings
<html>
<BODY bgcolor=yellow>
<form action=followUpPage.cgi><p>
<CENTER><h2><font color=red>Travel Tours</h2></font>
<P><img src="palm.gif"></p>
<font face=Arial size="2">
Please enter the <br><i><b>start date</i></b> <br>of your
Journey in the following field
<br> > <input type=text name='start'><br>
and the <br><i><b>end date</i></b><br> here <br>
> <input type="input" name='end'> <BR> After filling the
form please press <br>
<p><input type='submit' value="submit"></P>
</FORM>
Application Layer
authors authors
authors id name authors id name
id name 1 Rudar id name 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 3 Glue
4 Hollow 4 Hollow
10
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
© Fraunhofer IPSI
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
Requirements for Conceptual UI Model
authors authors
comfortable editors for form authoring
autho rs id name autho rs id name
id na me 1 Rudar id na me 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 3 Glue
4 Hollow 4 Hollow
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
11
© Fraunhofer IPSI
Use of Models for User Interface Creation
12
© Fraunhofer IPSI
Conceptual UI Model - XForms
authors authors
XForms)
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
13
© Fraunhofer IPSI processors for different user interface agents
XForms Example – SCHOLNET
Project (1) <SearchForm> .
. .
<fields>
<field name="dc:creator" type="string"
operator="boolean-and">
Instance of <rel-ops selected="equal">
<rel-op name="equal"
.. symbol="" position="infix"/>
Data Model .
</rel-ops> ..
.
</fields> ..
.
</SearchForm>
<xforms:repeat nodeset="SearchForm/fields/field"/>
<xforms:select1 ref="@operator">
<xforms:itemset nodeset="//field-operators/field-operator">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset>
</xforms:select1>
Conceptual <xforms:button value="Add" onclick="new:rptName"/>
<xforms:button value="Delete" onclick="delete:rptName"/>
User Interface Model <xforms:group nodeset="rel-ops"/>
<xforms:select1 ref="@selected" appearance="min">
<xforms:itemset nodeset="rel-op">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset>
</xforms:select1> 14
© Fraunhofer IPSI <xforms:input ref="value"/>[<xforms:output
XForms Example – SCHOLNET
Project <SearchForm> .
. .
<fields>
<field name="dc:creator" type="string"
operator="boolean-and">
<rel-ops selected="equal">
<rel-op name="equal"
.. symbol="" position="infix"/>
.
</rel-ops> ..
.
</fields> ..
.
</SearchForm>
<xforms:repeat nodeset="SearchForm/fields/field"/>
<xforms:select1 ref="@operator">
<xforms:itemset nodeset="//field-operators/field-
operator">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset>
</xforms:select1>
<xforms:button value="Add" onclick="new:rptName"/>
<xforms:button value="Delete" onclick="delete:rptName"/>
<xforms:group nodeset="rel-ops"/>
<xforms:select1 ref="@selected" appearance="min">
<xforms:itemset nodeset="rel-op">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/> 15
© Fraunhofer IPSI </xforms:itemset>
XForms Example – SCHOLNET
Project
<SearchForm> ..
.
<fields>
<field name="dc:creator" type="string"
operator="boolean-and">
<rel-ops selected="equal">
<rel-op name="equal"
.. symbol="" position="infix"/>
.
</rel-ops> ..
.
</fields> ..
.
</SearchForm>
<xforms:repeat nodeset="SearchForm/fields/field"/>
<xforms:select1 ref="@operator">
<xforms:itemset nodeset="//field-operators/field-operator">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset>
</xforms:select1>
<xforms:button value="Add" onclick="new:rptName"/>
<xforms:button value="Delete" onclick="delete:rptName"/>
<xforms:group nodeset="rel-ops"/>
<xforms:select1 ref="@selected" appearance="min">
<xforms:itemset nodeset="rel-op">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset> 16
© Fraunhofer IPSI </xforms:select1>
XForms Example – SCHOLNET
Project
<SearchForm> ..
.
<fields>
<field name="dc:creator" type="string"
operator="boolean-and">
<rel-ops selected="equal">
<rel-op name="equal"
.. symbol="" position="infix"/>
.
</rel-ops> ..
.
</fields> ..
.
</SearchForm>
<xforms:repeat nodeset="SearchForm/fields/field"/>
<xforms:select1 ref="@operator">
<xforms:itemset nodeset="//field-operators/field-operator">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset>
</xforms:select1>
<xforms:button value="Add" onclick="new:rptName"/>
<xforms:button value="Delete" onclick="delete:rptName"/>
<xforms:group nodeset="rel-ops"/>
<xforms:select1 ref="@selected" appearance="min">
<xforms:itemset nodeset="rel-op">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
17
© Fraunhofer IPSI </xforms:itemset>
</xforms:select1>
How to use XForms?
Design time Run time
What
How
authors authors
authors id name authors id name
id name 1 Rudar id name 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 3 Glue
4 Hollow 4 Hollow
Ontology
20
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
© Fraunhofer IPSI
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
Requirements for Semantic Domain
Model
21
© Fraunhofer IPSI
Conceptual Modeling in Software
Design
Example: Unified
Modeling Language
(UML*)
Travel City
0..*
name : String
1
start
destination
0..* Flight 0..*
BusTravel TrainTravel PlaneTravel
number : String
contains
DirectFlight CompositeFlight
Domain/Ontology evolution 23
© Fraunhofer IPSI • not supported
Conceptual Modeling in the Semantic Web –
RDF & Co
The Resource Description Framework (RDF + RDF
Schema):
Defines a framework for structuring and
describing resources in the Semantic Web
Enables the definition of vocabularies for the
description of resources in an application
domain;
Software Agent
Goals:
User Interface Layer
Extensibility, interoperability, and reuse of
Application Layer vocabularies;
authors authors
Improved support for interpretation of data by
machines
autho rs id name autho rs id name
id na me 1 Rudar id na me 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 4 Hollow 3 Glue 4 Hollow
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
24
© Fraunhofer IPSI
Resource Description Framework –
Example
RDF Schema rdf:Resource
s sOf
ubCla f
rd fs:s sO
las
C
rdfs:Class ub
s:s travel:City
rd f
rdf:typ e
rdf:Property
r dfs
:r an
r df:t
rd
f:t
ge
travel:Travel yp
yp e
e
travel:destination
rdfs:subClassOf travel:contains
rdfs
f
travel:flightNo
O
ss
in
rdfs:domain
:s
la
rd
ma
ub
bC
fs :
e
Cla n
su
:do
r
ng
ai
an
fs :
om
a
ge
s
s
s: r
rd
rdf
d
sO
f s:
rdf
rd
f
rdf:type
e
typ
:
rdf
ype
MyTravel ThisFlight
contains
r df:t
RDF i on
flig
n at
de
sti ht N
o
Rome LH27
25
© Fraunhofer IPSI
Fulfillment of Requirements - RDF
Schema
Support of modeling primitives
• Definition of entities (classes + property centric
approach)
• Definition of relationships (via properties)
• Properties of relationships (properties are also
resources)
Flexible definition of relationships to global
conceptual models
• use of URI references, subclasses relationship (see
Software Agent next slide)
User Interface Layer
Representation of concept hierarchies
• yes, subclass relationship
Application Layer Systematic support of data types
• only on the instance level (typed literal), use of XML
Schema data types
authors authors
autho rs id name autho rs id name
id na me 1 Rudar id na me 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 4 Hollow 3 Glue 4 Hollow
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
1 Rudar
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
26
© Fraunhofer IPSI constraints
Relationships to global Conceptual Models
- RDF
Example Travel
27
© Fraunhofer IPSI
What is still missing?
RDF contains only limited set of predefined
concepts with defined semantics; concepts
are missing for:
the definition of richer types of
relationships between conceptual
models
representation of domain
Software Agent constraints and further domain
User Interface Layer
knowledge
ontology/domain model evolution
Application Layer
support
authors authors
autho rs id name autho rs id name
id na me 1 Rudar id na me 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 4 Hollow 3 Glue 4 Hollow
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
28
© Fraunhofer IPSI
Defining Domain Ontologies -OWL
Domain/Ontology evolution
11 Glue 11 Glue
3 Glue
4 Hollow
32
© Fraunhofer IPSI • only basic support
Relationships to global Conceptual Models -
OWL Travel
Example
“A Travel is defined a bus travel, a planeBusTravel TrainTravel PlaneTravel
33
© Fraunhofer IPSI
Representation of Domain Knowledge
in OWL
Example
“A city can be either reached by a direct flight
or by connecting several flights”
<owl:objectProperty rdf:about="travel:directFlight">
<rdfs:subpropertyOf rdf:resource = "#connect">
</owl:objectProperty>
34
© Fraunhofer IPSI
Additional Requirements for Semantic Web
Applications
Data Model
3 Glue 4 Hollow 3 Glue 4 Hollow
4 Hollow 4 Hollow
5 Rudar 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id na me
8 Hollow 8 Hollow
1 Rudar
9 Rudar 9 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
35
© Fraunhofer IPSI
Operationalization: Model Authoring +
Mapping Definition FairsNet
Software Agent
System
Tools Suite Web User Interface Agent Interface
System
Authoring
Publishing Tools Tool Suite Conceptual UI Model
Process
- Form Dialog Manager User Interface Layer Model
- Menu Manager Manager
VizCo
Task-specificTools Semantic Domain Model Web Services
- Booking Manager
- User Manager Application Layer
authors authors
authors id name authors id name
id na me 1 Rudar id na me 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 4 Hollow 3 Glue 4 Hollow
4 Hollow 4 Hollow
5 Rudar 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id na me
8 Hollow 8 Hollow
36
1 Rudar
9 Rudar 9 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
© Fraunhofer IPSI
Open Issues
Development of globally accepted
(domain specific) Ontologies
Extended support for domain model
and ontology evolution
Systematic Handling of
multilinguality
Development of adequate processors
for the transformation of conceptual UI
models into different agent-specific
UI formats
Standardization and Integration of
Process Models for WEB Services)
37
© Fraunhofer IPSI
Thanks!
38
© Fraunhofer IPSI
In the following some Backup Slides
39
© Fraunhofer IPSI
The Semantic Web
40
© Fraunhofer IPSI
Semantic Web Application Models
Web
Client
(HTML)
Application Layer
authors authors
authors id name authors id name
id name 1 Rudar id name 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 3 Glue
4 Hollow 4 Hollow
41
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
© Fraunhofer IPSI
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
Semantic Domain Model – RDF &
Co
The Resource Description Framework:
Defines a framework for structuring and
describing resources like documents in the
Semantic Web
Enables the definition of vocabularies for
the description of resources in an
application domain;
Goals:
Software Agent
Extensibility, interoperability, and
reuse of vocabularies;
User Interface Layer
Improved support for interpretation of
Application Layer data
by machines
authors authors
autho rs id name autho rs id name
id na me 1 Rudar id na me 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 4 Hollow 3 Glue 4 Hollow
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
42
© Fraunhofer IPSI
Defining Semantics on the Web
context.
5 Rudar 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
43
© Fraunhofer IPSI
RDF Schema
and relationships/properties
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
44
© Fraunhofer IPSI
RDF Schema Example
rdf:Literal FlightNumber
rdfs:range
in
DepatureDate
o ma
assignedTo rd
d
ai n fs
rd fs:
:r
r dfs om an
ain :ra n s :d ge
o m ge r df
s:d Flight rdf:Literal
r df rdfs:range isFor
Plane ain
m
f s:do
rd
rdf s
hasPassenger
om:d
ai
rd
n
fs:
r an
ge Ticket
Person
e
ng
rdf
s: d
ra
o ma
s:
f
in
owns rd
45
© Fraunhofer IPSI
Ontology Languages
46
© Fraunhofer IPSI
OWL Characteristics
48
© Fraunhofer IPSI
XForms provides …
49
© Fraunhofer IPSI XML-Browser, Java and Flash
Additional Requirements for Semantic Web
Applications
Mappings between the Models
Conceptual UI Model
Semantic Domain Model
Domain Model (represented by Database
Schema)
authors authors
autho rs id name autho rs id name
id na me 1 Rudar id na me 1 Rudar
1 Rudar 2 Best 1 Rudar 2 Best
2 Best 3 Glue 2 Best 3 Glue
3 Glue 4 Hollow 3 Glue 4 Hollow
4 Hollow 5 Rudar 4 Hollow 5 Rudar
6 Best 6 Best
authors 7 Glue 7 Glue
id name 8 Hollow 8 Hollow
9 Rudar 9 Rudar
1 Rudar
10 Best 10 Best
2 Best
11 Glue 11 Glue
3 Glue
4 Hollow
50
© Fraunhofer IPSI
Software Agent
Flight
Flight Departure
Departure
51
id name 8 Hollow 8 Hollow id name 8 Hollow 8 Hollow
1 Rudar
9 Rudar 9 Rudar 1 Rudar
9 Rudar 9 Rudar
10 Best 10 Best 10 Best 10 Best
2 Best 2 Best
11 Glue 11 Glue 11 Glue 11 Glue
© Fraunhofer IPSI
3 Glue 3 Glue
4 Hollow 4 Hollow
XForms Example – SCHOLNET
Project
<SearchForm> ..
.
<fields>
<field name="dc:creator" type="string">
<rel-ops selected="equal">
<rel-op name="equal"
.. symbol="" position="infix"/>
.
</rel-ops> ..
.
</fields> ..
.
</SearchForm>
<xforms:repeat nodeset="SearchForm/fields/field"/>
<xforms:select1 ref="field-operators/@selected">
<xforms:itemset nodeset="field-operators/field-operator">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset>
</xforms:select1>
<xforms:button value="Add" onclick="new:rptName"/>
<xforms:button value="Delete"
onclick="delete:rptName"/>
<xforms:group nodeset="rel-ops"/>
<xforms:select1 ref="@selected" appearance="min">
<xforms:itemset nodeset="rel-op">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
52
© Fraunhofer IPSI </xforms:itemset>
</xforms:select1>
XForms Example – SCHOLNET
Project
<SearchForm> ..
.
<fields>
<field name="dc:creator" type="string">
<rel-ops selected="equal">
<rel-op name="equal"
.. symbol="" position="infix"/>
.
</rel-ops> ..
.
</fields> ..
.
</SearchForm>
<xforms:repeat nodeset="SearchForm/fields/field"/>
<xforms:select1 ref="field-operators/@selected">
<xforms:itemset nodeset="field-operators/field-operator">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset>
</xforms:select1>
<xforms:button value="Add" onclick="new:rptName"/>
<xforms:button value="Delete" onclick="delete:rptName"/>
<xforms:group nodeset="rel-ops"/>
<xforms:select1 ref="@selected" appearance="min">
<xforms:itemset nodeset="rel-op">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset>
</xforms:select1> 53
© Fraunhofer IPSI <xforms:input ref="value"/>[<xforms:output
XForms Example – SCHOLNET
Project
<SearchForm> ..
.
<fields>
<field name="dc:creator" type="string">
<rel-ops selected="equal">
<rel-op name="equal"
.. symbol="" position="infix"/>
.
</rel-ops> ..
.
</fields> ..
.
</SearchForm>
<xforms:repeat nodeset="SearchForm/fields/field"/>
<xforms:select1 ref="field-operators/@selected">
<xforms:itemset nodeset="field-operators/field-operator">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset>
</xforms:select1>
<xforms:button value="Add" onclick="new:rptName"/>
<xforms:button value="Delete" onclick="delete:rptName"/>
<xforms:group nodeset="rel-ops"/>
<xforms:select1 ref="@selected" appearance="min">
<xforms:itemset nodeset="rel-op">
<xforms:caption ref="@name"/><xforms:value
ref="@name"/>
</xforms:itemset>
</xforms:select1> 54
© Fraunhofer IPSI <xforms:input ref="value"/>[<xforms:output
Mapping and Semantic Domain Model (Views) -
VizCo
No of persons
coursetransaction s c2: coursetransaction
affiliation name affiliation address R19: ha
R1
R1
vehicle
8: b
8:
R7: has
boo
ok
provider name s
s
ha
ha
k
R1
6:
6:
R1
5:
R
as
person
R10: register
ha s
c3: person
R8:
R1 number
7:
i
s
sA
has
affiliation provider R1
ha
7:
isA
0:
R2
R 20:
student
R2
R2
c4: student
1:
1
ha
:h
R5: sFrom
person name
s
as
R9: has
R14:has
4:
ha
mn
a2: mn
author course c1: course
R4: R 11
has R11: belo : bel
ng sTo ong c5: coursedomain
sT o
R3: has
coursedomain
as R
:h
2:
h
R1
R1
as
3:
ha
R
13
coursedomain name
a5: coursedomain name