To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Revision:

root / rdf-pastebin / server.pl

History | View | Annotate | Download (1.06 KB)

1
:- module(server, [server/0]).
2

    
3
:- use_module(library('http/thread_httpd')).
4
:- use_module(library('http/http_client')).
5
:- use_module(library('http/http_mime_plugin')).
6
:- use_module(library('semweb/rdf_db')).
7
:- use_module(library('semweb/rdf_turtle')).
8

    
9
ns('http://dbtune.org/people/').
10

    
11

    
12
server(Port, Options) :-
13
        http_server(reply,[ port(Port),timeout(20)| Options]).
14

    
15

    
16
reply(Request) :-
17
	member(method(post), Request), !,
18
	http_read_data(Request,Data,[]),
19
	format(user_output,'~w\n',[Data]),
20
	member((turtle=Turtle),Data),
21
	parse_turtle(Turtle,Triples),
22
	member((name=Name),Data),
23
	((exists_directory(Name),!);(make_directory(Name))),
24
	ns(NS),
25
	format(atom(File),'~w/content.rdf',[Name]),
26
	format(user_output,' - Dumping ~w\n',[File]),
27
	open(File,write,S),
28
	parse_turtle(Turtle,Triples),
29
	rdf_write_xml(S,Triples),
30
	close(S),
31
	atom_concat(NS,File,URL),
32
	throw(http_reply(see_other(URL),[])).
33

    
34

    
35
parse_turtle(Turtle,Triples) :-
36
	tmp_file(ttl,Tmp),
37
	open(Tmp,write,S),
38
	write(S,Turtle),
39
	close(S),
40
	rdf_load_turtle(Tmp,Triples,[base_uri('')]).
41
	
42

    
43

    
44
server :- server(1112,[]).
45