<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8"/>
    <title>Podling Name Search Guide</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
    <meta name="keywords" content="">
    <meta name="generator" content="JBake">

    <!-- Le styles -->
    <link href="../css/incubator.css" rel="stylesheet">
    <link href="../css/bootstrap.css" rel="stylesheet">
    <link href="../css/asciidoctor.css" rel="stylesheet">
    <link href="../css/base.css" rel="stylesheet">
    <link href="../css/prettify.css" rel="stylesheet">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="../js/html5shiv.min.js"></script>
    <![endif]-->

    <!-- Fav and touch icons -->
    <!--<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
    <link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">-->
    <link rel="shortcut icon" href="https://www.apache.org/favicon.ico">
    <script src="https://www.apachecon.com/event-images/snippet.js"></script>
  </head>
  <body onload="prettyPrint()">
    <div id="wrap">
   


	<!-- Fixed navbar -->
    <div class="navbar navbar-default 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="/"><i class="icon-home"></i>Apache Incubator</a>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Policies <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li><a href="/policy/incubation.html">Incubation Policy</a></li>
                <li><a href="/ip-clearance/">Intellectual Property Clearance</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Proposals <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li><a href="/guides/proposal.html">A Guide To Proposal Creation</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Podling Guides <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li><a href="/cookbook">Cookbook</a></li>
              
                <li><hr><a href="/guides/roles_and_responsibilities.html">Roles and Responsibilities</a></li>
                <li><a href="/guides/committer.html">Committers</a></li>
                <li><a href="/guides/ppmc.html">Podling Project Management Committee</a></li>
                <li><a href="/guides/community.html">Guide to Successful Community Building</a></li>

                <li><hr><a href="/guides/branding.html">Incubator Branding Guide</a></li>
                <li><a href="/guides/publicity.html">Podling Publicity/Media Guidelines</a></li>
                <li><a href="/guides/press-kit.html">Podling Press Kit</a></li>
              
                <li><hr><a href="/guides/transitioning_asf.html">Initial Code Import</a></li>
                <li><a href="/guides/names.html">Podling Name Search Guide</a></li>
                <li><a href="/guides/ip_clearance.html">Podling IP Clearance</a></li>

                <li><hr><a href="/guides/sites.html">Podling Websites</a></li>
                <li><a href="/guides/podling_sourcecontrol.html">Podling Source Control</a></li>

                <li><hr><a href="/guides/releasemanagement.html">Release Management</a></li>
                <li><a href="/guides/distribution.html">Release Distribution</a></li>
              
                <li><hr><a href="/guides/graduation.html">Guide to Successful Graduation</a></li>
                <li><a href="/guides/retirement.html">Guide to Retirement</a></li>
                <li><a href="/guides/transferring.html">Transferring Resources out of the Incubator</a></li>

                <li><hr><a href="/projects/#current">Current Podlings</a></li>
                <li><a href="/clutch/">Clutch Report</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">PMC Guides <b class="caret"></b></a>
              <ul class="dropdown-menu">     
                <li><a href="/guides/participation.html">Guide to Participation</a></li>
                <li><a href="/guides/lists.html">Incubator Mailing Lists Guide</a></li>

                <li><a href="/guides/chair.html">Incubator Chair Guide</a></li>  
                <li><a href="/guides/mentor.html">Mentors' Guide</a></li>

                <li><hr><a href="/guides/website.html">Updating the top-level Incubator website</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="https://www.apache.org/foundation/how-it-works.html">How Apache Works</a></li>
                <li><a href="https://www.apache.org/dev/">Developer Documentation</a></li>
                <li><a href="https://www.apache.org/foundation/">Foundation</a></li>
                <li><a href="https://www.apache.org/legal/">Legal</a></li>
		<hr/>
                <li><a href="https://www.apache.org/licenses/">License</a></li>
		<li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a></li>
		<li><a href="https://www.apache.org/security/">Security</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
		<li><a href="https://www.apache.org/events/current-event">Current Events</a></li>
              </ul>
            </li>
            <li><a href="/faq.html">FAQs</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </div>
    <div class="container">
      <div class="row">
        <div class="col-md-4 vcenter"><a href="https://www.apache.org/"><img src="https://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" border="0" style="margin-top: 2px" width="200"></a></div>
        <div class="col-md-4 vcenter"><a href="/"><img src="https://incubator.apache.org/images/incubator_feather_egg_logo_sm.png" alt="The Apache Software Foundation Incubator" border="0" style="margin-top: 2px" width="256"></a></div>
        <div class="col-md-4 vcenter">
	    <a href="https://www.apache.org/foundation/contributing.html"><img src="https://www.apache.org/images/SupportApache-small.png" height="64" width="64"></a>
	    &nbsp;&nbsp;&nbsp;&nbsp;
	    <a class="acevent" data-format="square" data-width="100" data-mode="light" data-event="random"></a>
	</div>
      </div>
    </div>
    <div class="top-container container">


