<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="pmathml.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <title>Ontology Design</title>
  <meta name="generator" content="Amaya, see http://www.w3.org/Amaya/" />
  <style type="text/css">
  </style>
  <link href="site.css" rel="stylesheet" type="text/css" />
  <link href="site.css" rel="stylesheet" type="text/css" />
  <link href="site1.css" rel="stylesheet" type="text/css" />
</head>

<body>
<h1>Notes on Ontology Design</h1>

<div class="toc">
<ul>
  <li><a href="#L31">1. Symbology</a></li>
  <li><a href="#OntoClean">2. OntoClean</a> 
    <ul>
      <li><a href="#OntoCleanAssumptions">2.1. Assumptions</a></li>
      <li><a href="#L1699">2.2. Rigidity</a></li>
      <li><a href="#L1856">2.3. Formal Ontological Analysis</a> 
        <ul>
          <li><a href="#L1879">2.3.1. Mereology</a></li>
        </ul>
      </li>
    </ul>
  </li>
  <li><a href="#L2597">3. Conjunction</a> 
    <ul>
      <li><a href="#L2704">3.1. Associative Law</a></li>
    </ul>
  </li>
  <li><a href="#L3002">4. Disjunction</a></li>
  <li><a href="#ClassVsIndividual">5. Class vs Individual</a></li>
  <li><a href="#n-ary">6. n-ary</a></li>
  <li><a href="#L3102">7. Open World Assumption</a></li>
  <li><a href="#L3214">8. Defined Classes</a></li>
  <li><a href="#L3224">9. Citations</a></li>
</ul>
</div>

<h2 id="L31">1. Symbology</h2>
<dl class="OutlineFullThin CaptionedFullBox">
  <dt class="CaptionHeading">Table of Common Logic Symbols<sup>[1]</sup></dt>
    <dd>
      <table class="CaptionedTable">
        <tbody>
          <tr>
            <th>Term</th>
            <th>Sym</th>
            <th>Example</th>
            <th>Description</th>
          </tr>
          <tr>
            <td>Conjunction</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>∧</mo>
              </math></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mi>p</mi>
                  <mo>∧</mo>
                  <mi>q</mi>
                </mrow>
              </math></td>
            <td>The conjunction of <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi xmlns="http://www.w3.org/1998/Math/MathML">p</mi>
              </math> and <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>q</mi>
              </math> is the statement <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mi>p</mi>
                  <mo>∧</mo>
                  <mi>q</mi>
                </mrow>
              </math>, which we read “p and q.”</td>
          </tr>
          <tr>
            <td>Disjunction</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>∨</mo>
              </math></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mi>p</mi>
                  <mo>∨</mo>
                  <mi>q</mi>
                </mrow>
              </math></td>
            <td>The disjunction of <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
              </math> and <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>q</mi>
              </math> is the statement <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mi>p</mi>
                  <mo>∨</mo>
                  <mi>q</mi>
                </mrow>
              </math>, which we read “p or q.”</td>
          </tr>
          <tr>
            <td>Negation</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>~</mo>
              </math></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>~</mo>
                <mi>p</mi>
              </math></td>
            <td>The negation of <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
              </math> is the statement <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>~</mo>
                <mi>p</mi>
              </math>, which we read “not p.”</td>
          </tr>
          <tr>
            <td>Equivalent</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>≡</mo>
              </math></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mi>s</mi>
                  <mo>≡</mo>
                  <mi>t</mi>
                </mrow>
              </math></td>
            <td>Two statements are <strong>logically equivalent</strong> if,
              for all possible truth values of the variables involved, the
              two statements always have the same truth values. If <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi xmlns="http://www.w3.org/1998/Math/MathML">s</mi>
              </math> and <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>t</mi>
              </math> are equivalent, we write <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mi>s</mi>
                  <mo>≡</mo>
                  <mi>t</mi>
                </mrow>
              </math>. This is <em>not</em> another logical statement. It is
              simply the claim that the two statements <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi xmlns="http://www.w3.org/1998/Math/MathML">s</mi>
              </math> and <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>t</mi>
              </math> are logically equivalent.</td>
          </tr>
          <tr>
            <td>Conditional</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>→</mo>
              </math></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mi>p</mi>
                  <mo>→</mo>
                  <mi xmlns="http://www.w3.org/1998/Math/MathML">q</mi>
                </mrow>
              </math></td>
            <td>If <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
              </math> is true, then <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>q</mi>
              </math> is true, or, more simply, <strong>if</strong> <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
              </math>, <strong>then</strong> <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>q</mi>
              </math>. We can also phrase this as <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
              </math> <strong>implies</strong> <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>q</mi>
              </math>. <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
              </math> is a sufficient condition for <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>q</mi>
              </math>. <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>q</mi>
              </math> is a necessary condition for <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
              </math>.</td>
          </tr>
          <tr>
            <td>Biconditional</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>↔</mo>
              </math></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
                <mo>↔</mo>
                <mi>q</mi>
              </math></td>
            <td>The <strong>biconditional</strong>, written <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
                <mo>↔</mo>
                <mi>q</mi>
              </math>, is defined to be the statement<math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mrow>
                    <mo>(</mo>
                    <mrow>
                      <mi>p</mi>
                      <mo>→</mo>
                      <mi>q</mi>
                    </mrow>
                    <mo>)</mo>
                  </mrow>
                  <mo>∧</mo>
                  <mrow>
                    <mo>(</mo>
                    <mrow>
                      <mi>q</mi>
                      <mo>→</mo>
                      <mi>p</mi>
                    </mrow>
                    <mo>)</mo>
                  </mrow>
                </mrow>
              </math>. <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
              </math> is necessary and sufficient for <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>q</mi>
              </math>. <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi>
              </math> is equivalent to <math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>q</mi>
              </math>.</td>
          </tr>
          <tr>
            <td>Subclass Of 
              <p>Subproperty Of</p>
            </td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>⊆</mo>
              </math></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <msub>
                    <mi>C</mi>
                    <mn>1</mn>
                  </msub>
                  <mo>⊆</mo>
                  <msub>
                    <mi>C</mi>
                    <mn>2</mn>
                  </msub>
                </mrow>
              </math> 
              <p><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <msub>
                    <mi>P</mi>
                    <mn>1</mn>
                  </msub>
                  <mo>⊆</mo>
                  <msub>
                    <mi>P</mi>
                    <mn>2</mn>
                  </msub>
                </mrow>
              </math></p>
            </td>
            <td>Example: <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mi>Human</mi>
                  <mo>⊆</mo>
                  <mrow>
                    <mi>Animal</mi>
                    <mo>∩</mo>
                    <mi>Biped</mi>
                  </mrow>
                </mrow>
              </math> 
              <p><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mi>hasDaughter</mi>
                  <mo>⊆</mo>
                  <mi>hasChild</mi>
                </mrow>
              </math></p>
            </td>
          </tr>
          <tr>
            <td>Some</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>∃</mo>
              </math></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>∃</mo>
                  <mi>R</mi>
                  <mspace width=".2em"/>
                  <mi>C</mi>
                </mrow>
              </math></td>
            <td>Example: <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>∃</mo>
                  <mi>hasColleague</mi>
                  <mspace width=".2em"/>
                  <mi>Professor</mi>
                </mrow>
              </math>, Existential</td>
          </tr>
          <tr>
            <td>Only</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>∀</mo>
              </math></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>∀</mo>
                  <mi>R</mi>
                  <mspace width=".2em"/>
                  <mi>C</mi>
                </mrow>
              </math></td>
            <td>Eample: <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>∀</mo>
                  <mi>hasColleague</mi>
                  <mspace width=".2em"/>
                  <mi>Professor</mi>
                </mrow>
              </math>, Universal</td>
          </tr>
          <tr>
            <td>Not</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>¬</mo>
              </math></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>¬</mo>
                  <mrow>
                    <mo>(</mo>
                    <mrow>
                      <mo>∃</mo>
                      <mi>R</mi>
                      <mspace width=".2em"/>
                      <mi>C</mi>
                    </mrow>
                    <mo>)</mo>
                  </mrow>
                </mrow>
              </math></td>
            <td>Example <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>¬</mo>
                  <mrow>
                    <mo>(</mo>
                    <mrow>
                      <mo>∃</mo>
                      <mi>hasTopping</mi>
                      <mspace width=".2em"/>
                      <mi>MeatTopping</mi>
                    </mrow>
                    <mo>)</mo>
                  </mrow>
                </mrow>
              </math>, Not</td>
          </tr>
        </tbody>
      </table>
    </dd>
    <dd class="CaptionFigure">Table 1 - Table of Common Logic Symbols</dd>
    <dd class="CaptionNotation">OWL uses Description Logics which starts with
      propositional calculus, predicate calculus and First Order Logic
    (FOL)</dd>
