0.5.0-incubating/TypeSystem.html (200 lines of code) (raw):
<!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 - 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://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="">Type System</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>Type System<a name="Type_System"></a></h2></div>
<div class="section">
<h3>Introduction<a name="Introduction"></a></h3></div>
<div class="section">
<h3>Overview<a name="Overview"></a></h3></div>
<div class="section">
<h4>Data Types Overview<a name="Data_Types_Overview"></a></h4>
<p><img src="data-types.png" alt="" /></p></div>
<div class="section">
<h4>Types Instances Overview<a name="Types_Instances_Overview"></a></h4>
<p><img src="types-instances.png" alt="" /></p></div>
<div class="section">
<h3>Details<a name="Details"></a></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 "PHI" - 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 & 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 ©                    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>