<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Keyword Search Over RDF Graphs Using WordNet</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mohamad Rihany</string-name>
          <email>mohamad.rihany@uvsq.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Zoubida Kedad</string-name>
          <email>zoubida.kedad@uvsq.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stéphane Lopes</string-name>
          <email>stephane.lopes@uvsq.fr</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DAVID Lab, Université de Versailles</institution>
          ,
          <addr-line>Saint-Quentin-en-Yvelines, Versailles</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>DAVID Lab, Université de Versailles</institution>
          ,
          <addr-line>Saint-Quentin-en-Yvelines, Versailles</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>DAVID Lab, Université de Versailles</institution>
          ,
          <addr-line>Saint-Quentin-en-Yvelines, Versailles</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <fpage>75</fpage>
      <lpage>82</lpage>
      <abstract>
        <p>-An increasing amount of interlinked RDF datasets are published on the Web. These datasets can be queried using languages such as Sparql, in which graph patterns are evaluated against the data. In such languages, some knowledge about the dataset is required in order to formulate a query, such as the resources, types or properties existing in the dataset. An alternative way of querying RDF data is keyword search, which could be very useful when the content of the dataset is not known. One of the problems we are faced with is the gap between the</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        There is an increasing amount of RDF [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] datasets published
on the Web, enabling knowledge extraction for numerous
applications. An RDF dataset could be viewed as a graph
where nodes are resources or litterals and where labeled
edges represent properties. In RDF, the building block is a
triple, which is of the form (subject, predicate, object). The
RDF Schema (RDFS) language is used to introduce useful
semantics to RDF triples. It provides a built-in vocabulary
for asserting user defined schemas within the RDF model.
This vocabulary can be used to specify URIs as being of
a specific type (classes, properties and instances), to denote
special relationships between URIs. The flexibility of the RDF
data model allows the representation of both schema and
instance information in the form of RDF triples.
      </p>
      <p>RDF datasets can be queried using languages such as the
SPARQL language where queries are specified as graph
patterns evaluated against the dataset. A SPARQL query consists
of a set of triples where the subject, predicate and/or object
can consist of variables. The idea is to match the triples in
the SPARQL query with the existing RDF triples and find
solutions to the variables. In order to formulate these queries,
some knowledge about the dataset is therefore required. This
could be related to the subject, which could either be a specific
resource, or a class existing in the dataset, or to a predicate,
which represents a property describing either a class or a
*PhD is funded by CNRS-L and ANR (project CAIR)
resource. The user should also be familiar with the SPARQL
query language.</p>
      <p>An alternative way of querying RDF dataset is keyword
search, which consists in formulating a query as a set of
keywords and extracting the subgraphs corresponding to the input
keywords. Keyword search over RDF datasets raises several
challenges. One of them is finding the relevant elements by
matching the keyword query with the elements of the datasets,
taking into account differences of terminologies which may
exist between them. Another challenge is to aggregate the
relevant elements and to built the subgraphs representing
possible answers to the initial query.</p>
      <p>Let’s consider the RDF data graph about movies given in
figure 1.</p>
      <p>Let Q={2008, performing, film-maker} be a keyword query.
If a user issues this keyword query on the data graph of figure
1, then the answer will be empty. However, knowing that
"performing" is similar to "starring" and that "film-maker" is
similar to "director", we can see that there is in the graph some
data that is relevant to the query. This result could be retrieved
if we could bridge the terminological gap between the terms
of the query and the ones used in the dataset.</p>
      <p>In this paper, we introduce a keyword search approach
which takes keywords as input and returns the best matching
subgraphs as an answer to this query. The key contribution is
to use an external source of knowledge providing semantic
relations in order to find the elements in the dataset that
match the query keywords, and to rank the set of possible
answers using a ranking method based on the semantic
relations which have been used during the matching process.</p>
      <p>The rest of this paper is organized as follows. The approach
overview is provided in section 2. We detail our solution
for matching keywords with graph elements using external
knowledge in Section 3. Section 4 presents the process of
building the end results from the matching elements.The
ranking method is discussed in section 5. Section 6 presents
our experiments and section 7 reviews the related works.
Finally, we conclude the paper and present some future works
in Section 8.</p>
    </sec>
    <sec id="sec-2">
      <title>II. APPROACH OVERVIEW In this section we provide an overview of our keyword search approach presented in Figure 2. Fig. 2: Approach overview</title>
      <p>Our goal is to provide a keyword search approach on
