A Question and Answering system for the DCAT vocabulary with a Social Media Bot as user interface developed as part of a bachelor thesis.
See qa-system readme
The code for the Twitter adapter for botkit can be found on Github but a copy is included in the project as well under sninterface-botkit/twitter-bot/botbuilder-adapter-twitter
See web-bot readme
See nginx config
Prerequisites:
- Docker
- Docker-Compose
- maven
- ngrok (only for twitter bot)
- npm
Steps:
Run in dcat-qa-system
:
mvn clean package -DskipTests
docker build -t qa-system .
See qa-system readme
Run in sninterface-botkit/twitter-bot
:
docker build -t twitter-bot .
See twitter-bot readme.
Run in sninterface-botkit/web-bot
:
docker build -t web-bot .
See web-bot readme
qa-system:
change SPARQL_ENDPOINT
when running your own Fuseki instance (see Running your own fuseki triplestore instance)
twitter-bot (can be skipped if web interface is sufficient):
fill in (see Twitter Bot Setup for how to obtain these values)
TWITTER_CONSUMER_KEY
TWITTER_CONSUMER_SECRET
TWITTER_TOKEN
TWITTER_TOKEN_SECRET
TWITTER_WEBHOOK_ENV
start ngrok with
ngrok http 3000
and fill in the generated https address at WEBHOOK_URL
(this will expose your local port 3000 to the internet so Twitter can send events to your application)
web-bot:
nothing to be done
run
docker-compose up
run
docker-compose up sninterface-web qa-system elastic
to run everything except the twitter bot
The web interface should be available under http://localhost:3000 (unless the port was changed)
Already built docker images of the qa-system, twitter-bot and web-bot can be downloaded from the repository's registry.
If the fuseki endpoint at https://openbot.cs.upb.de/fuseki/ is not available anymore, it may be required to locally deploy a fuseki instance providing the data that should be queried by the qa-system.
The docker page of the Jena Fuseki 2 image explains how to set up a fuseki instance as docker container and import data. The docker-compose.local.yml
also contains a comment with configuration for the fuseki docker, which can be used as a starting point.
The current opal graph data is available at https://hobbitdata.informatik.uni-leipzig.de/OPAL/OpalGraph/DCAT-QA/.