<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Home page of The Apache Software Foundation">
  <link rel="apple-touch-icon" sizes="57x57" href="/favicons/apple-touch-icon-57x57.png">
  <link rel="apple-touch-icon" sizes="60x60" href="/favicons/apple-touch-icon-60x60.png">
  <link rel="apple-touch-icon" sizes="72x72" href="/favicons/apple-touch-icon-72x72.png">
  <link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon-76x76.png">
  <link rel="apple-touch-icon" sizes="114x114" href="/favicons/apple-touch-icon-114x114.png">
  <link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon-120x120.png">
  <link rel="apple-touch-icon" sizes="144x144" href="/favicons/apple-touch-icon-144x144.png">
  <link rel="apple-touch-icon" sizes="152x152" href="/favicons/apple-touch-icon-152x152.png">
  <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon-180x180.png">
  <link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="/favicons/favicon-194x194.png" sizes="194x194">
  <link rel="icon" type="image/png" href="/favicons/favicon-96x96.png" sizes="96x96">
  <link rel="icon" type="image/png" href="/favicons/android-chrome-192x192.png" sizes="192x192">
  <link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
  <link rel="manifest" href="/favicons/manifest.json">
  <link rel="shortcut icon" href="/favicons/favicon.ico">
  <meta name="msapplication-TileColor" content="#603cba">
  <meta name="msapplication-TileImage" content="/favicons/mstile-144x144.png">
  <meta name="msapplication-config" content="/favicons/browserconfig.xml">
  <meta name="theme-color" content="#282661">

  <title>Apache Trademark Reporting Best Practices</title>
  <link href="/css/Montserrat-300-600.css" rel="stylesheet">
  <link href="/css/min.bootstrap.css" rel="stylesheet">
  <link href="/css/styles.css" rel="stylesheet">
  <style>
.headerlink {
  visibility: hidden;
}
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
  visibility: visible
}  </style>

  <!-- pagefind search -->
  <link href="/_pagefind/pagefind-ui.css" rel="stylesheet">
  <script src="/_pagefind/pagefind-ui.js" type="text/javascript"></script>
  <script>
    window.addEventListener('DOMContentLoaded', (event) => {
        new PagefindUI({ element: "#pagefind-search" });
    });
  </script>

<!-- https://www.apache.org/licenses/LICENSE-2.0 -->
</head>