RDF datasets, which is an alternative way to query these
datasets. In our approach, the user will enter the keywords
composing the query as an input and get a set of RDF graphs
corresponding to the keywords as an output; but the query
is not always expressed using the same terms as the ones
used in the dataset. Our goal is to bridge the gap between
the keywords and the dataset terminology. We propose the use
of an external knowledge source providing semantic relations
between concepts. In our work, we have used the Wordnet
online linguistic dictionary.</p>
      <p>Figure 2 shows our framework for keyword search. It
comprises three components: matching, aggregating and
ranking.</p>
      <sec id="sec-2-1">
        <title>Matching keywords</title>
        <p>The matching component takes as input the keyword
query and searches for each keyword the matching
elements in the dataset. This is done by comparing
the keyword to each graph element (resource, class or
property) and returning the matching ones. In some
cases, the user may enter a keyword for which an exact
match can not be found in the dataset, but some graph
element could be close to the keyword, it could for
example be a synonym, or a close concept. The problem
is to identify the equivalent concepts and the close
concepts to some keyword in the dataset. To do so, we
suggest the use of external knowledge sources such as
online linguistic dictionnaries.</p>
      </sec>
      <sec id="sec-2-2">
        <title>Aggregating Graph Elements</title>
        <p>Once the matching elements in the RDF graph are
identified for each keyword, the problem is to built the
final result from these elements, and to aggregate them
into a connected subgraph representing an answer to the
query. Each keyword can be associated to more than
one element in the RDF graph; we consider that each
combination of matching elements where there is one
element for each keyword is a possible answer to the
query. The problem is to built the subgraph containing
the elements of the considered combination.</p>
      </sec>
      <sec id="sec-2-3">
        <title>Result Ranking</title>
        <p>As each keyword may have more than one matching
element in the dataset, there may be several possible
results to the query. The problem is to rank the different
results and to find a ranking method capable of identying
the results that are closer to the initial query than others.
III. MATCHING KEYWORDS WITH GRAPH ELEMENTS
In this section, we present our approach for matching the
keywords with the data graph using external knowledge. Let
the keyword query Q=fk1; k2; k3; :::kng be the input. For each
keyword ki we check if there exists an exact match in the
elements of the data graph or not. If such element does not
exist, we search the considered external knowledge source in
order to find some semantic relations between a keyword and
a concept such that this latter concept has a matching element
in the data graph. At the end, we obtain for each ki a set of
matching elements from the data graph.</p>
        <p>For example, let us consider the keyword query Q={2008,
performing, film-maker}. We can observe from figure 1 that
the keywords "performing" and "film-maker" have no
matching elements, but if some external knowledge source is
available and provides us with the information that "performing" is
similar to "starring" and "film-maker" is similar to "director",
then some matching elements for the keywords of Q can be
found, and they are presented in figure 3.</p>
        <sec id="sec-2-3-1">
          <title>A. Matching using external knowledge</title>
          <p>In our work, we have used WordNet as an external
knowledge source. WordNet is a large lexical database of
English. Nouns, verbs, adjectives and adverbs are grouped into
sets of cognitive synonyms (synsets), each one expressing
a distinct concept. Synsets are interlinked by means
of conceptual-semantic and lexical relations. WordNet’s
structure makes it a useful tool for computational linguistics
and natural language processing. This lexical database can
help to find the best matching between the keyword queries
and the dataset elements using the provided semantic relations
(Synonyms, Antonyms...). We have decomposed the matching
keywords process into two phases. The first one is the search
in the dataset for exact matches for a given keyword. The
second phase is the search for close matching elements in the
dataset.</p>
          <p>In figure 4 we have represented the first phase, which is the
search for exact matches int the dataset. Consider a keyword
query Q=fk1; k2; k3; :::kng. For each keyword ki we perform
two searching tasks in parallel; the first one is searching the
dataset for properties, resources or classes that have the same
name as the considered keyword, i.e., nodes and edges in the
data graph having ki as label. The second task is to search the
knowledge base for synonyms and antonyms of the considered
keyword. This consists in querying WordNet to extract the
semantic relations (synonyms antonyms and hypernyms) with
ki and find the exact matching of those semantic relations in
the data graph.</p>
          <p>If the search for exact matching elements fails, then a search
for close elements is performed. If some matching element is
found in the dataset for every keyword, then the search process
ends.</p>
          <p>In figure 5 we have represented the search for close matching
