blob: 80a3d842575b290e120307204272849169622058 [file] [log] [blame]
<!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 &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>