<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2015-12-30
 | 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="20151230" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Atlas &#x2013; Type System</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://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="http://www.apache.org/dyn/closer.cgi/incubator/atlas/0.5.0-incubating/"  title="0.5-incubating">0.5-incubating</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="latest">latest</a></li>
                      <li><a href="../0.6.0-incubating/index.html"  title="0.6-incubating">0.6-incubating</a></li>
                      <li><a href="../0.5.0-incubating/index.html"  title="0.5-incubating">0.5-incubating</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="">Type System</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 2015-12-30</li> <li class="divider pull-right">|</li>
              <li id="projectVersion" class="pull-right">Version: 0.6-incubating</li>
            
                            </ul>
      </div>

      
                        
        <div id="bodyColumn" >
                                  
            <div class="section">
<h2><a name="Type_System"></a>Type System</h2></div>
<div class="section">
<h3><a name="Introduction"></a>Introduction</h3></div>
<div class="section">
<h3><a name="Overview"></a>Overview</h3></div>
<div class="section">
<h4><a name="Data_Types_Overview"></a>Data Types Overview</h4>
<p><img src="images/twiki/data-types.png" alt="" /></p></div>
<div class="section">
<h4><a name="Types_Instances_Overview"></a>Types Instances Overview</h4>
<p><img src="images/twiki/types-instances.png" alt="" /></p></div>
<div class="section">
<h3><a name="Details"></a>Details</h3>
<p>### Structs are like C structs - they don't have an identity - no independent lifecycle - like a bag of properties - like in hive, also</p>
<p>### Classes are classes - like any OO class - have identity - can have inheritence - can contain structs - don't necessarily need to use a struct inside the class to define props - can also define props using <a href="./AttributeDefinition.html">AttributeDefinition</a> using the basic data types - classes are immutable once created</p>
<p>### On search interface: - can search for all instances of a class - classes could become tables in a relational system, for instance 	- also databases, columns, etc.</p>
<p>### Traits is similar to scala - traits more like decorators (?) - traits get applied to instances - not classes 	- this satisfies the classification mechanism (ish) - can have a class instance have any number of traits - e.g. security clearance - any Person class could have it; so we add it as a mixin to the Person class 	- security clearance trait has a level attribute 	- traits are labels 	- each label can have its own attribute - reason for doing this is: 	- modeled security clearance trait 	- want to prescribe it to other things, too 	- can now search for anything that has security clearance level = 1, for instance</p>
<p>### On Instances: - class, trait, struct all have bags of attributes - can get name of type associated with attribute - can get or set the attribute in that bag for each instance</p>
<p>### On Classification: - create column as a class - create a trait to classify as &quot;PHI&quot; - would create the instance of the column with the PHI trait - apply traits to instances - CAN'T apply traits to class</p>
<p>### Other useful information</p>
<p><a href="./HierarchicalClassType.html">HierarchicalClassType</a> - base type for <a href="./ClassType.html">ClassType</a> and <a href="./TraitType.html">TraitType</a> Instances created from Definitions</p>
<p>Every instance is referenceable - i.e. something can point to it in the graph db <a href="./MetadataService.html">MetadataService</a> may not be used longterm - it is currently used for bootstrapping the repo &amp; type system</p>
<p>Id class - represents the Id of an instance</p>
<p>When the web service receives an object graph, the <a href="./ObjectGraphWalker.html">ObjectGraphWalker</a> is used to update things 	- <a href="./DiscoverInstances.html">DiscoverInstances</a> is used to discover the instances in the object graph received by the web service</p>
<p><a href="./MapIds.html">MapIds</a> assigns new ids to the discovered instances in the object graph</p>
<p>Anything under the storage package is not part of the public interface</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>
