Mercurial > hg > dbtune-site
comparison rdf-pastebin/server.pl @ 0:1e44d666ced1
Import site from parrot
author | Chris Cannam |
---|---|
date | Fri, 13 Oct 2017 09:23:49 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1e44d666ced1 |
---|---|
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 |