</dl>
<dl class="OutlineFullThin CaptionedFullBox">
  <dt class="CaptionHeading">Interesting Formulas</dt>
    <dd>
      <table class="CaptionedTable">
        <tbody>
          <tr>
            <th>Term</th>
            <th>Description</th>
          </tr>
          <tr>
            <td>Disjunctive Normal Form </td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mrow>
                      <mi>p</mi>
                      <mo>→</mo>
                      <mi>q</mi>
                    </mrow>
                    <mo>≡</mo>
                    <mrow>
                      <mrow>
                        <mo>(</mo>
                        <mrow>
                          <mo>~</mo>
                          <mi>p</mi>
                        </mrow>
                        <mo>)</mo>
                      </mrow>
                      <mo>∨</mo>
                      <mi>q</mi>
                    </mrow>
                  </mrow>
                </math></dt>
                  <dd>We can convert implication to disjunction. We can
                    convert <em>any</em> logical statement into a disjunction
                    of conjunctions of atoms or their negations. This is
                    called <em>disjunctive normal form</em>, and is essential
                    in the design of the logical circuitry making up digital
                    computers.</dd>
              </dl>
            </td>
          </tr>
          <tr>
            <td>Converse</td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mi>q</mi>
                    <mo>→</mo>
                    <mi>p</mi>
                  </mrow>
                </math></dt>
                  <dd>The statement <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mrow>
                        <mi>q</mi>
                        <mo>→</mo>
                        <mi>p</mi>
                      </mrow>
                    </math>is called the <strong>converse</strong> of the
                    statement <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mrow>
                        <mi>p</mi>
                        <mo>→</mo>
                        <mi>q</mi>
                      </mrow>
                    </math>. A conditional and its converse are <em>not</em>
                    equivalent.</dd>
              </dl>
            </td>
          </tr>
          <tr>
            <td>Contrapositive</td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mrow>
                      <mo>(</mo>
                      <mrow>
                        <mo>~</mo>
                        <mi>q</mi>
                      </mrow>
                      <mo>)</mo>
                    </mrow>
                    <mo>→</mo>
                    <mrow>
                      <mo>(</mo>
                      <mrow>
                        <mo>~</mo>
                        <mi>p</mi>
                      </mrow>
                      <mo>)</mo>
                    </mrow>
                  </mrow>
                </math></dt>
                  <dd>The statement <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mrow>
                        <mrow>
                          <mo>(</mo>
                          <mrow>
                            <mo>~</mo>
                            <mi>q</mi>
                          </mrow>
                          <mo>)</mo>
                        </mrow>
                        <mo>→</mo>
                        <mrow>
                          <mo>(</mo>
                          <mrow>
                            <mo>~</mo>
                            <mi>p</mi>
                          </mrow>
                          <mo>)</mo>
                        </mrow>
                      </mrow>
                    </math> is called the <strong>contrapositive</strong> of
                    the statement <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mrow>
                        <mi>p</mi>
                        <mo>→</mo>
                        <mi>q</mi>
                      </mrow>
                    </math>. A conditional and its contrapositive are
                    equivalent. </dd>
                  <dd><math xmlns="http://www.w3.org/1998/Math/MathML">
                      <mrow>
                        <mrow>
                          <mi>p</mi>
                          <mo>→</mo>
                          <mi>q</mi>
                        </mrow>
                        <mo>≡</mo>
                        <mrow>
                          <mrow>
                            <mo>(</mo>
                            <mrow>
                              <mo>~</mo>
                              <mi>p</mi>
                            </mrow>
                            <mo>)</mo>
                          </mrow>
                          <mo>∨</mo>
                          <mi>q</mi>
                        </mrow>
                        <mo>≡</mo>
                        <mrow>
                          <mi>q</mi>
                          <mo>∨</mo>
                          <mrow>
                            <mo>(</mo>
                            <mrow>
                              <mo>~</mo>
                              <mi>p</mi>
                            </mrow>
                            <mo>)</mo>
                          </mrow>
                        </mrow>
                        <mo>≡</mo>
                        <mrow>
                          <mo>~</mo>
                          <mrow>
                            <mo>(</mo>
                            <mrow>
                              <mo>~</mo>
                              <mi>q</mi>
                            </mrow>
                            <mo>)</mo>
                          </mrow>
                          <mo>∨</mo>
                          <mrow>
                            <mo>(</mo>
                            <mrow>
                              <mo>~</mo>
                              <mi>p</mi>
                            </mrow>
                            <mo>)</mo>
                          </mrow>
                        </mrow>
                        <mo>)</mo>
                        <mo>≡</mo>
                        <mrow>
                          <mrow>
                            <mo>(</mo>
                            <mrow>
                              <mo>~</mo>
                              <mi>q</mi>
                            </mrow>
                            <mo>)</mo>
                          </mrow>
                          <mo>→</mo>
                          <mrow>
                            <mo>(</mo>
                            <mrow>
                              <mo>~</mo>
                              <mi>p</mi>
                            </mrow>
                            <mo>)</mo>
                          </mrow>
                        </mrow>
                      </mrow>
                    </math> </dd>
              </dl>
            </td>
          </tr>
          <tr>
            <td>Modus Ponens or Direct Reasoning</td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mrow>
                      <mo>[</mo>
                      <mrow>
                        <mrow>
                          <mo>(</mo>
                          <mrow>
                            <mi>p</mi>
                            <mo>→</mo>
                            <mi>q</mi>
                          </mrow>
                          <mo>)</mo>
                        </mrow>
                        <mo>∧</mo>
                        <mi>p</mi>
                      </mrow>
                      <mo>]</mo>
                    </mrow>
                    <mo>→</mo>
                    <mi>q</mi>
                  </mrow>
                </math></dt>
                  <dd>If an implication and its premise are both true, then
                    so is its conclusion. Modus ponens is the most direct
                    form of everyday reasoning, hence its alternate name
                    “direct reasoning.” When we know that <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mi>p</mi>
                    </math> implies <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mi>q</mi>
                    </math> and we know that <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mi>p</mi>
                    </math> is true, we canconclude that <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mi>q</mi>
                    </math> is also true. This is sometimes known as
                    <strong>affirming the hypothesis</strong>.</dd>
              </dl>
            </td>
          </tr>
          <tr>
            <td>Modus Tollens or Indirect Reasoning</td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mrow>
                      <mo>[</mo>
                      <mrow>
                        <mrow>
                          <mo>(</mo>
                          <mrow>
                            <mi>p</mi>
                            <mo>→</mo>
                            <mi>q</mi>
                          </mrow>
                          <mo>)</mo>
                        </mrow>
                        <mo>∧</mo>
                        <mrow>
                          <mo>(</mo>
                          <mrow>
                            <mo>~</mo>
                            <mi>q</mi>
                          </mrow>
                          <mo>)</mo>
                        </mrow>
                      </mrow>
                      <mo>]</mo>
                    </mrow>
                    <mo>→</mo>
                    <mrow>
                      <mo>(</mo>
                      <mrow>
                        <mo>~</mo>
                        <mi>p</mi>
                      </mrow>
                      <mo>)</mo>
                    </mrow>
                  </mrow>
                </math></dt>
                  <dd>If an implication is true but its conclusion is false,
                    then its premise is false. When we know that <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mi>p</mi>
                    </math> implies <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mi>q</mi>
                    </math> and we know that <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mi>q</mi>
                    </math> is false, we can conclude that <math
                    xmlns="http://www.w3.org/1998/Math/MathML">
                      <mi>p</mi>
                    </math> is also false. This is sometimes known as
                    <strong>denying the consequent</strong>.</dd>
              </dl>
            </td>
          </tr>
        </tbody>
      </table>
    </dd>
    <dd class="CaptionFigure">Table 1 - Interesting Formulas</dd>
    <dd class="CaptionNotation">These formulas form the basis of many of the
      other formuli in this document.</dd>
