A Multi-theory Logic Language for the World Wide Web
Upcoming SlideShare
Loading in...5
×
 

A Multi-theory Logic Language for the World Wide Web

on

  • 1,856 views

Despite the recent formalization of the Web in terms of Representational State Transfer (REST) architectural style and Resource-Oriented Architecture (ROA), current tools for Web programming generally ...

Despite the recent formalization of the Web in terms of Representational State Transfer (REST) architectural style and Resource-Oriented Architecture (ROA), current tools for Web programming generally misunderstand its design. Based on REST/ROA insights, we claim that logic languages are suited for promoting the Web architecture and principles. The mapping of REST/ROA abstractions onto elements of Contextual Logic Programming also permits runtime modification of resource behavior. In this paper we present Web Logic Programming as a Prolog-based language for the Web embedding REST/ROA principles, meant to be the basis of an application framework for rapid prototyping.

Statistics

Views

Total Views
1,856
Views on SlideShare
1,849
Embed Views
7

Actions

Likes
0
Downloads
17
Comments
0

3 Embeds 7

http://www.slideshare.net 4
http://apice.unibo.it 2
http://www.apice.unibo.it 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    A Multi-theory Logic Language for the World Wide Web A Multi-theory Logic Language for the World Wide Web Presentation Transcript

    • A Multi-theory Logic Language for the World Wide Web Giulio Piancastelli and Andrea Omicini 24th International Conference on Logic Programming (ICLP 2008) Udine, December 9-13, 2008
    • Purpose Bring principles, abstractions, and insights from the Web architecture to research on the use of logic programming for Web application prototyping
    • Resource Any conceptual target of a hypertext reference Composed of: • identifier (URI) • data • behavior
    • http://example.com/sales/2004/Q4
    • http://example.com/sales/2004/Q4 R T(R) f(a). r(P, Q) :- s(P), t(Q).
    • http://example.com/sales/2004/Q4 http://example.com/sales/2004/ R R1 T(R) T(R1)
    • http://example.com/sales/2004/Q4 http://example.com/sales/2004/ R http://example.com/sales/ R1 T(R) R2 T(R1) T(R2)
    • http://example.com/sales/2004/Q4 http://example.com/sales/2004/ R http://example.com/sales/ R1 T(R) R2 T(R1) T(R2)
    • http://example.com/sales/2004/Q4 http://example.com/sales/2004/ R http://example.com/sales/ R1 T(R) R2 T(R1) T(R2) R http://example.com/sales/Q42004/
    • Implicit Resources Resources representing recurring concepts in Web development that are always attached to the bottom of any context • the session with the application • the user • the application itself • the deployment environment
    • HTTP GET /sales/2004/Q4 HTTP/1.1 Host: example.com
    • HTTP GET /sales/2004/Q4 HTTP/1.1 Host: example.com Method Information: how the receiver has to process the request '/sales/2004/Q4' : get(Request, Response, View).
    • HTTP GET /sales/2004/Q4 HTTP/1.1 Host: example.com Scope Information: the data where the receiver should operate the method '/sales/2004/Q4' : get(Request, Response, View).
    • /r2/r1/r R T(R) get(_, _, V) :- a, b, c(V). a :- p, q, r.
    • /r2/r1 /r2/r1/r R1 R T(R) get(_, _, V) :- a, b, c(V). a :- p, q, r.
    • / /r2 /r2/r1 /r2/r1/r root R2 R1 R T(root) T(R) p :- x, y, z. get(_, _, V) :- x. a, b, c(V). a :- p, q, r.
    • / /r2 /r2/r1 /r2/r1/r root R2 R1 R T(root) T(R) p :- x, y, z. get(_, _, V) :- x. a, b, c(V). a :- p, q, r.
    • Dynamic Resource Behavior (1) Two or more URIs can be associated to the same resource: resources may live in different contexts at the same time and feature different behavior according to the context where the computation takes place.
    • Dynamic Resource Behavior (2) Behavioral rules are expressed as first-class abstractions in logic programming languages, where programs can be treated as data: the HTTP protocol allows changing resource data by using the PUT method, so that runtime behavioral changes of a resource in a context are possible.
    • A Multi-theory Logic Language for the World Wide Web Giulio Piancastelli and Andrea Omicini 24th International Conference on Logic Programming (ICLP 2008) Udine, December 9-13, 2008