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

Like this? Share it with your network

Share

A Multi-theory Logic Language for the World Wide Web

  • 1,892 views
Uploaded on

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......

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,892
On Slideshare
1,885
From Embeds
7
Number of Embeds
3

Actions

Shares
Downloads
17
Comments
0
Likes
0

Embeds 7

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

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 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
  • 2. Purpose Bring principles, abstractions, and insights from the Web architecture to research on the use of logic programming for Web application prototyping
  • 3. Resource Any conceptual target of a hypertext reference Composed of: • identifier (URI) • data • behavior
  • 4. http://example.com/sales/2004/Q4
  • 5. http://example.com/sales/2004/Q4 R T(R) f(a). r(P, Q) :- s(P), t(Q).
  • 6. http://example.com/sales/2004/Q4 http://example.com/sales/2004/ R R1 T(R) T(R1)
  • 7. http://example.com/sales/2004/Q4 http://example.com/sales/2004/ R http://example.com/sales/ R1 T(R) R2 T(R1) T(R2)
  • 8. http://example.com/sales/2004/Q4 http://example.com/sales/2004/ R http://example.com/sales/ R1 T(R) R2 T(R1) T(R2)
  • 9. 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/
  • 10. 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
  • 11. HTTP GET /sales/2004/Q4 HTTP/1.1 Host: example.com
  • 12. 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).
  • 13. 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).
  • 14. /r2/r1/r R T(R) get(_, _, V) :- a, b, c(V). a :- p, q, r.
  • 15. /r2/r1 /r2/r1/r R1 R T(R) get(_, _, V) :- a, b, c(V). a :- p, q, r.
  • 16. / /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.
  • 17. / /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.
  • 18. 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.
  • 19. 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.
  • 20. 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