</dl>
<dl class="CaptionedFullBox OutlineFullThin">
  <dt class="CaptionHeading">Class Constructors<sup>[2]</sup></dt>
    <dd>
      <table class="CaptionedTable">
        <tbody>
          <tr>
            <th>Constructor</th>
            <th>DL Syntax</th>
            <th>Manchester</th>
            <th>Example</th>
          </tr>
          <tr>
            <td>intersectionOf</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>C</mo>
                  <mo>∩</mo>
                  <mo>D</mo>
                </mrow>
              </math></td>
            <td>C <strong>AND</strong> D</td>
            <td><dl class="FormulaWithDescription">
                <dt>Person <math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mo>∩</mo>
                </math> EmployedThings </dt>
                <dt>Person <strong>AND</strong> EmployedThings</dt>
                  <dd>The class EmployedPerson can be described as the
                    intersectionOf Person and EmployedThings.</dd>
              </dl>
            </td>
          </tr>
          <tr>
            <td>unionOf</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>C</mo>
                  <mo>∪</mo>
                  <mo>D</mo>
                </mrow>
              </math></td>
            <td>C <strong>OR</strong> D</td>
            <td><dl class="FormulaWithDescription">
                <dt>USCitizens <math
                xmlns="http://www.w3.org/1998/Math/MathML">
                  <mo>∪</mo>
                </math> DutchCitizens</dt>
                  <dd>A class contains things that are either USCitizens or
                    DutchCitizens.</dd>
              </dl>
            </td>
          </tr>
          <tr>
            <td>complementOf</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>¬</mo>
                  <mi>C</mi>
                </mrow>
              </math></td>
            <td></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>¬</mo>
              </math>Male</td>
          </tr>
          <tr>
            <td>oneOf</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>{</mo>
                  <msub>
                    <mi>i</mi>
                    <mn>1</mn>
                  </msub>
                  <mo>.</mo>
                  <mo>.</mo>
                  <mo>.</mo>
                  <msub>
                    <mi>i</mi>
                    <mi>n</mi>
                  </msub>
                  <mo>}</mo>
                </mrow>
              </math></td>
            <td></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>{</mo>
                  <mi>John</mi>
                  <mo>,</mo>
                  <mi>Mary</mi>
                  <mo>}</mo>
                </mrow>
              </math></td>
          </tr>
          <tr>
            <td>hasClass</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>∃</mo>
                  <mrow>
                    <mi>P</mi>
                    <mo>.</mo>
                  </mrow>
                  <mi>C</mi>
                </mrow>
              </math></td>
            <td></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>∃</mo>
              </math>hasChild.Lawyer</td>
          </tr>
          <tr>
            <td>toClass</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>∀</mo>
                  <mrow>
                    <mi>P</mi>
                    <mo>.</mo>
                  </mrow>
                  <mi>C</mi>
                </mrow>
              </math></td>
            <td></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>∀</mo>
              </math>hasChild.Doctor</td>
          </tr>
          <tr>
            <td>hasValue</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>∃</mo>
                  <mrow>
                    <mi>P</mi>
                    <mo>.</mo>
                  </mrow>
                  <mrow>
                    <mo>{</mo>
                    <mi>i</mi>
                    <mo>}</mo>
                  </mrow>
                </mrow>
              </math></td>
            <td></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>∃</mo>
              </math>citizenOf.<math
              xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>{</mo>
                  <mi>USA</mi>
                  <mo>}</mo>
                </mrow>
              </math></td>
          </tr>
          <tr>
            <td>minCardinalityQ</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>≥</mo>
                  <mi>n</mi>
                  <mspace width=".2em"/>
                  <mi>P</mi>
                  <mo>.</mo>
                  <mi>C</mi>
                </mrow>
              </math></td>
            <td></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>≥</mo>
                  <mn>2</mn>
                </mrow>
              </math>hasChild.Lawyer</td>
          </tr>
          <tr>
            <td>maxCardinalityQ</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>≤</mo>
                  <mrow>
                    <mi>n</mi>
                    <mspace width=".2em"/>
                    <mi>P</mi>
                    <mo>.</mo>
                    <mi>C</mi>
                  </mrow>
                </mrow>
              </math></td>
            <td></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>≤</mo>
                  <mn>1</mn>
                </mrow>
              </math>hasChild.Male</td>
          </tr>
          <tr>
            <td>cardinalityQ</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>=</mo>
                  <mrow>
                    <mi>n</mi>
                    <mspace width=".2em"/>
                    <mi>P</mi>
                    <mo>.</mo>
                    <mi>C</mi>
                  </mrow>
                </mrow>
              </math></td>
            <td></td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mo>=</mo>
                  <mn>1</mn>
                </mrow>
              </math>hasParent.Female</td>
          </tr>
        </tbody>
      </table>
    </dd>
    <dd class="CaptionFigure">Table X - Class Constructors</dd>
    <dd class="CaptionNotation"><ul>
        <li>C is a concept (class)</li>
        <li>P is a role (property)</li>
        <li><math xmlns="http://www.w3.org/1998/Math/MathML">
            <msub>
              <mi>x</mi>
              <mi>i</mi>
            </msub>
          </math> is an individual/nominal</li>
        <li>XMLS datatypes as well as classes in<math
          xmlns="http://www.w3.org/1998/Math/MathML">
            <mrow>
              <mo>∀</mo>
              <mrow>
                <mi>P</mi>
                <mo>.</mo>
              </mrow>
              <mi>C</mi>
            </mrow>
          </math>and <math xmlns="http://www.w3.org/1998/Math/MathML">
            <mrow>
              <mo>∃</mo>
              <mrow>
                <mi>P</mi>
                <mo>.</mo>
              </mrow>
              <mi>C</mi>
            </mrow>
          </math></li>
      </ul>
    </dd>
</dl>

<h2 id="OntoClean"><a name="OntoClean1" id="OntoClean1">2. OntoClean</a></h2>

<h3 id="OntoCleanAssumptions"><a name="Assumption" id="Assumption">2.1.
Assumptions</a></h3>

<p>If the time argument is omitted for a certain predicate ϕ, then the
predicate is assumed to be time invariant, that is <math
xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mo>∃</mo>
    <mi>t</mi>
    <mspace width=".2em"/>
    <mi>ϕ</mi>
    <mrow>
      <mo>(</mo>
      <mrow>
        <mi>x</mi>
        <mo>,</mo>
        <mi>t</mi>
      </mrow>
      <mo>)</mo>
    </mrow>
    <mrow>
      <mo>→</mo>
      <mrow>
        <mo>∀</mo>
        <mi>t</mi>
        <mspace width=".2em"/>
        <mi>ϕ</mi>
        <mrow>
          <mo>(</mo>
          <mrow>
            <mi>x</mi>
            <mo>,</mo>
            <mi>t</mi>
          </mrow>
          <mo>)</mo>
        </mrow>
      </mrow>
    </mrow>
  </mrow>
</math>. Some Thing implicates All Thing</p>
<ul>
  <li>□ϕ - Means ϕ is necessarily true in all possible worlds</li>
  <li>◇ϕ - Means ϕ is possibly true in at least one possible world</li>
  <li>Property variables are restricted to discriminating properties,
    properties ϕ such that<math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mrow>
          <mo>◇</mo>
          <mo>∃</mo>
          <mi>x</mi>
          <mspace width=".2em"/>
          <mi>ϕ</mi>
          <mrow>
            <mo>(</mo>
            <mi>x</mi>
            <mo>)</mo>
          </mrow>
        </mrow>
        <mo>∧</mo>
        <mrow>
          <mo>◇</mo>
          <mo>∃</mo>
          <mi>x</mi>
          <mspace width=".2em"/>
          <mrow>
            <mo>¬</mo>
            <mi>ϕ</mi>
          </mrow>
          <mrow>
            <mo>(</mo>
            <mi>x</mi>
            <mo>)</mo>
          </mrow>
        </mrow>
      </mrow>
    </math>. There is possibly something which has this property, and
    possibly something that does not have this property.</li>
</ul>

