+ All Categories
Home > Technology > Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

Date post: 16-Jan-2015
Category:
Upload: dsbw-20112002-carles-farre-barcelona-tech
View: 1,036 times
Download: 5 times
Share this document with a friend
Description:
 
44
1 dsbw 2011/2012 q1 XML DTD, XMLSchema XSL, Xquery Web Services SOAP, WSDL RESTful Web Services Semantic Web Introduction RDF, RDF Schema, OWL, SPARQL Unit 10: XML and Web and Beyond
Transcript
Page 1: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

1 dsbw 2011/2012 q1

XML

DTD, XMLSchema

XSL, Xquery

Web Services

SOAP, WSDL

RESTful Web Services

Semantic Web

Introduction

RDF, RDF Schema, OWL, SPARQL

Unit 10: XML and Web and Beyond

Page 2: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

2 dsbw 2011/2012 q1

“... is a simple, very flexible text format derived from SGML (ISO 8879). Originally designed to meet the challenges of large-scale electronic publishing, XML is also playing an increasingly important role in the exchange of a wide variety of data on the Web and elsewhere. ”

W3 Consortium XML …

is not a solution but a tool to build solutions

is not a language but a meta-language that require interoperating applications that use it to adopt clear conventions on how to use it

is a standardized text format that is used to represent structured information

eXtensible Markup Language

Page 3: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

3 dsbw 2011/2012 q1

SGML, XML and their applications

HyTime HTML

XHTML SMIL SOAP WML

SGML

XML

Meta-Markup Language

Markup Language

Application

Page 4: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

4 dsbw 2011/2012 q1

The document has exactly one root element

The root element can be preceded by an optional XML declaration

Non-empty elements are delimited by both a start-tag and an end-tag.

Empty elements are marked with an empty-element (self-closing) tag

Tags may be nested but must not overlap

