

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Version</title>
    <meta name="description" content="Project Community Page">
    <meta name="author" content="">

    <!-- Enable responsive viewport -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- Le styles -->
    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
    <!-- Le fav and touch icons -->
    <link rel="shortcut icon" href="/assets/themes/apache/img/icon.png">
    <!-- Update these with your own images
      <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
      <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
      <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
    -->

  </head>

  <body>

    
    <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="/">
            <img src="/assets/themes/apache/img/logo_white.png" width="80">
          </a>
        </div>
        <nav class="navbar-collapse collapse" role="navigation">
          <ul class="nav navbar-nav navbar-right">
            <li id="community">
              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
               <ul class="dropdown-menu">
                <li><a href="/community">Get Involved</a></li>
                <li><a href="/community-members">Who we are</a></li>
               </ul>
            </li>
            <li><a href="/news">News</a></li>
            <li><a href="/marvin-platform-book/SUMMARY">Document</a></li>
            <li><a href="https://github.com/apache/incubator-marvin">GitHub</a></li>
            <li id="apache">
              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
               <ul class="dropdown-menu">
                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
                <li><a href="http://www.apache.org/licenses/">Apache License</a></li>
                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
                </ul>
            </li>
          </ul>
        </nav>
      </div>
    </div>

    


    <div class="container">
      


<div class="row">
  <div class="col-md-12">
    <!--

-->

<h1 id="version-overview">Version Overview</h1>

<p>Here we will explain the design pattern for MARVIN AI</p>

<hr />

<p><a href="/marvin-platform-book/SUMMARY">BACK TO SUMMARY</a></p>

  </div>
</div>


      <hr>
      <footer>
        <footer class="site-footer">
    <div class="wrapper">
        <div class="footer-col-wrapper">
            
            Apache Marvin-AI is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
            accepted projects until a further review indicates that the infrastructure, communications, and decision
            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
            the project has yet to be fully endorsed by the ASF.
            <hr>
            
            <div style="text-align:center;">
                
                <div style="margin-top: 20px; margin-bottom: 20px;">
                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
                                                               alt="Apache Incubator"/></a>
                </div>
                
                <div>
                    Copyright &copy; 2016 <a href="http://www.apache.org">The Apache Software Foundation</a>.
                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
                    2.0</a>.
                    <br>
                    
                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
                    Software Foundation.
                    
                </div>
            </div>
        </div>
    </div>
</footer>

      </footer>
    </div>

    
    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>

    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>


  </body>
</html>