<h3 id="L1699">2.2. Rigidity</h3>
<dl>
  <dt>Rigid Property</dt>
    <dd>A property that is essential to <em>all</em> its instances</dd>
    <dd>A property ϕ such that <math
      xmlns="http://www.w3.org/1998/Math/MathML">
        <mo>□</mo>
        <mo>(</mo>
        <mo>∀</mo>
        <mi>xt</mi>
        <mspace width=".2em"/>
        <mi>ϕ</mi>
        <mo>(</mo>
        <mi>x</mi>
        <mo>,</mo>
        <mi>t</mi>
        <mo>)</mo>
        <mo>→</mo>
        <mo>□</mo>
        <mo>∀</mo>
        <mi>t</mi>
        <mo>'</mo>
        <mspace width=".2em"/>
        <mi>ϕ</mi>
        <mo>(</mo>
        <mi>x</mi>
        <mo>,</mo>
        <mi>t</mi>
        <mo>'</mo>
        <mo>)</mo>
        <mo>)</mo>
      </math></dd>
  <dt>Non-Rigid Property</dt>
    <dd>A property that is not essential to <em>some</em> of its
    instances</dd>
    <dd>A property ϕ such that <math
      xmlns="http://www.w3.org/1998/Math/MathML">
        <mo>◇</mo>
        <mo>(</mo>
        <mo>∃</mo>
        <mi>x</mi>
        <mo>,</mo>
        <mi>t</mi>
        <mspace width=".2em"/>
        <mi>ϕ</mi>
        <mo>(</mo>
        <mi>x</mi>
        <mo>,</mo>
        <mi>t</mi>
        <mo>)</mo>
        <mo>∧</mo>
        <mo>◇</mo>
        <mo>∃</mo>
        <mi>t</mi>
        <mo>'</mo>
        <mspace width=".2em"/>
        <mo>¬</mo>
        <mi>ϕ</mi>
        <mo>(</mo>
        <mi>x</mi>
        <mo>,</mo>
        <mi>t</mi>
        <mo>'</mo>
        <mo>)</mo>
        <mo>)</mo>
      </math></dd>
  <dt>Anti-Rigid Property</dt>
    <dd>A property that is not essential to <em>all</em> of its instances</dd>
</dl>

<h3 id="L1856">2.3. Formal Ontological Analysis</h3>

<p>The following theories for the basis for a common ontology vocabulary:</p>
<ul>
  <li>Theory of Essence and Identity</li>
  <li>Theory of Parts (Mereology)</li>
  <li>Theory of Wholes</li>
  <li>Theory of Dependence</li>
  <li>Theory of Composition and Constitution</li>
  <li>Theory of Properties and Qualities</li>
</ul>

<h4 id="L1879">2.3.1. Mereology</h4>

<p>Mereology is the calculus of individuals, "nominalism". The word is
derived from the Greek <em>meros</em>, a part - one of the constituent parts
of a whole. Tarski linked the theory of Mereology with boolean algebra in
1935. The theory is expressed in First Order Logic (FOL). The theory places
constraints on what can be described:</p>
<ul>
  <li>No null individuals</li>
  <li>No abstract entities</li>
  <li>No hierarchical distinction between individuals</li>
  <li>A single relation of parthood</li>
</ul>