<body >
  <!-- Navigation -->
  <header>
	<div id="skiptocontent">
		<a href="#maincontent">Skip to Main Content</a>
	</div>
    <nav class="navbar navbar-inverse navbar-fixed-top mainmenu">
      <div class="container">
        <div class="navbar-header">
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
        </div>
        <div class="collapse navbar-collapse" id="mainnav-collapse">
          <ul class="nav navbar-nav navbar-justified">
            <li><a href="/index.html#news">News</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">About&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation">Overview</a></li>
                <li><a href="/foundation/how-it-works.html">Process</a></li>
                <li><a href="/foundation/governance/">Governance</a></li>
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="/foundation/governance/members.html">Membership</a></li>
                <li><a href="https://community.apache.org/">Community</a></li>
                <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="/foundation/glossary.html">Glossary</a></li>
				  <li><a href="/apache-name">About Our Name</a></li>
                <li><a href="/foundation/preFAQ.html">FAQ</a></li>
                <li><a href="/foundation/contributing.html">Support Apache</a></li>
                <li><a href="/press/">Media/Analysts</a></li>
                <li><a href="/foundation/contact.html">Contact</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Make a Donation&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation/contributing.html">Donate Now</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via Credit Card</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via ACH</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via PayPal</a></li>
                <li><a href="https://www.redbubble.com/people/comdev">Buy Swag</a></li>
                <li><a href="/foundation/sponsorship.html">ASF Sponsorship</a></li>
                <li><a href="/foundation/thanks#targeted-sponsors">Targeted Sponsorship</a></li>
                <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">The Apache Way&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="https://s.apache.org/GhnI">Sustainable Open Source</a></li>
                <li><a href="/foundation/how-it-works.html">How it Works</a></li>
                <li><a href="/foundation/how-it-works.html#meritocracy">Merit</a></li>
                <li><a href="https://blogs.apache.org/foundation/category/SuccessAtApache">Success at Apache</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">Join Us&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://community.apache.org/gettingStarted/101.html">Getting Started</a></li>
                <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                <li><a href="https://www.apachecon.com/">ApacheCon</a></li>
                <li><a href="http://community.apache.org/calendars/">Community Events</a></li>
                <li><a href="https://tac.apache.org">Travel Assistance</a></li>
                <li><a href="https://community.apache.org/gsoc.html">Summer of Code</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="https://community.apache.org/contributors/etiquette">Etiquette</a></li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/index.html#projects-list">Project List</a></li>
                    <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
                    <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
                    <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
                    <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
                    <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
                    <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
                    <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
                    <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="/foundation/marks/">Brand Management</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
                    <li><a href="/foundation/members.html">Members</a></li>
                    <li><a href="https://community.apache.org/contributors/">Committers</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Officers  &amp; Project VPs</a></li>
                    <li><a href="https://community.zones.apache.org/map.html">Location Map</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://people.apache.org/">Committer Directory</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="https://community.apache.org/about/">Community Development</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://community.apache.org/">Get Involved</a></li>
                    <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
                    <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
                    <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/dev/infrastructure.html">Infra overview</a></li>
                    <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
                    <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
                    <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
                    <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
                    <li><a href="/foundation/marks/list/">Trademarks</a></li>
					<li><a href="/licenses/exports/">Exports</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
                    <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
                    <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
                    <li><a href="/foundation/contributing.html">Individual Donations</a></li>
                    <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
                  </ul>
                </li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://downloads.apache.org/">Distribution</a></li>
                <li><a href="https://projects.apache.org/releases.html">Releases</a></li>
                <li><a href="https://status.apache.org/">Infrastructure Status</a></li>
                <li><a href="/uptime/">Infrastructure Statistics</a></li>
              </ul>
            </li>
            <li class="dropdown hidden-xs">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"><span class="glyphicon glyphicon-search"
                  aria-hidden="true"></span><span class="sr-only">Search</span></a>
              <ul class="dropdown-menu search-form" role="search">
                <li>
                  <div id="pagefind-search" class="input-group" style="width: 100%; padding: 0 5px;"></div>
                </li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </header>
  <!-- / Navigation -->
  <header id="main-header" class="container">
    <div class="sideImg">
          <a class="visible-home" href="https://events.apache.org/x/current-event.html">
            <img class="img-responsive" style="width: 125px;" src="/events/current-event-125x125.png" alt="Apache Events"/>
<!-- STALE: <img class="img-responsive" style="width: 125px;" src="https://www.apachecon.com/event-images/default-square-light.png" alt="ApacheCon 2021 Coming Soon!" /> -->
          </a>
      <a class="hidden-home" href="/"><img class="img-responsive" src="/img/asf-estd-1999-logo.jpg" alt="The Apache Software Foundation"></a>
    </div>
    <div class="main">
      <img class="img-responsive center-block visible-home" src="/img/asf-estd-1999-logo.jpg" alt="Apache 20th Anniversary Logo">

      <ul class="nav navbar-nav navbar-justified">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/index.html#projects-list">Project List</a></li>
            <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
            <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
            <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
            <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
            <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
            <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
            <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
            <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="/foundation/marks/">Brand Management</a></li>
            <li><a href="/foundation/glossary.html">Glossary of Terms</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
            <li><a href="/foundation/members.html">Members</a></li>
            <li><a href="https://community.apache.org/contributors/">Committers</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li>
            <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://people.apache.org/">Committer Directory</a></li>
            <li><a href="https://community.zones.apache.org/map.html">Heat Map</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="https://community.apache.org/about/">Community Development</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://community.apache.org/">Get Involved</a></li>
            <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
            <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
            <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
              <li><a href="/dev/infrastructure.html">Infra overview</a></li>
              <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
            <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
            <li><a href="/foundation/marks/list/">Trademarks</a></li>
			<li><a href="/licenses/exports/">Exports</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
            <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
            <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
            <li><a href="/foundation/contributing.html">Individual Donations</a></li>
            <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
          </ul>
        </li>
      </ul>
    </div>
 
  </header>
  <main id="maincontent">
