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