multi-agent and semantic web systems: the programmable web

24
Fiona McNeill School of Informatics 4th March 2013 Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 0/18 4th March 2013 Multi-agent and Semantic Web Systems: The Programmable Web

Upload: others

Post on 27-Oct-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill

School of Informatics

4th March 2013

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 0/184th March 2013

Multi-agent and Semantic Web Systems: The Programmable Web

Page 2: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 1/18

WS: High-level view

4th March 2013

� � � � � �

;7��,MKL�0IZIP�:MI[

Web Services

Web APIs

Google, Amazon, Flickr, etc

HTTP

Mash-upsREST,

REST-RPC

Service Orchestration, Composition

RPC, SOA

Big Web Services

XML-RPC

WS-I

IBM, Oracle,

BEAHP, etc

SOAP, WSDL,

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� ������

Page 3: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 2/18

Two perspectives

4th March 2013

• Web APIs

• Same technology that supports existing WWW also supports web services

• If its on the Web, it’s a web service — Richardson and Ruby (2007), RESTful Web Services, O’Reilly.

• Big Web Services:

• WS interfaces are specified in WSDL

• WS exchange data in SOAP messages

Page 4: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 3/18

WS: Computational Styles / Architecture

4th March 2013

1. Representational State Transfer (REST) – only uses HTTP methods and resources (i.e., URIs)

2. Remote procedure call (RPC) — distributed programming paradigm

3. Service Orient Architecture (SOA) — emphasis on messages and metadata for service functionality

Page 5: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 4/18

HTTP Client-Server

4th March 2013

� � � � � �

,884 'PMIRX�7IVZIV

talk to me...

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� ������

Page 6: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 5/18

HTTP Browser-Server

4th March 2013� � � � � �

,884 &VS[WIV�7IVZIV

GET /ewan/masws/studentswebpage.html

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� ������

Page 7: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 6/18

HTTP Browser-Server

4th March 2013� � � � � �

,884 &VS[WIV�7IVZIV

200 OK

Date: Thu, 17 Jan 2008

21:19:18 GMT

Server: Apache/1.3.37

Last-Modified: Wed, 16 Jan

2008 14:52:07 GMT

Connection: close

Transfer-Encoding: chunked

Content-Type: text/html

GET /ewan/masws/studentswebpage.html

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� ������

Page 8: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 7/18

HTTP Client-Server Interaction, 1

4th March 2013

• Client opens TCP/IP socket connection on port 80 to host.

Page 9: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 7/18

HTTP Client-Server Interaction, 1

4th March 2013

• Client opens TCP/IP socket connection on port 80 to host.

• Client sends an HTTP request consisting of a method and request URL.

Page 10: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 7/18

HTTP Client-Server Interaction, 1

4th March 2013

• Client opens TCP/IP socket connection on port 80 to host.

• Client sends an HTTP request consisting of a method and request URL.

• Server sends back a message consisting of a status code and some header information, followed by a blank line.

Page 11: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 7/18

HTTP Client-Server Interaction, 1

4th March 2013

• Client opens TCP/IP socket connection on port 80 to host.

• Client sends an HTTP request consisting of a method and request URL.

• Server sends back a message consisting of a status code and some header information, followed by a blank line.

• If the client’s request method is a GET, and the server’s status code is 2OO OK, then server also returns a representation of the requested resource.

Page 12: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 8/18

HTTP Client-Server Interaction, 2

4th March 2013

� � � � � �

,884 'PMIRX�7IVZIV�-RXIVEGXMSR� �

�,884 6IUYIWX��

�� ��

1)8,3( ��EVKYQIRX

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� ������

Page 13: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 9/18

Client-Server Interaction, 3

4th March 2013� � � � � �

'PMIRX�7IVZIV�-RXIVEGXMSR� �

�6IWTSRWI�7XEXYW�'SHI���� ��

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� �������

Page 14: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 10/18

Client-Server Interaction, 4

4th March 2013� � � � � �

'PMIRX�7IVZIV�-RXIVEGXMSR� �

�7IVZIV�,IEHIVW��

�� ��

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� �������

Page 15: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 11/18

Client-Server Interaction, 5

4th March 2013� � � � � �

'PMIRX�7IVZIV�-RXIVEGXMSR� �

�6IWTSRWI�(SGYQIRX��

�� ��

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� �������

Page 16: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 12/18

What’s in the document?

4th March 2013

• HTML — for rendering by browser

• XML — anything that can deal with structured data

• JSON — ‘lightweight’ alternative to XML for data serialization audio, graphics, etc ...

• MIME types (e.g., text/html)

Page 17: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 13/18

JSON

4th March 2013

Javascript Object Notation

• http://www.json.org/

• Language-independent scheme for exchanging data between applications.•lightweight format (i.e., compared to XML)• easy for humans to read and write• easy for machines to parse and generate

• Two basic structures:1. unordered key/value pairs2. ordered list of values

• A similar non-XML data format language: YAML http://www.yaml.org/

Page 18: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 14/18

JSON Examples

4th March 2013

� � � � � �

.732 )\EQTPIW

�(MGXMSREV]�ERH�0MWX��

�� ��

�(MGXMSREV]�[MXL�PMWX�ZEPYIW��

�� ��

�0MWX�SJ�HMGXMSREVMIW���� ��

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� �������

Page 19: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 14/18

JSON Examples

4th March 2013

� � � � � �

.732 )\EQTPIW

�(MGXMSREV]�ERH�0MWX��

�� ��

�(MGXMSREV]�[MXL�PMWX�ZEPYIW��

�� ��

�0MWX�SJ�HMGXMSREVMIW���� ��

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� �������� � � � � �

.732 )\EQTPIW

�(MGXMSREV]�ERH�0MWX��

�� ��

�(MGXMSREV]�[MXL�PMWX�ZEPYIW��

�� ��

�0MWX�SJ�HMGXMSREVMIW���� ��

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� �������

Page 20: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 14/18

JSON Examples

4th March 2013

� � � � � �

.732 )\EQTPIW

�(MGXMSREV]�ERH�0MWX��

�� ��

�(MGXMSREV]�[MXL�PMWX�ZEPYIW��

�� ��

�0MWX�SJ�HMGXMSREVMIW���� ��

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� �������� � � � � �

.732 )\EQTPIW

�(MGXMSREV]�ERH�0MWX��

�� ��

�(MGXMSREV]�[MXL�PMWX�ZEPYIW��

�� ��

�0MWX�SJ�HMGXMSREVMIW���� ��

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� �������� � � � � �

.732 )\EQTPIW

�(MGXMSREV]�ERH�0MWX��

�� ��

�(MGXMSREV]�[MXL�PMWX�ZEPYIW��

�� ��

�0MWX�SJ�HMGXMSREVMIW���� ��

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� �������

Page 21: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 15/18

A GET Request in Python

4th March 2013

� � � � � �

% +)8 6IUYIWX�MR�4]XLSR

�4EVWMRK�E�960��

�� ��

1MGLEIP�6SZEXWSW �7GLSSP�SJ�-RJSVQEXMGW 1YPXM�EKIRX�7IQERXMG�;IF�7]WXIQW� 8LI�4VSKVEQQEFPI�;IF ��1EVGL����� �������

Page 22: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 16/18

HTTP Methods

4th March 2013

GET Requests a representation of the specified resource.

HEAD Asks for the response identical to the one that would correspond to a GET request, but without the response body.

POSTSubmits data to be processed (e.g. from an HTML form) to the identified resource.

PUTUploads a representation of the specified resource.

DELETE Deletes the specified resource.

Page 23: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 17/18

HTTP Status Codes

4th March 2013

1xx Informational

2xx SuccessE.g., 200 OK

3xx RedirectionE.g., 303 See Other

4xx Client ErrorE.g., 404 Not Found

5xx Server Error

Page 24: Multi-agent and Semantic Web Systems: The Programmable Web

Fiona McNeill Multi-agent Semantic Web Systems: The Programmable Web 18/18

Web API Summary

4th March 2013

• Opening a browser and typing in a URL initiates a kind of client-server interaction.

• Client program sends a request to a host, server sends a response. HTTP provides a kind of envelope for messages.

• Server response depends in part on the HTTP method; may also be encoded in the URL.

• Issues about RPC approach will be looked at later in course.

• Returned document can be in a variety of formats.

• XML and JSON: both examples of data-exchange formats.

• http://www.programmableweb.com/ for APIs and mashups