<!doctype html>
<html class="no-js" dir="ltr" lang="en-US">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=1100">
    <title>MADlib</title>

    <script src="https://use.typekit.net/qbv8hok.js"></script>
    <script>try{Typekit.load({ async: true });}catch(e){}</script>

    <link rel="shortcut icon" href="favicon.ico" />

    <link rel='stylesheet' href='style.css' type='text/css' media='all' />

    <script type='text/javascript' src='https://code.jquery.com/jquery-1.10.2.min.js'></script>
    <script type="text/javascript" src="html5lightbox.js"></script>
    <script type='text/javascript' src='master.js'></script>

</head>
<body class="page page-id-7 page-template page-template-default">
	<div class="header">
		<div class="container">
			<a href="index.html" class="logo">
				Home
			</a>
			<div class="nav">
				<div class="menu-primary-navigation-container"><ul id="menu-primary-navigation" class="menu"><li id="menu-item-27" class="menu-item menu-item-type-post_type menu-item-object-page page_item page-item-18 current_page_item menu-item-27"><a href="index.html">Home</a></li>
					<li id="menu-item-28" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28"><a href="product.html">Product</a></li>
					<li id="menu-item-25" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25"><a title="Documentation" href="documentation.html">Documentation</a></li>
					<li id="menu-item-24" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24"><a href="community.html">Community</a></li>
                                        <li class="li-asflinks">
                                            <select id="latest-asflinks" name="latest-asflinks" class="select-asflinks">
                                              <option value="">ASF Links</option>
                                              <option value="https://www.apache.org/">ASF Homepage</option>
                                              <option value="https://www.apache.org/events/current-event.html">Apache Events</option>
                                              <option value="https://www.apache.org/foundation/policies/conduct.html">Code of Conduct</option>
                                              <option value="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</option>
                                              <option value="https://www.apache.org/security/">Security</option>
                                              <option value="https://www.apache.org/foundation/sponsorship.html">Sponsorship</option>
                                              <option value="https://www.apache.org/foundation/thanks.html">Thanks</option>
                                            </select>
                                        </li>
					<li id="menu-item-26" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26 nav-button last"><a href="download.html">Download</a></li>
					</ul>
				</div>
			</div>
		</div>
	</div><div class="primary-content">
	<div class="container section-head">
		<div class="section-name">
			<h1 class="h2">Community</h1>
		</div>

			</div>
			<div class="container history">
    <div class="row">
        <div class="span4">
            <a href="https://www.youtube.com/watch?v=FhivplHZ4Q8"><img src='_media/video-community.png'></a>
        </div>
        <div class="span8">
            <p>Apache MADlib is an open source project that endeavors to adhere in all respects to the principles of <a href="https://apache.org/foundation/governance/">The Apache Way</a>.</p>
            <p>MADlib grew out of discussions between database engine developers, data scientists, IT architects and academics interested in new approaches to scalable, sophisticated in-database analytics. These discussions were written up in a paper in VLDB 2009 that coined the term &#8220;MAD Skills&#8221; for data analysis. The MADlib software project began the following year as a collaboration between researchers at UC Berkeley and engineers and data scientists at EMC/Greenplum (later Pivotal).</p>
            <p>In September 2015 MADlib was accepted into the Apache Software Foundation Incubator and graduated to a Top Level Project in July 2017.</p>
            <p>Some of the past and present participants in this project are:</p>
            <br/>
            <br/>
        </div>
    </div>
    <div class="row">
        <div class="span3 simple-box">
            <a href="https://pivotal.io/" class="center">
                <div class="history-logo">
                    <img src="_media/logos/vmw.png" alt="">
                </div>
                <h4><small>Providing core development and scalability testing</small></h4>
                <div class="more"><p class="inline-block pointer point-right">Learn More</p></div>
            </a>
        </div>
        <div class="span3 simple-box">
            <a href="https://db.cs.berkeley.edu/jmh/" class="center">
                <div class="history-logo">
                    <img src="_media/logos/berkeley.png" alt="">
                </div>
                <h4><small>Providing key research and development of scalable estimators</small></h4>
                <div class="more"><p class="inline-block pointer point-right">Learn More</p></div>
            </a>
        </div>
        <div class="span3 simple-box">
            <a href="https://cs.stanford.edu/people/chrismre/" class="center">
                <div class="history-logo">
                    <img src="_media/logos/stanford.png" alt="">
                </div>
                <h4><small>Providing key research in the area of convex optimization</small></h4>
                <div class="more"><p class="inline-block pointer point-right">Learn More</p></div>
            </a>
        </div>
        <div class="span3 simple-box">
            <a href="https://www.cise.ufl.edu/people/faculty/daisyw" class="center">
                <div class="history-logo">
                    <img src="_media/logos/florida.png" alt="">
                </div>
                <h4><small>Providing key research into text analytics</small></h4>
                <div class="more"><p class="inline-block pointer point-right">Learn More</p></div>
            </a>
        </div>
        <div class="span3 simple-box">
            <a href="https://cseweb.ucsd.edu/~arunkk/" class="center">
                <div class="history-logo">
                    <img src="_media/logos/ucsd.png" alt="">
                </div>
                <h4><small>Providing key research in artificial neural networks on distributed systems</small></h4>
                <div class="more"><p class="inline-block pointer point-right">Learn More</p></div>
            </a>
        </div>
    </div>
    <h4 class="center">If you are interested in joining our project please consider joining our <a href="#user-resources" title="User Info Page">User</a> or <a href="#dev-resources" title="Devel Info Page">Developer</a> mailing lists</a>. Everyone is welcome.</h4>

