This docker container allows you to build, install and run the CODRA RST discourse parser (Joty et al. 2015) in a docker container with an added REST API.
docker build -t codra-service .
docker run -p 8000:8000 -ti codra-service
$ cat test.txt
Altough they didn't like him, they accepted the offer.
$ curl -X POST -F "[email protected]" http://localhost:8000/parse -F output_format=original
( Root (span 1 3)
( Nucleus (span 1 2) (rel2par Same-Unit)
( Satellite (leaf 1) (rel2par Attribution) (text _!Altough_!) )
( Nucleus (leaf 2) (rel2par span) (text _!they did n't like him ,_!) )
)
( Nucleus (leaf 3) (rel2par Same-Unit) (text _!they accepted the offer ._!) )
)
$ curl -X POST -F "[email protected]" http://localhost:8000/parse -F output_format=rs3
<?xml version='1.0' encoding='UTF-8'?>
<rst>
<header>
<relations>
<rel name="Attribution" type="rst"/>
<rel name="Same-Unit" type="multinuc"/>
</relations>
</header>
<body>
<segment id="5" parent="7" relname="Attribution">Altough</segment>
<segment id="7" parent="3" relname="span">they did n't like him ,</segment>
<segment id="9" parent="1" relname="Same-Unit">they accepted the offer .</segment>
<group id="1" type="multinuc"/>
<group id="3" type="span" parent="1" relname="Same-Unit"/>
</body>
</rst>
>>> var xhr = new XMLHttpRequest();
>>> xhr.open("POST", "http://localhost:8000/parse")
>>> var data = new FormData();
>>> data.append('input', 'Altough they didn\'t like him, they accepted the offer.');
>>> data.append('output_format', 'original');
>>> xhr.send(data);
>>> console.log(xhr.response);
( Root (span 1 3)
( Nucleus (span 1 2) (rel2par Same-Unit)
( Satellite (leaf 1) (rel2par Attribution) (text _!Altough_!) )
( Nucleus (leaf 2) (rel2par span) (text _!they did n't like him ,_!) )
)
( Nucleus (leaf 3) (rel2par Same-Unit) (text _!they accepted the offer ._!) )
)