<!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>Process Overview For Policing Apache Brands</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">    <p>This Process Overview For Policing Apache Brands is a simple turnkey
way that Apache&reg; project PMCs can police use of their
own trademarks and respond to questions about use of their brand.
This document is focused on Apache committers
and PMC members; outside parties should start with our
<a href="//www.apache.org/foundation/marks/">Apache Trademark Policy</a>.</p>
<p>To ensure that the ASF is able to continue to use our existing trademarks
to refer to our own software projects and communities, we need a process
that allows us to address infringements of our trademarks by others.</p>
<p><strong>DRAFT DRAFT DRAFT</strong> This is a proposed draft - very useful to start from, but not complete yet. Comments needed; hope to have some tooling to assist PMCs as well.</p>
<h1 id="links">Contents<a class="headerlink" href="#links" title="Permalink">&para;</a></h1>
<div class=".pull-right" style="float:right; border-style:dotted; width:200px; padding:5px; margin:5px">
<p>PMCs need to <a href="//www.apache.org/foundation/marks/responsibility">take responsibility</a> and can use the <a href="//www.apache.org/foundation/marks/reporting">Guide for Evaluating infringements</a>.</p>
</div>
<div id="toc"><ul><li><a class="toc-href" href="#introduction" title="Process Overview">Process Overview</a><ul><li><a class="toc-href" href="#trademark-issue-tracking-tool-ideas" title="Trademark Issue Tracking Tool Ideas">Trademark Issue Tracking Tool Ideas</a></li><li><a class="toc-href" href="#trademark-issue-tracking-tool-data-fields" title="Trademark Issue Tracking Tool Data Fields">Trademark Issue Tracking Tool Data Fields</a></li></ul></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>
<h1 id="introduction">Process Overview<a class="headerlink" href="#introduction" title="Permalink">&para;</a></h1>
<p>Once we are made aware of potential infringements or misuses of an Apache project's
trademark, that PMC needs to take action.</p>
<p><strong>Process design goals</strong> are to:</p>
<ul>
<li>Be as simple for PMCs/committers to use as practical</li>
<li>Separate different steps (i.e. reporting; evaluating; taking preliminary action; following up on responses from a third party)</li>
<li>Build up actual examples of misuse (or not) over time with resolution descriptions of which are trademark problems or not</li>
<li>Provide very basic statistics showing evidence of projects policing mark(s)</li>
</ul>
<p><strong>DRAFT Process Overview</strong></p>
<ol>
<li>A trademark misuse is reported to us (via trademarks@ or PMC or other method).  We should capture:</li>
</ol>
<ul>
<li><strong>Who reported</strong>  the issue? If a committer, we can more easily communicate with them (and perhaps have them login to an issue tracker to post information themselves), if non-committer this will be via email.</li>
<li>What is the <strong>specific URL</strong> (or picture of an brochure or physical goods) where the issue occurs?</li>
<li>What is the <strong>actual reported misuse</strong>?  I.e. we should store a copy of the phrase, paragraph, or description of the graphical misuse of the Apache trademark itself for later reference.</li>
<li><strong>Who is misusing</strong> the trademark? I.e. what company or individual produces that website or physical goods?</li>
<li>Does the reporter have any <strong>other comments</strong> or insights?</li>
</ul>
<ol>
<li>PMC will <strong>evaluate</strong> the report.</li>
</ol>
<ul>
<li>Follow the <a href="//www.apache.org/foundation/marks/reporting.html#issues">Checklist of issues to consider</a>.</li>
<li>Consider who owns the website (company, individual, etc.); what the specific use is; if related to product, service, other; etc.
<ul>
<li>In particular, the PMC will need to determine a contact email for who owns the website.</li>
</ul>
</li>
<li>If the use is clearly nominative use, then there is no action to take; we don't necessarily need to <em>track it</em>.
<ul>
<li>Inform the reporter it's nominative use, and thank them.</li>
</ul>
</li>
<li>If the use is a clearly an infringement by a software company where end users could be confused about our software product brand, track the issue.
<ul>
<li>Follow the <a href="//www.apache.org/foundation/marks/templates/">contact procedure templates</a>. If you don't get a positive response, you will need to follow up again and/or escalate with trademarks@.</li>
</ul>
</li>
<li>If the use may not be legally infringing, but is clearly violating our trademark policy, <em>track it</em>.
<ul>
<li>Follow the <a href="//www.apache.org/foundation/marks/templates/">contact procedure templates</a>. We can always <strong>ask</strong> someone to follow our policy and make changes, even if we couldn't legally force them to change.  Best bet is to ask politely and firmly.</li>
</ul>
</li>
<li>If the PMC isn't sure if the use is a problem that we need to address, <em>track it</em>.
<ul>
<li>Forward the issue to trademarks@ for an answer if we should address it.</li>
<li>If this is a problem, then the PMC should follow the <a href="//www.apache.org/foundation/marks/templates/">contact procedure templates</a>.</li>
</ul>
</li>
</ul>
<h2 id="trademark-issue-tracking-tool-ideas">Trademark Issue Tracking Tool Ideas<a class="headerlink" href="#trademark-issue-tracking-tool-ideas" title="Permalink">&para;</a></h2>
<p>Inputs will come from a variety of sources; we will always get some reports from non-committers
who are sending emails, possibly to the wrong places.  So ensuring PMCs know where to bubble up
trademark complaints will be important.  Data tracked in any tool should be committer-private.<br/>
Anyone may submit issues to the tool (need to prevent mass spam), but non-committer submitters
should not be able to see issue progress once submitted.</p>
<p>For any project, any committer on that project could have access to the tracking tool and making comments, but usually
only PMC members should be actually sending contact emails and updating the status of issues.
Docs should be clear that committers should not discuss issues in public unless the PMC makes
a specific request to do so - policing trademark misuse is best done privately and directly with the other party.
In particular, we do not discuss details of the policing process with the original reporter unless we have a specific reason to do so.</p>
<p>Many requests will probably come in via email, so if preliminary evaluation clearly points
to nominative use / not an issue, then we don't need to formally track it in a tool.  But if there is any question
within the PMC about if it's a problem, then we should track it, so that we can better capture
the decision and reasons why it is/isn't a problem for future reference.  Note that many
requests will continue to come in via trademarks@, so having a tool that we can cleanly handoff
evaluation and action from brand to the PMC is also valuable.</p>
<p><strong>Data Security</strong></p>
<ul>
<li>Anyone should be able to create a submission (until we need captcha to reduce spam)</li>
<li>Submitter should see a clear ACK that it was received</li>
<li>Only brand committee and relevant PMC (plus possibly committers on that PMC) should be able to see those issues</li>
<li>Option to echo changes to relevant private@ and/or trademarks@ lists for awareness</li>
</ul>
<h2 id="trademark-issue-tracking-tool-data-fields">Trademark Issue Tracking Tool Data Fields<a class="headerlink" href="#trademark-issue-tracking-tool-data-fields" title="Permalink">&para;</a></h2>
<p><strong>Newly Reported Issue</strong></p>
<table class="table">
<thead>
<tr>
<th>Field Name</th>
<th>Description (bold = required)</th>
</tr>
</thead>
<tbody>
<tr>
<td>ID</td>
<td>Like JIRA - project name/trademark and sequential number</td>
</tr>
<tr>
<td>Submitter</td>
<td>Email to contact submitter; if is a committer just use their ID</td>
</tr>
<tr>
<td>Submission</td>
<td>URL to original email if submitted via a mailing list</td>
</tr>
<tr>
<td><strong>Trademark</strong></td>
<td>Specific Apache trademark being reported (dropdown of project names)</td>
</tr>
<tr>
<td><strong>URL</strong></td>
<td>Specific URL where the trademark misuse is found</td>
</tr>
<tr>
<td><strong>Context</strong></td>
<td>Copy/paste of paragraph or similar content that the misuse is found in (in case the URL later changes)</td>
</tr>
<tr>
<td>IsLogo</td>
<td>Checkmark if this involves a graphical logo (defaults to no; project name)</td>
</tr>
<tr>
<td>ContentOwner</td>
<td>Name of website owner (company, individual, if known at time, otherwise PMC should fill in for issues being addressed)</td>
</tr>
<tr>
<td>OtherNotes</td>
<td>Text field for submitter to provide explanation of why they feel this is an issue; also if they see a pattern of misuses by the same organization elsewhere.</td>
</tr></tbody></table>
<p><strong>Fields Added During Tracking</strong></p>
<table class="table">
<thead>
<tr>
<th>Field Name</th>
<th>Description (bold = required)</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Status</strong></td>
<td>As in JIRA - overall status in workflow</td>
</tr>
<tr>
<td><strong>Type</strong></td>
<td>Type of issue - software product, services related to software, anything else (swag, etc.)</td>
</tr>
<tr>
<td>Comments</td>
<td>List of comments added by any committer ID</td>
</tr>
<tr>
<td>URLOther</td>
<td>List of URLs added by any committer ID (for showing other similar URLs)</td>
</tr>
<tr>
<td>Waiting</td>
<td>Flag denoting we are <em>waiting</em> for a response from an outside party</td>
</tr>
<tr>
<td>Responses</td>
<td>List of copy/paste responses from outside party, in case we want to keep record</td>
</tr>
<tr>
<td>Explanation</td>
<td>Text field for Brand Management committee to fill in explaining why resolution was made (i.e. why this is/is not an issue)</td>
</tr>
<tr>
<td>FAQURL</td>
<td>If this issue has been turned into a general .../marks/faq, URL to the answer for future reference</td>
</tr></tbody></table>
<p><strong>Potential Request Workflow</strong></p>
<ul>
<li>
<p>(Might be in email) - not tracked if the PMC determines it doesn't needs addressing.</p>
</li>
<li>
<p>Newly reported issue - presumably should email relevant private@ list for awareness (unless perhaps the PMC is self-reporting)</p>
</li>
<li>
<p>Evaluated: not an issue (with explanation). - <em>Closed</em></p>
</li>
<li>
<p>Evaluated: obvious infringement (waiting for PMC to make first contact)</p>
</li>
<li>
<p>Evaluated: policy violation not likely an infringement (waiting for PMC to make first contact)</p>
</li>
<li>
<p>Outside party has been contacted (<em>waiting</em> for their reply)</p>
</li>
<li>
<p>Outside party has been contacted a second time without a reply (<em>waiting</em> for their reply)</p>
</li>
<li>
<p>Outside party has responded positively</p>
</li>
<li>
<p>PMC has reviewed outside party has positively fixed the issue - <em>Resolved</em></p>
</li>
<li>
<p>Outside party has responded negatively - Escalate to trademarks@</p>
</li>
<li>
<p>Outside party has made apparent legal threats - Escalate to vp-brand@ and seek legal counsel - <em>Closed</em></p>
</li>
<li>
<p>Outside party has responded positively after escalation (PMC &amp; trademarks@ review positive fix) - <em>Resolved</em></p>
</li>
</ul>
<h1 id="other">Other Trademark Guidelines<a class="headerlink" href="#other" title="Permalink">&para;</a></h1>
<p>For more information about Apache marks, please see our <a href="//www.apache.org/foundation/marks/">formal Trademark
Policy</a> or the site map of <a href="//www.apache.org/foundation/marks/resources">Apache Trademark Resources</a>.<br/>
PMC members should also read the <a href="//www.apache.org/foundation/marks/responsibility">PMC Branding Responsibilities</a> guide.</p>
<h1 id="notes">Important Note<a class="headerlink" href="#notes" title="Permalink">&para;</a></h1>
<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>