</div>
<div class="container section">
    <div class="row">
        <div class="span4">
            <h2>Reporting Issues</h2>
        </div>
        <div class="span8">
            <p>We need your feedback, so if you find a bug, would like to suggest an improvement, or create a request then please follow the steps below to let us know.</p>
            <ul>
                <li>Start by logging into <a href="https://issues.apache.org/jira/browse/MADLIB" title="System Dashboard - MADlib JIRA">MADlib JIRA</a>. If you don&#8217;t have an account yet you can create one yourself.</li>
                <li>To report a bug:</li>
                <ol class="list-nested">
                    <li>Create a new issue -> Bug.</li>
                    <li>Fill in the required (and optional) fields.</li>
                </ol>
                <li>To suggest an improvement or a new feature:</li>
                <ol class="list-nested">
                    <li>Create a new issue -> New Feature.</li>
                    <li>Fill in the required (and optional) fields.</li>
                </ol>
                <li>Submit the issue. You should receive an email confirmation. Thanks for your feedback!    </li>
            </ul>
        </div>
    </div>
</div>
<a name='user-resources' id='user-resources'></a>
<div class="container section">
    <div class="row">
        <div class="span4">
            <h2>User Resources</h2>
        </div>
        <div class="span8">
            <h4><a href="https://mail-archives.apache.org/mod_mbox/madlib-user/" title="ASF Mail">User Forum</a></h4>
            <p>Our online user forum open to discuss any topics of interest to users of the product.</p>
            <ul>
                <li><a href="mailto:user-subscribe@madlib.apache.org" title="User Info Page">Subscribe</a> to our user forum</li>
                <li><a href="https://mail-archives.apache.org/mod_mbox/madlib-user/" title="The User Archives">Browse</a> our user forum archives</li>
            </ul>
        </div>
    </div>
</div>
<a name='dev-resources' id='dev-resources'></a>
<div class="container section">
    <div class="row">
        <div class="span4">
            <h2>Developer Resources</h2>
        </div>
        <div class="span8">
            <h4><a href="https://mail-archives.apache.org/mod_mbox/madlib-dev/" title="Gmane Loom">Developer Forum</a></h4>
            <p>Our online developer forum open to discuss any topics of interest to open source contributors.</p>
            <ul>
                <li><a href="mailto:dev-subscribe@madlib.apache.org" title="Devel Info Page">Subscribe</a> to our developer forum</li>
                <li><a href="https://mail-archives.apache.org/mod_mbox/madlib-dev/" title="The Devel Archives">Browse</a> our developer forum archives</li>
            </ul>
