Ask us anything you would like to know.
What is this all about?
This question answering system has been a student project at the Free University of Berlin in the context of semantic web technologies at the semantic web working group. Over the past months seven students have built and set up this web application to provide an interface to ask questions about the RuleML2015 conference.
The project can be broken down to the following basic parts:
- Extracting information from the RuleML2015 website and annotating it in RDF
- Setting up and filling a triple store with the RDF data
- Using Prova to create modular "agents" that can query the triple store
- Researching methods to process natural language questions to become Sparql requests to our triple store
- Building an own system for natural language processing of the given question
- Leveraging Prova logic programming to build rules depending on the request to process
- Implementing further backend logic for integrating the different agents
- Setting up a Mule ESB backend to further integrate frontend and backend
- Creating this website as a user interface
How do we process a question?
First of all we defined a set of system questions -- skeletons of questions which we are able to answer using SPARQL and underlying RDF data. Every such mask contains information about the characteristics of the question, i.e. if the person name should be present or if there are certain keywords to be paid attention to. Moreover, we trained an object containing the optimal weighting values for the aforementioned characteristics (i.e. to which extent certain information is meaningful for the future match).
The incoming natural language question is first tokenized, all words are put in their lemmatized form, then the question is divided in different categories like questions words, person names, dates, event names and other keywords, e.g. RuleML.
Such preprocessed question is then passed to the similiarity calculator which compares it with the system questions and returns the one with highest match score. It is then sent by the organisational agent to the respective agent that can answer that specific user question (e.g. personal agent which covers information about people or sponsorship agent which answers questions regarding sponsorship of the conference).
Can you give me some example questions, please?
Of course! However, feel free to ask whatever you like.
- What is RuleML about?
- When does RuleML take place?
- Who is Prof. Adrian Paschke?
- Are there Sponsorship opportunities?