elements. This process will be executed for a given keyword
only if no exact matching element has been found. It is
similar to the search for exact matches and differs only on
the considered semantic relations in Wordnet. The semantic
relations we are interested in are hyponymy, holonymy and
meronymy. For each keyword ki which has no exact matching
element in the dataset, we query the WordNet database to
search for one of the previous semantic relations.</p>
          <p>These relations do not express equivalence, but express
some sort of closeness between two concepts. For example,
if a meronymy relation is found between ki and a concept c,
and if c has an exact match in the dataset, i.e. a graph element
labeled c, then this latter is a close concept to ki. Indeed, if c
does not represent an equivalent concept, it still represents a
close concept as c is part-of ki because the two are linked by
a meronymy relation according to Wordnet.</p>
          <p>Close matching elements are searched for each keyword
without exact matching element. If some keyword in the
query has neither exact matching elements nor close matching
elements, this means that there is no answer to the query.</p>
          <p>There are many semantic relations in WordNet, some of
them are very useful to help us find the best matching elements
between the query and the dataset. In our work, we have
considered the following relations to search for matching
elements.</p>
          <p>Synonyms: a concept that means exactly the same as
another.</p>
          <p>Antonym: a concept opposite in meaning to another.
Hyponym: a concept whose meaning denotes a
subordinate.</p>
          <p>Hypernym: a concept whose meaning denotes a
superordinate.</p>
          <p>Substance meronym: a concept that is a substance of
another concept.</p>
          <p>Part meronym: a concept that is part of another concept.
Member meronym: a concept that is part of another
concept.</p>
          <p>Substance of holonym: a concept that has another concept
as a substance.</p>
          <p>Part of holonym: a concept that has another concept as a
part.</p>
          <p>Member of holonym: a concept that has another concept
as a member.</p>
          <p>Cause to: a verb that is the cause of a result.</p>
          <p>Troponym: a verb that is particular way to do another.</p>
        </sec>
        <sec id="sec-2-3-2">
          <title>B. Matching Algorithm</title>
          <p>In this section, we present the matching algorithm
underlying our approach, which matches the keywords of
the query with the dataset. Let us start by presenting the
notations used in the algorithm. Let K=fk1; k2; k3:::kng be
the keyword query, ME(ki) a function to extract the matching
elements for ki in the dataset (these elements can be literals,
instances, classes, properties, etc.).</p>
          <p>The semantic relations between the keyword query ki and
WordNet are extracted by using some functions, for example
Synonym(ki) is used to extract the set of synonyms for the
keyword query ki.</p>
          <p>For each keyword ki in the query, the matching elements
ME(i) are extracted (line4-5), and then WordNet is queried to
extract the set SR of Synonyms, Antonyms and Hyponyms.
For each element of SR, the dataset is accessed to check
if there is a matching element (line6-16). For example, the
search for matching elements using the antonymy relation is
done by issuing the following query to Wordnet.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>SELECT ?y</title>
      <p>WHERE
fki Antonym_to ?x:
?x Antonym_to ?y:g</p>
      <p>And ki dif f erent f rom ?y)</p>
      <p>If no matching element has been found, then a search
for close matching elements is performed (line 17). In this
phase, WordNet is queried to find close matching elements
by searching for the hypernymy, holonymy and meronymy
semantic relations for ki. For each concept c related to ki by
one of these relations, we search for elements in the dataset
labeled c; these elements are added to the set of matching
elements for the keyword ki (line 17-31).</p>
    </sec>
    <sec id="sec-4">
      <title>IV. AGGREGATING GRAPH ELEMENTS</title>
      <p>After obtaining the set of matching graph elements for each
keyword, the subgraphs representing the possible answers to
the query are built. Each answer is a connected minimal
subgraph which contains for each keyword ki one corresponding
matching element.</p>
      <p>Considering that there is a set of matching elements for
each keyword, we first derive the possible combinations by
computing the cartesian product of the different sets of
matching elements. Then, for each combination, we determine the
minimal connected subgraph containing the matching elements
of the considered combination. Each subgraph is a possible
answer to the initial query. Let us consider the example of the
keyword query given in Figure 3, with the set of matching
elements corresponding to each keyword. In figure 6, we can
see all the possible combinations, obtained by performing the
cartesian product of the sets of matching elements shown in
figure 3.</p>
      <p>From each combination, a connected subgraph will be