<a name='contribution' id='contribution'></a>
            <h4><a href="https://github.com/madlib/madlib/wiki/Contribution-Guide">Contribution Guide</a></h4>
            <p>Step by step instructions guiding you through tho MADlib contribution model</p>
            <ul>
                <li><a href="https://cwiki.apache.org/confluence/display/MADLIB/Contribution+Guidelines" title="MADlib Contribution Guide">https://cwiki.apache.org/confluence/display/MADLIB/Contribution+Guidelines</a></li>
            </ul>
            <h4><a href="https://github.com/apache/madlib" title="madlib/madlib @ GitHub">Source Code Repository</a></h4>
            <ul>
                <li>Source code available on github, contributions welcome <a href="https://github.com/apache/madlib" title="madlib/madlib @ GitHub">https://github.com/apache/madlib</a></li>
            </ul>
            <h4>Design Documents</h4>
            <p>There are several resources aimed at helping new developers understand how MADlib is designed</p>
            <ul>
                <li><a href="https://cwiki.apache.org/confluence/display/MADLIB/Architecture">MADlib Architecture</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/MADLIB/Module+Anatomy">Anatomy of a MADlib Module</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/MADLIB/SQL+API+Guide">MADlib SQL API Style Guide</a></li>
                <li><a href="design.pdf">Technical Design Document</a></li>
            </ul>
        </div>
    </div>
</div>
<div class="resources">
    <div class="container por">
        <div class="row">
            <ul class="list-unstyled">

                <li class="span4">
<a name='research' id='research'></a>
                    <h2><small>Research</small></h2>
                    <p>Interaction and collaboration with the open source and academic communities continues to be a core foundation of our project. We have papers published in major conferences. Including:</p>
                    <ul>
                        <li><a href="https://db.cs.berkeley.edu/papers/vldb09-madskills.pdf">MAD Skills – VLDB 2009</a></li>
                        <li><a href="https://amplab.cs.berkeley.edu/publication/hybrid-in-database-inference-for-declarative-information-extraction/">Hybrid In-Database Inference for Declarative Information Extraction – SIGMOD 2011</a></li>
                        <li><a href="https://www.cs.stanford.edu/~chrismre/papers/bismarck-full.pdf">Towards a Unified Architecture for In-Database Analytics &#8211; SIGMOD 2012</a></li>
                        <li><a href="https://www.eecs.berkeley.edu/Pubs/TechRpts/2012/EECS-2012-38.html">The MADlib Analytics Library or MAD Skills, the SQL – VLDB 2012</a></li>
                        <li><a href="https://adalabucsd.github.io/papers/TR_2021_Cerebro-DS.pdf">Distributed Deep Learning on Data Systems: A Comparative Analysis of Approaches – 2021</a></li>
                    </ul>
                </li>
                <li class="span4">
<a name='datasets' id='datasets'></a>
                    <h2><small>Datasets</small></h2>
                    <p>There is a growing set of publically available datasets.  Here are some examples:</p>
                    <ul>
                        <li><a href="https://archive.ics.uci.edu/ml/index.php">UCI Machine Learning Repository</a></li>
                        <li><a href="https://datasetsearch.research.google.com/">Google Dataset Search</a></li>
                        <li><a href="https://www.kaggle.com/datasets">Kaggle Datasets</a></li>
                        <li><a href="https://www.kdnuggets.com/datasets/index.html">KDnuggets List of Datasets</a></li>
                    </ul>
                </li>
                <li class="span4">
                    <h2><small>Related Products</small></h2>
                    <ul>
                        <li><a href="https://postgresql.org">PostgreSQL</a></li>
                        <li><a href="https://greenplum.org/">Greenplum Database</a></li>
                        <li><a href="https://cran.r-project.org/web/packages/PivotalR/">PivotalR</a></li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</div>			</div>
    <div class="footer">
      <div class="container">
            <img src='https://apache.org/images/asf-logo.gif' width="310" height="80"/>
          <br/>
          <br/>
        <p>
          Copyright &copy; <script> var d = new Date();document.write(d.getFullYear());</script> <a href='https://www.apache.org/'>The Apache Software Foundation</a>, Licensed under the <a href='https://www.apache.org/licenses/LICENSE-2.0'>Apache License, Version 2.0.</a>
          <br>
          Apache, Apache MADlib, the Apache feather and the MADlib logo are trademarks of The Apache Software Foundation
        </p>
      </div>
    </div>
</body>
</html>
