1. exploring big data with helix finding needles in a big haystack.pdf

Upload: ronaldo-moreno

Post on 24-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    1/12

    Exploring Big Data with Helix:Finding Needles in a Big Haystack

    Jason EllisIBM Research

    [email protected]

    Achille FokoueIBM Research

    [email protected]

    Oktie HassanzadehIBM Research

    [email protected]

    Anastasios KementsietsidisIBM Research

    [email protected]

    Kavitha SrinivasIBM Research

    [email protected]

    Michael J. WardIBM Research

    [email protected]

    ABSTRACT

    While much work has focused on efficient processing of

    Big Data, little work considers how to understand them.

    In this paper, we describe Helix, a system for guided ex-

    ploration of Big Data. Helix provides a unified view of

    sources, ranging from spreadsheets and XML files with

    no schema, all the way to RDF graphs and relational

    data with well-defined schemas. Helix users explore

    these heterogeneous data sources through a combination

    of keyword searches and navigation of linked web pages

    that include information about the schemas, as well as

    data and semantic links within and across sources. At

    a technical level, the paper describes the research chal-

    lenges involved in developing Helix, along with a set of

    real-world usage scenarios and the lessons learned.

    1. INTRODUCTION

    Enterprises are captivated by the promise of BigData, to develop new products and services, andto gain new insights into their customers and busi-nesses. But with the promise of Big Data comes anexpanded set of problems: how do enterprises findthe data they need for specific purposes;how do theymake those data usable;how do they leverage learn-ing about the data and expertise with the data acrosstasks; and how do they do all these in an efficientmanner. The research community has been quickin responding to enterprise needs but has mostlyfocused on the problem of efficiency. Indeed, signif-

    icant effort has focused on providing scalability inthe consumption and analysis of terabytes of data[1]. However, there has been little work on address-ing in a practical manner the first set of problems,namely, how to help enterprises find where all thesources relevant to a task are located; whatthe rela-tionships are between these sources; and whatdatain the sources are relevant to the task and whatshould be ignored. From our experience, these arethe first problems with which customers are coming

    to us, and only after these problems are addressedit is possible to move to the next step of an efficientanalytics solution.

    This paper presents Helix, a system we have been

    actively developing for the last four years that hasbeen used for exploratory analysis of data in variousdomains. Helix addresses the aforementioned prob-lems by supporting users in iteratively exploringand combining data from multiple heterogeneoussources. Helix users may not have the background,interest, or time to understand all the schemas anddata across all sources. However, they all under-stand what kind of data they are interested in andhow they want to use it, so semantic technologieshave the potential to bridge from user intention todata representation.

    The first technical challenge we address in Helix is

    bringing together metadata from a variety of mod-els that range across relational, XML, JSON, RDFand even Excel files. We are building a semanticknowledge base that describes the entire data cor-pus. Unlike existing approaches which focus pri-marily on pairwise integration of schemas within thesame model [21], Helix considers multiple schemasacross a variety of models. Source schemas may bereadily available and can be extracted when sourcesare added to the system, or are automatically dis-covered by Helix when sources without schemas areincorporated. Since our approach is geared towardsBig Data, even dealing with just the schemas toconstruct the knowledge base results in scalabilityissues which need to be addressed [9].

    The second technical challenge we address is howto support users in finding relevant data. Keywordsearch is an obvious starting point, but presentingresults from diverse sources differs from presentingdocument search results. For instance, if a key-word hit is a column name, what would the userlike to see? Would other columns in the same ta-

    SIGMOD Record, December 2014 (Vol. 43, No. 4) 43

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    2/12

    ble be relevant? Or, would sample column values(and values from adjacent columns) suffice? Whatif the hit occurs in a table row, or in a value ofa JSON tree? Do we show the entire row (withpossibly hundreds of columns) or the entire JSONtree? There are both strong user experience and

    data management aspects to this challenge. Cur-rently, Helix guides users in exploring the context inwhich search results occur using bothschematicandsemantic recommendations. The schematic recom-mendations are consistently presented regardless ofthe underlying data model. For semantic explo-ration, we leverage the constructed knowledge baseto recommend other data elements, whether in thesame or different sources, that may be worth ex-ploring. As users initiate keyword searches and ex-plore data sets through our interface, there is an un-derlying mechanism that uses the input keyword(s)and user navigational information to build (struc-

    tured) queries that fetch relevant data from respec-tive sources. In that manner, Helix users can fo-cus onhow to accumulate and filter data of interestrather than focus on how to build queries in variousdialects (e.g. SQL, SPARQL, Excel APIs).

    The third technical challenge we address is thediscovery of interesting links between diverse sets ofinstance data. Existing works perform instance linkdiscovery in a batch fashion. With huge data sets,and large numbers of sources, these methods gener-ate every possible link, between all possible linkableentities. Generatingalllinks not only requires sub-stantial computation time and considerable storage

    space, but also requires substantial effort since thelinks must be verified and cleaned. Resources aside,it seems like a huge waste to generate all links onlyto discover later that actually only a small fractionof them is relevant to most tasks. In Helix, we ad-dress the shortcomings of existing approaches byproviding adynamicandcontext-dependentlinkingmechanism. Therefore, we allow the user to specifythrough metadata which types of links and whichdata collections she is interested in linking. Wethen generate atrun-timelinks for these data usingtechniques we have developed for this purpose [15].When a user has no idea as to what is linkable, we

    use our automatic identification of linkage points[16] to make recommendations.

    The fourth challenge we address is how to assistusers in building collections of data elements thatare valuable to other users in other tasks. We lever-age the internal knowledge base to build a recom-mendation system for users based on the specificdata elements they find interesting. When userschoose a specific piece of recommended data, and

    Figure 1: Helix Architecture

    treat them as part of the same larger data set, we in-crementally build up a high quality set of mappings

    across users. As more users interact with data, thesystem builds up knowledge about common por-tions of the data that get accessed together. Thisis a bootstrapping approach to building a commonsemantic model that applies across disparate datasilos, and reflects a lower cost to building more for-mal semantic models/ontologies that can help servea common view over disparate data.

    The overall Helix architecture is shown in Fig-ure 1. We present details of different componentsof Helix (and respective challenges) by following log-ically the way the system is used in practice. So, inSection 2, we describe the pre-processing phase in

    Helix which includes schema discovery, linking, andindexing of input data sources. Section 3 presentsthe guided data exploration mechanism, while Sec-tion 4 presents several usage scenarios. Section 5discusses related work, and Section 6 concludes thepaper with a summary and a few interesting direc-tions for future work.

    2. PRE-PROCESSING PHASE

    All input data sources in Helix are defined inthe data source registry component. There arethree classes of sources considered. The first

    class includes (semi-)structured sources with pre-defined schemas and query APIs, such as rela-tional databases and triplestores. The second classis (online or local) file repositories, such as theones published by governments (e.g., data.gov ordata.gov.uk, or data sources published by U.S. Na-tional Library of Medicine), or in cloud-based filerepositories (e.g., Amazon S3). Finally, the thirdclass are those sources directly read from onlineWeb APIs, e.g., data read using the Freebase API.

    44 SIGMOD Record, December 2014 (Vol. 43, No. 4)

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    3/12

    {"cik":"51143","name":"International Business Machines","key":["IBM", "IBM Corp."],"founded":"1911","key_people":[

    {"name":{"Ginni Rometty"},"title":["President", "CEO"]

    }, {"name":{"Sam Palmisano"},

    "title":["Chairman"]

    }]}

    Figure 2: Example JSON Data

    International Business MachinesIBMIBM Corp.1911

    Ginni RomettyPresident

    CEO

    Sam Palmisano

    Chairman

    Figure 3: Example XML Data

    id

    cik

    name

    founded

    c151143InternationalBusinessMachines

    1911

    id

    key

    c1 IBM

    c1IBM Corp.

    id

    pid

    title

    c1

    p1

    President

    c1

    p1

    CEOc2 p2 Chairman

    id

    name

    p1

    Ginni Rometty

    p2

    Sam Palmisano

    company company_keys

    company_key_peoplekey_people

    Figure 4: Example Relational Data

    One of the goals in Helix is to process data basedon explicit user needs and avoid unnecessary or ex-pensive pre-processing given that we are dealingwith Big Data. Therefore, the data pre-processingphase comprises only three essentialsteps, all per-formed in a highly scalable fashion implementedin the Hadoop ecosystem: (a) schema discovery,where each input source schema is represented in

    a common model in the form of a local schemagraph; (b) full-text indexing, where data values andsource metadata are indexed; and (c) linkage discov-ery, that incorporates instance-based matching andclustering of the (discovered) schemas. The out-come of the pre-processing phase is aGlobal SchemaGraphwhich plays a key role in Helix. In the fol-lowing, we discuss briefly each of the steps and howthe Global Schema Graph is constructed.

    2.1 Schema Discovery

    The schema discovery process begins by con-structing a local schema graph for each of the in-

    put sources. Intuitively, schema graphs are usedas the common schema representation format thatalleviates the differences across the models of dif-ferent sources. We distinguish two types of nodesin the schema graphs: (a)attributes, which acrossmodels correspond to schema elements whose do-main is literal values (e.g., column names in the re-lational model, PCDATA elements in XML, stringsin JSON, etc); andtypes, which across models corre-spond to schema elements whose domain is defined(recursively) through other type or attribute nodes(e.g., tables or schemas in the relational model, in-termediate elements in XML trees, etc.).

    Given the wide range of sources considered interms of data models, the local schema graph con-struction is customized to each data model. Inmore detail, for semistructured data with no pro-vided schema, we first build a minimal schemagraph (more precisely a tree) [17] that contains allthe possible paths in the semistructured data in-stances. That is, nodes in the constructed localschema graph correspond to elements of the semi-structured data, and a path in the schema graph

    key

    cik

    key_people name

    founded

    title name

    "IBM"

    "IBM Corp."

    "51143"

    "President"

    "CEO"

    "Chairman"

    "Ginni Rometty"

    "Sam Palmisano"

    "InternationalBusiness Machines"

    "1911"

    company

    Figure 5: Example Local Schema Graph

    exists if there is at least one data instance hav-ing that path. To illustrate, Figures 2 and 3 aretwo examples that show essentially the same datain both JSON and XML formats. Figure 5 showsa schema graph that can be extracted from eitherof them. In the graph, company and key people aretypes, while name is an attribute. Our local schemagraph construction is similar to that of approxi-mate DataGuides [10] or representative objects [20].Since our goal is a simple and concise representa-

    tion of the structure of the data, we do not employtechniques that try to derive an accurate conceptualmodel of the input data. Instead, we use techniquesthat provide a schema that initially facilitates usersunderstanding of data, while providing ways to in-crementally build more complex and accurate mod-els through the user interaction and input.

    For (semi-)structured data with a providedschema (e.g., through available metadata or DDLs),the schema graph can be constructed without ana-lyzing instance values. So, for the relational sourcein Figure 4, the schema graph of Figure 5 can beconstructed by using the table definitions and for-

    eign key relationships. If schema definitions includ-ing foreign key information are not available, onetype is created per table with table columns againbecoming attributes of the type, and a foreign keydiscovery process [23] is performed along with linkdiscovery (see Section 2.3) to connect the differenttables.

    For RDF (graph) data, each class is representedwith a type, and its properties that have literal val-ues become type attributes. Properties that link

    SIGMOD Record, December 2014 (Vol. 43, No. 4) 45

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    4/12

    two classes in RDF result in links between the cor-responding types. Here again, if an RDF Schema isgiven, then it is used to construct the local schemagraph. In the absence of an RDF schema, Helixinfers the schema graph by going through all theinstance data (RDF triples) and figuring out the re-

    sources, their classes (i.e., the rdf:type statements),their properties, and the properties between classes.Once the schema graph for each source is con-

    structed, a Uniform Resource Identifier (URI) isassigned to each node. The assignment is suchthat it not only captures the relative position ofeach node within the schema graph, but also cap-tures the provenance of each node, e.g., the nameof the source as well as its model. As an ex-ample, assume the schema graph in Fig. 5 is de-rived from a JSON source with name compdata.The URI for the property cik of object company isjson://compdata/company/cik. Similarly, if the rela-

    tional source in Fig. 4 is registered with name cmpdtand the tables are stored in a schema named db2usr1,rdb://cmpdt/db2usr1/company/name is the URI of thenode corresponding to column namein table company.

    2.2 Full-Text Index

    In Helix, each instance value is also assigned aURI that can be used to locate that specific value.Figure 5 shows the instance values associated witheach attribute in our example. We view instancevalues as documents and use a standard Informa-tion Retrieval (IR) engine to tokenize and index theinstance values to allow standard keyword search

    across the input data sources with Boolean queriesand fuzzy search capabilities. There are severalways to model instance values as documents:

    Treat each instance value as a document. Soeach instance value is assigned a URI thatcan be used to locate it. For example, URIjson://compdata/company[0]/key people[0]/name[0] isassociated with Ginni Rometty in Figure 2.

    Treat all instance values of an attribute as a sin-gle document, with the attribute URI as the doc-ument identifier. For example, values IBM andIBM Corp. in Figure 2 can form a document

    associated with URI json://compdata/company/key. Group values that appear together in one in-

    stance of a type and treat them as a single docu-ment. This results in row-level indexing for re-lational data, node-based grouping of instancevalues for tree-structured (e.g., XML) data, andobject-level indexing for graph (RDF) data. InFigure 2, this approach results in one index entryfor thecompanytype instance, and two entries forkey peopleinstances.

    We support all the above indexing mechanismsas options, and our experience shows that the firstapproach is superior to others, with respect to key-word search during guided exploration (see Sec-tion 3). However, a particular challenge with thisapproach is the size of the index, given the number

    of instance values and the fact that instance URIsare long strings. As a result, we have devised asimple compression mechanism to index each dis-tinctvalue only once for each attribute. This doesnot impact guided exploration, whereas it resultsin much smaller index size in practice. Regardlessof the indexing mechanism, the attribute URIs arealso stored in the index to facilitate attribute-basedgrouping of the keyword search results. Unlike pre-vious work on the indexing of heterogeneous data [8]which are limited to the indexing of values, our in-dex is further extended with indexing of metadata,i.e., with the types and attribute names themselves

    to provide a unified keyword search index.

    2.3 Linkage Discovery

    The last phase in pre-processing is discover-ing links between different types and attributeswithin as well as across the schema graphs of dif-ferent sources. Traditional schema-based match-ing is not effective in matching highly diverse andautomatically-constructed schemas where the la-bels of schema elements are not always represen-tative of their contents, and data come from sev-eral sources that use different models and repre-

    sentations. Therefore, our approach is to performan all-to-all instance-based matching of all the at-tributes. Scaling the matching process for a largenumber of attributes and large number of instancesper attribute is a major challenge. We address thisproblem by casting it into the problem of comput-ing document similarity in information retrieval [9].Specifically, we treat each attribute node as a doc-ument, and we consider the instance values for thatattribute as the set of terms in the document. Toscale the computation of pairwise attribute similar-ity, we use Locality Sensitive Hashing (LSH) tech-niques, as is done in computing document similarity.

    Briefly, we construct a fixed small number ofsigna-turevalues per attribute, based on MinHash [3] orRandom Hyperplane [4], in a way that a high simi-larity between the set of signatures guarantees highsimilarity among instance values. This results inefficient comparison of instance values between at-tributes. We then create small buckets of attributesso that similar attributes are guaranteed to be inthe same bucket with a high probability. This issimilar to a common indexing technique used in

    46 SIGMOD Record, December 2014 (Vol. 43, No. 4)

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    5/12

    dublinked

    NAME

    Heritage

    ADDRESS

    School

    LABELLOCATION

    !"#$%&'($)

    !"#$%&'($)

    !"#$%&'($)

    !"#$%&'($)

    !"#$%&'($)!"#$%&'($)

    +,!"-.$($/ ),01

    !"#$%&'($)

    !"#$%&'($)!"#$%&'($)

    2,%,)&(,345 6789

    freebase

    locationCity

    /architecture/building

    rdf:label

    Place

    guidname

    !"#$%&'($)

    !"#$%&'($)

    !"#$%&'($)

    !"#$%&'($)!"#$%&'($)

    !"#$%&'($)

    !"#$%&'($)

    !"#$%&'($)!"#$%&'($)

    DBpedia

    !"#$ &'()*"("(+ ,-&.")$&)/-*#

    0$-")*+$ 1'&*2'( 3(4'-5*2'(!"#$ &'()*"("(+ 6&.''#

    1'&*2'( 3(4'-5*2'(

    !"#$%&'($)

    +,!"-.$($/ ),01

    2,%,)&(,345 67::

    +,!"-.$($/ ),01

    2,%,)&(,345 67;;

    Figure 6: Sample Schema Graph

    record linkage known as blocking [5]. Our experi-ments on large data sources show that our approachis very effective in reducing the number of pairwiseattribute comparisons required for an all-to-all at-tribute matching [9].

    In our evaluation, we found that the precision andrecall of linkages between attributes with textualvalues is very good [9]. However, linkages between

    attributes with numeric or date/time values tend tohave little semantic value, even when the similarityof their instances is high. Currently, we optionallyfilter attributes with these data types. We are inves-tigating the scalability of constraint-based instancematching[21] for discovering linkages between suchattributes.

    The attribute-level linkages found within andacross data sources are used not only for guidednavigation of the sources (see Section 3), but also tofind type-level linkages and grouping (clustering) oftypes. In more detail, type clustering is performedto group types that have the same or highly simi-

    lar attribute sets. For example, all address typesof an XML source might create a single cluster, inspite of these addresses appearing at different levelsand under different elements of the tree. Type-levellinkages induce a similarity graph, where each noderepresents a type and the weight of an edge connect-ing two types reflects their similarity. This similar-ity is the average of (a) the instance-based similar-ity between the attributes of the two types; and (b)the Jaccard similarity between the sets of attributelabels of the types. An unconstrained graph clus-tering algorithm [13] is then used to find clusters oftypes in the similarity graph.

    2.4 Global Schema Graph

    The schema graphs of all the input sources alongwith discovered attribute and type linkages are allused to build the Global Schema Graph. This graphprovides a unified view over the input sources, en-ables navigation, and allows the discovery of relatedattributes and types through schema and similarity-based linkages. Figure 6 shows a portion of a globalschema graph constructed for one of our use cases.

    In this example, a data set on national heritage sitesin the city of Dublin is linked to a data set in thesame source containing school locations, based onthe similarity of the address/location attributes inthe two data sets. The data set is also linked toa type in a Web knowledge base that contains in-

    formation on architectural buildings, which itself islinked to another knowledge base containing infor-mation about public locations (Placetype in an on-tology). These links implicitly show that these datasets contain information about locations, and thatthere is potentially a connection between school lo-cations and national heritage sites in the city ofDublin, one of many exploration capabilities of He-lix. In the figure, we distinguish two sorts of links,namely explicit links (drawn in solid black lines)that are inferred by looking at individual sourcesthrough schema discovery (see Section 2.1), and dis-coveredlinks (drawn in dashed blue lines) that re-

    quire additional logic and consider multiple sources(see Section 2.3). For discovered links, we add an-notations to capture their computed similarity, aswell as the method by which the link was discovered(e.g., MinHash, user generated, etc.).

    The global schema graph is a key structure inHelix since it governs and guides user interactions(more details in Section 3). What is less obvi-ous though is that there are technical challengesin terms of managing the graph itself. Helix isgeared towards Big Data scenarios, and as moreand more sources are incorporated into the sys-tem, the global schema graph very quickly becomes

    quite large. As the system continuously queries,updates, and augments the graph, it is importantthat all these operations are performed efficiently;otherwise the global schema graph ends up being abottleneck to the system performance. To addressthese challenges, we store the global schema graphin our own graph store, called DB2RDF, which hasbeen proven to outperform competing graph storesin a variety of query workloads using both syntheticand real data [2]. Our graph store supports theSPARQL 1.0 graph query language [24] and interac-tions with the global query graph are automaticallyand internally translated to SPARQL queries.

    3. GUIDED EXPLORATION

    Once a global schema graph is built, one mightthink a user could somehow use the global schemagraph directly to query the data and navigatethrough related pieces of information. However, de-spite several efforts on our part to help users di-rectly explore the schema graph (our first proto-type followed this approach [14]), comprehending

    SIGMOD Record, December 2014 (Vol. 43, No. 4) 47

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    6/12

    Figure 7: Helix UI: Search Results

    the myriad of schema elements and their connec-tions turned out to be too much for users to grasp.

    We also tried using keyword searches directly on theglobal schema graph to help users construct struc-tured queries as in [26], but this technique did nothelp the construction of complex queries requiredby some of our use case scenarios (Section 4). Wehave thus arrived at the approach of guided dataexploration, which allows users to construct com-plex queries iteratively by building on some basicbuilding blocks. Guided exploration in Helix hasfour components: (1) keyword search, (2) guidednavigation, (3) construction of virtual views, and(4) integration across virtual views to build morecomplex queries.

    3.1 Keyword Search

    Users initiate their guided exploration with a key-word search over the index described in Section 2.2.Our search engine results (see Figure 7) are cus-tomized in such a manner that the result set con-tains not only the hits from the global schema graphfor the input keyword(s) (with each hit being eithera type or an attribute hit, and shown in the col-umn labeled matched in Figure 7), but also thename of the data source in which each hit appears(column source) as well as the precise location ofthe hit within the source (column description).

    As with any search, the search results are rank or-dered, but they can be sorted by values in any of thecolumns. The search process is, by itself, not novelcompared to those found in the literature. We useit simply to initiate an exploration in the system.

    3.2 Guided Navigation

    Guided data navigation is an iterative processthat assists users in confirming that data that theyare viewing are relevant to their tasks and in discov-

    Figure 8: Helix UI: Guided Navigation

    ering closely related data elements. Users initiatenavigation by choosing a hit on the search engine

    results page. Helix displays a screen with three pri-mary components, a table containing sample datafor the chosen hit and two lists of links to relatedattributes and types (see Figure 8). Clicking onone of these links takes the user to a new data nav-igation screen, this time populated with data andlinks for the attribute or type clicked on. The pre-sentation is uniform regardless of the data modelof the underlying data source. The user is guidedto structurally and semantically related attributesand types, reinforced at each step with sample data.She can focus on the data itself rather than how itis represented and accessed. We describe the main

    features of the guided navigation interface next. Data sample: A sample of popular instance val-

    ues are presented when a user drills down on a hiton an attribute. The objective is to help users de-cide if the selected hit is relevant to their task. Ifthe hit is on a type, it is difficult to determinewhich of the attributes for the type should bedisplayed. In this case, the user can explore dataassociated with that type using the schema linksdescribed next.

    Schema links: Helix displays links found duringthe schema discovery process (see Section 2.1)

    for two reasons. First, schema links inform usersabout otherattributes and types in the vicinityof the hit (i.e., in the same source) and may berelevant for their task. Second, we have observedthat this sort of navigation often guides users tothe right data even if the original hit was noton the right attribute. The list of schema linksare navigable, and ordered by the number of in-stances in the attribute.

    Discovered links: For a given attribute or type

    48 SIGMOD Record, December 2014 (Vol. 43, No. 4)

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    7/12

    hit, we show links to other attributes or typesthat were discovered during pre-processing (seeSection 2.3). These links are similar to recom-mendations for relevant data. Our evaluation ofthese links over Web-based data sources [9] indi-cates that the precision and recall over enterprise

    data sources is high as well. This list is orderedinitially by the similarity score calculated duringpre-processing. A user validates a discovered linkindirectly by clicking on it and using the relevantdata from it (as described in Section 3.3). Whenthis occurs, we boost the link between the twotypes or attributes (the one in the hit and the onethe user navigated to from the hit) to the maxi-mal similarity value of 1.0, and we annotate thelink to indicate that it is user validated. Theselinks are subsequently ranked higher when usersagain browse the same hits and their associatedlinks.

    We have observed that the simple navigationtechniques described here often help users find rele-vant data after a few navigation steps. Occasionallya hit is exactly what the user is looking for; at othertimes, the data of real interest are for a different at-tribute or type in the same source; and sometimesone of the discovered links guides the user to morerelevant data in another source. The key messagehere is that, in practice, users rarely find what theare looking for in one shot. This is even the case inweb searches. What is important is that Helix pro-vides a whole infrastructure to help users zero inon the data they want to use. Our experience from

    different usage scenarios shows that this process istypically faster than using a pure-text search-basedapproach that lacks both the context of the hitsand the connections with other related areas of thesearch space.

    3.3 Virtual View Construction

    When a user has found an interesting type, shecan construct a virtual view on that type, and saveit on a data shelf. The steps to accomplish the cre-ation of a virtual view involve customizing the typeon the guided navigation screen. At the interface

    level, the user chooses various attributes of a typein tabular form, and is never aware of the actualdata format. The user actions available in this stepinclude simple projections, filtering and ordering onany of the attributes of a selected type (see Figure9). In the back end, because our internal repre-sentation of the global schema is a large graph, avirtual view corresponds to a Basic Graph Pat-tern (BGP) in SPARQL, which (in its most basicform) starts with the template ?x type , where

    Figure 9: Helix UI: Virtual View Construction

    is a type, and adds statements of the form ?x

    ?y, as the user projects attribute P. Note thatat the interface level, the user is not required to be

    aware of any formal structured query language. Webuild up the structured query as the user interactswith a simplified version of the data in its tabularform. Filtering and ordering are likewise internallyrepresented using equivalent SPARQL operators.

    Once a virtual view has been constructed, theuser can save it on a data shelf which just savesa SPARQL query in the users profile. The usercan also annotate the virtual view with terms thatmore accurately describe it. These terms are alsoadded to the full text index (where the documentbeing indexed is now a query), such that subsequentsearches in guided exploration can lead to hits on

    virtual views as well as original datasets. As statedin the prior section, we consider saving a virtualview an indication of the usefulness of the guidednavigation step and boost the similarity values ofdiscovered links followed during the construction ofthe virtual view.

    3.4 Integration of Virtual Views

    The real power of Helix is that these simple vir-tual views can now be used as building blocks formore complex views. To build such views, we pro-vide two operators which correspond loosely to aJOIN and a UNION operation. The difference be-

    tween a standard JOIN operation and our notionof JOIN is that our version is actually a semanticJOIN that corresponds to an instance linkage oper-ation between the instance data of different virtualviews. The UNION operation is more straightfor-ward as it has the usual semantics. Two issues re-quire further explanation. First, we need to explainhow we actually fetch that data for the virtual viewsthat are to be joined (or unioned). Second, we needto explain how the actual join occurs.

    SIGMOD Record, December 2014 (Vol. 43, No. 4) 49

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    8/12

    In Helix, because the data sources being joinedmay not even be in the same format, and notall of the formats have uniform query engines (oreven have an engine), we use the global schemagraph as a semantic model that unifies distributeddata sources withdirect schema mappingsfrom the

    global schema to each of the data sources schema.Differences in query engines (and languages) arethen accommodated by using the global schemato local source schema mappings and knowledge ofthe query language/API associated with the under-lying source to translate the view specification inSPARQL to an appropriate query (e.g., SQL forrelational, XPath for XML) that is executed overthe underlying source to fetch the instance data.Note that for data formats that do not support aquery engine (like CSV or Excel), we house the datain a key-value store to account for variable schemaacross multiple datasets.

    With the instance data in place, we need to per-form the actual JOIN operation. Unless specifiedby the user, Helix recommends a set of attributepairs on which the views may be linked. This rec-ommendation is not purely based on the links foundduring the linkage discovery step described in Sec-tion 2.3, since attribute and type similarity does notalways imply that instance-level linkages exist. Forinstance, two types may be linked because of simi-larities at the term level, but actual instance valuesmight differ (e.g., Bank of America versus AppleBank). Our recommendation of pairs of attributesfor linkage is based on our work on automatic iden-

    tification of linkage points [16]. Briefly, we recom-mend a pair of attributes as a linkage point if theycan effectively be used to link instances of the twotypes. The linkage points are ranked based on theirstrength[16], which reflects the ability to establish areasonable number of one-to-one links between theinstances. Note that we consider all the attributesof the type in the view, not just those explicit inthe stored query. The user can then choose a pair(or pairs) of the recommended attributes. Helix in-vokes its Dynamic Data Instance Linker (see Fig-ure 1) that uses fuzzy matching techniques [15] tolink the views and presents the results to the user,

    together with a confidence score (see Figure 10).The user can accept the results by saving them tothe shelf or go back and choose different or addi-tional linkage points and try again. When a newview is saved, internally the SPARQL algebra de-scribing the view also records the selected linkagepoints. As an aside, since each view is a BGP inSPARQL, linkage points might occur between vari-ables that dont necessarily have the same name in

    Figure 10: Helix UI: Linked Virtual Views

    the SPARQL. The linkage is therefore expressed asa filter that calls a JOIN operation on the two vari-ables that are being joined.

    4. USAGE SCENARIOS

    The design and implementation of the Helix sys-tem has gone through extensive evaluation usingseveral usage scenarios in different domains. Themajority of the usage scenarios are inspired by ourinteractions with customers, in trying to understandtheir needs in data exploration and help them withthe first steps of their data analytics tasks. Inthis section, we describe two such usage scenar-ios and some of our key observations and lessonslearned. We first describe details of usage scenarios

    using data published by the city of Dublin, Ireland.Extracting relevant information from online publicdata repositories such as those published by gov-ernment agencies is a frequent request within en-terprises. We then describe a customer relationshipmanagement (CRM) use case as an example enter-prise data exploration scenario. Finally we sharesome of the lessons learned through these and otherapplications of Helix. Note that our goal here isnot to perform a scientific study of the effective-ness of the algorithms implemented in the system(such as the study we have performed on accuracyof attribute-level linkages [9] and linkage point dis-

    covery [16]). Nor do we intend to evaluate the effec-tiveness of our user interface through a large-scaleuser study, which is a topic of future work and be-yond the scope of this paper.

    Table 1 provides a summary of the source charac-teristics in the two scenarios, and Table 2 providesthe total number of links found across these sources.Each source is in itself composed of multiple datasets. We therefore provide a summary of the num-ber of links between data sources, as well as the

    50 SIGMOD Record, December 2014 (Vol. 43, No. 4)

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    9/12

    Table 1: Summary of Data SourcesData Source Types Instances Tables/filesBug reports 201 7M 1Bug fixes 95 121M 7Freebase 1,069 44M NADBpedia 155 2M NADublinked 1,569 22M 485

    Table 2: Links Across Data Sources TypesData Src/Data Src #Links Data Src/Data Src #LinksBug fixes/Bug fixes 1,510 Bug reports/Freebase 298Bug fixes/Bug reports 1,209 Bug reports/Bug reports 316Bug fixes/DBpedia 25 Dublinked/Dublinked 288,045Bu g fix es/ Fr eeb ase 1 ,21 6 D ub lin ked /DB ped ia 2 25Bu g r ep orts /DBp ed ia 4 D ub lin ked /Freeb as e 2 ,3 51

    summary of links within a single data source (e.g.,a single data source like Dublinked is composed ofseveral hundred files). The number of links is pro-vided to demonstrate that the system computes alarge number of them. It is not our intent here tocharacterize them by the standard metrics of preci-sion and recall (cf. [9]). As the links are used pri-marily within the context of a rather focused search,

    we illustrate in the use cases below how sample linksmay help data discovery and analysis.

    4.1 Dublinked

    The city of Dublin has a set of data from differentgovernment agencies that is published in a numberof different file formats (see: http://dublinked.ie/).At the time of this writing, Helix could access 203collections. Each collection consists of multiple files,resulting in 501 files with supported formats thatbroke down into 206 XLS, 148 CSV, 90 DBF, and57 XML files. Helix indexed and pre-processed 485files, but 16 files could not be indexed due to pars-ing errors. Our main use case here is data integra-tion across the different agency data, but we alsodecided to connect the Dublinked data to Freebaseand DBpedia, to determine if we could use the lat-ter two sources as some form of generic knowledge.For the pre-processing step, we processed DBpediaand Freebase as RDF dumps.

    The value of integrating information across filesand across government agencies is obvious, but weillustrate here a few examples, based on links dis-covered in our pre-processing step, in Table 3. Hereare some examples of questions that a city officialcan now construct queries for, based on Helix dis-covered linkages in the data shown in the table:

    1. Find schools that are polling stations, so that thecity can prepare for extra traffic at schools duringvoting periods.

    2. Find disabled parking stations that will be affectedby pending gully repairs, to ensure accessibilitywill be maintained in a specific region of the city.

    3. Find recycling stations that handle both cans andglass to route waste materials to the right stations.

    Table 3: Sample Links for the Dublinked ScenarioProperty Pairs Scorexml://School-Enrollment/Short-Namexml://Polling-Stations-table/Name

    0.82

    csv://DisabledParkingBays/Street csv://GullyRepairsPending/col2

    0.68

    xls://CanRecycling/col0 xls://GlassRecycling/col0

    0.71

    csv://PostersPermissionsOnPoles/Org

    csv://CandidatesforElection2004/col2 0.54csv://CandidatesforElection2004/col1 csv:/CandidatesforLocalElection2009/col5

    0.97

    csv://PlayingPitches/FACILITY-NAME csv://PlayAreas/Name

    0.40

    csv://FingalNIAHSurvey/NAME http://rdf.freebase.com/architecture/structure/name

    0.56

    dbf://Nature-Development-Areas/NAMEhttp://rdf.freebase.com/sports/golf-course/name

    0.55

    csv://ProtectedStructures/StructureName http://dbpedia.org/HistoricPlace/label

    0.42

    Table 4: Type Clusters for the Dublinked ScenarioType Clustersxml://SchoolEnrollment20092010-1304csv://SchoolEnrollment20102011-2139xml://SchoolEnrollment20102011-2146csv://SchoolEnrollment20082009-1301xml://Schoolenrollment20082009-1303

    csv://GullyCleaningDaily2004-11CENTRALAREA-1517csv://GullyCleaningDaily2004-11NORTHCENTRALAREA-1518csv://GullyCleaningDaily2004-11NORTHWESTAREA-1518csv://GullyCleaningDaily2004-11SOUTHEASTAREA-1519

    4. Find organizations who have the most number ofpermissions to put posters on poles, to assess or-ganizations with maximal reach to citizens.

    In general, links alert users to the possibility ofrelated data that could be pooled before any ana-lytics is performed. For instance, any analytics onplay areas would likely need to include the data inPlayAreas file as well as the Play pitches file. Sim-ilarly, time series analysis of election data would

    likely include the 2004 file as well as the 2009 file.Finally, links to external data sets can easily imbuethe data with broader semantics. As examples, theName column in the FingalNIAHSurvey file refersto architectural structures, but another column alsocalled Name in the Nature-Development-Areas fileis really about golf courses or play areas. Similarly,the StructuredName column in the ProtectedStruc-tures file is about historic structures.

    Table 4 shows two sample type clusters that He-lix discovered in the Dublinked data. Recall thattype clusters are based on similarity of the schemaelements in the type, as well as the instance similar-

    ity of each of those elements. The first cluster (filesstarting with SchoolEnrollment*) groups data by yeardespite changes in the data format. The secondcluster (files starting with GullyCleaningDaily2004*)discovered by Helix groups data by area, as is ap-parent from the titles of the files. Following ourdesign goals in Helix, the system itself is not tryingto interpret the semantics of each discovered clus-ter. It will provide a tool for a knowledge worker tospecify data sets for meta-analysis.

    SIGMOD Record, December 2014 (Vol. 43, No. 4) 51

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    10/12

    4.2 CRM

    In most enterprises, maintaining a consistentview of customers is key for customer relationshipmanagement (CRM). This task is made difficult bythe fact that the notion of a customer frequentlychanges with business conditions. For instance, if

    an enterprise has a customerIBM and also a cus-tomerSoftLayer, they are distinct entities up un-til the point that one acquires the other. After theacquisition, the two resolve to the same entity. Theprocess of keeping these entities resolved and up todate in the real world is often a laborious manualprocess, which involves looking up mergers and ac-quisitions on sites like Wikipedia and then creatingscripts to unify the companies involved. Our sec-ond scenario targets this use case. The real worldsources involved are (a) a relational database witha single table that tracks defects against products(b) a relational database that tracks fixes for the de-

    fects in the defect tracking database (with 7 tables one per product), (c) an RDF version of Wikipedia,from Freebase/DBpedia.

    The query that the knowledge worker is inter-ested in is a picture of the number of defects fixedfor each customer (where each customer is groupedor resolved by merger and acquisition data). Wehighlight the features of Helix that help the userbuild this query. We illustrate what steps a userwould take in Helix if her intent is to build a tableof customer records of bugs and their correspond-ing fixes, accounting for the latest mergers and ac-quisitions. Note that because much of this data isproprietary, we do not display confidential results.Step 1 The user issues a keyword search on a cus-tomer name, such as IBM, to see what they canfind. The hits returned include records in the bugdatabase, as well as nodes in the Freebase/DBpediaRDF graph which match IBM (e.g., IBM, IBM AIX,etc). The user then clicks a particular hit in thebug reports database to explore the record in thecontext of the original table/graph. The user seesthe larger context for the table (other records inthe column that contains IBM, and other columnsin the table that are related to the CUST-NAME col-umn within the same table). More importantly, theuser finds other properties that also contain similardata (as an example, see Table 5 that shows somereal links found by Helix). If the user browses theCUST-NAME column in the bug reports database, Helixrecommends the CUSTOMER column in the bug fixesdatabase, and the /business/organizationtype in theRDF Freebase graph based on the links.Step 2 The next step is the creation by the user ofmultiple virtual views that are placed on the data

    Table 5: Sample Links for the CRM scenarioProperty Pairs Scorerdb://Bug-Reports/CUST-NAMErdb://Bug-Fixes/Product1/CUSTOMER-NAME

    0.75

    rdb://Bug-Reports/CUST-NAMErdb://Bug-Fixes/Product2/CUSTOMER-NAME

    0.74

    rdb://Bug-Reports/CUST-NAMEhttp://rdf.freebase.com/business-operation/name

    0.47

    rdb://Bug-reports/CUST-NAMEhttp://dbpedia.org/Company/label

    0.28

    shelf (see Figure 11). Step 2 is a direct outcomeof the data exploration conducted by the user inStep 1, where the user finds relevant data, and nowwants to subset it for their task. For this example,we assume the user creates 3 virtual views. Thefirst view contains a subset of bug reporting datawith the columns CUSTOMER and BUG NUMBER, the sec-ond contains a subset of the bug fixes data withthe columns BUG NO, FIX NO, and the third containsa subset of Freebase data, with /business/employer,and its relationship to its acquisitions through the/organization/companiesAcquired attribute.Step 3 This step involves using semantic joins

    to build more complex views customized for theusers task. Here, the user likely joins Views 1and 2 on BUG NUMBER and BUG NO to create View 4of bugs that were fixed for different customers.Then, the user joins Views 3 and 4 on CUSTOMERand /organization/companiesAcquired to create View5 of bugs and fixes by customer, where the cus-tomer record also reflects any companies acquiredby customers in the bug report/fixing sources. Atthis point, the user could union View 4 with View5 to find a count of bugs and fixes delivered to acustomer and any of its acquisitions. Figure 11shows all the steps in the process. In the figure,

    notice that a bug like 210 which normally wouldonly be attributed to customer SoftLayer is nowalso counted as part of the bugs for customer IBMsince the latter acquired the former. Knowledge ofthese acquisitions can be used to further refine theresult by, say, removing allSoftLayerentries sincethey are already considered as part ofIBM.

    Figure 11: Steps in the CRM Scenario

    52 SIGMOD Record, December 2014 (Vol. 43, No. 4)

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    11/12

    4.3 Other Use Cases

    In addition to the two use cases described above,we have used Helix in a number of other domainsand use cases. We have found unexpected cor-relations among data sets that require examin-ing instance linkages. An example is discovering

    a rather strong connection from company nameswhose products have been recalled to names of com-panies that make Peanut Butter products, com-pared to say, those that make H1N1 products orVegetable Protein products. This scenario usespublic data published by the U.S. Department ofHealth and Human Services. In such scenarios, theinstance linkages performed through the user inter-face are examined to measure the relative impor-tance of the discovered links. Another discovery isthe use of unexpected labels, or changes to the typeof data instances stored without a change in theschema. For example, in a scenario involving air

    quality data from various government agencies, weobserved schema elements labeled as zip that con-tained string-valued addresses. Note that all thesescenarios have been performed using a system thatcan be set up by non-expert users who have littleor no technical background on data managementtechnologies; they only need to specify data accessmechanism for input data sources.

    5. RELATED WORK

    Our work builds upon and extends techniquesfrom several research areas including data manage-

    ment, information retrieval, semantic web, and userinterface design. In terms of the overall system,Helix can be seen as a novel DataSpace SupportPlatform (DSSP). It offers many of the features en-visioned for DSSPs by Halevy et al. [12] includingdealing with data and applications in a wide varietyof formats, providing keyword search over heteroge-neous sources, and providing tools and pathwaysto create tighter integration of data in the space asnecessary. To our knowledge, Helix is the first suchsystem that allows generic pay-as-you-go integra-tion mechanism that works on heterogeneous dataacross a wide variety of domains and applications.

    Previous work has proposed systems that performanalysis and pay-as-you-go integration in specificdomains. Kite [22] supports keyword search overmultiple unrelated relational databases, but seman-tic integration is achieved using foreign key discov-ery techniques that are not well-adapted to tree-and graph-based data sources, and it does not scalewell to a large number of databases. iTrails [27]accommodates semi-structured data sources, andits internal data model is similar to Helixs local

    schema graphs. Its integration semantics are pro-vided throughtrails, query rewriting rules specifiedin an XPath-like language. These trails are writtenby the system provider, though the authors proposemethods for automated generation. The Q system[25] has several features similar our system: it con-

    structs a schema graph over structured and semi-structured data sources, with edges representingboth structural and semantic relationships, includ-ing ones discovered through schema matching; andits users provide feedback to improve query results.Qs domain is primarily scientific data sources thatare reasonably well-curated. It generates queriesfrom keywords by computing top-k tree matchesover the schema graph, then displays results di-rectly to users, while Helix utilizes an iterative,link-following approach to incrementally build re-sults. With Q, users provide explicit feedback onresults based on both the answers and the queries

    (trees) that produced the answers, requiring a fairdegree of technical sophistication; our system de-rives implicit feedback based on what users do withresults. Google Fusion Tables [11] emphasizes datasharing, visualization, and collaboration on Web-based tabular data sources, with only simple dataintegration support. QuerioCity [18] is designed tocatalog, index, and query city government data. Itsapproach is similar to our support of semistructuredfile repositories, although the specific domain allowscertain tasks to be further automated (e.g., auto-matic linkage to DBpedia entities and types).

    Our work on the user interface is related to re-

    search on providing non-expert users with searchand query capability over standard database man-agement systems. In particular, our goal is pro-viding an exploratory search [19] mechanism overlarge heterogeneous data sources for users to notonly perform lookup, but also learn and in-vestigate. In terms of UI elements, relevant to ourwork is the Explorator system [7], that allows usersto navigate through RDF data and run SPARQLqueries by creation of facets and set operations. Ouruse of social guidance is also similar in nature to thesocial aspects of RExplorator [6], which extends Ex-plorator with the ability to reuse results previously

    found by other users. Helix notably differs from thepreviously mentioned prior work [6, 7, 19, 28] in itssupport for navigation through heterogeneous dataand its unique online linkage discovery capability.

    6. CONCLUSION

    In this paper, we described Helix, a system thatallows knowledge workers and data scientists to ex-plorea large number of data sources using a unified

    SIGMOD Record, December 2014 (Vol. 43, No. 4) 53

  • 7/25/2019 1. Exploring Big Data with Helix Finding Needles in a Big Haystack.pdf

    12/12

    intuitive user interface. Users can find portions ofthe data that are of interest to them using sim-ple keyword search, navigate to other relevant por-tions of the data, and iteratively build customizedviews over one or more data sources. These featuresrely on highly scalable schema and linkage discov-

    ery performed as a pre-processing step, combinedwith online (and in part social) guidance on link-age and navigation. We demonstrated capabilitiesof our system through a number of usage scenarios.

    We are currently working on extending Helix in anumber of directions. On the user interface side, weare extending the social guidance feature throughmore complex query log analysis. Our goal is topredict a users future steps through profiles basedon similarity analysis of previous users queries.We are also working on making user views accessi-ble through a standard (RDF/SPARQL) API. Thiswill allow non-expert users to build a custom and

    potentially complex knowledge graph, an alterna-tive to the expensive, laborious task of building anenterprise-scale ontology for data analytics.

    7. REFERENCES[1] D. Agrawal, S. Das, and A. El Abbadi. Big Data

    and Cloud Computing: Current State and FutureOpportunities. In EDBT, pages 530533, 2011.

    [2] M. A. Bornea, J. Dolby, A. Kementsietsidis,K. Srinivas, P. Dantressangle, O. Udrea, andB. Bhattacharjee. Building an Efficient RDF Storeover a Relational Database. In SIGMOD, pages121132, 2013.

    [3] A. Z. Broder. On The Resemblance andContainment of Documents. In SEQUENCES,

    pages 2129. IEEE Computer Society, 1997.[4] M. S. Charikar. Similarity Estimation Techniquesfrom Rounding Algorithms. In STOC, pages380388, 2002.

    [5] Peter Christen. A Survey of Indexing Techniquesfor Scalable Record Linkage and Deduplication.IEEE Trans. Knowl. Data Eng., 24(9):15371555,2012.

    [6] Marcelo Cohen and Daniel Schwabe. RExplorator- Supporting Reusable Explorations of SemanticWeb Linked Data. In ISWC Posters&Demos,2010.

    [7] S.F.C. de Araujo and D. Schwabe. Explorator: ATool for Exploring RDF Data through DirectManipulation. In LDOW2009, 2009.

    [8] X. Dong and A. Y. Halevy. Indexing Dataspaces.In SIGMOD, pages 4354, 2007.

    [9] S. Duan, A. Fokoue, O. Hassanzadeh,A. Kementsietsidis, K. Srinivas, and M. J. Ward.Instance-Based Matching of Large OntologiesUsing Locality-Sensitive Hashing. In ISWC, pages4964, 2012.

    [10] R. Goldman and J. Widom. Approximatedataguides. In Proceedings of the Workshop onQuery Processing for Semistructured Data andNon-Standard Data Formats, pages 436445, 1999.

    [11] H. Gonzalez, A. Y. Halevy, C. S. Jensen,A. Langen, J. Madhavan, R. Shapley, W. Shen,and J. Goldberg-Kidon. Google Fusion Tables:

    Web-Centered Data Management andCollaboration. In SIGMOD, pages 10611066.2010.

    [12] A. Y. Halevy, M. J. Franklin, and D. Maier.Principles of dataspace systems. In PODS, pages19, 2006.

    [13] O. Hassanzadeh, F. Chiang, R. J. Miller, andH. C. Lee. Framework for Evaluating Clustering

    Algorithms in Duplicate Detection. PVLDB,2(1):12821293, 2009.

    [14] O. Hassanzadeh, S. Duan, A. Fokoue,A. Kementsietsidis, K. Srinivas, and M. J. Ward.Helix: Online Enterprise Data Analytics. InWWW, pages 225228, 2011.

    [15] O. Hassanzadeh, A. Kementsietsidis, L. Lim, R. J.Miller, and M. Wang. Semantic Link Discoveryover Relational Data. In Semantic Search over theWeb, pages 193224. 2012.

    [16] O. Hassanzadeh, K. Q. Pu, S. Hassas Yeganeh,R. J. Miller, M. Hernandez, L. Popa, and H. Ho.Discovering Linkage Points over Web Data.PVLDB, 6(6):444456, 2013.

    [17] S. Hassas Yeganeh, O. Hassanzadeh, and R. J.Miller. Linking Semistructured Data on the Web.

    In WebDB, 2011.[18] V. Lopez, S. Kotoulas, M. L. Sbodio,M. Stephenson, A. Gkoulalas-Divanis, and P. M.Aonghusa. QuerioCity: A Linked Data Platformfor Urban Information Management. In ISWC,pages 148163, 2012.

    [19] G. Marchionini. Exploratory Search: FromFinding to Understanding. CACM, 49(4):4146,2006.

    [20] S. Nestorov, J. D. Ullman, J. L. Wiener, and S. S.Chawathe. Representative Objects: ConciseRepresentations of Semistructured, HierarchialData. In ICDE, pages 7990, 1997.

    [21] E. Rahm and P. A. Bernstein. A Survey ofApproaches to Automatic Schema Matching.VLDB Journal, 10(4):334350, 2001.

    [22] M. Sayyadian, H. LeKhac, A. Doan, andL. Gravano. Efficient Keyword Search AcrossHeterogeneous Relational Databases. In ICDE,pages 346355. 2007.

    [23] Y. Sismanis, P. Brown, P. J. Haas, andB. Reinwald. GORDIAN: Efficient and ScalableDiscovery of Composite Keys. In VLDB, pages691702, 2006.

    [24] SPARQL Query Language for RDF.http://www.w3.org/TR/rdf-sparql-query/.

    [25] P. P. Talukdar, M. Jacob, M. S. Mehmood,K. Crammer, Z. G. Ives, F. Pereira, and S. Guha.Learning to Create Data-Integrating Queries.PVLDB, 1(1):785796, 2008.

    [26] T. Tran, H. Wang, S. Rudolph, and P. Cimiano.Top-k Exploration of Query Candidates forEfficient Keyword Search on Graph-Shaped

    (RDF) Data. In ICDE, pages 405416, 2009.[27] M. A. Vaz Salles, J.-P. Dittrich, S. K.

    Karakashian, O. R. Girard, and L. Blunschi.iTrails: Pay-as-you-go Information Integration inDataspaces. In VLDB, pages 663674. 2007.

    [28] R. W. White, S. M. Drucker, G. Marchionini,M. A. Hearst, and m. c. schraefel. ExploratorySearch and HCI: Designing and EvaluatingInterfaces to Support. Exploratory SearchInteraction. In CHI Extended Abstracts, pages28772880, 2007.

    54 SIGMOD Record, December 2014 (Vol. 43, No. 4)