extracted. This subgraph represents a possible result to the
query; it is built by introducing the minimum number of nodes
Algorithm Matching The Keywords Of The Query With The
Graph</p>
      <p>Fig. 6: Combinations of Matching Elements
which do not correspond to matching elements. To do so, we
use the shortest path algorithms (Dijkstra’s Algorithm).</p>
      <p>A matching element can a be node or an edge. If we
compute the shortest path between two matching elements
representing both a node, then the shortest path between them
is the shortest path between the corresponding two nodes in
the data graph. If one of the matching elements is an edge
between nodes n1 and n2 and the other matching element is
a node n, then the shortest path is determined between n and
one of the two nodes n1 and n2.</p>
      <p>If the two matching elements are both edges, then the
shortest path is determined between one of the nodes connected by
the first matching element to one of the nodes connected by
the second matching element.</p>
      <p>For each combination, our algorithm for extracting a
subgraph starts by randomly selecting one of the matching
elements and then finds all the shortest paths from this matching
element to all the other matching elements in the combination.
Let us consider two matching elements mi and mj .</p>
      <p>ni 2 mi and nj 2 mj such that @ni2 2 mi; @nj2 2
mj ; ni 6= ni2; nj 6= nj2 and j(ni2 nj2)j &lt; j(ni nj )j
where j(x y)j is the size of the shortest path between
nodes x and y. To construct the result, we combine the shortest
paths between all pairs of matching elements. When all the
combinations are processed, we obtain a set of subgraphs, each
one representing a possible result to the query.</p>
    </sec>
    <sec id="sec-5">
      <title>V. RANKING RESULTS</title>
      <p>The elicitation of all the combinations of graph elements
and the aggregation of graph elements for each combination
lead to several subgraphs, each one being a possible answer
for the query. One problem is to rank these answers, and
to determine if there are better results than others. In our
approach, we ranked the results according to the matching
process. Let us first define the notations used in the ranking
method. Exact matching elements are the elements found
during the first phase of the matching, i.e. the search for
exact matching elements; approximate matching elements
are the elements found during the search for close matching
elements; we denote by linking elements the nodes that are
in the subgraph result but are neither exact nor approximate
matching elements. We calculate the ranking score as follows:
Score = 1
[wa A+(1 wa) L]</p>
      <p>N</p>
      <p>Where A is the number of approximate matching elements,
L is the number of linking elements, N is the total number
of nodes and edges in the subgraph and wa is the weight for A.</p>
      <p>Intuitively, the above score expresses that the less linking
elements in a subgraph, the better the solution. It also
expresses that the more exact matching elements in a subgraph,
the better the solution.</p>
    </sec>
    <sec id="sec-6">
      <title>Solution A</title>
    </sec>
    <sec id="sec-7">
      <title>Solution B</title>
      <p>Fig. 7: Some Possible Solutions for Q</p>
      <p>Let us consider, in our running example, the possible
solutions for the query Q={2008, performing, film-maker}
given in figure 7. For solution A, the number of exact matching
elements is equal to one, the number of approximate matching
elements is equal to two, and the number of linking elements
is equal to one; the total number of nodes and edges N is
equal to seven. The final score is therefore equal to 0.814. For
solution B, the number of exact matching elements is equal to
one, the number of approximate matching elements is equal
to two, the number of linking elements is equal to two; the
number N of nodes and edges is equal to nine. The final score
is therefore equal to 0.778. Solution A is better than solution
B. In A, the result is the movie "Righteous kill" released in
"2008" directed by "John Avnet" and "Al Pacino" is one of
the stars of the movie, while solution B describes the movie
"Righteous kill" released in "2008" with "Al Pacino" being
one of the stars, also starring in the movie "Heat" directed by
"Michael Mann". Therefore solution A focuses on the release
date, stars and director of one movie which is "Righteous kill",
while solution B presents the release date of "Righteous kill"
and the director of "Heat".</p>
      <p>VI. EXPERIMENTAL EVALUATION</p>
      <p>Our approach is implemented in Java, we have used the
Jena API for the manipulation of RDF data. For indexing and
searching the keyword query, we have used the Lucene API.
The Jung API is used for graph manipulation and visualization.</p>
      <p>In the rest of this section, we describe our experiments
to validate the performances of our approach. Our goal is
to observe the performance of using WordNet as an external
knowledge to fill the gap between the keywords and the dataset
terminologies, as well as the ranking model with various
keyword queries. All the experiments have been done on Intel
Core i7 with 32GB RAM.</p>
      <sec id="sec-7-1">
        <title>A. Datasets</title>
        <p>We have used two datasets: AIFB and DBpedia. AIFB is
