2069
Comment:
|
6015
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from Aqqu | #acl Niklas Schnelle:read,write All:read |
Line 4: | Line 5: |
Public !GitHub repository: https://github.com/elmar-haussmann/aqqu . | <<TableOfContents(3)>> |
Line 6: | Line 7: |
Internal git repository (contains work after publication, mainly neural net and performance improvements): https://bitbucket.org/elmar-haussmann/aqqu . | == Description == |
Line 8: | Line 9: |
== Aqqu instance == | Question answering from Freebase as described in the [[http://ad-publications.informatik.uni-freiburg.de/CIKM_freebase_qa_BH_2015.pdf|CIKM 2015]] publication. The code below also contains some improvements (neural network, performance) that came after the publication. The public code also contains a README that describes how to download, install, train and run the system. Below describes how to setup the demo (for which the code is not public). |
Line 10: | Line 11: |
2016-06-30: runs under http://metropolis.informatik.uni-freiburg.de:5455 | == Code == Public !GitHub repository: https://github.com/ad-freiburg/aqqu . Internal Repository: https://ad-git.informatik.uni-freiburg.de/ad/Aqqu Internal Repository for the Web UI: https://ad-git.informatik.uni-freiburg.de/ad/aqqu-webserver Old nternal git repository (contains work after publication, mainly neural net and performance improvements): https://bitbucket.org/elmar-haussmann/aqqu . Old internal git repository for the web-UI (we didn't put that public): https://bitbucket.org/elmar-haussmann/aqqu-webserver . === Aqqu instance (using (nvidia-)docker) === On a system with docker (or wharfer, or nvidia-docker for GPU support) follow the instructions in the [[https://ad-git.informatik.uni-freiburg.de/ad/Aqqu/blob/master/README.md|README]] Several backend instances currently run at the following addresses: http://titan.informatik.privat:8090 http://titan.informatik.privat:8100 http://vulcano.informatik.privat:8090 They are usable via 2 Web UI instances at: http://titan.informatik.privat:5454 (proxied to http://aqqu.informatik.uni-freiburg.de) and http://titan.informatik.privat:5455 === Aqqu instance (via Elmar's home) === |
Line 15: | Line 41: |
ssh metropolis | |
Line 17: | Line 44: |
source activate aqqu PYTHONPATH=$(pwd):$PYTHONPATH python webserver/translation_webserver.py |
source venv/bin/activate # was: activate aqqu PYTHONPATH=$(pwd):$PYTHONPATH python webserver/translation_webserver.py |
Line 22: | Line 48: |
== Virtuoso instance == | === Virtuoso instance (using Docker Compose) === 2018-04-02: Virtuoso instance for Aqqu runs at http://vulcano.informatik.privat:9000/sparql this is proxied to http://aqqu.informatik.uni-freiburg.de/sparql/ |
Line 24: | Line 52: |
2016-06-30: Virtuoso instance for Aqqu runs unter http://metropolis.informatik.uni-freiburg.de:9000/sparql . | First make sure you have Docker + Docker Compose set up as described here: https://docs.docker.com/compose/install/ also make sure that your user is in the *docker group* |
Line 26: | Line 56: |
Start it as follows (kill old process manually): | If you are setting up a new instance first check out the repository. If this is an existing instance just switch to its checked out virtuoso-compose (e.g. at vulcano:/local/raid/ad/schnelle/virtuoso-compose) {{{ git clone https://ad-git.informatik.uni-freiburg.de/ad/virtuoso-compose.git cd virtuoso-compose }}} Then start virtuoso with varnish as a caching proxy as follow (the resulting server listens on port 9000). Note that this is the same command whether you set up initially or manually launch the instance {{{ docker-compose up -d }}} To view the log run {{{ docker-compose logs -f }}} === Virtuoso instance (via Elmars home) === Start virtuoso as follows. Server listens on port 8999. (Alternatively follow the instructions from scratch instructions below) {{{ ssh metropolis sudo su haussmae cd /home/haussmae/keyword-translation make start-virtuoso-mini-cai }}} Start the HTTP proxy as follows (kill old process manually, listens on port 9000): |
Line 35: | Line 94: |
=== Parser === Aqqu uses a parser to get part-of-speech tags of query words. The parser is accessed via HTTP Api calls. To start the parser server: {{{ ssh metropolis sudo su haussmae cd /home/haussmae/keyword-translation make start-parser }}} The port is configured in the corenlp-frontent/build.xml. The API can be accessed like this: http://metropolis.informatik.uni-freiburg.de:4000/parse/?text=This%20is%20a%20test%20sentence. === Run the new Aqqu version (with NN) === Start on titan (requires GPU): {{{ ssh titan sudo su haussmae cd /home/haussmae/aqqu-bitbucket source activate aqqu PYTHONPATH=$(pwd):$PYTHONPATH python webserver/translation_webserver.py }}} Runs on port 5454 on titan now. However, titan is not available from outside the uni network. To start a port-forwarding from metropolis: {{{ ssh metropolis sudo su haussmae cd /home/haussmae/temp/nc/python-port-forwardt python2 port-forward.py }}} The service is now available on metropolis:5454 === How to update (any) Virtuoso with custom data === |
|
Line 40: | Line 141: |
grant execute on SPARQL_INSERT_DICT_CONTENT to "SPARQL”; | grant execute on SPARQL_INSERT_DICT_CONTENT to "SPARQL"; |
Line 42: | Line 143: |
grant execute on SPARQL_DELETE_DICT_CONTENT to "SPARQL”; | grant execute on SPARQL_DELETE_DICT_CONTENT to "SPARQL"; |
Line 69: | Line 170: |
== Data == All of the required data to run Aqqu is part of the materials (see above). It is located in the ''data'' subfolder. The scripts to create this data are part of the (old) keyword-translation repository: [[https://bitbucket.org/onekonek/keyword-translation]] |
Aqqu
Contents
Description
Question answering from Freebase as described in the CIKM 2015 publication. The code below also contains some improvements (neural network, performance) that came after the publication. The public code also contains a README that describes how to download, install, train and run the system. Below describes how to setup the demo (for which the code is not public).
Code
Public GitHub repository: https://github.com/ad-freiburg/aqqu .
Internal Repository: https://ad-git.informatik.uni-freiburg.de/ad/Aqqu
Internal Repository for the Web UI: https://ad-git.informatik.uni-freiburg.de/ad/aqqu-webserver
Old nternal git repository (contains work after publication, mainly neural net and performance improvements): https://bitbucket.org/elmar-haussmann/aqqu .
Old internal git repository for the web-UI (we didn't put that public): https://bitbucket.org/elmar-haussmann/aqqu-webserver .
Aqqu instance (using (nvidia-)docker)
On a system with docker (or wharfer, or nvidia-docker for GPU support) follow the instructions in the README
Several backend instances currently run at the following addresses: http://titan.informatik.privat:8090 http://titan.informatik.privat:8100 http://vulcano.informatik.privat:8090
They are usable via 2 Web UI instances at: http://titan.informatik.privat:5454 (proxied to http://aqqu.informatik.uni-freiburg.de) and http://titan.informatik.privat:5455
Aqqu instance (via Elmar's home)
Start as follows on metropolis:
ssh metropolis sudo su haussmae cd /home/haussmae/demos/aqqu-demo source venv/bin/activate # was: activate aqqu PYTHONPATH=$(pwd):$PYTHONPATH python webserver/translation_webserver.py
Virtuoso instance (using Docker Compose)
2018-04-02: Virtuoso instance for Aqqu runs at http://vulcano.informatik.privat:9000/sparql this is proxied to http://aqqu.informatik.uni-freiburg.de/sparql/
First make sure you have Docker + Docker Compose set up as described here: https://docs.docker.com/compose/install/ also make sure that your user is in the *docker group*
If you are setting up a new instance first check out the repository. If this is an existing instance just switch to its checked out virtuoso-compose (e.g. at vulcano:/local/raid/ad/schnelle/virtuoso-compose)
git clone https://ad-git.informatik.uni-freiburg.de/ad/virtuoso-compose.git cd virtuoso-compose
Then start virtuoso with varnish as a caching proxy as follow (the resulting server listens on port 9000). Note that this is the same command whether you set up initially or manually launch the instance
docker-compose up -d
To view the log run
docker-compose logs -f
Virtuoso instance (via Elmars home)
Start virtuoso as follows. Server listens on port 8999. (Alternatively follow the instructions from scratch instructions below)
ssh metropolis sudo su haussmae cd /home/haussmae/keyword-translation make start-virtuoso-mini-cai
Start the HTTP proxy as follows (kill old process manually, listens on port 9000):
ssh metropolis sudo su haussmae cd /home/haussmae/keyword-translation make start-varnish
Parser
Aqqu uses a parser to get part-of-speech tags of query words. The parser is accessed via HTTP Api calls. To start the parser server:
ssh metropolis sudo su haussmae cd /home/haussmae/keyword-translation make start-parser
The port is configured in the corenlp-frontent/build.xml. The API can be accessed like this: http://metropolis.informatik.uni-freiburg.de:4000/parse/?text=This%20is%20a%20test%20sentence.
Run the new Aqqu version (with NN)
Start on titan (requires GPU):
ssh titan sudo su haussmae cd /home/haussmae/aqqu-bitbucket source activate aqqu PYTHONPATH=$(pwd):$PYTHONPATH python webserver/translation_webserver.py
Runs on port 5454 on titan now. However, titan is not available from outside the uni network.
To start a port-forwarding from metropolis:
ssh metropolis sudo su haussmae cd /home/haussmae/temp/nc/python-port-forwardt python2 port-forward.py
The service is now available on metropolis:5454
How to update (any) Virtuoso with custom data
Grant access rights via the ISQL tool as follows:
data/virtuoso/install/bin/isql localhost:1112 dba dba grant execute on SPARQL_INSERT_DICT_CONTENT to SPARQL_UPDATE; grant execute on SPARQL_INSERT_DICT_CONTENT to "SPARQL"; grant execute on SPARQL_DELETE_DICT_CONTENT to SPARQL_UPDATE; grant execute on SPARQL_DELETE_DICT_CONTENT to "SPARQL";
Complex example SPARQL query from "Programmieren in C++, SS 2016, Ü10 (all action or animation movie with their release date, genre, director, production company, and rating):
PREFIX fb: <http://rdf.freebase.com/ns/> SELECT DISTINCT ?fn, ?y, ?gn, ?dn, ?pn, ?rn where { ?f fb:type.object.type fb:film.film . ?f fb:film.film.initial_release_date ?y . ?f fb:film.film.genre ?g . ?f fb:film.film.directed_by ?d . ?f fb:film.film.production_companies ?p . ?f fb:film.film.rating ?r . ?f fb:type.object.name ?fn . ?g fb:type.object.name ?gn . ?d fb:type.object.name ?dn . ?p fb:type.object.name ?pn . ?r fb:type.object.name ?rn FILTER(lang(?fn)='en') FILTER(lang(?gn)='en') FILTER(lang(?dn)='en') FILTER(lang(?pn)='en') FILTER(lang(?rn)='en') FILTER(?gn='Action Film'@en OR ?gn='Animation'@en) }
Data
All of the required data to run Aqqu is part of the materials (see above). It is located in the data subfolder. The scripts to create this data are part of the (old) keyword-translation repository: https://bitbucket.org/onekonek/keyword-translation