<!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>A Template-Based Approach to Keyword Search over Semantic Data</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Paolo Cappellari</string-name>
          <email>cappellari@ualberta.ca</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Roberto De Virgilio</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michele Miscione</string-name>
          <email>miscione@dia.uniroma3.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computing Science University of Alberta</institution>
          ,
          <addr-line>Edmonton, Alberta</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dipartimento di Informatica e Automazione Universit ́a Roma Tre</institution>
          ,
          <addr-line>Rome</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2009</year>
      </pub-date>
      <abstract>
        <p>Keyword search is receiving a lot of attention not only in Web contexts but also in the database area. It is an easy way to allow inexperienced user to query systems without the need of knowing any specific language or how data is structured. As a matter of fact, the amount of data available, in the Web as well as in other systems, is constantly increasing. And, with the improvements and the simplification of the technology, the amount of people accessing such information is growing too. Providing simple, yet effective tools that allow inexperienced users to quickly discover desired information is a big challenge in modern times. The prevalent approaches build on dedicated indexing techniques as well as search algorithms aiming at finding substructures that connect the data elements matching the keywords. In this paper, we introduce a novel keyword search paradigm for graph-structured data, focusing in particular on the RDF data model. While related techniques search the best answer trees, we propose a novel algorithm for the exploration and computation of all matching subgraphs.</p>
      </abstract>
      <kwd-group>
        <kwd>RDF</kwd>
        <kwd>keyword search</kwd>
        <kwd>semantic annotations</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Keyword-based search approaches have the huge benefit that users can ignore
both the language and the structure of the data they are going to query. A
keyword based search engine returns a list of candidate pages, documents or set
of data that match keywords provided in input. Then a user has to dedicate
her time and efforts navigating each result returned from the engine in order
to discover the desired information, i.e. the answer she is looking for. Figure 1
illustrates the actual scenario of the Web. In a simple scenario the user’s desired
answer is contained in a single document or set of data. In a slightly more
complex scenario such an answer may not be confined to a single document: it
may reside on a logical connection between concepts in different documents. A
user has to explore the returned results in order to discover the connection, and
then the data, she is looking for. In general, the user has to face two issues: the
number of results to explore and the distance between the results containing
the concepts holding the desired connection. The first issue can be mitigated
by submitting a more selective query. However, it’s unlikely the case that not
expert users are able to submit a complex query with an high selectivity. The
second issue is rather hard to address.</p>
      <p>
        Therefore, attention around searching and query processing of graph-structured
data continue to increase as the Web, XML documents and even relational
database can be represented as a graph. In particular many efforts focus on
RDF data querying, given the great momentum of Semantic Web in which Web
pages carry information that can be read and understood by machines in a
systematic way. Current approaches rely on a combination of IR and tree/graph
exploration techniques whose goal is to rank results according to a relevance
criterion. Keyword search on tree-structured data counts a good number of
approaches already [
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5 ref6">1–6</xref>
        ]. Examples of approaches where relational database is
treated as data-structured graphs are presented in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], while a generic
approach to similarity search is presented in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Then there are a number of
works focusing on RDF storage and query efficiency issues like [
        <xref ref-type="bibr" rid="ref10 ref11 ref12">10–12</xref>
        ].
Simplifying, a generic approach first identifies the parts of the data structure containing
the keywords of interest, possibly by using an indexing system, then explores the
data structure in order to discover a connection between such identified parts.
Candidate solutions, built out of found connections, are then associated with a
score and ranked. In many approaches [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ], an exact matching between
keywords and labels of data elements is performed to obtain the keyword elements.
For the exploration of the data graph, the so-called distinct root assumption is
employed (see [
        <xref ref-type="bibr" rid="ref7 ref8 ref9">7–9</xref>
        ]). Under this assumption, only substructures in the form of