a dataset containing data taken from the AIFB institute, at
Karlsruhe University. It is about entities of research
communities such as persons, organizations, publications (bibliographic
metadata) and their relationships. The dataset contains 8281
entities and 29 233 triples. DBpedia is a project aiming to
extract structured content from the information created in the
Wikipedia project. The extracted data is related to movies their
title, stares, director, released data and other properties. This
dataset contains 30 793 triples.</p>
        <p>The size of the keyword queries was between 2 and 8
keywords. The total number of queries was 20 queries (10
for each dataset) in order to cover all the different WordNet
semantic relations during the matching stage.</p>
      </sec>
      <sec id="sec-7-2">
        <title>B. Methodology</title>
        <p>We have tested and compared our keyword search approach
both with and without the use of external knowledge. We will
refer to the approach with external knowledge by semantic
approach since we use semantic relations, and we will refer
to the approach without external knowledge as the basic
approach.</p>
      </sec>
      <sec id="sec-7-3">
        <title>C. Results</title>
        <p>The query size was between 3 and 8 keywords. Table 1
shows some examples of keyword queries, the number of
nodes and edges containing this keyword in the data graph, and
the semantic relations between the keywords that do not appear
in the data graph and WordNet. For example, Query 1 (carole
lombard-5940-theoretical-edwin) consists of 4 keywords, these
keywords appear in the data graph (nodes and edges) 14, 18,
0 and 10 times respectively, this means that theoretical is not
in the dataset but we can replace it with academic since there
is a hypernymy relation between academic and theoretical in
WordNet.</p>
        <p>Fig. 8: Average Execution Time According to the Size of the
Query</p>
        <p>As we can observe from figure 8, the execution time
increases when the number of the keywords increases for
both datasets. We can also see that the execution time for
AIFB is greater than the execution time of DBpedia because
the size of data in AIFB is greater than the size in DBpedia.</p>
        <p>The type and number of keyword elements also affect the
execution time; for example Q1 {carol_lombard / 5940 /
theoritical / edwin} in table I takes 4.91 sec (fig. 9) and contains
4 keywords while Q6 {poor / 1990 / mind / Ellen_Burstyn}
needs 31.57 sec (fig. 9) to be executed: the two queries contain
the same number of keywords (4), but the difference in the
execution time is due to the keyword elements. In Q1 the four
keywords appear 14, 18, 0 and 10 times respectively as we
can see from table I but the keywords in Q6 appears 20, 258,
0 and 2 times respectively.
The differences in terminology between the keyword query
and the dataset also affect the execution time (the keyword
query does not match with any element in the dataset).
Consider the queries Q3 and Q4 in table I; Q3 consists of
4 keywords, and these keywords appear 2, 1, 4 and 0 times
respectively in the dataset while Q4 has 3 keywords and these
keywords appear 0, 1 and 0 times respectively in the dataset.
WordNet Semantic Relations
Q1
Q2
Q3
Q4
Q5
But the execution time for Q4 (7.76 sec) is greater than the
execution time of Q3 (5.08 sec); this is because Q4 requires
to access WordNet two times to search for semantic relations
involving the keywords, while Q3 requires only one access.</p>
        <p>As we can observe from tables II and III, the number of
results increases when WordNet is used during keyword search,
because using WordNet increases the number of matching
elements. This means that the number of combinations and
therefore the number of results both increase.
To check the effectiveness of the evaluation we have used
10 queries from the tables II and III and asked three users to
check the top-k results for each query and give the number of
relevant results to calculate the Top-K precision according to
this equation:</p>
        <p>T op kP recision = N umberOf RelevantResults (1)
K</p>
        <p>All the results were above 0.92 as shown in table 4; this
means that the results were accurate according to the users.</p>
        <p>Data</p>
        <p>K
Top-K precision</p>
        <p>AIFB
5
0.97</p>
        <p>
          Keyword search and the translation of a keyword query