<p>All ontologies use a parthood relation, in the best cases fully specified
with respect to Peter Simon's work in 1986.</p>
<dl class="OutlineFullThin CaptionedFullBox">
  <dt class="CaptionHeading">Mereology Formulas</dt>
    <dd>
      <table class="CaptionedTable">
        <tbody>
          <tr>
            <th>Term</th>
            <th>Label</th>
            <th>Description</th>
            <th>Hasse Diagram</th>
          </tr>
          <tr>
            <td>Partial Order</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <msub>
                  <mi>M</mi>
                  <mn>0</mn>
                </msub>
              </math></td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mi>P</mi>
                </math></dt>
                  <dd>Parthood partially orders the universe. Partial order
                    is an antisymmetric relation that is also transitive and
                    reflexive.</dd>
              </dl>
            </td>
            <td></td>
          </tr>
          <tr>
            <td>Reflexivity</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <msub>
                  <mi>M</mi>
                  <mn>1</mn>
                </msub>
              </math></td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mo>∀</mo>
                    <mi>x</mi>
                    <mspace width=".2em"/>
                    <mi>P</mi>
                    <mrow>
                      <mo>(</mo>
                      <mrow>
                        <mi>x</mi>
                        <mo>,</mo>
                        <mi>x</mi>
                      </mrow>
                      <mo>)</mo>
                    </mrow>
                  </mrow>
                </math></dt>
                  <dd>Every whole is part (non proper part) of itself.
                    Reflexivity is largely mathematical.</dd>
              </dl>
            </td>
            <td></td>
          </tr>
          <tr>
            <td>Transitivity</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <msub>
                  <mi>M</mi>
                  <mn>2</mn>
                </msub>
              </math></td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mo>∀</mo>
                    <mi>xyz</mi>
                    <mspace width=".2em"/>
                    <mrow>
                      <mo>(</mo>
                      <mrow>
                        <mrow>
                          <mo>(</mo>
                          <mrow>
                            <mi>P</mi>
                            <mrow>
                              <mo>(</mo>
                              <mrow>
                                <mi>x</mi>
                                <mo>,</mo>
                                <mi>y</mi>
                              </mrow>
                              <mo>)</mo>
                            </mrow>
                            <mo>∧</mo>
                            <mi>P</mi>
                            <mrow>
                              <mo>(</mo>
                              <mrow>
                                <mi>y</mi>
                                <mo>,</mo>
                                <mi>z</mi>
                              </mrow>
                              <mo>)</mo>
                            </mrow>
                          </mrow>
                          <mo>)</mo>
                        </mrow>
                        <mo>→</mo>
                        <mi>P</mi>
                        <mrow>
                          <mo>(</mo>
                          <mrow>
                            <mi>x</mi>
                            <mo>,</mo>
                            <mi>z</mi>
                          </mrow>
                          <mo>)</mo>
                        </mrow>
                      </mrow>
                      <mo>)</mo>
                    </mrow>
                  </mrow>
                </math></dt>
                  <dd>An important and common requirement for the basic
                    relation from a part to its whole is that it is
                    transitive, i.e. if x is part of y, and y is part of z,
                    then x is part of z.</dd>
              </dl>
            </td>
            <td></td>
          </tr>
          <tr>
            <td>Antisymmetry</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <msub>
                  <mi>M</mi>
                  <mn>3</mn>
                </msub>
              </math></td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mo>∀</mo>
                    <mi>xy</mi>
                    <mspace width=".2em"/>
                    <mrow>
                      <mo>(</mo>
                      <mrow>
                        <mrow>
                          <mo>(</mo>
                          <mrow>
                            <mi>P</mi>
                            <mrow>
                              <mo>(</mo>
                              <mrow>
                                <mi>x</mi>
                                <mo>,</mo>
                                <mi>y</mi>
                              </mrow>
                              <mo>)</mo>
                            </mrow>
                            <mo>∧</mo>
                            <mi>P</mi>
                            <mrow>
                              <mo>(</mo>
                              <mrow>
                                <mi>y</mi>
                                <mo>,</mo>
                                <mi>x</mi>
                              </mrow>
                              <mo>)</mo>
                            </mrow>
                          </mrow>
                          <mo>)</mo>
                        </mrow>
                        <mo>→</mo>
                        <mrow>
                          <mi>x</mi>
                          <mo>=</mo>
                          <mi>y</mi>
                        </mrow>
                      </mrow>
                      <mo>)</mo>
                    </mrow>
                  </mrow>
                </math></dt>
                  <dd>If Pxy and Pyx both hold, then x and y are the same
                    object.</dd>
              </dl>
            </td>
            <td></td>
          </tr>
          <tr>
            <td>Proper Part</td>
            <td></td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mi>PP</mi>
                    <mrow>
                      <mo>(</mo>
                      <mrow>
                        <mi>x</mi>
                        <mo>,</mo>
                        <mi>y</mi>
                      </mrow>
                      <mo>)</mo>
                    </mrow>
                    <mrow>
                      <msub>
                        <mo>≡</mo>
                        <mi>df</mi>
                      </msub>
                      <mspace width=".2em"/>
                      <mi>P</mi>
                      <mrow>
                        <mo>(</mo>
                        <mrow>
                          <mi>x</mi>
                          <mo>,</mo>
                          <mi>y</mi>
                        </mrow>
                        <mo>)</mo>
                      </mrow>
                      <mo>∧</mo>
                      <mrow>
                        <mo>¬</mo>
                        <mi>P</mi>
                        <mrow>
                          <mo>(</mo>
                          <mrow>
                            <mi>y</mi>
                            <mo>,</mo>
                            <mi>x</mi>
                          </mrow>
                          <mo>)</mo>
                        </mrow>
                      </mrow>
                    </mrow>
                  </mrow>
                </math></dt>
                  <dd>"x is a proper part of y," written PPxy, which holds if
                    Pxy is true and Pyx is false.</dd>
              </dl>
            </td>
            <td class="CellCentered"><svg:svg
                   xmlns:svg="http://www.w3.org/2000/svg" version="1.0"
                   width="10.370368" height="54.1021" id="svg2">
                <svg:defs id="defs4">
                </svg:defs>
                <svg:g transform="translate(-12.725533,-16.212713)"
                  id="layer1">
                  <svg:rect width="3.5" height="43.375" rx="0.037914943"
                        ry="0.044974804" x="16.160717" y="23.625"
                        style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                        id="rect2164"/>
                  <svg:path
                        d="M 328.57144 103.79076 A 40 37.142857 0 1 1  248.57144,103.79076 A 40 37.142857 0 1 1  328.57144 103.79076 z"
                        transform="matrix(0.1296296,0,0,0.1296296,-19.496684,7.573172)"
                        style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                        id="path2160"/>
                  <svg:path
                        d="M 328.57144 103.79076 A 40 37.142857 0 1 1  248.57144,103.79076 A 40 37.142857 0 1 1  328.57144 103.79076 z"
                        transform="matrix(0.1296296,0,0,0.1296296,-19.496684,52.045646)"
                        style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                        id="path2162"/>
                </svg:g>
              </svg:svg>
            </td>
          </tr>
          <tr>
            <td>Overlap</td>
            <td></td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <msub>
                    <mrow>
                      <mi>O</mi>
                      <mrow>
                        <mo>(</mo>
                        <mrow>
                          <mi>x</mi>
                          <mo>,</mo>
                          <mi>y</mi>
                        </mrow>
                        <mo>)</mo>
                      </mrow>
                      <mo>≡</mo>
                    </mrow>
                    <mi>df</mi>
                  </msub>
                  <mrow>
                    <mspace width=".2em"/>
                    <mo>∃</mo>
                    <mi>z</mi>
                    <mrow>
                      <mo>(</mo>
                      <mrow>
                        <mrow>
                          <mi>P</mi>
                          <mrow>
                            <mo>(</mo>
                            <mrow>
                              <mi>z</mi>
                              <mo>,</mo>
                              <mi>x</mi>
                            </mrow>
                            <mo>)</mo>
                          </mrow>
                          <mo>∧</mo>
                          <mi>P</mi>
                          <mrow>
                            <mo>(</mo>
                            <mrow>
                              <mi>z</mi>
                              <mo>,</mo>
                              <mi>y</mi>
                            </mrow>
                            <mo>)</mo>
                          </mrow>
                        </mrow>
                      </mrow>
                      <mo>)</mo>
                    </mrow>
                  </mrow>
                </math></dt>
                  <dd>x and y overlap, written Oxy, if there exists an object
                    z such that Pzx and Pzy both hold. The parts of z, the
                    "overlap" or "product" of x and y, are precisely those
                    objects that are parts of both x and y.</dd>
              </dl>
            </td>
            <td class="CellCentered"><svg:svg
                   xmlns:svg="http://www.w3.org/2000/svg" version="1.0"
                   width="45.968472" height="50.480087" id="svg4150">
                <svg:defs id="defs4152">
                </svg:defs>
                <svg:g transform="translate(-235.1217,-118.61093)"
                  id="layer1">
                  <svg:g
                    transform="matrix(0.9157513,-0.4017456,0.4017456,0.9157513,-35.065857,114.65329)"
                    id="g4167">
                    <svg:rect width="3.5" height="43.375" rx="0.037914943"
                          ry="0.044974804" x="246.82146" y="121.29485"
                          style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                          id="rect2164"/>
                    <svg:path
                          d="M 328.57144 103.79076 A 40 37.142857 0 1 1  248.57144,103.79076 A 40 37.142857 0 1 1  328.57144 103.79076 z"
                          transform="matrix(0.1296296,0,0,0.1296296,211.16399,105.24302)"
                          style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                          id="path2160"/>
                    <svg:path
                          d="M 328.57144 103.79076 A 40 37.142857 0 1 1  248.57144,103.79076 A 40 37.142857 0 1 1  328.57144 103.79076 z"
                          transform="matrix(0.1296296,0,0,0.1296296,211.16399,149.7155)"
                          style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                          id="path2162"/>
                  </svg:g>
                  <svg:g
                    transform="matrix(-0.9157513,-0.4017456,-0.4017456,0.9157513,564.49502,120.6762)"
                    id="g4172">
                    <svg:rect width="3.5" height="43.375" rx="0.037914943"
                          ry="0.044974804" x="261.34482" y="121.08935"
                          style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                          id="rect4161"/>
                    <svg:path
                          d="M 328.57144 103.79076 A 40 37.142857 0 1 1  248.57144,103.79076 A 40 37.142857 0 1 1  328.57144 103.79076 z"
                          transform="matrix(0.1296296,0,0,0.1296296,225.68741,105.03753)"
                          style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                          id="path4163"/>
                    <svg:path
                          d="M 328.57144 103.79076 A 40 37.142857 0 1 1  248.57144,103.79076 A 40 37.142857 0 1 1  328.57144 103.79076 z"
                          transform="matrix(0.1296296,0,0,0.1296296,225.68741,149.51)"
                          style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                          id="path4165"/>
                  </svg:g>
                </svg:g>
              </svg:svg>
            </td>
          </tr>
          <tr>
            <td>Weak Supplementation</td>
            <td><math xmlns="http://www.w3.org/1998/Math/MathML">
                <msub>
                  <mi>M</mi>
                  <mn>4</mn>
                </msub>
              </math></td>
            <td><dl class="FormulaWithDescription">
                <dt><math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mo>∀</mo>
                    <mi>x</mi>
                    <mi>y</mi>
                    <mspace width=".2em"/>
                    <mrow>
                      <mo>(</mo>
                      <mrow>
                        <mi>PP</mi>
                        <mrow>
                          <mo>(</mo>
                          <mrow>
                            <mi>x</mi>
                            <mo>,</mo>
                            <mi>y</mi>
                          </mrow>
                          <mo>)</mo>
                        </mrow>
                        <mo>→</mo>
                        <mrow>
                          <mo>∃</mo>
                          <mi>z</mi>
                          <mrow>
                            <mo>(</mo>
                            <mrow>
                              <mi>P</mi>
                              <mrow>
                                <mo>(</mo>
                                <mrow>
                                  <mi>z</mi>
                                  <mo>,</mo>
                                  <mi>y</mi>
                                </mrow>
                                <mo>)</mo>
                              </mrow>
                              <mo>∧</mo>
                              <mrow>
                                <mo>¬</mo>
                                <mi>P</mi>
                                <mrow>
                                  <mo>(</mo>
                                  <mrow>
                                    <mi>z</mi>
                                    <mo>,</mo>
                                    <mi>x</mi>
                                  </mrow>
                                  <mo>)</mo>
                                </mrow>
                              </mrow>
                            </mrow>
                            <mo>)</mo>
                          </mrow>
                        </mrow>
                      </mrow>
                      <mo>)</mo>
                    </mrow>
                  </mrow>
                </math></dt>
                  <dd>Every proper part must be supplemented by another,
                    disjoint part -- a remainder. If PPxy holds, there exists
                    a z such that Pzy holds but Ozx does not.</dd>
              </dl>
            </td>
            <td class="CellCentered"><svg:svg
                   xmlns:svg="http://www.w3.org/2000/svg" version="1.0"
                   width="10.370368" height="54.1021" id="svg21">
                <svg:defs id="defs41">
                </svg:defs>
                <svg:g transform="translate(-12.725533,-16.212713)"
                  id="layer11">
                  <svg:rect width="3.5" height="43.375" rx="0.037914943"
                        ry="0.044974804" x="16.160717" y="23.625"
                        style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                        id="rect21641"/>
                  <svg:path
                        d="M 328.57144 103.79076 A 40 37.142857 0 1 1  248.57144,103.79076 A 40 37.142857 0 1 1  328.57144 103.79076 z"
                        transform="matrix(0.1296296,0,0,0.1296296,-19.496684,7.573172)"
                        style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                        id="path21601"/>
                  <svg:path
                        d="M 328.57144 103.79076 A 40 37.142857 0 1 1  248.57144,103.79076 A 40 37.142857 0 1 1  328.57144 103.79076 z"
                        transform="matrix(0.1296296,0,0,0.1296296,-19.496684,52.045646)"
                        style="opacity:1;fill:#ed001f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                        id="path21621"/>
                </svg:g>
              </svg:svg>
            </td>
          </tr>
        </tbody>
      </table>
    </dd>
    <dd class="CaptionFigure">Table X - Mereology Definitions</dd>
    <dd class="CaptionNotation">Mereology formulas can be described using
      Hasse diagrams which are graphs on finite domains with the convention
      that all arcs are vertical or oblique and are implicitly oriented from
      top to bottom.</dd>
