<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2015-07-09
 | Rendered using Apache Maven Fluido Skin 1.3.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20150709" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Metadata and Governance - Search</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>

                          
        
<script type="text/javascript">$( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );</script>
          
            </head>
        <body class="topBarEnabled">
          
                        
                    
                

    <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
                                  <div class="container" style="width: 68%;"><div class="nav-collapse">
            
                
                                <ul class="nav">
                          <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Atlas <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="index.html"  title="About">About</a>
</li>
                  
                      <li>      <a href="https://cwiki.apache.org/confluence/display/ATLAS"  title="Wiki">Wiki</a>
</li>
                  
                      <li>      <a href="https://cwiki.apache.org/confluence/display/ATLAS"  title="News">News</a>
</li>
                  
                      <li>      <a href="https://git-wip-us.apache.org/repos/asf/incubator-atlas.git"  title="Git">Git</a>
</li>
                  
                      <li>      <a href="https://svn.apache.org/repos/asf/incubator/atlas"  title="Svn">Svn</a>
</li>
                  
                      <li>      <a href="https://issues.apache.org/jira/browse/ATLAS"  title="Jira">Jira</a>
</li>
                  
                      <li>      <a href="https://cwiki.apache.org/confluence/display/ATLAS/PoweredBy"  title="Powered by">Powered by</a>
</li>
                  
                      <li>      <a href="http://blogs.apache.org/atlas/"  title="Blog">Blog</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Information <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="project-info.html"  title="Summary">Summary</a>
</li>
                  
                      <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                  
                      <li>      <a href="http://webchat.freenode.net?channels=apacheatlas&uio=d4"  title="IRC">IRC</a>
</li>
                  
                      <li>      <a href="team-list.html"  title="Team">Team</a>
</li>
                  
                      <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
</li>
                  
                      <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
</li>
                  
                      <li>      <a href="license.html"  title="License">License</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="https://cwiki.apache.org/confluence/display/ATLAS"  title="Coming soon">Coming soon</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="index.html"  title="current">current</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Resources <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="index.html"  title="Overview">Overview</a>
</li>
                  
                      <li>      <a href="QuickStart.html"  title="Getting Started">Getting Started</a>
</li>
                  
                      <li>      <a href="Architecture.html"  title="Architecture">Architecture</a>
</li>
                  
                      <li>      <a href="InstallationSteps.html"  title="Installation">Installation</a>
</li>
                  
                      <li>      <a href="TypeSystem.html"  title="Type System">Type System</a>
</li>
                  
                      <li>      <a href="Configuration.html"  title="Configuration">Configuration</a>
</li>
                  
                      <li>      <a href="Security.html"  title="Security">Security</a>
</li>
                  
                      <li>      <a href="api/rest.html"  title="Rest API">Rest API</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="http://www.apache.org/foundation/how-it-works.html"  title="How Apache Works">How Apache Works</a>
</li>
                  
                      <li>      <a href="http://www.apache.org/foundation/"  title="Foundation">Foundation</a>
</li>
                  
                      <li>      <a href="http://www.apache.org/foundation/sponsorship.html"  title="Sponsoring Apache">Sponsoring Apache</a>
</li>
                  
                      <li>      <a href="http://www.apache.org/foundation/thanks.html"  title="Thanks">Thanks</a>
</li>
                          </ul>
      </li>
                  </ul>
          
                      <form id="search-form" action="http://www.google.com/search" method="get"  class="navbar-search pull-right" >
    
  <input value="http://atlas.incubator.apache.org" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
          
                            
            
            
            
    <iframe src="http://www.facebook.com/plugins/like.php?href=http://atlas.incubator.apache.org/atlas-docs&send=false&layout=button_count&show-faces=false&action=like&colorscheme=dark"
        scrolling="no" frameborder="0"
        style="border:none; width:80px; height:20px; margin-top: 10px;"  class="pull-right" ></iframe>
                        
    <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>

        <ul class="nav pull-right"><li style="margin-top: 10px;">
    
    <div class="g-plusone" data-href="http://atlas.incubator.apache.org/atlas-docs" data-size="medium"  width="60px" align="right" ></div>

        </li></ul>
                              
                   
                      </div>
          
        </div>
      </div>
    </div>
    
        <div class="container">
          <div id="banner">
        <div class="pull-left">
                                                  <a href=".." id="bannerLeft">
                                                                                                <img src="images/atlas-logo.png"  alt="Apache Atlas" width="200px" height="45px"/>
                </a>
                      </div>
        <div class="pull-right">                  <a href="http://incubator.apache.org" id="bannerRight">
                                                                                                <img src="images/apache-incubator-logo.png"  alt="Apache Incubator"/>
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                              <li class="">
                    <a href="http://www.apache.org" class="externalLink" title="Apache">
        Apache</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="index.html" title="Atlas">
        Atlas</a>
        </li>
      <li class="divider ">/</li>
        <li class="">Search</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 2015-07-09</li> <li class="divider pull-right">|</li>
              <li id="projectVersion" class="pull-right">Version: 0.5-incubating</li>
            
                            </ul>
      </div>

      
                        
        <div id="bodyColumn" >
                                  
            <div class="section">