<div class="container">    <h1 id="apache-trademark-reporting-best-practices">Apache Trademark Reporting Best Practices<a class="headerlink" href="#apache-trademark-reporting-best-practices" title="Permalink">&para;</a></h1>
<p>Here are best practices for reviewing the use
of Apache&reg; projects' brands and trademarks and for contacting other parties
when there may be an infringement or misuse of any Apache trademarks.
This document for Apache committers
and PMC members; outside parties should start with our
<a href="index.html">Apache Trademark Policy</a>.</p>
<p><strong>Contents</strong></p>
<div class=".pull-right" style="float:right; border-style:dotted; width:200px; padding:5px; margin:5px">
<p>See Also: <a href="/foundation/marks/resources">Trademark Resources Site Map</a>.</p>
</div>
<div id="toc"><ul><li><a class="toc-href" href="#introduction" title="Apache trademark use reporting best practices">Apache trademark use reporting best practices</a><ul><li><a class="toc-href" href="#kinds" title="What kinds of trademark uses might be infringing?">What kinds of trademark uses might be infringing?</a></li></ul></li><li><a class="toc-href" href="#issues" title="Checklist of issues to evaluate for trademark misuses">Checklist of issues to evaluate for trademark misuses</a></li><li><a class="toc-href" href="#users" title="Reporting potential misuses of Apache marks - how-to for users">Reporting potential misuses of Apache marks - how-to for users</a></li><li><a class="toc-href" href="#pmcs" title="Reporting potential misuses of Apache marks - how to for PMCs / Committers">Reporting potential misuses of Apache marks - how to for PMCs / Committers</a></li><li><a class="toc-href" href="#members" title="Reporting potential misuse of Apache marks - how-to for Apache Members">Reporting potential misuse of Apache marks - how-to for Apache Members</a></li><li><a class="toc-href" href="#apacheorg" title="How to report improper use of your trademarks by Apache projects">How to report improper use of your trademarks by Apache projects</a></li><li><a class="toc-href" href="#other" title="Other trademark guidelines">Other trademark guidelines</a></li><li><a class="toc-href" href="#notes" title="Important note">Important note</a></li></ul></div>
<h2 id="introduction">Apache trademark use reporting best practices<a class="headerlink" href="#introduction" title="Permalink">&para;</a></h2>
<p>The Apache Software Foundation (ASF) strives to promote appropriate uses of
all Apache marks for the benefit of our project communities and for the ASF
as a whole.  The mission of the ASF is to provide software for the
public good, and the way we accomplish that is by supporting our community and our
consensus-based projects.  Having clear trademarks and service marks that identify our projects
and software products is important to the health of our communities, to encourage
the sense of community, to ensure that our projects run independently
of outside or commercial influence, and to allow new consumers to discover our
many <a href="/free/">freely available</a> products and services.</p>
<p>Likewise, our project communities bear responsibility for managing their own
brands and marks, as well as treating trademarks of other Apache projects and third parties with respect.
The ASF relies on <a href="/foundation/marks/responsibility">every PMC to manage their own brand</a>, and
to <strong>monitor the use of their brand</strong> by third parties (i.e. anyone outside of the project).  We also welcome assistance
from the many users of our software in respectfully promoting our software.</p>
<p><strong>Reminder:</strong> This document is not legal
advice.  If you have a legal question, you should contact your own lawyer.
Apache committers may contact the private legal-internal@ mailing list
(monitored by the ASF's VP, Legal Affairs officer and legal counsel)
with any specific legal questions about Apache projects.  Outside parties
with legal questions about trademarks may <a href="/foundation/marks/contact#other">contact us privately</a>.</p>
<h3 id="kinds">What kinds of trademark uses might be infringing?<a class="headerlink" href="#kinds" title="Permalink">&para;</a></h3>
<p>If you're browsing a website with "Hadoop" plastered all over their marketing
materials, and there's no mention of Apache anywhere on the page - what should you
do?  The first thing is to actually ask: is this actually a problem, or is it
really <a href="/foundation/marks/#principles">nominative use</a>
of the Apache Hadoop&reg; name, and it's just fine?</p>
<p>Trademarks exist to <strong>prevent customer confusion about the source of goods or
services</strong>.  When you buy an HP&reg; printer, you know what kind of quality and service
to expect, because you know it came from HP.  Likewise when you order a Coke&reg;
beverage, you'll expect that particular tartly sweet flavor, instead of the
more brightly sweet flavor of Pepsi beverages.  The name, logo, and other
branding are a clear association of that product with its manufacturer in
the mind of the consumer of the product.</p>
<p>The majority of times we use trademarks like Apache Hadoop are just fine, because
we're talking about the trademarked product. Often, the only way to refer
to the Apache Hadoop&reg; software product is to use it's name.  Discussing how great
Hadoop software is, or how slow it can be, is typically not an infringing use,
because it is not likely to confuse consumers as to the source of Hadoop software.
These uses are called <strong>nominative use</strong>; that is, a third party using the
name to refer to the thing itself - i.e. our software product.</p>
<p>The problem comes when people or companies use trademarks in an infringing manner: when a
third party's use of a trademark would confuse a reasonable consumer about
where the product comes from.  For example, it's just fine to write about how
well BMWs handle or drive; it's probably not OK to start a website to sell
BMW Cars that you make in your own shop.  It may or may not be OK to start a
business called The Best BMW Service; that depends on how it's marketed (presented to consumers), and how BMW as the owner of the trademark decides to
license (or not) its trademark. It all boils down to: would a new consumer
looking for a car or service related to this "BMW" brand they've heard of
be led to believe that your independent shop is related to the international
BMW&reg; company.</p>
<p>The Fedora&reg; project has a <a href="https://fedoraproject.org/wiki/Legal:Trademark_guidelines?rd=Legal/TrademarkGuidelines#Trademark_Usage_Guidelines">useful chart of appropriate and inappropriate ways
to use their FEDORA trademark</a>
in common situations.  While that policy is written for the Fedora mark, the examples
generally apply to Apache marks, and even most software product marks.</p>
<h2 id="issues">Checklist of issues to evaluate for trademark misuses<a class="headerlink" href="#issues" title="Permalink">&para;</a></h2>
<p>When reviewing a potentially troublesome use of an Apache mark by a third party,
you <em>must</em> think through the context of that specific use of Apache marks <strong>before you
contact the third party</strong>:</p>
<ul>
<li>
<p>What <strong>specific trademark</strong> is being used?  Is it the name of an Apache
product or project, or is it a logo from our website?  Or is it an obviously
derived word or logo created from an Apache mark, like "Hadooper", or a blue elephant similar in appearance
to the beloved Hadoop yellow elephant?</p>
</li>
<li>
<p><strong>Where</strong> is the mark being used?  On a website (provide URL), on marketing
materials, on a business card, in an email campaign?</p>
</li>
<li>
<p>What is the <strong>immediate context</strong> of the use?  Think about the paragraph in which
Hadoop appears, or where the elephant logo appears in relation to other text or graphic elements on the page.  Be sure
to copy the paragraph or take a screenshot of where a logo appears if you
are reporting this to a PMC.</p>
</li>
<li>
<p>What is the <strong>larger context</strong> to the use?  This may be harder to evaluate,
because there are cases where a website may discuss Hadoop at length, where
the individual uses do not appear to be infringing, but where the overall
appearance in the entire website could reasonably lead to consumer confusion
(i.e. someone looking to download Hadoop&reg; software might do it from that
website, instead of from our Apache Hadoop project).
Consider the whole context from the point of view of a user who is
<em>not</em> experienced with Hadoop, but who wants to learn more about it.</p>
</li>
<li>
<p>Is the <strong>use commercial/by an organization, or is it personal/by an individual</strong>?
Use by individuals is rarely infringement unless they are actually providing a
software product for use or download using a similar name.  Uses by journalists
or technology writers, or non-software related companies may be important to address.
Uses by software vendors or services providers that work with Apache technologies
are usually important to address.</p>
</li>
<li>
<p>Is the use related to a software product or service that does *<em>not</em> come from Apache?
Uses of Apache marks in direct conjunction with third party software products
are <a href="/foundation/marks/faq/#products">generally not OK</a>,
and require investigation unless they are already following the
<a href="/foundation/marks/faq/#poweredby">Powered By guideline</a>,
or unless they are clearly a different kind of software product.</p>
</li>
</ul>
<p><em><strong>IMPORTANT:</strong></em> If the name being used <em>happens</em> to match an Apache product
name, but the software product is unrelated to our Apache product, you
<strong>must</strong> check with trademarks@ before contacting the third party.  In
particular, we must check to see if the other party has registered that name
as their trademark for their software.</p>
<ul>
<li>
<p>Is this use <strong>about some non-software related product</strong> (apparel, kitchen appliances, mining operations, computer hardware, whatever)?  The ASF
and Apache projects primarily provide software products to the public, and to
a lesser degree provide software support services.  Use of trademark names in relation
to software products or services should always be evaluated carefully.  Always evaluate use
of trademark names in relation to other kinds of goods (i.e. non-software),
but they are probably not infringing.  Trademarks generally apply only within a specific class
or field of goods; consumers would rarely confuse a Ford&reg; car with a Ford
software product (unless the software is an app on the dashboard).</p>
</li>
<li>
<p>Is this use clearly in relation to a <strong>parody</strong> of the Apache brand, or clearly in the
context of a <strong>review, benchmark, or other commentary</strong> about that particular Apache brand?
Use of trademarks in parodies, or in reviews, even uncomplimentary ones,
is often nominative use, unless it causes consumer confusion as to
the source of the goods or the software product.  I.e. as long as a new user
would understand that the use by a third party is a parody or review, and not coming
from the official Apache project, it's not likely a problem.</p>
</li>
<li>
<p>Is the use in a <strong>domain name</strong>?  See the <a href="/foundation/marks/domains.html">Domain Name Branding Policy</a>
for more information on allowable third party use of Apache brands in domain names.</p>
</li>
<li>
<p>Is the use part of an <strong>event or conference</strong> brand?  See the <a href="/foundation/marks/events.html">Event Name Branding policy</a>.</p>
</li>
</ul>
<h2 id="users">Reporting potential misuses of Apache marks - how-to for users<a class="headerlink" href="#users" title="Permalink">&para;</a></h2>
<p>If any user or other person (i.e. not a committer on any Apache project)
is aware of potentially-improper third-party use of any Apache marks,
you should <strong>inform the relevant Project Management Committee</strong>, or PMC.
Email that project's PMC at private@<em>projectname</em>.apache.org and
inform them of the third party and its use of Apache marks.  Please include
a URL link to the specific page that shows the Apache mark in use,
and a brief description of the situation.</p>
<p>The project's PMC should then examine the third party use of their mark, and take
appropriate action if needed as described below.  In general, we prefer if
a member of a project's PMC contacts any third party that may be improperly
using that project's marks, rather than having non-PMC members contact them directly.
While we very much appreciate our users bringing these issues to our attention,
from the legal perspective, only the ASF and it's projects can directly
enforce the proper use of our marks.</p>
<p>If you do not receive a response from that project's PMC within a couple of weeks,
please <a href="/foundation/marks/contact#other">contact the ASF privately</a>, including all the details of the issue and your communication to the PMC, to request an update.
Note that it is the ASF's responsibility to police our trademarks, so while
we strive to acknowledge every report, we do not discuss enforcement
activities publicly.</p>
<h2 id="pmcs">Reporting potential misuses of Apache marks - how to for PMCs / Committers<a class="headerlink" href="#pmcs" title="Permalink">&para;</a></h2>
<p>A project's PMC (or podling's PPMC) should be <strong><a href="/foundation/marks/responsibility">responsible for being aware of
significant third party uses of their project's marks</a></strong>.
PMCs should be responsible for managing the process of contacting any
third parties that may be infringing on their project's brand in conjunction
with VP, Brand Management on the <a href="/foundation/marks/contact">trademarks@ private mailing list</a>.</p>
<ul>
<li><strong>Discuss questions in private:</strong> It is a best practice to use the private@<em>projectname</em>.apache.org
mailing list to discuss any reports of potential infringement first, <strong>before</strong>
contacting a third party.  Many potential cases either turn out not be a trademark
issue at all (meaning no action is needed), or can be resolved by a friendly email to the third party
politely requesting that they respect our trademarks.  We recommend discussing these issues in private
because it is easier to clear up many unintentional misuses of marks in this way.  Similarly, many other companies have
registered or otherwise well-known brands for their software offerings that
we must respect if they are registered or otherwise an earlier use (or, if
they are for a different kind of software functionality).</li>
</ul>
<ul>
<li>
<p><strong>Verify that it's really a problem:</strong> If there is any question whether something is infringing,
PMC members <em>must</em> email trademarks@, and cc: private@ for further
investigation and understanding of proper trademark use before contacting the third party.  If necessary,
after discussion on trademarks@, someone from trademarks@
or the PMC chair may take a specific question to legal-internal@ to get
a specific response from ASF counsel.  Remember: discussion about
any trademark infringements should always happen on <em>private@</em> lists.</p>
</li>
<li>
<p><strong>For obvious problems, contact directly:</strong>  If it is a clear and obvious PMCs should contact third parties known to be misusing their marks
and cc: trademarks@.  When the PMC believes it's likely to be an unintentional
infringement, or if PMC members are personally familiar with the
third party potentially infringing, then any PMC member may contact the
third party by following our <a href="/foundation/marks/templates/"><strong>Guide For Contacting Third Parties</strong></a>.</p>
</li>
</ul>
<div class=".pull-right" style="float:right; border-style:dotted; width:200px; padding:5px; margin:5px">
<p>See Also: <a href="/foundation/marks/templates/">Contact Templates</a> and <a href="/foundation/marks/resources">Trademark Resources</a>.</p>
</div>
<ul>
<li>
<p>The intent is to send a polite, non-confrontational email to the infringing
party, reminding them of the proper treatment of our trademarks.  Do <strong>not</strong>
imply any legal action or suggest that lawyers need to be involved,
and do <strong>not</strong> issue any official endorsement or approval of
any third party uses of any Apache marks. In many cases, the third party may
not be aware that it's a trademark of Apache, or of specific trademark law,
and will happily comply.  Be sure to use a signature that makes your
formal involvement with the project clear (i.e. as Apache Foo PMC member or VP).</p>
</li>
<li>
<p><strong>For flagrant trademark infringements, work with VP Brand:</strong> if the third party use seems to be either a serious infringement,
or is obviously intentional, the PMC should work with Brand Management to craft
an official request to the third party. Brand Management will investigate if this
is an actual infringement, and then will lead the process with the PMC of
working with the third party to correct improper uses of Apache marks.
This process starts with an email discussion with the third party, and
may take some time.</p>
</li>
</ul>
<p>If the PMC does not get a positive reply to its request to any third
party in a reasonable amount of time, or any time legal counsel for a third party contacts you, you must <a href="/foundation/marks/contact#other">contact Brand Management</a> to decide
how to proceed.  Also: PMC members other than the project VP do not have the power to grant <strong>any</strong> exceptions to Apache brand policy for third party use of Apache marks.</p>
<h2 id="members">Reporting potential misuse of Apache marks - how-to for Apache Members<a class="headerlink" href="#members" title="Permalink">&para;</a></h2>
<p>If you are a Member of the ASF and spot any issues with any use of Apache trademarks,
contact trademarks@ and the private@ list for that PMC.</p>
<h2 id="apacheorg">How to report improper use of your trademarks by Apache projects<a class="headerlink" href="#apacheorg" title="Permalink">&para;</a></h2>
<p>Apache projects always strive to be respectful of other organizations'
trademarks, but, as in all volunteer organizations, mistakes sometimes happen.
If you see any questionable use of trademarks on any
<code>apache.org</code> website - either of your marks
or of Apache marks - please contact the relevant project's PMC through
their private@<em>projectname</em>.apache.org mailing list.</p>
<p>If you are a third party with a serious concern about potential misuse of
your trademarks, and the relevant PMC is not responding to your official
requests in a timely manner, or if you are legal counsel, please
<a href="/foundation/marks/contact#other">contact our Brand Management Committee privately</a>.</p>
<h2 id="other">Other trademark guidelines<a class="headerlink" href="#other" title="Permalink">&para;</a></h2>
<p>For more information about Apache marks, see our <a href="/foundation/marks/">formal Trademark
Policy</a>.  PMC members should
also read the <a href="responsibility.html">PMC Branding Responsibilities</a>
and the <a href="pmcs.html">Project Website Requirements</a>.
See also the <a href="/foundation/marks/resources">site map of Trademark Resources</a>.</p>
<h2 id="notes">Important note<a class="headerlink" href="#notes" title="Permalink">&para;</a></h2>
<p><strong>Nothing in this ASF policy statement shall be interpreted to allow any
third party to claim any association with the Apache Software Foundation or
any of its projects or to imply any approval or support by ASF for any
third party products, services, or events.</strong></p>

