The document proposes a multi-theory logic language for developing web applications using logic programming. It describes resources on the web as having identifiers, data, and behavior. Resources can have different behaviors depending on the context and their behavior can change dynamically at runtime. The language allows modeling web resources and architectures directly as first-class citizens.
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
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
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