<div class="page-header">
    <h1>Guide :: Podling Name Search Guide</h1>
</div>

<div class="article-body">

Estimated Reading Time: <span class="eta"></span>

<p><div id="toc" class="toc">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#introduction">Introduction</a>
<ul class="sectlevel2">
<li><a href="#meet_the_apache_branding_team">Meet the Apache Branding Team</a></li>
<li><a href="#trademarks">Trademarks</a></li>
<li><a href="#what_makes_a_name_good">What Makes a Name Good</a></li>
<li><a href="#podling_suitable_name_search">Podling-Suitable Name Search</a></li>
</ul>
</li>
<li><a href="#conducting_a_suitable_name_search">Conducting a Suitable Name Search</a>
<ul class="sectlevel2">
<li><a href="#eliminate_unsuitable_names">Eliminate Unsuitable Names</a></li>
<li><a href="#evidence_of_registration">Evidence of Registration</a></li>
</ul>
</li>
</ul>
</div>
<div class="sect1">
<h2 id="introduction">Introduction</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This guide is <strong>not</strong> <em>legal advice</em> or <em>legal opinion</em>:
<strong>do not</strong> use it as a substitute.
Its aims are education and information <strong>only</strong>.</p>
</div>
<div class="paragraph">
<p>This process filters out unsuitable names for Apache podlings early,
reducing the legal resources required and
limiting the potential disruption to a community of a forced name change
later. A smooth path, but not the only one. If there are reasons
why this road isn&#8217;t right for your podling,
consult <a href="http://mail-archives.apache.org/mod_mbox/incubator-general/">incubator general</a>.</p>
</div>
<div class="sect2">
<h3 id="meet_the_apache_branding_team">Meet the Apache Branding Team</h3>
<div class="paragraph">
<p>Names fall within <a href="http://www.apache.org/foundation/marks/#whoweare">the responsibilities</a> of the
<a href="http://www.apache.org/foundation/">V.P., Brand Management</a> (and
<a href="http://www.apache.org/foundation/marks/#whoweare">team</a>). Please start by reading:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>the <a href="http://www.apache.org/foundation/marks/">Apache Trademark Policy</a> (which introduces trademarks and outlines our policy)</p>
</li>
<li>
<p>the <a href="http://www.apache.org/foundation/marks/faq/">Apache Trademark FAQs</a> (which answers questions asked by downstream consumers)</p>
</li>
<li>
<p>the <a href="http://www.apache.org/foundation/marks/pmcs.html">Apache Project Branding Requirements</a> (which guides PMCs)</p>
</li>
<li>
<p>the <a href="http://www.apache.org/foundation/marks/naming.html">Suitable Name Search</a> (which guides podlings and PMCs)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For podlings in the Incubator, the Brand and Incubator communities manage naming issues cooperatively.
Rules for podlings include all branding requirements for PMCs, plus a few extras.</p>
</div>
</div>
<div class="sect2">
<h3 id="trademarks">Trademarks</h3>
<div class="paragraph">
<p>Trademark law is a complex subject.
Distinctive differences from other intellectual property laws (such as patent or copyright) mean that
intuition or knowledge you have gained from other areas may not be applicable to trademark issues.
The <a href="http://www.apache.org/foundation">Apache Software Foundation</a> is
a <a href="http://www.apache.org/foundation/faq.html#is-ASF-a-corporation">US corporation</a>.
Developing some understanding of the basic principles of US trademark law is therefore important.</p>
</div>
<div class="paragraph">
<p>Please read:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="http://www.apache.org/foundation/marks/#principles">Description of key trademark principles</a> for Apache projects</p>
</li>
<li>
<p><a href="http://www.apache.org/foundation/marks/naming.html#regsearch">Description of how to search for existing trademarks</a></p>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="trademarks_and_the_apache_license">Trademarks and the Apache License</h4>
<div class="paragraph">
<p>Like <a href="http://www.ifosslr.org/ifosslr/article/view/11/37">many</a>
<a href="http://www.opensource.org">open source</a> licenses, the
<a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License, Version 2.0</a>
focuses on granting copyright and patent rights to the public.
The <em>trademark</em> section permits only very limited trademark rights.</p>
</div>
<div class="quoteblock">
<blockquote>
""
<strong>6. Trademarks.</strong>
This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file."
""
- <a href="http://www.apache.org/licenses/LICENSE-2.0.html#trademarks">Apache License, Version 2.0</a>
</blockquote>
</div>
<div class="paragraph">
<p>All Apache projects share the Apache License. The license issues standard <strong>copy</strong>
and <strong>patent</strong> rights to
downstream consumers. <strong>Trademark</strong> rights for Apache products are issued and managed independently,
beyond the Apache License. This allows Apache communities to use trademark law to protect their reputation and that of the
<a href="http://www.apache.org/foundation/">Foundation</a>, within the broader
framework provided by the Brand team.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="what_makes_a_name_good">What Makes a Name Good</h3>
<div class="paragraph">
<p>Good names for commercial products or <em>UNIX</em> utilities have tended to work less well here at Apache.
Many successful Apache project names are memorable, unusual and a little
<a href="http://www.sdtimes.com/TOP_FIVE_HEAD_SCRATCHINGEST_NAMES_FOR_APACHE_PROJECTS/By_Victoria_Reitano/About_APACHE_and_HADOOP_and_HARMONY_and_MYSQL_and_OODT_and_YAY/35959">whimsical</a>.
These qualities also happen to be useful when it comes to securing trademark protection.
Have fun. Be creative.</p>
</div>
</div>
<div class="sect2">
<h3 id="podling_suitable_name_search">Podling-Suitable Name Search</h3>
<div class="paragraph">
<p>The initial <a href="http://incubator.apache.org/guides/proposal.html">podling proposal</a>
establishes a working name for the new podling.
Often some discussion and filtering of suitable names happens during the election
process, but this proposed name is <strong>not</strong> final, only <em>provisional</em>.
The community may choose to change it. Or the community may discover that the name is unsuitable:
in which case the community must find a suitable new name.</p>
</div>
<div class="paragraph">
<p>A podling needs to discover whether a name is suitable.
The Incubator community calls this process the <em>suitable name search</em>.
This avoids any potential confusion with phrases like
<em>trademark search</em>, which has technical meanings in the trademark community.
Please be careful with language. In particular:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Avoid using loaded technical or legal terms</p>
</li>
<li>
<p>Use plain, simple English to describe what you did and what you found</p>
</li>
<li>
<p>Avoid speculation</p>
</li>
<li>
<p>Don&#8217;t offer <em>advice</em> or <em>opinions</em></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The podling must complete a suitable name search successfully before it can graduate to Top Level Project (TLP) status.
This isn&#8217;t the only way to do such a search, just a smooth path.</p>
</div>
<div class="paragraph">
<p>Names are an essential part of building a brand and community.
Switching names wastes the efforts put into establishing the original name.
Therefore complete this task as soon as possible.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="conducting_a_suitable_name_search">Conducting a Suitable Name Search</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The aim: to find a name that is acceptable to the community and is not unsuitable.</p>
</div>
<div class="paragraph">
<p>See the instructions at <a href="https://www.apache.org/foundation/marks/naming.html#namesearch">Suitable Name Search</a>
about how to perform the name search and interact with the VP, Brand and their committee. Approval of the podling name comes from them.</p>
</div>
<div class="paragraph">
<p>The following are notes about the suitable name search, based on the experience of many podlings.</p>
</div>
<div class="paragraph">
<p>A suitable name search has public and private elements.
The <a href="https://issues.apache.org/jira/browse/PODLINGNAMESEARCH">tracker</a> provides the public record.
Incubator best practice evolves over time, and documentation lags.
The public records of past searches are a primary source of guidance.
Review now the records of previous searches, beginning with the most recent and working back.</p>
</div>
<div class="paragraph">
<p>The public record consists of <em>actions</em> (how you searched) and <em>facts</em> (what your search found). In particular,
in <strong>all</strong> public forums (mailing lists, issue trackers and so on):</p>
</div>
<div class="paragraph">
<p>-<strong>Do not</strong> speculate.
-<strong>Do not</strong> use loaded technical legal language.
-<strong>Do not</strong> offer
 -opinions
 -advice
 -interpretation
 -analysis</p>