into a formal query have been the topic of several research
works. The early research works were on keyword query over
relational databases [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], then XML data [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] and RDF data
[
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. One of the important problems addressed
by these works is how to fill the gap between the keywords
in the query and the terms used in the dataset. The SPARK
approach [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] consists in finding the corresponding ontology
for each term in the keyword query and try to map and find
a relation between the ontology and the keyword query; other
approaches use external knowledge or resources such as in
the Q2semantic approach [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], where Wikipedia is used to
extract related keywords; for each keyword in the dataset, a
document is created containing features that are matched to
the keyword Query. The approach described in [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] also uses
some external knowledge; it uses the supporting entity pairs
in order to paraphrase dictionary records semantic equivalence
between relation phrase and dataset; but the supporting entity
pairs are specific to Wikipedia and the New York Times [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
        <p>
          In order to aggragate the matching elements in a dataset,
SPARK[
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] uses an ontology to discover the relations between
the keywords and the dataset and uses a minimal spanning tree
algorithm to create a possible query graph. The approaches
described in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] transform the data graph
into a summarized graph; some of them start from the leaf
nodes containing the keyword query and do a traversal until
all the paths converge to the same node, and the other works
use the summarized graph and try to extract a SPARQL query
by finding relationships between the nodes.[
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] classifies the
keywords into two sets: the first one contains the vertices and
the second one contains the edges; then the final possible
solutions are computed. In all these works, the keyword in the
query are matched with the nodes of the considered graph,
unlike our approach which considers semantic relations and
searches for matching elements in both the nodes and the edges
in order to build the final result.
        </p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>VIII. CONCLUSION AND FUTURE WORKS</title>
      <p>In this paper, we have proposed an approach for keyword
search in an RDF dataset, which represents an alternative to the
use of query languages such as Sparql. We have focused on the
problem of handling differences in the terminologies between
the RDF dataset and the keyword query. We have proposed a
novel solution which relies on an external knowledge source.
In our approach, the answer to the keyword query is a set of
subgraphs containing for each keyword one matching graph
element. We have described how we enrich the set of solutions
by using WordNet. We have also provided a ranking model
to rank the resulting subgraphs. This model is based on the
number of semantic relations extracted from WordNet and
the number of nodes and edges for each subgraph. We have
conducted some experiments which have shown that external
knowledge gives more results for some queries and sometimes
returns an answer where other approaches fail to.</p>
      <p>In future works, we will study the possible improvements
to the aggregation of matching elements and try to find other
ways of combining them. We will also study scalability issues
and enable efficient keyword search for massive datasets.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>[1] https://www.w3.org/RDF/.</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>V.</given-names>
            <surname>Hristidis</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Papakonstantinou</surname>
          </string-name>
          . Discover:
          <article-title>Keyword search in relational databases</article-title>
          .
          <source>In VLDB</source>
          , pages
          <fpage>670</fpage>
          -
          <lpage>681</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>L.</given-names>
            <surname>Qin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. X.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Chang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Tao</surname>
          </string-name>
          .
          <article-title>Querying communities in relational databases</article-title>
          .
          <source>In ICDE</source>
          , pages
          <fpage>724</fpage>
          -
          <lpage>735</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Guo</surname>
            , Lin,
            <given-names>Feng</given-names>
          </string-name>
          <string-name>
            <surname>Shao</surname>
            , Chavdar Botev, and
            <given-names>Jayavel</given-names>
          </string-name>
          <string-name>
            <surname>Shanmugasundaram</surname>
          </string-name>
          .
          <article-title>"XRANK: Ranked keyword search over XML documents."</article-title>
          <source>In Proceedings of the 2003 ACM SIGMOD international conference on Management of data</source>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>27</lpage>
          . ACM,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Zhou</surname>
            , Qi, Chong Wang, Miao Xiong,
            <given-names>Haofen</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
            , and
            <given-names>Yong</given-names>
          </string-name>
          <string-name>
            <surname>Yu</surname>
          </string-name>
          .
          <article-title>"SPARK: adapting keyword query to semantic search." In The Semantic Web</article-title>
          , pp.
          <fpage>694</fpage>
          -
          <lpage>707</lpage>
          . Springer, Berlin, Heidelberg,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>He</surname>
          </string-name>
          , Hao, Haixun Wang,
          <string-name>
            <surname>Jun Yang</surname>
          </string-name>
          , and
          <string-name>
            <surname>Philip</surname>
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Yu</surname>
          </string-name>
          .
          <article-title>"BLINKS: ranked keyword searches on graphs."</article-title>
          <source>In Proceedings of the 2007 ACM SIGMOD international conference on Management of data</source>
          , pp.
          <fpage>305</fpage>
          -
          <lpage>316</lpage>
          . ACM,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>W.</given-names>
            <surname>Le</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kementsietsidis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Duan</surname>
          </string-name>
          .
          <article-title>Scalable keyword search on large rdf data</article-title>
          .
          <source>TKDE</source>
          ,
          <volume>26</volume>
          :
          <fpage>2774</fpage>
          -
          <lpage>2788</lpage>
          ,
          <year>2014</year>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Wang</surname>
            , Haofen, Kang Zhang, Qiaoling Liu, Thanh Tran, and
            <given-names>Yong</given-names>
          </string-name>
          <string-name>
            <surname>Yu</surname>
          </string-name>
          .
          <article-title>"Q2semantic: A lightweight keyword interface to semantic search."</article-title>
          <source>In European Semantic Web Conference</source>
          , pp.
          <fpage>584</fpage>
          -
          <lpage>598</lpage>
          . Springer, Berlin, Heidelberg,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Zou</surname>
          </string-name>
          , Lei, Ruizhe Huang,
          <string-name>
            <surname>Haixun</surname>
            <given-names>Wang</given-names>
          </string-name>
          , Jeffrey Xu Yu,
          <string-name>
            <given-names>Wenqiang</given-names>
            <surname>He</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Dongyan</given-names>
            <surname>Zhao</surname>
          </string-name>
          .
          <article-title>"Natural language question answering over RDF: a graph data driven approach."</article-title>
          <source>In Proceedings of the 2014 ACM SIGMOD international conference on Management of data</source>
          , pp.
          <fpage>313</fpage>
          -
          <lpage>324</lpage>
          . ACM,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Nakashole</surname>
            , Ndapandula,
            <given-names>Gerhard</given-names>
          </string-name>
          <string-name>
            <surname>Weikum</surname>
            , and
            <given-names>Fabian</given-names>
          </string-name>
          <string-name>
            <surname>Suchanek</surname>
          </string-name>
          .
          <article-title>"PATTY: a taxonomy of relational patterns with semantic types."</article-title>
          <source>In Proceedings of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning</source>
          , pp.
          <fpage>1135</fpage>
          -
          <lpage>1145</lpage>
          . Association for Computational Linguistics,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>Feifei</given-names>
          </string-name>
          , Wangchao Le, Songyun Duan, and
          <string-name>
            <given-names>Anastasios</given-names>
            <surname>Kementsietsidis</surname>
          </string-name>
          .
          <article-title>"Scalable keyword search on large RDF data." IEEE Transactions on Knowledge and Data Engineering 1 (</article-title>
          <year>2014</year>
          ):
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12] Han,
          <string-name>
            <surname>Shuo</surname>
          </string-name>
          , Lei Zou, Jeffery Xu Yu, and
          <string-name>
            <given-names>Dongyan</given-names>
            <surname>Zhao</surname>
          </string-name>
          .
          <article-title>"Keyword Search on RDF Graphs-A Query Graph Assembly Approach."</article-title>
          <source>In Proceedings of the 2017 ACM on Conference on Information and Knowledge Management</source>
          , pp.
          <fpage>227</fpage>
          -
          <lpage>236</lpage>
          . ACM,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Ouksili</surname>
            , Hanane, Zoubida Kedad, Stéphane Lopes, and
            <given-names>Sylvaine</given-names>
          </string-name>
          <string-name>
            <surname>Nugier</surname>
          </string-name>
          .
          <article-title>"Using Patterns for Keyword Search in RDF Graphs."</article-title>
          <source>In EDBT/ICDT Workshops</source>
          .
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Ayvaz</surname>
            , Serkan, and
            <given-names>Mehmet</given-names>
          </string-name>
          <string-name>
            <surname>Aydar</surname>
          </string-name>
          .
          <article-title>"Using RDF Summary Graph For Keyword-based Semantic Searches."</article-title>
          <source>arXiv preprint arXiv:1707.03602</source>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <surname>Xiao-Qing</surname>
            , Zong-Min Ma, and
            <given-names>Li</given-names>
          </string-name>
          <string-name>
            <surname>Yan</surname>
          </string-name>
          .
          <article-title>"RDF Keyword Search Using a Type-based Summary."</article-title>
          <source>JOURNAL OF INFORMATION SCIENCE AND ENGINEERING 34</source>
          , no.
          <issue>2</issue>
          (
          <year>2018</year>
          ):
          <fpage>489</fpage>
          -
          <lpage>504</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>