Making sense of the user query
As mentioned earlier in Section 3, making sense of the user query is the
step of the search process in SemSearch, whose task is to ﬁnd out the
meanings of the keywords speciﬁed in a user query so that the search
knows what the user is looking for and how to satisfy the user query.
From the semantic point of view, one keyword may match i) general
(e.g., the keyword “phd students” which matches the concept
semantic relations between concepts, (e.g. the keyword “author” matches
relation has-author ), or iii) instances entities (e.g., the keyword
matches the instance Enrico-Motta, the keyword “chief scientist” which
the values of the instance Marc-Eisenstadt of the property
ideal goal of this task is to ﬁnd out the exact semantic meaning of each
This is however not easy to achieve, as there may be more than
entity which matches a keyword. Thus, we relaxed the goal as ﬁnding out
semantic entity matches for each keyword.
For the purpose of ﬁnding out semantic entity matches, we used the
of semantic entities as the main search source. The rational for this
that from the user point of view labels often catch the meaning of
entities in an understandable way. In the case of instances, we also
short literal values as the search source. So that when the user is
“chief scientist”, the instance that has such a string as a value of its
can be reached.
In order to produce fast response, the search engine ﬁrst indexes all
semantic entities contained in the back-end semantic data repositories,
classes, properties, and instances. It then searches the indexed
repository to ﬁnd
out matches for keywords. Thus, two components are developed in the
engine, namely the semantic entity index engine and the semantic entity
engine. As it narrows the search sources to labels and short literals of
entities, the search engine is able to ﬁnd out semantic entity matches
keyword. These matches are the possible semantic meanings of keywords.
Please note that for the sake of getting quick response, we only use
search to ﬁnd string matches for user keywords at the moment. We avoid
techniques like WordNet based comparison to ﬁnd matches. This might cost
us some good matches, e.g., losing the match table if the user is
desk. But one to one comparison is time consuming and expensive in
scenarios. This is indeed a trad-oﬀ as well as a research challenge that
to address in future.