</div>  </main>

  <!-- Footer -->
  <footer class="bg-primary">
    <div class="container">
      <div class="row">
        <br />
        <div class="col-sm-1">

        </div>
        <div class="col-sm-2">
          <h5 class="white">Community</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://community.apache.org/">Overview</a></li>
            <li><a href="/foundation/conferences.html">Conferences</a></li>
            <li><a href="http://community.apache.org/gsoc.html">Summer of Code</a></li>
            <li><a href="http://community.apache.org/newcomers/">Getting Started</a></li>
            <li><a href="/foundation/how-it-works.html">The Apache Way</a></li>
            <li><a href="https://tac.apache.org">Travel Assistance</a></li>
            <li><a href="/foundation/getinvolved.html">Get Involved</a></li>
            <li><a href="/foundation/policies/conduct.html">Code of Conduct</a></li>
            <li><a href="http://community.apache.org/newbiefaq.html">Community FAQ</a></li>
            <li><a href="/memorials/">Memorials</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Innovation</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://incubator.apache.org/">Incubator</a></li>
            <li><a href="http://labs.apache.org/">Labs</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Tech Operations</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/dev/">Developer Information</a></li>
            <li><a href="/dev/infrastructure.html">Infrastructure</a></li>
            <li><a href="/security/">Security</a></li>
            <li><a href="http://status.apache.org">Status</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Press</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/press/">Overview</a></li>
            <li><a href="https://blogs.apache.org/">ASF News</a></li>
            <li><a href="https://blogs.apache.org/foundation/">Announcements</a></li>
            <li><a href="https://twitter.com/TheASF">Twitter Feed</a></li>
            <li><a href="/press/#contact">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Legal</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/legal/">Legal Affairs</a></li>
            <li><a href="/legal/dmca.html">DMCA</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/records/">Public Records</a></li>
            <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a></li>
            <li><a href="/licenses/exports/">Export Information</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-1">
        </div>

      </div>
      <hr class="col-lg-12 hr-white" />
      <div class="row">
        <div class="col-lg-12">
          <p class="text-center">Copyright &#169; 2023 The Apache Software Foundation, Licensed under the <a class="white" href="/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
          <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p>
        </div>
      </div>
    </div>

  </footer>

  <!-- / Footer -->

  <script src="/js/jquery.min.js"></script>
  <script src="/js/bootstrap.js"></script>
  <script src="/js/slideshow.js"></script>
  <script>
    (function($){
    $(document).ready(function(){
    $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    console.log('WOrked');
    });
    });
    })(jQuery);
  </script>
</body>
</html>