<h2>Search<a name="Search"></a></h2>
<p>Atlas exposes search over the metadata in two ways:</p>
<ul>
<li>Search using DSL</li>
<li>Full-text search</li></ul></div>
<div class="section">
<h3>Search DSL Grammar<a name="Search_DSL_Grammar"></a></h3>
<p>The DSL exposes an SQL like query language for searching the metadata based on the type system. The grammar for the DSL is below.</p>
<div class="source">
<pre>
queryWithPath: query ~ opt(WITHPATH)

query: rep1sep(singleQuery, opt(COMMA))

singleQuery: singleQrySrc ~ opt(loopExpression) ~ opt(selectClause)

singleQrySrc = FROM ~ fromSrc ~ opt(WHERE) ~ opt(expr ^? notIdExpression) |
        WHERE ~ (expr ^? notIdExpression) |
        expr ^? notIdExpression |
        fromSrc ~ opt(WHERE) ~ opt(expr ^? notIdExpression)

fromSrc: identifier ~ AS ~ alias | identifier

loopExpression: LOOP ~ (LPAREN ~&gt; query &lt;~ RPAREN) ~ opt(intConstant &lt;~ TIMES) ~ opt(AS ~&gt; alias)

selectClause: SELECT ~ rep1sep(selectExpression, COMMA)

selectExpression:  expr ~ opt(AS ~&gt; alias)

expr:  compE ~ opt(rep(exprRight))

exprRight: (AND | OR) ~ compE

compE:
        arithE ~ (LT | LTE | EQ | NEQ | GT | GTE) ~ arithE |
            arithE ~ (ISA | IS) ~ ident  |
            arithE ~ HAS ~ ident  |
            arithE

arithE: multiE ~ opt(rep(arithERight))

arithERight: (PLUS | MINUS) ~ multiE

multiE: atomE ~ opt(rep(multiERight))

multiERight: (STAR | DIV) ~ atomE

atomE: literal | identifier | LPAREN ~&gt; expr &lt;~ RPAREN

identifier: rep1sep(ident, DOT)

alias: ident | stringLit

literal: booleanConstant |
        intConstant  |
        longConstant  |
        floatConstant |
        doubleConstant  |
        stringLit

</pre></div>
<p>Grammar language: {noformat} opt(a)     =&gt; a is optional ~            =&gt; a combinator. 'a ~ b' means a followed by b rep         =&gt; zero or more rep1sep =&gt; one or more, separated by second arg. {noformat}</p>
<p>Language Notes:</p>
<ul>
<li>A <b><a href="./SingleQuery.html">SingleQuery</a></b> expression can be used to search for entities of a <i>Trait</i> or <i>Class</i>.</li></ul>Entities can be filtered based on a 'Where Clause' and Entity Attributes can be retrieved based on a 'Select Clause'.
<ul>
<li>An Entity Graph can be traversed/joined by combining one or more <a href="./SingleQueries.html">SingleQueries</a>.</li>
<li>An attempt is made to make the expressions look SQL like by accepting keywords &quot;SELECT&quot;,</li></ul>&quot;FROM&quot;, and &quot;WHERE&quot;; but these are optional and users can simply think in terms of Entity Graph Traversals.
<ul>
<li>The transitive closure of an Entity relationship can be expressed via the <i>Loop</i> expression. A</li></ul><i>Loop</i> expression can be any traversal (recursively a query) that represents a <i>Path</i> that ends in an Entity of the same <i>Type</i> as the starting Entity.
<ul>
<li>The <i><a href="./WithPath.html">WithPath</a></i> clause can be used with transitive closure queries to retrieve the Path that</li></ul>connects the two related Entities. (We also provide a higher level interface for Closure Queries see scaladoc for 'org.apache.metadata.query.ClosureQuery')
<ul>
<li>There are couple of Predicate functions different from SQL:
<ul>
<li><i>is</i> or <i>isa</i>can be used to filter Entities that have a particular Trait.</li>
<li><i>has</i> can be used to filter Entities that have a value for a particular Attribute.</li></ul></li></ul></div>
<div class="section">
<h4>DSL Examples<a name="DSL_Examples"></a></h4>
<p></p>
<ul>
<li>from DB</li>
<li>DB where name=&quot;Reporting&quot; select name, owner</li>
<li>DB has name</li>
<li>DB is <a href="./JdbcAccess.html">JdbcAccess</a></li>
<li>Column where Column isa PII</li>
<li>Table where name=&quot;sales_fact&quot;, columns</li>
<li>Table where name=&quot;sales_fact&quot;, columns as column select column.name, column.dataType, column.comment</li></ul></div>
<div class="section">
<h3>Full-text Search<a name="Full-text_Search"></a></h3>
<p>Atlas also exposes a lucene style full-text search capability.</p></div>
                  </div>
          </div>

    <hr/>

    <footer>
            <div class="container">
              <div class="row span12">Copyright &copy;                    2015
                        <a href="http://www.apache.org">Apache Software Foundation</a>.
            All Rights Reserved.      
                    
      </div>

                          
                <p id="poweredBy" class="pull-right">
                          <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
              </p>
        
                </div>
    </footer>
  </body>
</html>
