diff --git a/src/app/app.py b/src/app/app.py
index da0a6d3aade48e4ff904ea62ed325b696c1ad501..d0f0f131b75a7a25f21c394f3a1bee7afa710161 100644
--- a/src/app/app.py
+++ b/src/app/app.py
@@ -6,6 +6,7 @@ from flask import render_template
 import tempfile
 from subprocess import Popen, PIPE, STDOUT
 import os
+import requests
 
 app = Flask(__name__)
 
@@ -28,6 +29,18 @@ def unl2rdf():
     return render_template('unl2rdf.html', unl=unl, output=output)
 
 
+@app.route('/text2unl', methods=['GET', 'POST'])
+def text2unl():
+    if request.method == 'POST':
+        text = request.form['text']
+        language = request.form['language']
+        output = {'unl': convertTextToUnl(text, language)}
+    else:
+        text = None
+        output = None
+    return render_template('text2unl.html', text=text, output=output)
+
+
 def convertUnl(unl, outputs):
     res = {}
 
@@ -79,3 +92,24 @@ def convertUnl(unl, outputs):
             res['svg'] = 'Error : no dot file'
 
     return res
+
+
+def convertTextToUnl(text, language):
+    url = "http://unl.ru/etap-cgi/etap-cgi-old/cgiunl.exe"
+
+    data = {
+        'DOMAIN': 'SPORT',
+        'password': 'guest',
+        'TAGERROR': 'NO',
+        'username': 'UNL_guest',
+        'conversion': 'true',
+        'language': language,
+        'data': text,
+        'outputmode': 'text',
+        'coding': 'utf-8',
+        'translate': 'Process'
+    }
+
+    r = requests.post(url, data)
+    # Remove garbage before first '['
+    return ''.join(r.text.partition('[')[1:])
diff --git a/src/app/templates/text2unl.html b/src/app/templates/text2unl.html
new file mode 100644
index 0000000000000000000000000000000000000000..fd2067e8bcdcee15f209968ad72a6cfa42a129e7
--- /dev/null
+++ b/src/app/templates/text2unl.html
@@ -0,0 +1,110 @@
+{% extends "base.html" %}
+{% block title %}Text 2 unl demo{% endblock %}
+{% block content %}
+{% if not text %}
+<form action="{{request.path}}" method="POST">
+    <h1>Enter some text here I will convert it unsing unl.ru for you</h1>
+    <div class="form-group row">
+        <div class="col-12 col-md-8">
+            <h2>Text</h3>
+            <textarea class="form-control" name="unl" cols="120" rows="30" >
+The black cat and the white cat are eating.
+            </textarea>
+        </div>
+        <div class="col-4">
+            <h3>Settings</h2>
+            <ul>
+                <li><label><input type="radio" name="language" value="en" checked>English</label></li>
+                <li><label><input type="radio" name="language" value="ru">Russian</label></li>
+            </ul>
+            <button class="btn btn-primary" type="submit">Submit</button>
+        </div>
+    </div>
+</form>
+{% else %}
+<div class="row">
+    {% if output['error'] %}
+    <div class='col-12 md-6'>
+        <h2> Error </h2>
+        <pre>
+        {{ output['error'] }}
+        </pre>
+    </div>
+    {% endif %}
+
+    {% if output['unl'] %}
+    <div class='col-12 md-6'>
+        <h2> Unl </h2>
+        <div class='row justify-content-center'>
+            <div class='col-3'>
+                <button class="btn btn-primary" type="button" onclick="download('text.ttl', 'svg', 'html',
+                                                              'image/svg+xml')">Download image <i class="fas fa-download"
+                                                                                                  ></i></button>
+            </div>
+            <div class='col-3'>
+                <button class="btn btn-primary" type="button" onclick="download('graph.dot', 'dot', 'text',
+                                                              'text/plain;charset=utf-8')">Download source <i class="fas
+                                                                                                                        fa-download" ></i></button>
+            </div>
+            <div class='col-3'>
+                <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#svg" aria-expanded="true" aria-controls="svg">Toggle image</button>
+            </div>
+            <div class='col-3'>
+                <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#dotdiv" aria-expanded="false" aria-controls="dotdiv">Toggle source</button>
+            </div>
+        </div>
+        <div id='svg' class='collapse show'>
+            {{ output['svg'] | safe }}
+        </div>
+        <div id='dotdiv' class='collapse'>
+            <pre>
+            <code id='dot'>
+            {{ output['dot'] }}
+            </code>
+            </pre>
+        </div>
+    </div>
+    {% endif %}
+
+    {% if output['rdf'] %}
+    <div class='col-12 md-6'>
+        <h2> RDF </h2>
+        <div class='row justify-content-center'>
+            <div class='col-3'>
+                <button class="btn btn-primary" type="button" onclick="download('out.ttl', 'rdf', 'text', 'application/x-turtle')">Download RDF <i class="fas fa-download" ></i></button>
+            </div>
+            <div class='col-3'>
+                <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#rdf" aria-expanded="true" aria-controls="rdf">Toggle RDF</button>
+            </div>
+        </div>
+
+        <pre>
+            <code id='rdf' class='collapse show'>
+                {{ output['rdf'] }}
+            </code>
+        </pre>
+    </div>
+    {% endif %}
+
+    <div class='col-12 md-6'>
+        <h2> UNL </h2>
+        <div class='row justify-content-center'>
+            <div class='col-3'>
+                <button class="btn btn-primary" type="button" onclick="download('in.unl', 'unl', 'text', 'text/plain;charset=utf-8')">Download UNL <i class="fas fa-download" ></i></button>
+            </div>
+            <div class='col-3'>
+                <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#unl" aria-expanded="true" aria-controls="unl">Toggle UNL</button>
+            </div>
+        </div>
+
+
+        <pre>
+        <code id='unl' class='collapse show'>
+            {{ unl }}
+        </code>
+        </pre>
+    </div>
+
+</div>
+{% endif %}
+{% endblock %}