trees with distinct roots are computed and the root element is assumed to be the
answer. The algorithms for finding these answer trees are backward search and
bidirectional search [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In order to guarantee that the computed answers indeed
have the best scores, both the lower bound of the computed substructures and
the upper bound of the remaining candidates have to be maintained. Since
bookkeeping this information is difficult and expensive, current algorithms compute
the best answers only in an approximate way. Moreover, approaches aiming at
returning the top-k best solutions implement pruning techniques to reduce the
list of candidate solutions down to those whose score is above a threshold.
Pruning techniques can have an sensible impact in both the quality of the solutions,
as low scoring results are not shown or even computed, as well as on efficiency,
as an early pruning reduces the space of candidate solutions to investigate.
      </p>
      <p>In this paper, we propose a novel approach to keyword search in the
graphstructure data in an RDF representation. The approach aims to provide effective
answers in an efficient way. The main contribution of this paper relies in how
connections between identified parts of the structure containing keywords of
interest are combined together. We assume here that annotations in the graph
are generated out of a specific ontology domain. That means that data are
instances of concepts belonging to a knowledge base schema. Therefore, the idea
is to aggregate the parts of the data structures containing keywords in clusters,
according to their schemas, i.e. temporarily ignoring instance values. If two
instances come from a common schema then they share a template. Then the parts
in each cluster, and the clusters too, are ranked according to a function, taking
into account both structural and contextual features. Finally parts from the
several clusters are composed, when possible, starting with the most relevant one
in the most relevant cluster. As a result, most relevant solutions emerge early in
the process because the approach tries to compose the best candidates from each
cluster first. Moreover, the clustering technique allows avoiding the combination
(exploration) of overlapping solutions.</p>
      <p>The paper is organized as follows: Section 2 introduces the preliminaries of the
problem and the data structures used. Section 3 describes the query processing
in details. Finally Section 4 presents the related works, and Section 5 sketches
conclusions and future works.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Overview</title>
      <p>
        Problem Definition. Formally, the problem we are trying to solve may be
defined as follows. Similar to [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], given a directed graph G = (R, P ) where each
node (resource) r ∈ R and edge (predicate) p ∈ P has a label (URI) associated
with it, we are concerned with querying this graph using keywords. A keyword
search query q consists of a list of n keywords (k1, k2, ..., kn). The answer to
query q is the set of paths in G where the end point of each path is a node r ∈
R that matched a user keyword based on one of the following criteria:
– There exists some keyword k ∈ (k1, k2, ..., kn) that matches label of node r
either lexically or on semantic query expansion.
– Node r is the subject/object of the ontological triple whose predicate label
matches some keyword lexically or on semantic query expansion.
An example of reference. Let’s consider the example of Figure 2. It illustrates
an ontology about Universities composed into Departments where a Staff works.
The figure shows both the schema and a corresponding instance. Now we would
process a query by submitting the keywords University, CIV, Department,
W1 that is ”all the information about the Staff W1 working in a Department
CIV into a University”.
Preliminaries. We illustrate the basic data structures used by our approach.
We model the instances into RDF documents as informative paths as follows.
Definition 1 (Informative Path) Given an RDF graph G (R,P) and a set of
keywords k1, ..., kn, an informative path pt is a vector r1 − p1 − r2 − p2 − ... −
pn−1 − rn where each ri is a resource ∈ R, each pi is a predicate ∈ P , ri and/or
pi match one or more keywords ki, and r1 is a root node, i.e. a resource without
incoming edges (predicates).
      </p>
      <p>For instance W1-Works-CIV is an informative path ptk. We use the notation
posptk (ri) (posptk (pj)) to indicate the position of the resource ri(pj) into the
vector ptk. For example posptk (W 1) returns 1. We compute the informative paths
from root nodes because they allow to reach any node in the graph. In case a
root node is not present, a fictitious one can be added. Having the information
to navigate from the roots to nodes matching keywords is at the basis of our
approach to solutions discovery. Then we call template the schema associated to
an informative path.</p>
      <p>Definition 2 (Template) Given an informative path pt, we associate a
template t to pt replacing each ri ∈ pt with the wild card #
For instance the template associated to ptk is #-Works-#. Then we introduce two
basic notions as follows.
Definition 3 (Subsumption) Given two informative paths pt1 and pt2, we
say that pt1 is subsumed by pt2, denoted by pt1 C pt2, if ∀ri, pj ∈ pt1 then
∃rm, pn ∈ pt2 such that ri = rm and pj = pn, and pospt1 (ri) = pospt2 (rm) and
pospt1 (pj) = pospt2 (pn)
Definition 4 (Graft) Given two informative paths pt1 and pt2, there is a graft
between pt1 and pt2, denoted by pt1 ↔ pt2, if ∃ri ∈ pt1(pt2) such that ri ∈
pt2(pt1)
An Architecture of Reference. A flexible architecture of the system was
design, as shown in Figure 3. It serves as a logical view of how the system looks
like. This is a typical use scenario of the system:
1. The RDF Parser takes as input a collection of RDF Documents and parses
them into triples. Here we use the Jena framework (http://jena.sourceforge.
net/);
2. The Indexer builds an index on top of the triple collections to achieve
structural information useful for the query process. Here the indexing is
supported by Lucene (http://lucene.apache.org/) and WordNet (http://
wordnet.princeton.edu) to allow query expansion;
3. A user performs a query through a GUI helper, handling events and the
query itself;
4. The parsed query is given to the Searcher for processing;
5. The Searcher processes the query over the Indexed Resource Base and
returns the search result to the caller. It communicates with the Indexer to
extract the instances matching input keywords, group them into clusters and
compose elements from clusters into the final solutions (i.e. subgraph
structures). Each structure (i.e. instance, cluster and solution) are ordered by
a ranking function. Here we adopt the exhaustivity of the result as scoring
function that is the number of matched keywords with respect to the number
of submitted keywords. Although a ranking function is a relevant aspect in
the framework, in this paper we focus on the composition of the solutions.
The approach is composed of two main phases: an off-line one where documents
of interest are indexed in order to have immediate access to nodes (steps 1 and
2), and an on-line one where the query evaluation takes place (steps 3 to 5). In
the next section we illustrate the query processing.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Query Processing</title>
      <p>The approach is composed of two main phases: the off-line indexing where
documents of interest are indexed in order to have immediate access to nodes, and
the keyword processing (on-the-fly) where the query evaluation takes place.
Off-line indexing During this phase, an index structure is built and
incrementally updated while documents of interest are loaded or modified. Here the
indexing is supported by Lucene (http://lucene.apache.org/) with WordNet
(http://wordnet.princeton.edu) for query expansion. With the indexing the
information in the graph is augmented by: identifying root nodes in the graph and
storing in each node the paths to reach such node from the roots. Each path is
computed by implementing the breadth-first search (BFS) algorithm. Although
this process could be expensive, let us remark that: (i) it is an incremental
process, so its cost dramatically reduces once the system is loaded, and (ii) the index
drastically speeds up the on-the-fly query evaluation. We don’t have to navigate
the graph at runtime and we have immediate access to the path root-matching
node that is the basis for our clustering and combining techniques.
Keywords processing. Given a keyword the index structure allows immediate
access to the node with such a keyword. Lucene index returns all the informative
paths from roots to the nodes matching one of the specified keywords. So we
result a list of informative paths ordered by the length. Referring to our example
we obtain the following list:
c) [RM3-Composition-Bag-rdf:li-DIA-type-Department]
d) [RM3-Composition-Bag-rdf:li-AI-type-Department]
e) [RM3-Composition-Bag-rdf:li-MEC-type-Department]
f) [LaSap-Composition-Bag-rdf:li-CIV-type-Department]
z) [LaSap-Composition-Bag-rdf:li-CIV]
g) [W1-Works-CIV-type-Department]
a) [RM3-type-University]
b) [LaSap-type-University]
y) [W1-Works-CIV]
For instance y) is subsumed by g) and there is a graft between them in nodes
W 1 and CIV . Now the goal is to “extract” the schema behind the paths so
that we can cluster paths according to the discovered schema(s). A cluster is
represented by a template t. So it is a set of informative paths that share the
same template t. Such templates are the attempt of identifying and giving values
to a structure in the information graph that is not explicitly provided with the
query. Such a structure is a recurrent pattern in an anonymous path that we
refer to as schema. Therefore given the list of informative paths P T , the set of
clusters CL is computed in the following way
while P T is not empty, we extract pt from P T .</p>
      <p>• if ∃CLi ∈ CL such that we can associate the representative template t