</dl>

<h2 id="L2597">3. Conjunction</h2>

<p>Conjunction is a truth-functional connective similar to "and" in English
and is represented in symbolic logic with the symbol <math
xmlns="http://www.w3.org/1998/Math/MathML">
  <mo>∧</mo>
</math>." The symbol<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mo>∧</mo>
</math>is a connective forming compound propositions which are true only in
the case when both of the propositions joined by it are true. "John left and
Carol arrived" can be symbolized as <math
xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mi>J</mi>
    <mo>∧</mo>
    <mi>C</mi>
  </mrow>
</math>, so long as we remember that the statement does not mean "Carol
arrived after John left" which is a simple proposition. Other ordinary
language conjoiners besides "and" include some uses of "but," "although,"
"however "yet," and "nevertheless."</p>
<dl class="OutlineFullThin FloatBox">
  <dt class="CaptionHeading">Conjuction Truth Table</dt>
    <dd>
      <table class="CaptionedTable Width90Pct">
        <tbody>
          <tr>
            <th><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>p</mo>
              </math></th>
            <th><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mo>q</mo>
              </math></th>
            <th><math xmlns="http://www.w3.org/1998/Math/MathML">
                <mrow>
                  <mi>p</mi>
                  <mo>∧</mo>
                  <mi>q</mi>
                </mrow>
              </math></th>
          </tr>
          <tr class="RowCentered">
            <td>T</td>
            <td>T</td>
            <td>T</td>
          </tr>
          <tr class="RowCentered">
            <td>T</td>
            <td>F</td>
            <td>F</td>
          </tr>
          <tr class="RowCentered">
            <td>F</td>
            <td>T</td>
            <td>F</td>
          </tr>
          <tr class="RowCentered">
            <td>F</td>
            <td>F</td>
            <td>F</td>
          </tr>
        </tbody>
      </table>
    </dd>
    <dd class="CaptionFigure">Table X - Truth Table for Conjunction</dd>
    <dd class="CaptionNotation">Conjunction is a truth functional connective.
      It is represented by the symbol <math
      xmlns="http://www.w3.org/1998/Math/MathML">
        <mo>∧</mo>
      </math>.</dd>
</dl>

<p>The symbol <math xmlns="http://www.w3.org/1998/Math/MathML">
  <mo>∧</mo>
</math>as a truth functional connective does not do everything that the "and"
does in English. It might be thought of in terms of a "minimum common logical
meaning" to conjoined statements. The temporal or causal sequence "Bill
tripped and fell" cannot be transposed as "Bill fell and tripped." The
clauses cannot be interchanged. Truth functional connectives are more limited
than their corresponding English connectives: the whole meaning of the truth
functional connective is given in its truth table. So long as we do not
expect more from truth-functional connectives, there should be few
difficulties in translation.</p>

<h3 id="L2704">3.1. Associative Law</h3>

<p>Let <math xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>p</mi>
</math>: “This document is well formed,” <math
xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>q</mi>
</math>: “This document validates” and <math
xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>r</mi>
</math>: “Valid documents are well formed.” We can express the statement
“Not only is this document well formed, but this document validates as well
and valid documents are well formed.” in logical form. The statement is
asserting that all three statements <math
xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>p</mi>
</math>, <math xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>q</mi>
</math> and <math xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>r</mi>
</math> are true. Note that “but” is simply an emphatic form of
“and.” Now we can combine all three in two steps: </p>
<ol>
  <li>Combine <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mi>p</mi>
    </math> and <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mi>q</mi>
    </math> to get <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mi>p</mi>
        <mo>∧</mo>
        <mi>q</mi>
      </mrow>
    </math>, meaning “This document is well formed and this document
    validates.” </li>
  <li>Conjoin this with <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mi>r</mi>
    </math> to get: <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mrow>
          <mo>(</mo>
          <mrow>
            <mi>p</mi>
            <mo>∧</mo>
            <mi>q</mi>
          </mrow>
          <mo>)</mo>
        </mrow>
        <mo>∧</mo>
        <mi>r</mi>
      </mrow>
    </math>. This says: “This document is well formed and this document
    validates and valid documents are well formed.”</li>
</ol>

<p>On the other hand, we could equally well have done it the other way
around: </p>
<ol>
  <li>Conjoin <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mi>q</mi>
    </math> and <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mi>r</mi>
    </math> to get <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mi>q</mi>
        <mo>∧</mo>
        <mi>r</mi>
      </mrow>
    </math> meaning “This document validates and valid XML documents are
    well formed.” </li>
  <li>Conjoin this with <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mi>p</mi>
    </math> to get <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mi>p</mi>
        <mo>∧</mo>
        <mrow>
          <mo>(</mo>
          <mrow>
            <mi>q</mi>
            <mo>∧</mo>
            <mi>r</mi>
          </mrow>
          <mo>)</mo>
        </mrow>
      </mrow>
    </math>, which again says: “This document is well formed and this
    document validates and valid documents are well formed.” </li>
</ol>

<p>We say that <math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mrow>
      <mo>(</mo>
      <mrow>
        <mi>p</mi>
        <mo>∧</mo>
        <mi>q</mi>
      </mrow>
      <mo>)</mo>
    </mrow>
    <mo>∧</mo>
    <mi>r</mi>
  </mrow>
</math> is logically the same as <math
xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mi>p</mi>
    <mo>∧</mo>
    <mrow>
      <mo>(</mo>
      <mrow>
        <mi>q</mi>
        <mo>∧</mo>
        <mi>r</mi>
      </mrow>
      <mo>)</mo>
    </mrow>
  </mrow>
</math>, a fact called the <strong>associative law</strong> for
conjunction.</p>

<p>Both answers <math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mrow>
      <mo>(</mo>
      <mrow>
        <mi>p</mi>
        <mo>∧</mo>
        <mi>q</mi>
      </mrow>
      <mo>)</mo>
    </mrow>
    <mo>∧</mo>
    <mi>r</mi>
  </mrow>
</math> and <math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mi>p</mi>
    <mo>∧</mo>
    <mrow>
      <mo>(</mo>
      <mrow>
        <mi>q</mi>
        <mo>∧</mo>
        <mi>r</mi>
      </mrow>
      <mo>)</mo>
    </mrow>
  </mrow>
</math> are equally valid. This is like saying that <math
xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mrow>
      <mo>(</mo>
      <mrow>
        <mn>1</mn>
        <mo>+</mo>
        <mn>2</mn>
      </mrow>
      <mo>)</mo>
    </mrow>
    <mo>+</mo>
    <mn>3</mn>
  </mrow>
</math> is the same as<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mn>1</mn>
    <mo>+</mo>
    <mrow>
      <mo>(</mo>
      <mrow>
        <mn>2</mn>
        <mo>+</mo>
        <mn>3</mn>
      </mrow>
      <mo>)</mo>
    </mrow>
  </mrow>
</math>. As with addition, we often drop the parentheses and write <math
xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mi>p</mi>
    <mo>∧</mo>
    <mi>q</mi>
    <mo>∧</mo>
    <mi>r</mi>
  </mrow>
</math>.</p>