</div>
<div class="paragraph">
<p>Use the public lists in the Incubator to ask questions about <em>how</em> to conduct the search.
Once you have collected and collated sufficient information, ask the trademark team on the private lists, copying in the PPMC, to help interpret and analyse the results. Finally, discuss the results of your investigation on the private PPMC list.
Record whether a candidate name is suitable or unsuitable (or somewhere in between) when you close the issue.</p>
</div>
<div class="sect2">
<h3 id="eliminate_unsuitable_names">Eliminate Unsuitable Names</h3>
<div class="paragraph">
<p>To be suitable, a name needs to be</p>
</div>
<div class="ulist">
<ul>
<li>
<p>judged <em>appropriate</em> by the wider community</p>
</li>
<li>
<p><em>unique enough</em> to avoid confusion</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Facts and activities performed are <a href="https://issues.apache.org/jira/browse/PODLINGNAMESEARCH">recorded</a> for the public.
Interpretation and analysis of these facts happens on private mailing lists; the PPMC private@ in the first instance.
Record whether the name proved suitable or unsuitable into the public record, but take care to use our categories (<em>ethically unsuitable</em> or
<em>not unique enough</em>) and to avoid loaded legal terms.</p>
</div>
<div class="sect3">
<h4 id="the_main_sequence">The Main Sequence</h4>
<div class="paragraph">
<p>Every podling is unique, but, using a <a href="http://outreach.atnf.csiro.au/education/senior/astrophysics/stellarevolution_mainsequence.html">cosmic</a>
metaphor, most fit into a main sequence. For podlings on the main sequence,
most of the bugs should have been squashed and rough edges documented away, so expect a smooth journey.
Away from the main sequence, you may need to grow process, documentation is likely be sparse
and progress less smooth.</p>
</div>
<div class="paragraph">
<p>We describe the main sequence here. This well-known path is
appropriate for almost all podlings.
If there are good reasons to think that your podling is a special case, discuss this with the
<a href="http://mail-archives.apache.org/mod_mbox/incubator-general/">Incubator community</a>
and reach consensus on the way forward.</p>
</div>
</div>
<div class="sect3">
<h4 id="appropriateness">Appropriateness</h4>
<div class="paragraph">
<p>Some names are not appropriate for open source projects.
Acceptability under
<a href="http://www.law.cornell.edu/uscode/15/1052.shtml">US Trademark Law</a> is a good base line.
This excludes marks that</p>
</div>
<div class="quoteblock">
<blockquote>
<div class="paragraph">
<p>Consists of or comprises immoral, deceptive, or scandalous matter;
or matter which may disparage or falsely suggest a connection with persons,
living or dead, institutions, beliefs, or national symbols, or bring them into contempt, or disrepute;</p>
</div>
</blockquote>
</div>
<div class="paragraph">
<p>&#8201;&#8212;&#8201;<a href="http://www.law.cornell.edu/uscode/15/1052.shtml">US Code 15:1052</a></p>
</div>
<div class="paragraph">
<p>Proposals with inappropriate names are unlikely to pass the initial review, but spend a few moments considering
whether you have missed anything. Check for alternative meanings, perhaps in foreign languages or among distinct communities (such as people on the autism spectrum).</p>
</div>
</div>
<div class="sect3">
<h4 id="unique_enough_names">Unique-Enough Names</h4>
<div class="paragraph">
<p>The name needs be unique enough to avoid confusion with software that already exists.
For the community to be able to protect its reputation for quality and openness,
its name needs to unique enough to have potential as a trademark.</p>
</div>
<div class="paragraph">
<p>But this isn&#8217;t only about being able to register trademark protection.
Ethics also plays a role. Even when a name may offer enough protection, existing adoption
of the name by an active community may mean that you need to eliminate the choice on ethical grounds.
There is some judgment involved in this decision. So, involve the wider Incubator community if a name, or something like it, is already in
use elsewhere.</p>
</div>
</div>
<div class="sect3">
<h4 id="how_to_collect_evidence_of_uniqueness">How to Collect Evidence of Uniqueness</h4>
<div class="paragraph">
<p>To decide whether a potential name is <em>unique enough</em> to be suitable:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Collect evidence about current name usage.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/PODLINGNAMESEARCH">Record</a> the facts.</p>
</li>
<li>
<p>Analyse and interpret these facts in private, with help from the brand team.</p>
</li>
<li>
<p>Reach consensus about whether the name is unique enough.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/PODLINGNAMESEARCH">Record</a> whether the name is suitable.</p>
</li>
<li>
<p>If the candidate name is unsuitable, the community should pick a more unique name and repeat this process.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="evidence_of_open_source_adoption">Evidence of Open Source Adoption</h4>
<div class="paragraph">
<p>Existing adoption in another active open source community may give ethical
reasons for eliminating a name. This is an example of a condition with a fractal
boundary. You do not need to eliminate as unsuitable every name which has been used before,
but this is an issue which you need to discuss more widely so you can reach
a consensus with the broad
<a href="http://mail-archives.apache.org/mod_mbox/incubator-general/">Incubator community</a>.</p>
</div>
<div class="paragraph">
<p>Look for evidence of existing adoption amongst open source communities by searching well-known
foundries (for example <a href="http://www.github.com">GitHub</a> and
<a href="http://www.sourceforge.net">Sourceforge</a>)
and the web (use several search engines, for example <a href="http://www.bing.com">Bing</a>,
<a href="http://www.google.com">Google</a> and <a href="http://www.yahoo.com">Yahoo</a>).
Review recent <a href="https://issues.apache.org/jira/browse/PODLINGNAMESEARCH">records</a>
for ideas about where to search.
<a href="https://issues.apache.org/jira/browse/PODLINGNAMESEARCH">Record</a> each search and describe the results.</p>
</div>
<div class="paragraph">
<p>If the community has used the name before it arrived at Apache, that&#8217;s fine; but note that in the
<a href="https://issues.apache.org/jira/browse/PODLINGNAMESEARCH">record</a>.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="evidence_of_registration">Evidence of Registration</h3>
<div class="paragraph">
<p>A number of online resources may help you discover evidence of
competing registered trademarks.
Not every trademark is registered. These resources do not list every registered trademark.
Even if you find evidence of existing registrations,
this does not necessary eliminate the proposed name. Just
<a href="https://issues.apache.org/jira/browse/PODLINGNAMESEARCH">record</a> the facts.
Leave analysis and interpretation to private lists.
When a search returns a large number of hits, focus on live registrations related to software.</p>
</div>
<div class="paragraph">
<p>The foremost online resource is TESS, run by the US Patent and Trademarks Office (USPTO). Before using
TESS, browse the documentation links from the
<a href="http://www.uspto.gov/trademarks/index.jsp">USPTO trademark home</a>.</p>
</div>
<div class="paragraph">
<p>Other resources which allow cheap searches of their databases exist, but are often
ephemeral. Review the <a href="https://issues.apache.org/jira/browse/PODLINGNAMESEARCH">records</a>
for the state of this art.</p>
</div>
<div class="sect3">
<h4 id="evidence_of_use_on_the_world_wide_web">Evidence of Use on the World Wide Web</h4>
<div class="paragraph">
<p>Registration of trademark is not required. An organization may also obtain rights by use of a mark in commerce.</p>
</div>
<div class="paragraph">
<p>Use a variety of web search engines (for example, <a href="http://www.bing.com">bing</a>, <a href="http://www.google.com">google</a>
and <a href="http://search.yahoo.com">yahoo</a>) to survey use of your proposed name on the world wide web.</p>
</div>
<div class="paragraph">
<p>Search for:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The name itself (e.g., <code>Cassandra</code>).  The results returned by a search for the name itself may provide evidence of well-known usages of the term.</p>
</li>
<li>
<p>The name, plus <code>software</code>. The results returned by searching for <code>Cassandra software</code> may provide evidence of existing use in trade.</p>
</li>
<li>
<p>The name, plus key functionality the software provides: e.g., <code>Cassandra "big data"</code>.</p>
</li>
<li>
<p>The name, plus <code>open source</code>: e.g., <code>Cassandra open source</code>.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div></p>

</div>

		</div>
		<div id="push"></div>
    </div>

    <div id="footer">
      <div class="container">
          <p class="muted credit">&copy; 2024 The Apache Software Foundation | Licensed under the Apache License, Version 2.0.<br/>
          Apache Incubator, Apache, the Apache feather logo, and the Apache Incubator project logo are trademarks or registered trademarks of The Apache Software Foundation.</p>
      </div>
    </div>
    <script src="../js/jquery-1.11.1.min.js"></script>
    <script src="../js/bootstrap.min.js"></script>
    <script src="../js/prettify.js"></script>
    <script src="../js/readingTime.js"></script>
    <script src="../js/incubator.js"></script>
  </body>
</html>
