Review Comment:
This paper describes an ontology for rehabilitation robotics and a (controlled) natural language query answering system for answering questions on the same domain, based on the ontology. The paper is an extended version of a paper presented at KEOD 2014 and contains more details about the QA system implementation and also gives more details on the ontology, taken from previous papers of the same authors.
In general, the paper is well presented and clear. Some parts need improvement, both in content and in technical depth. A general comment for the methodology and the system presented is that although the system is presented as a completely domain-dependent system, most (if not all) parts of the methodology and the algorithms do not seem to be tied the specific ontology. This means that a more generic description of the methodology could be given so that the system could be re-used for other domains by changing the ontology and the controlled natural language grammar, accordingly.
For example, types correspond to classes, verbs to object properties, nouns to data type properties, values to ranges. Such a homomorphism should be exploited to create a generic language that is constrained by ontological terms, independently of a specific ontology.
The authors should think about this and provide either arguments against the validity of this claim or a generic methodology whose one of the use cases could be the rehabilitation robotics domain.
Detailed comments are given below:
- A paragraph for introducing the rehabilitation robotics domain should be given in section 1.
- Concerning the ontology, I believe that the classes "References" and "Owners" could be modelled by re-using concepts from well-known ontologies, such as BIBO or FaBio (for references) and FOAF for owners. The authors should justify their choice for introducing completely new classes for such common concepts.
- The URL of the ontology should be included in the manuscript.
- An algorithm for section 5.3 is needed, as well. Instead the translation from DL concepts to SPARQL concepts is described informally through examples.
- I believe that you should explain/motivate why you provide a 2-step translation from NLP-to-DLConcepts and then from DLConcepts-to-SPARQL. What would be the problem if you tried to translate from NLP-to-SPARQL in one step? Furthermore, since you are using DL concepts as a medium representation for the query, wouldn't be more appropriate/convenient for you to use a query language such as SPARQL-DL? Please explain/motivate on this.
- Table 8: I believe that the treatment of the universal restriction in SPARQL is wrong. Specifically, the double NOT EXISTS filters in the SPARQL expression should be nested differently than the transformation suggested by the paper.
Currently the paper includes the following:
FILTER NOT EXISTS {
FILTER NOT EXISTS {
?x rr:reference ?y2.
}
?y2 rdf:type rr:RehabRobots.
}
and the text inside explains:
"... The first FILTER NOT EXISTS expression contains another FILTER NOT EXISTS expression, which contains a triple that represents the robots y2 referenced by the previously described publication x. There is a triple in the first expression as well, that states y2 is a robot. Since both expressions contain the same variable, the mappings should agree on the robot y2. ..."
This is a wrong interpretation of the NOT EXISTS construct. Variables that are bound within a NOT EXISTS construct DO NOT "transmit" their value outside the scope of the NOT EXISTS construct in which they appear. NOT EXISTS means that there is no ?y2 value that satisfies the graph pattern inside the NOT EXISTS construct. Take a look at the W3C recommendation for SPARQL:
https://www.w3.org/TR/sparql11-query/#neg-notexists
It is explicitly stated that: "The NOT EXISTS filter expression tests whether a graph pattern does not match the dataset, given the values of variables in the group graph pattern in which the filter occurs. It does not generate any additional bindings." So, variable ?y2 cannot be bound to a value outside the scope of the inner NOT EXISTS construct.
Instead, the query should be rewritten as:
FILTER NOT EXISTS {
?y2 rdf:type rr:RehabRobots.
FILTER NOT EXISTS {
?x rr:reference ?y2.
}
}
Here, variable ?y2 is bound (within the scope of the outer NOT EXISTS) and this binding is also valid within the second NOT EXISTS construct, but not outside the outer NOT EXISTS construct.
- In the related work section you should not just describe other works of the same or similar nature, but you should try to compare your system with them and bring out the advantages/disadvantages and differences of your system.
|