<h2 id="L3002">4. Disjunction</h2>
<dl class="OutlineFullThin Box300px">
  <dt class="CaptionHeading">Disjunction</dt>
    <dd class="CaptionedImage"><svg:svg
           xmlns:svg="http://www.w3.org/2000/svg" version="1.0" width="268"
           height="166.19531" id="svg22">
        <svg:defs id="defs42">
        </svg:defs>
        <svg:g transform="translate(-81.0001,-50.804687)" id="layer12">
          <svg:path
                d="M 195 116.5 A 81 81 0 1 1  33,116.5 A 81 81 0 1 1  195 116.5 z"
                transform="translate(49.0001,18.5)"
                style="opacity:1;fill:#eddd00;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="path21622"/>
          <svg:path
                d="M 195 116.5 A 81 81 0 1 1  33,116.5 A 81 81 0 1 1  195 116.5 z"
                transform="translate(153.0001,18.5)"
                style="opacity:1;fill:#1a00ed;fill-opacity:0.43529412;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="path3134"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="177.54872" y="-82.045601"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect4105"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="259.23016" y="-98.483742"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect5076"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="386.75763" y="-202.58539"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect5078"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="288.25635" y="-171.62021"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect5080"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="236.67299" y="-56.149475"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect5082"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="348.07703" y="-250.02315"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect5084"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="297.42508" y="-140.01141"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect5086"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="357.50778" y="-191.50114"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect5088"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="227.62398" y="-111.08958"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect5090"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="324.98273" y="-170.91965"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect5092"/>
          <svg:rect width="8.3678198" height="8.4435768" rx="0.037914943"
                ry="0.054436363" x="378.00366" y="-229.513"
                transform="matrix(0.4718294,0.8816899,-0.4690493,0.883172,0,0)"
                style="opacity:1;fill:#ed001f;fill-opacity:0.80588235;fill-rule:nonzero;stroke:#000000;stroke-width:0.66040736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
                id="rect5094"/>
          <svg:text x="107.5" y="63.5" style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Calibri" id="text5096" xml:space="preserve"><svg:tspan x="107.5" y="63.5" id="tspan5098">A</svg:tspan>
                       
          </svg:text>
          <svg:text x="314.71387" y="65.318359" style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Calibri" id="text5100" xml:space="preserve"><svg:tspan x="314.71387" y="65.318359" id="tspan5104">B</svg:tspan>
             
          </svg:text>
        </svg:g>
      </svg:svg>
    </dd>
    <dd class="CaptionFigure">Figure 1 - Sets A <em>and</em> B</dd>
    <dd class="CaptionNotation"><math
      xmlns="http://www.w3.org/1998/Math/MathML">
        <mrow>
          <mi>A</mi>
          <mo>∨</mo>
          <mi>B</mi>
        </mrow>
      </math> includes all individuals of class A and all individuals from
      class B and all individuals in the overlap (if A and B are not
      disjoint).</dd>
</dl>

<p>Disjunction (or as it is sometimes called, alternation) is a connective
which forms compound propositions which are false only if both statements
(disjuncts) are false. The connective "or" in English is quite different from
disjunction. "Or" in English has two quite distinctly different senses. The
exclusive sense of "or" is "Either A or B (but not both)" as in "You may go
to the left or to the right." In Latin, the word is "aut." </p>

<p>The inclusive sense of "or" is "Either A or B {or both)." as om "John is
at the library or John is studying." In Latin, the word is vel." It is the
second sense that we use the "vel" or "wedge" symbol: " or " Consider the
statement, "John is at the Library or he is Studying." If, in this example,
John is not at the library and John is not studying, then the truth value of
the complex statement is false<sup>[2]</sup>:</p>

<h2 id="ClassVsIndividual"><a name="Class" id="Class">5. Class vs
Individual</a></h2>

<p>One of the decision making processes I go through involves deciding what I
want to "query" against. In my particular case, I like to query using SPARQL
and to a lesser extent computed inferred individuals (using Pellet). For
SPARQL, I tend to model my ontologies in such a way that makes it easy to use
SPARQL, but I'm not sure if I could recommend this overall because you run
into logical problems very quickly. </p>

<p>Now I am (re)learning ontological engineering and I see how I can use
defined classes (necessary &amp; sufficient) and Compute Inferred Individuals
as a sort of query mechanism through carefully thought out restrictions. This
is the next logical step after consistency checking and classifying the
ontology. That's why I believe there are three buttons on the tool bar for
this.</p>

<p>From a personal philosophical perspective, I believe that the goal of a
well crafted OWL model should describe in precise detail 'HOW" the entities
and concepts in a domain are related and the Individuals stand as place
holders for things that really exist - the "WHAT" of the domain.</p>

<p>Yes, you probably could define a class John - but keep in mind that class
John describes how things called John in your domain works. OWL individuals
represent actual entities. They are an instantiations of Classes. So,
conceivably you may have individuals John1 and John2 that may or may not be
the same person depending on your domain.</p>

<p>With all this in mind, I refer to
http://www.w3.org/TR/swbp-classes-as-values/ for assistance in figuring out
what to do when the lines between class and individual get blurry.</p>

<h2 id="n-ary"><a name="n-ary1" id="n-ary1">6. n-ary</a></h2>

<p>If I understand your model, you have three concepts that are in a
relationship together. OWL (and by definition Protege-OWL) use properties to
link two concepts together - so what do you do when you have three, four, or
many concepts linked together? Such a relationship is called an n-ary
relationship and an excellent tutorial is available on how to deal with n-ary
relationships at [1]. That document was prepared by the now defunct Semantic
Web Best Practices and Deployment Working Group whose web site is located at
[2].</p>

<p>If I understand their model, what you do is considered the relationship
among the three concepts to also be a concept. In other words, create a class
in Protege that represents the link among all three other classes. In
databases, we would create an associate-entity that can be used in joins to
get the information you're looking for.</p>

<p>There is an <a
href="http://protege.cim3.net/cgi-bin/wiki.pl?DisplayingNaryRelations">article
at the Protege Wiki</a> that describes a way to display n-ary relations in a
form.</p>

<p>[1] <a
href="http://www.w3.org/TR/swbp-n-aryRelations/">http://www.w3.org/TR/swbp-n-aryRelations/</a></p>

<p>[2] <a
href="http://www.w3.org/2001/sw/BestPractices/">http://www.w3.org/2001/sw/BestPractices/</a></p>

<h2 id="L3102">7. Open World Assumption</h2>

<p>In a closed world (like DBs), the information we have is everything. In an
open world, we assume there is always more information than is stated. Where
a database, for example, returns a negative if it cannot find some data, the
reasoner makes no assumption about the completeness of the information it is
given. The reasoner cannot determine something does not hold unless it is
explicitly stated in the model.</p>

<p>With closed-world reasoning, allValuesFrom can be trivially satisfied if
there are no fillers at all, which comes as a surprise to many users. With
open world reasoning (like in OWL), it is typically very difficult to satisfy
allValuesFrom, because (in the absence of other assertions that restrict the
set of fillers), there could be additional unknown fillers that do not
satisfy the restiction.</p>

<p>Every universal assertion has a correlative double-negative assertion and
both assertions are true. That is, given</p>

<p>x=Pizza</p>

<p>T=hasPizzaTopping</p>

<p>we assert</p>

<p>forallX(Tx)</p>

<p>which also implies</p>