All attribute values are quoted with either single (') or double (") quotes

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

<address>

<street>

<line>123 Pine Rd.</line>

</street>

<city name="Lexington"/>

<state abbrev="SC"/>

<zip base="19072" plus4=""/>

</address>

Well-Formed XML Documents

Page 5: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

5 dsbw 2011/2012 q1

Are well-formed XML documents

Are documents that conform the rules defined by certain schemas

Schema: define the legal building blocks of an XML document. It defines the document structure with a list of legal elements. Two ways to define a schema:

DTD: Document Type Definition

XML Schema

Valid XML Documents

Page 6: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

6 dsbw 2011/2012 q1

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

<!DOCTYPE address [

<!ELEMENT address (street, city, state, zip)>

<!ELEMENT street line+>

<!ELEMENT line (#PCDATA)>

<!ELEMENT city (#PCDATA)>

<!ELEMENT state (#PCDATA)>

<!ELEMENT zip (#PCDATA)> ]>

<address> ... </address>

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

<!DOCTYPE address SYSTEM

"http://dtd.mycompany.com/address.dtd">

<address> ... </address>

DTD Example: Embedded and External Definitions

Page 7: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

7 dsbw 2011/2012 q1

DTD is not integrated with Namespace technology so users cannot import and reuse code

DTD does not support data types other than character data

DTD syntax is not XML compliant

DTD language constructs are no extensible

DTD Limitations

Page 8: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

8 dsbw 2011/2012 q1

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

<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"

elementFormDefault="qualified">

<xsd:import namespace=" "/>

<xsd:element name="address">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="street">

<xsd:complexType>

<xsd:all maxOccurs="unbounded">

<xsd:element name="line" type="xsd:string"/>

</xsd:all>

</xsd:complexType>

</xsd:element>

<xsd:element name="city" type="xsd:string"/>

<xsd:element name="state" type="xsd:string"/>

<xsd:element name="zip" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

XML Schema: Example

Page 9: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

9 dsbw 2011/2012 q1

Using a programming language and the SAX API.

SAX is a lexical, event-driven interface in which a document is read serially and its contents are reported as "callbacks" to various methods on a handler object of the user's design

Using a programming language and the DOM API.

DOM allows for navigation of the entire document as if it were a tree of "Node" objects representing the document's contents.

Using a transformation engine and a filter

XSLT, XQuery, etc

Processing XML Documents

Page 10: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

10 dsbw 2011/2012 q1

Alternative/complement to HTML

XML + CSS, XML + XSL, XHTML

Declarative application programming/configuration

Configuration files, descriptors, etc.

Data exchange among heterogeneous systems

B2B, e-commerce: ebXML

Data Integration from heterogeneous sources

Schema mediation

Data storage and processing

XML Databases, XQuery (XPath)

Protocol definition

SOAP, WAP, WML, etc.

XML Uses

Page 11: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

11 dsbw 2011/2012 q1

Expression language to address elements of an XML document (used in XSLT, XQuery, …)

A location path is a sequence of location steps separated by a slash (/)

Various navigation axes such as child, parent, following

etc.

XPath expressions look similar to file pathnames:

/bib/book

/bib/book[year>2008]/title

//author[3]

XPath

Page 12: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

12 dsbw 2011/2012 q1

XSL serves the dual purpose of

transforming XML documents

exhibiting control over document rendering

XSL consists of two parts:

XSL Transformations (XSLT):

An XML language for transforming XML documents

It uses XPath to search and transverse the element hierarchy of XML documents

XSL Formatting Objects (XSL-FO):

An XML language for specifying the visual formatting of an XML document.

It is a superset of the CSS functionally designed to support print layouts.

eXtensible Stylesheet Language: XSL

Page 13: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

13 dsbw 2011/2012 q1

<bib> <book year="1994"> <title>TCP/IP Illustrated</title> <author><last>Stevens</last><first>W.</first></author> <publisher>Addison-Wesley</publisher> <price>65.95</price> </book> <book year="1992"> <title>Advanced Programming in the Unix environment</title> <author><last>Stevens</last><first>W.</first></author> <publisher>Addison-Wesley</publisher> <price>65.95</price> </book> <book year="2000"> <title>Data on the Web</title> <author><last>Abiteboul</last><first>Serge</first></author> <author><last>Suciu</last><first>Dan</first></author> <publisher>Morgan Kaufmann Publishers</publisher> <price>39.95</price> </book> </book> </bib>

XQuery (XML Query): Example (source)

Page 14: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

14 dsbw 2011/2012 q1

<results>

{ let $a := doc("http://bstore1.example.com/bib/bib.xml")//author

for $last in distinct-values($a/last),

$first in distinct-values($a[last=$last]/first)

order by $last, $first

return

<author>

<name>

<last>{ $last }</last><first>{ $first }</first>

</name>

{ for $b in doc("http://bstore1.example.com/bib.xml")/bib/book

where some $ba in $b/author

satisfies ($ba/last = $last and $ba/first=$first)

return $b/title }

</author> }

</results>

XQuery (XML Query): Example (query)

For each author, retrieve its last, first names

as well as the title of its books, ordered by

last, first names

Page 15: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

15 dsbw 2011/2012 q1

<results> <author> <name> <last>Abiteboul</last><first>Serge</first> </name> <title>Data on the Web</title> </author> <author> <name> <last>Stevens</last><first>W.</first> </name> <title>TCP/IP Illustrated</title> <title>Advanced Programming in the Unix environment</title> </author> <author> <name> <last>Suciu</last><first>Dan</first> </name> <title>Data on the Web</title> </author> </results>

XQuery (XML Query): Example (result)

Page 16: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

16 dsbw 2011/2012 q1

People and communities have data stores and applications to share

Vision:

Expand the Web to include more machine-understandable resources

Enable global interoperability between resources you know should be interoperable as well as those you don't yet know should be interoperable

Key Web technologies:

Web Services: Web of Programs

Standards for interactions between programs, linked on the Web

Easier to Expose and Use services (and data they provide)

Semantic Web: Web of Data

Standards for things, relationships and descriptions, linked on the Web

Easier to Understand, Search for, Share, Re-Use, Aggregate, Extend information

A Smarter Web Is Possible

Page 17: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

17 dsbw 2011/2012 q1

Web Services

“A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards”. Web Services Glossary, W3C, http://www.w3.org/TR/ws-gloss/

UDDI: Universal

Description,

Discovery and

Integration

Page 18: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

18 dsbw 2011/2012 q1

SOAP is a simple XML based protocol to let applications exchange information over HTTP.

A SOAP message is a XML document containing the following elements:

A required Envelope element that identifies the XML document as a SOAP message

An optional Header element that contains header information

A required Body element that contains call and response information

An optional Fault element that provides information about errors that occurred while processing the message

Simple Object Access Protocol (SOAP)

Page 19: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

19 dsbw 2011/2012 q1

POST /InStock HTTP/1.1

Host: www.stock.org

Content-Type: application/soap+xml; charset=utf-8

Content-Length: nnn

<?xml version="1.0"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.stock.org/stock"> <m:GetStockPrice> <m:StockName>IBM</m:StockName>

</m:GetStockPrice> </soap:Body> </soap:Envelope>

SOAP Request: Example

Page 20: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

20 dsbw 2011/2012 q1

HTTP/1.1 200 OK

Content-Type: application/soap; charset=utf-8

Content-Length: nnn

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.stock.org/stock">

<m:GetStockPriceResponse>

<m:Price>34.5</m:Price>

</m:GetStockPriceResponse>

</soap:Body>

</soap:Envelope>

SOAP Response: Example

Page 21: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

21 dsbw 2011/2012 q1

Web Services Description Language (WSDL)

A WSDL document describes a web service using these major elements:

<portType>: The operations performed by the web service

<message>: The messages used by the web service

<types>: The data types used by the web service

<binding>: The communication protocols used by the web service

<definitions>

<types>

type definition ......

</types>

<message>

message definition ...

</message>

<portType>

port definition ....

</portType>

<binding>

binding definition ..

</binding>

</definitions>

Page 22: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

22 dsbw 2011/2012 q1

<message name=“getStockPriceRequest">

<part name="StockName" type="xs:string"/>

</message>

<message name=“getStockPriceResponse">

<part name="Price" type="xs:float"/>

</message>

<portType name=“StockMarket">

<operation name=“getStockPrice">

<input message="getStockPriceRequest"/>

<output message=

"getStockPriceTermResponse"/>

</operation>

</portType>

WSDL Document: Example (fragment)

Page 23: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

23 dsbw 2011/2012 q1

RESTful Web Services

RESTFul Web Services expose their data and functionality trough resources identified by URI

Uniform Interface Principle: Clients interact with resources through a fix set of verbs. Example HTTP:

GET (read), PUT (update), DELETE, POST (catch all),

Multiple representations (MIME types) for the same resource: XML, JSON, …

Hyperlinks model resource relationships and valid state transitions for dynamic protocol description and discovery

Page 24: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

24 dsbw 2011/2012 q1

REST is an architectural style for networked systems based on the following principles:

Client-server

Stateless

no client context being stored on the server between requests

Cacheable

Layered System

Any number of connectors (e.g., clients, servers, caches, firewalls, tunnels, etc.) can mediate the request, but each does so without being concern about anything but its own request

Code-on-demand (optional)

Servers can extend or customize the functionality of a client by transferring to it logic that it can execute.

Uniform Interface

Representational State Transfer (REST)

Page 25: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

25 dsbw 2011/2012 q1

All important resources are identified by one (uniform) resource identifier mechanism (e.g. URI)

Access methods mean the same for all resources (universal semantics; e.g.: GET, POST, DELETE, PUT)

Hypertext as the engine of application state (HATEOAS):

A successful response indicates (or contains) a current representation of the state of the identified resource

The resource remains hidden behind the interface.

Some representations contain links to potential next application states, including direction on how to transition to those states when a transition is selected.

REST: Uniform Interface

Page 26: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

26 dsbw 2011/2012 q1

Only two base URIs per resource:

Collection: /stocks (plural noun)

Element: /stocks/{stock_id} (e.g. /stocks/IBM )

Complex variations:

/dogs?color=red&state=running&location=park

Versioning:

/v1/stocks

Positioning:

/stocks?limit=25&offset=50

Non-resources (e.g. calculate, convert, …):

/convert?from=EUR&to=CNY&amount=100 (verbs, not nouns)

RESTful WS: URI Design Guidelines

Page 27: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

27 dsbw 2011/2012 q1

Resource GET PUT POST DELETE

http://www.stock.org/stocks

List the members (URIs and perhaps other details) of the collection. For example list all the stocks.

Replace the entire collection with another collection.

Create a new entry in the collection. The new entry's ID is assigned automatically and is usually returned by the operation.

Delete the entire collection.

http://www.stock.org/stocks/IBM

Retrieve a representation of the addressed member of the collection, expressed in an appropriate Internet media type.

Update the addressed member of the collection, or if it doesn't exist,create it.

Treat the addressed member as a collection in its own right and create a new entry in it.

Delete the addressed member of the collection.

RESTful WS: Example (adapted from Wikipedia)

Page 28: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

28 dsbw 2011/2012 q1

SOAP+WSDL vs. RESTful

Page 29: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

29 dsbw 2011/2012 q1

“The Web was designed as an information space, with the goal that it should be useful not only for human-human communication, but also that machines would be able to participate and help. One of the major obstacles to this has been the fact that most information on the Web is designed for human consumption, and even if it was derived from a database with well defined meanings (in at least some terms) for its columns, that the structure of the data is not evident to a robot browsing the web. Leaving aside the artificial intelligence problem of training machines to behave like people, the Semantic Web approach instead develops languages for expressing information in a machine processable form”.

"If HTML and the Web made all the online documents look like one huge book, RDF, schema, and inference languages will make all the data in the world look like one huge database"

Tim Berners-Lee

Semantic Web = The Web of Data

Page 30: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

30 dsbw 2011/2012 q1

The Current Web (1/2)

Resources:

Identified by URI's

untyped

Links:

href, src, ...

limited, non-descriptive

Users:

A lot of information, but its meaning must be interpreted and deduced from the content as it has been done since millenniums

Machines:

They don’t understand.

Page 31: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

31 dsbw 2011/2012 q1

The Public Web

The web found when searching and browsing

At least 21 billion pages indexed by standard search engines

The Deep Web

Large data repositories that require their own internal searches.

About 6 trillion documents not indexed by standard search engines.

The Private Web

Password-protected sites and data: corporate intranets, private networks, subscription-based services, etc.

About 3 trillion documents not indexed by standard search engines.

The Current Web (2/2)

Page 32: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

32 dsbw 2011/2012 q1

The Semantic Web

Resources:

Globally identified by URIs

or locally (Blank)

Extensible

Relational

Links:

Identified by URIs

Extensible

Relational

Users:

More an better information

Machines:

More processable information (Data Web)

Page 33: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

33 dsbw 2011/2012 q1

Make web resources more accessible to automated processes

Extend existing rendering markup with semantic markup

Metadata (data about data) annotations that describe content/function of web accessible resources

Use Ontologies to provide vocabulary for annotations

“Formal specification” accessible to machines

A prerequisite is a standard web ontology language

Need to agree common syntax before we can share semantics

Syntactic web based on standards such as HTTP and HTML

Semantic Web: How?

Page 34: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

34 dsbw 2011/2012 q1

Metadata annotations

Page 35: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

35 dsbw 2011/2012 q1

Semantic Web: W3C Standards and Tools

RDF (Resource Description Framework): simple data model to describe resources and their relationships

RDF Schema: is a language for declaring basic class and types for describing the terms used in RDF, that allows defining class hierarchies

SPARQL: SPARQL Protocol and RDF Query Language

OWL: Web Ontology Language. Allows enriching the description of properties and classes, including, among others, class disjunction, association cardinality, richer data types, property features (eg. symmetry), etc.

Page 36: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

36 dsbw 2011/2012 q1

RDF is graphical formalism ( + XML syntax + semantics)

for representing metadata

for describing the semantics of information in a machine- accessible way

RDF Statements are <subject, predicate, object> triples that describe properties of resources :

<Carles,hasColleague,Ernest>

XML representation:

<Description about="some.uri/person/carles_farre">

<hasColleague

resource="some.uri/person/ernest_teniente"/>

</Description>

Resource Description Framework (RDF)

Page 37: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

37 dsbw 2011/2012 q1

RDF Schema allows you to define vocabulary terms and the

relations between those terms

it gives “extra meaning” to particular RDF predicates and resources

this “extra meaning”, or semantics, specifies how a term should be

interpreted

Examples:

<Person,type,Class>

<hasColleague,type,Property>

<Professor,subClassOf,Person>

<Cristina,type,Professor>

<hasColleague,range,Person>

<hasColleague,domain,Person>

RDF Schema

Page 38: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

38 dsbw 2011/2012 q1

RDFS too weak to describe resources in sufficient detail No localized range and domain constraints

Can’t say that the range of hasChild is person when applied to persons and elephant when applied to elephants

No existence/cardinality constraints

Can’t say that all instances of person have a mother that is also a person, or that persons have exactly 2 parents

No transitive, inverse or symmetrical properties

Can’t say that isPartOf is a transitive property, that hasPart is the inverse of isPartOf or that touches is symmetrical

Difficult to provide reasoning support No “native” reasoners for non-standard semantics

May be possible to reason via FO axiomatization

Problems with RDFS

Page 39: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

39 dsbw 2011/2012 q1

OWL is RDF(S), adding vocabulary to specify: Relations between classes

Cardinality

Equality

More typing of and characteristics of properties

Enumerated classes

Three species of OWL OWL full is union of OWL syntax and RDF

OWL DL restricted to FOL fragment (≅ SHIQ Description Logic)

OWL Lite is “easier to implement” subset of OWL DL

OWL DL Benefits from many years of DL research Well defined semantics

Formal properties well understood (complexity, decidability)

Known reasoning algorithms

Implemented systems (highly optimised)

Web Ontology Language (OWL)

Page 40: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

40 dsbw 2011/2012 q1

Person ⊓ ∀hasChild.(Doctor ⊔ ∃hasChild.Doctor)

<owl:Class>

<owl:intersectionOf rdf:parseType=" collection">

<owl:Class rdf:about="#Person"/>

<owl:Restriction>

<owl:onProperty rdf:resource="#hasChild"/>

<owl:toClass>

<owl:unionOf rdf:parseType="collection">

<owl:Class rdf:about="#Doctor"/>

<owl:Restriction>

<owl:onProperty

rdf:resource="#hasChild"/>

<owl:hasClass rdf:resource="#Doctor"/>

</owl:Restriction>

</owl:unionOf>

</owl:toClass>

</owl:Restriction>

</owl:intersectionOf>

</owl:Class>

OWL in RDF(S) notation: Example

Page 41: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

41 dsbw 2011/2012 q1

Designed to query collections of triples…

…and to easily traverse relationships

Vaguely SQL-like syntax (SELECT, WHERE)

“Matches graph patterns”

SELECT ?sal

WHERE { emps:e13954 HR:salary ?sal }

SPARQL Protocol And RDF Query Language

Page 42: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

42 dsbw 2011/2012 q1

SQL vs SPARQL

SELECT hire_date

FROM employees

WHERE salary >= 21750

EMP_ID NAME HIRE_

DATE

SALARY

13954 Joe 2000-04-14 48000

10335 Mary 1998-11-23 52000

… … … …

04182 Bob 2005-02-10 21750

emps:e13954 HR:name 'Joe'

emps:e13954 HR:hire-date 2000-04-14

emps:e13954 HR:salary 48000

emps:e10335 HR:name ‘Mary'

emps:e10335 HR:hire-date 1998-11-23

emps:e10335 HR:salary 52000

SELECT ?hdate

WHERE

{ ?id HR:salary ?sal

?id HR:hire_date ?hdate

FILTER ?sal >= 21750 }

Page 43: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

43 dsbw 2011/2012 q1

Semantic Web Services

The main aim is to enable highly flexible Web services architectures, where new services can be quickly discovered, orchestrated and composed into workflows by

creating a semantic markup of Web services that makes them machine understandable and use-apparent is necessary

developing an agent technology that exploits this semantic markup to support automated Web service composition and interoperability

WWW URI, HTML, HTTP

Semantic Web RDF, RDF(S), OWL

Dynamic Web Services UDDI, WSDL, SOAP

Static

Semantic Web Services

Page 44: Unit 10: XML and Beyond (Sematic Web, Web Services, ...)

44 dsbw 2011/2012 q1

KAPPEL, Gerti et al. Web Engineering, John Wiley & Sons, 2006. Chapter 14.

SHKLAR, Leon and ROSEN, Rich. Web Application Architecture: Principles, Protocols and Practices, 2nd Edition. John Wiley & Sons, 2009. Chapters 5 and 13.

RAY, Kate. Web 3.0 (video) http://vimeo.com/11529540

www.w3.org

www.w3schools.com

References


Recommended