of CLi to pt, then
∗ if @pt0 ∈ CLi such that pt C pt0 then insert pt into CLi. We order
the elements of CLi with respect to the exhaustivity.
• else a new cluster CLj with the representative template associated to pt
is built and we insert pt into CLj , CLj into CL.</p>
      <p>
        In this process we need to order both paths and clusters with respect to a scoring
function. So we define the rank of an element (path or cluster) with respect to
the query Q = k1, k2, . . . , kn as
R(e, Q) = Pk∈Q weight(k, Q) · weight(k, e) ; weight(k, e) = wweeiigghhttcsttxr((kk,,ee))
where weight(k, Q) is the weight associated with each keyword k with respect to
the query Q and where weight(k, e) is the weight associated with each keyword
k and e where is a path, when ranking paths, or a cluster, when ranking clusters.
We assume all the keywords in the input query have the same weight, i.e. from
the user point of view all the keywords have the same relevance. The weight
weight(k, e) is the ratio between the contextual and the structural weights of
k when considering e. When ranking paths the structural weight represents a
measure of the proximity of k with the other keywords whereas the contextual
weight represents the relevance of k with respect to the other keywords, according
to the following:
weightstr(k, pt) = Pki∈pt,ki6=k dpt(k,ki) ; weightctx(k, pt) = (11+−lsn)+(1s+· lanv(gt(fd)l)) · (1 + ln( dfN+1 ))
dl dl
In the first formula, pt is a path, dpt(k, ki) is the distance between two keywords
and dl is the number of terms in the path pt. In the second formula, tf is the
number of times the keyword k occurs in the path pt, df is the number of paths
where k occurs, N is the number of path containings at least one of the input
keywords; dl has the same meaning as in the first formula and avg(dl) is the
mean of all the dl; finally, s is a constant, usually 0.2 [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The logarithm function
is used, twice in one case, to smooth the values in precense of large numbers
of terms and keywords. Last formula can be read as a trasposition of one of
the most widely used weighting method in IR , where: the first factor is the
normalized term frequency, the second factor is the so called inverse document
frequency and the denominator is the normilzed document lenght [
        <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
        ].
When ranking clusters we define the structural and contextual weights of a
keyword as the mean of its correspondent weights respect to the paths contained
in the cluster CL, as shown in the formulas below:
weightstr(k, CL) =
      </p>
      <p>Ppt∈CL weightstr (k,pt) ; weightctx(k, CL) =
|CL|</p>
      <p>Ppt∈CL weightctx(k,pt)
|CL|
In the following the resulting ordered clusters set computed respect to the
reference example.</p>
      <p>CL3: [#-Works-#-type-#] { (g) }
CL2: [#-Composition-#-rdf:li-#-type-#] { (f) , (c,d,e) }
CL1: [#-type-#] { (a,b) }
The final step is combining the paths from different clusters. A solution is a set
of informative paths that present a graft in pairs. So computing a solution an
informative path pt can be included into a solution S if ∃pt0 ∈ S such that pt
and pt0 present a graft. Paths in clusters are combined, when possible, starting
from the most relevant path in the most relevant cluster: we combine the best
candidate paths of each cluster to compose a single solution. Including an
informative path into a solution, we delete it from the starting cluster. Therefore
the solutions generation ends when the set CL is empty. Because of the
ranking on both the clusters and the paths in each cluster, solutions will come out
from the process starting with the most relevant one, then descending to the
least relevant. This allows for optimizations like: cutting the answering process
if relevance decrease under a specific threshold, or returning the user with an
initial set of answers she can start exploring while elaboration of remaining ones
is still undergoing. More important, the clustering and the combining techniques
guarantee the combination of paths only for instance data belonging to different
schemas, thus avoiding overlapping. Overlapping is undesired and time
consuming. At the end we result the following solutions (also depicted in Figure 4) over
the reference example: S1: { (g) , (f) } and S2: { (c,d,e) , (a,b) }.</p>
    </sec>
    <sec id="sec-4">
      <title>Related Works</title>
      <p>
        There is a broad literature on information search. Natural language interfaces to
database systems have been investigated in several works. Approaches
addressing relational database systems are: BANKS [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], DISCOVER [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], DBXplorer
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and Hristidis et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Simplifying, a database is represented as a graph
where tuples are the nodes and foreign keys. Then they generate tuple trees
from multiple tables as answers. Finally, IR-style techniques are applied to
returned results in order to rank them according to a scoring function. Another
work on relational database is [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Here authors address that strictly focus on
search effectiveness while ignoring efficiency. Authors’ claim is that
effectiveness is as important as efficiency. Approaches have been proposed for keyword
search over XML in [
        <xref ref-type="bibr" rid="ref16 ref17 ref2 ref3">2, 3, 16, 17</xref>
        ]. With respect to search on RDF data, search
on XML data is a similar but simpler problem. The tree structure guarantee
each node to have a single incoming path: this allows the implementation of
a number of optimizations. And such optimization cannot be easily applied in
general graphs. For instance in XRANK [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] an indexing solution is defined that
allows the evaluation of a keyword query without requiring tree traversal. Then
there are works specifically addressing query processing efficiency over
graphstructured data and RDF storage [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref8">8, 10–12</xref>
        ]. In BLINKS [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] a scoring function is
defined to find the top-k most relevant queries, a good part of the contribution
relies on the novel indexing structure. Authors present a bi-level indexing
structure that allows for early pruning that accelerates the search. In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] authors
propose a slightly different approach. While still addressing performance issues,
the approach first compute queries from keywords then asks the user to choose
the most appropriate query. Computation of queries is based on the exploration
of the top-k matching subgraphs, exploiting an off-line built index structure and
a variant of backward search where expansion (exploration) is driven by a cost
function.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Works</title>
      <p>We presented a full-text search index for ontology triples that provides
matching capabilities based on semantic and morphological expansion of terms used
for indexing the triple. Given a set of text matches, we propose a method to
construct the set of answer paths by a template based clustering technique. In
this paper the paths retrieved by the system are ordered with respect to a trivial
measurement, that is the exhaustivity. Hence, it could potentially lead to
information overload. Semantic association ranking metrics could be used to present
only paths most relevant to users context. Future works concern a sophisticated
ranking function, and using it a set of experimental results over (very) large
datasets. DBpedia, Yago are recent efforts to generate semantic metadata by
extracting structured information form the Web (Wikipedia). A keyword or natural
language search interface to such knowledge bases would prove immensely useful
as the end user need not be aware of the structure of the information. It will be
worthwhile to build a search interface that accepts queries in natural language.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Agrawal</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chaudhuri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Das</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Dbxplorer: Enabling Keyword Search over Relational Databases</article-title>
          . In: Franklin,
          <string-name>
            <given-names>M.J.</given-names>
            ,
            <surname>Moon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Ailamaki</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.): SIGMOD, pp.
          <fpage>627</fpage>
          -
          <lpage>627</lpage>
          , ACM (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Cohen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mamou</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kanza</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sagiv</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Xsearch: A Semantic Search Engine for XML</article-title>
          .
          <source>In: VLDB</source>
          , pp.
          <fpage>45</fpage>
          -
          <lpage>56</lpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Guo</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shao</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Botev</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shanmugasundaram</surname>
          </string-name>
          , J.: Xrank:
          <article-title>Ranked Keyword Search over XML Documents</article-title>
          . In: Halevy,
          <string-name>
            <given-names>A.Y.</given-names>
            ,
            <surname>Ives</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.G.</given-names>
            ,
            <surname>Doan</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.): SIGMOD, pp.
          <fpage>16</fpage>
          -
          <lpage>27</lpage>
          . ACM (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Hristidis</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Papakonstantinou</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Discover: Keyword Search in Relational Databases</article-title>
          . In: VLDB, pp.
          <fpage>670</fpage>
          -
          <lpage>681</lpage>
          . Morgan Kaufmann (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>C.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meng</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chowdhury</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Effective Keyword Search in Relational Databases</article-title>
          . In: Chaudhuri,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Hristidis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Polyzotis</surname>
          </string-name>
          , N. (eds.): SIGMOD, pp.
          <fpage>563</fpage>
          -
          <lpage>574</lpage>
          . ACM (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Kimelfeld</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sagiv</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Finding and Approximating Top-k Answers in Keyword Proximity Search</article-title>
          . In: Vansummeren,
          <string-name>
            <surname>S</surname>
          </string-name>
          . (ed.): PODS. , pp.
          <fpage>173</fpage>
          -
          <lpage>182</lpage>
          . ACM (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Bhalotia</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hulgeri</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nakhe</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chakrabarti</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sudarshan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Keyword Searching and Browsing in Databases Using Banks</article-title>
          . In: ICDE, pp.
          <fpage>431</fpage>
          -
          <lpage>440</lpage>
          . IEEE Computer Society (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>He</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>P.S.</given-names>
          </string-name>
          : Blinks:
          <article-title>Ranked Keyword Searches on Graphs</article-title>
          . In: Chan,
          <string-name>
            <given-names>C.Y.</given-names>
            ,
            <surname>Ooi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.C.</given-names>
            ,
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.): SIGMOD, pp.
          <fpage>305</fpage>
          -
          <lpage>316</lpage>
          . ACM (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kacholia</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pandit</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chakrabarti</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sudarshan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Desai</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karambelkar</surname>
          </string-name>
          , H.:
          <article-title>Bidirectional Expansion for Keyword Search on Graph Databases</article-title>
          . In: VLDB, pp.
          <fpage>505</fpage>
          -
          <lpage>516</lpage>
          . (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Chong</surname>
            ,
            <given-names>E.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Das</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eadon</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Srinivasan</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>An Efficient SQL-based RDF Querying Scheme</article-title>
          . In: VLDB, pp.
          <fpage>1216</fpage>
          -
          <lpage>1227</lpage>
          . (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Abadi</surname>
          </string-name>
          , D.J.,
          <volume>0002</volume>
          ,
          <string-name>
            <given-names>A.M.</given-names>
            ,
            <surname>Madden</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Hollenbach</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.J.</surname>
          </string-name>
          :
          <article-title>Scalable Semantic Web Data Management Using Vertical Partitioning</article-title>
          . In: Koch,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Gehrke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Garofalakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.N.</given-names>
            ,
            <surname>Srivastava</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Aberer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Deshpande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Florescu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Chan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.Y.</given-names>
            ,
            <surname>Ganti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Kanne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.C.</given-names>
            ,
            <surname>Klas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Neuhold</surname>
          </string-name>
          , E.J. (eds.): VLDB. , pp.
          <fpage>411</fpage>
          -
          <lpage>422</lpage>
          . ACM (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Tran</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rudolph</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cimiano</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Top-k Exploration of Query Graph Candidates For Efficient Keyword Search on RDF</article-title>
          .
          <source>In: ICDE</source>
          , pp. to appear, IEEE Computer Society (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Singhal</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Buckley</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mitra</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Pivoted Document Length Normalization</article-title>
          .
          <source>In: Proceedings of the 19th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval</source>
          ,
          <source>Experimental Studies</source>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>29</lpage>
          . ACM (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Singhal</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Modern Information Retrieval: A Brief Overview</article-title>
          .
          <source>IEEE Data Engineering Bulletin</source>
          <volume>24</volume>
          (
          <issue>4</issue>
          ), pp.
          <fpage>35</fpage>
          -
          <lpage>43</lpage>
          . (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Hristidis</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gravano</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Papakonstantinou</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Efficient IR-Style Keyword Search over Relational Databases</article-title>
          . In: VLDB, pp.
          <fpage>850</fpage>
          -
          <lpage>861</lpage>
          . (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Hristidis</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Papakonstantinou</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balmin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Keyword Proximity Search on XML Graphs</article-title>
          . In: Dayal,
          <string-name>
            <given-names>U.</given-names>
            ,
            <surname>Ramamritham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Vijayaraman</surname>
          </string-name>
          , T.M. (eds.): ICDE, pp.
          <fpage>367</fpage>
          -
          <lpage>378</lpage>
          . IEEE Computer Society (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kaushik</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krishnamurthy</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Naughton</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramakrishnan</surname>
          </string-name>
          , R.:
          <article-title>On the Integration of Structure Indexes and Inverted Lists</article-title>
          . In: Weikum,
          <string-name>
            <surname>G.</surname>
          </string-name>
          ,
          <article-title>K¨onig</article-title>
          ,
          <string-name>
            <given-names>A.C.</given-names>
            ,
            <surname>Deßloch</surname>
          </string-name>
          , S. (eds.): SIGMOD, pp.
          <fpage>779</fpage>
          -
          <lpage>790</lpage>
          . ACM (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>