<p>not(forallX(notTx)</p>

<p>Not quite correct. When you introduce the negation, the quantifier needs
to change from universal to existential. The correct equivalent statement
would be </p>

<p>not(existsX(notTx))</p>

<p>Here I'll assume that you have an equivalence between:</p>

<p>Pizza &lt;=&gt; hasTopping allValuesFrom PizzaTopping</p>

<p>Well, it isn't quite so simple, since the restriction ranges over
quantifiers of the fillers. It is certainly allowed that non-Pizzas have
PizzaToppings. It is just required that they have some other toppings as
well, so that the universal quantification is preserved.</p>

<p>It is certainly true that one does not need to know the specific toppings
for an individual asserted to be a pizza. But it is definitely not the case
that all instances will classify as pizzas.</p>

<p>In first order logic</p>

<p>(forall x (p x)) implies (exists x (p x)) </p>

<p>is alway true. The proof is a simple consequence of the definition of a
model. It should appear in any elementary logic book. This of course is the
"open world" assumption. A consequence of this is that normal set theoretic
models cannot act as the semantics of the "closed world" assumption or the
"closed world" logic will simply be inconsistent. </p>

<p>In any event, In my opinion, the "closed world" assumption is a bad way to
model anything except in restricted domains where it can be proved to be true
on the basis of the "open world" assumption. The "closed world" assumption
means, for example, that if your mother is not in the "database" she doesn't
and has never existed! A very strange way to model the world. Maybe mom will
become a person tomorrow?</p>

<p>Here's a line relevant to this from the OWL...</p>

<p>"To see why this is so, observe that the owl:allValuesFrom constraint
demands that all values of P should be of type T, and if no such values
exist, the constraint is trivially true."</p>

<p>3.1.2.1.1 owl:allValuesFrom</p>

<p>http://www.w3.org/TR/2004/REC-owl-ref-20040210/#allValuesFrom-def</p>

<p>Every time I read this sentence I think to myself, "There's some predicate
logic facts behind this that make sense of it, but I'm just missing them"
because otherwise it's as non-sensical to me as anything could be.</p>

<p>Is there a loose usage of "trivial satisfied" in the OWL community that
contributes to the confusion, because I thought satisfying something trivally
was a characteristic of open world reasoning and not closed world
reasoning?</p>

<p>(forall x (p x))</p>

<p>can be satisfied along with</p>

<p>(not (exists x (p x)))</p>

<p>precisely in the trivial case where there are no individuals in the model.
An empty model will satisfy the universal quantification, since all zero of
the bindings for X satisfy the case. Now, these are not generally interesting
models, but the principle applies to the more restricted form of
allValuesFrom.</p>

<p>The relation of allValuesFrom to the classical predicate calculus is</p>

<p>p allValuesFrom c &lt;=&gt; (forall (x y) (=&gt; (p x y) (c y)))</p>

<p>It is the implication in the forall that makes this satisfiable with empty
fillers. If there are no values satisfying (p x y) then the implication is
trivially satisfied.</p>

<p>the use of CWA reasoning should be restricted to cases where it holds.
Certain restricted areas of knowledge are amenable to CWA reasoning. And
since it is an assumption, it is typically treated in a non-monotonic fashion
so that later information can invalidate the inferences based on it. </p>

<p>CWA, of course, should not be applied to properly open world tasks. But
some things can presumably be known. In a model of the people in a particular
room at a particular time, the enumeration of the guests can be properly and
usefully treated as closed world. Registration for college classes is another
example. Open ended relationships such as ancestry are not proper subjects
for CWA.</p>

<p>&gt; "To see why this is so, observe that the</p>

<p>&gt; owl:allValuesFrom constraint demands that all values</p>

<p>&gt; of P should be of type T, and if no such values exist,</p>

<p>&gt; the constraint is trivially true."</p>

<p>This has to do with the definition of universal quantification in the
degenerate case, which is linked to the following equivalence:</p>

<p>forall X: p(x) &lt;=&gt; not exists X: not p(x)</p>

<p>Restating the right hand side a bit, it means that there is no individual
who is do not satisfy p. So if there are no individuals at all, then there
are (trivially), no individuals of satisfying p. There is often a tendency to
assume that universal quantification implies a cardinality of at least one,
but that is not a requirement.</p>

<p>If I were to have a paper bag and say that "There are no balls in this
paper bag which are not red", then it would still be a true statement if
there were no balls (or anything else for that matter) in the bag. But that
statement is the same (logically) as saying "All balls in this paper bag are
red".</p>

<p>Now what makes this a bit more useful is that the universally quantified
statement in the allValuesFrom constraint is an implication rather than a
ground formula. As in my recent reply to Richard Weyhrauch, I noted that the
meaning of</p>

<p>p allValuesFrom c</p>

<p>forall x: [forall y: (p x y) =&gt; c(y)]</p>

<p>That means that if there are no individuals satisfying (p x y), then the
implication is true regardless of whether there are any C's in the world or
not. This follows from the fundamental definition of logical implication. The
implication is true whenever the antecedent is false. (It is also true if the
consequent is true, but that's not relevant to the trivial case here.)</p>

<p>It's not so much nonsensical, as being an edge case. Just like the
algebraic definition of empty summation and multiplication. (+) = 0, (*) = 1.
Although the degenerate cases may not have an intrinsic or intuitive meaning,
there are often practical factors which lead one to choose a particular
convention, so as not to have to treat the degenerate cases at each step of
the calculation.</p>

<p>Another way to think about some of these logical reasoning steps is as a
game where the point is to come up with a disproof of the item in question.
So, for example, if I say "all the balls in this bag are red", how would you
go about disproving it? You would need to find a ball in the bag that is not
red. But if there are no balls in the bag at all, you won't be able to find
the non-red ball you need to disprove the statement. I may have been devious
and tricky to use the degenerate case, but it is true that "all [zero] of the
balls in the bag are red". This can be something that it is difficult to get
one's head around, but it is consistent with the entire framework of logic,
and is simpler than other solutions would be.</p>

<p>Invent a new example, if it helps. "All the humans who lived on the Moon
in the year 2000 CE were under the age of 55." There's no counterexample
(namely, a resident of the Moon during 2000 who was age 55 or older). Is it
thus not true?</p>

<p>A less contrived and perhaps more relevant example is the convention about
the truth value of empty conjunctions and disjunctions. To wit: A conjunction
is false if any of its conjuncts are false; A disjunction is true if any of
its disjuncts are true. Thus empty conjunctions are considered true while
empty disjunctions (including empty clauses) are considered false.</p>

<p>If the logic is two-valued (i.e., the are two truth values: "true" and
"false"), then "meaningless" is not a truth value that any statement in that
logic can have. If you want a truth value such as "meaningless" (or "maybe"
or "possibly" or "sometimes", etc.), then you need to use (or invent) such a
logic.</p>

<p>a non-empty domain really only applies to the general, unrestricted case.
The case of the implication (as derived from the allValuesFrom clause) can be
trivially satisfied, since there is no requirement that every predicate in
the model have a realization. So, if instead I say </p>

<p>(forall x (implies (p x) (q x)))</p>

<p>that doesn't mean that every valid model for this theory requires that
there be at least one (p x). There could easily be models where there is no
constant satisfying P, which leaves the model still valid.</p>

<p></p>

<h2 id="L3214">8. Defined Classes</h2>

<p>Unless your classes have definitions, a reasoning system had nothing to
work with. You will need to define, using necessary and sufficient (N&amp;S)
conditions, what is required to belong to a class. Actually, all you really
need are sufficient conditions, but there is not any direct way to enter
those in the Protege interface. The closest method is to create fully defined
(possibly anonymous?) subclasses with N&amp;S conditions, so that
satisfaction of any subclass will enable recognition of class membership.</p>

<p>Assuming that the classes you care about have appropriate definitions,
then you will not need the "convert individual to class" function. That would
only be necessary if you defined your classes as instances in the first
place, and now you realize that you really need them to be classes.</p>

<p>You will have to make sure that the restrictions in the class definitions
are in the N&amp;S position in order for recognition to take place. But the
"compute individuals belonging to class" or "compute types" seems exactly
like the reasoning that you would want for a particular case. They will use
the sufficient conditions on the class definition to identify those
individuals that meet the criteria for the class. This may mean that you will
need to move restrictions which are only under necessary conditions under
N&amp;S, though. There isn't really any way around that, since necessary
conditions do not allow inference about membership. They only tell you what
must be true of a particular individual.</p>

<p>For example, it could be that you define having the property "weight" is a
necessary condition for a person. But there are lots of other things, like
cows, automobiles, bricks, etc. that also have a "weight" property, so
clearly that is not a sufficient condition for being a person.</p>

<h2 id="L3224">9. References</h2>
<cite id="IntroToLogic">1. Stefan Waner and Steven Costenoble,
“Introduction to Logic,” Finite mathematics &amp; Applied calculus,
October 2001, http://www.zweigmedia.com/RealWorld/logic/logicintro.html
(accessed November 22, 2007).</cite> <cite>2. “Conjunction, Negation, and
Disjunction,” Introduction to Logic,
http://philosophy.lander.edu/logic/conjunct.html (accessed December 3,
2007).</cite> </body>
</html>

