<semantics>

Em MathML há duas formas de marcar a matemática: A Presentation MathML  (MathML de apresentação) é utilizada para controlar a apresentação das equações, enquanto o Content MathML (MathML de conteúdo) foi concebida para codificar o significado matemático semântico e para tornar as expressões compreensíveis para os sistemas de álgebra computacionais. Os elementos MathML <semantics>, <annotation> e <annotation-xml> são utilizados para combinar a apresentação e a marcação do conteúdo e para fornecer ambas, a informação de disposição e o significado semântico das expressões matemáticas.

O elemento <semantics> atua como um elemento contentor que associa anotações e então deve ter elementos (senão levanta um erro de marcação inválido). O elemento <annotation> é o elemento contentor que contem informação semântica num formato não XML, enquanto o elemento <annotation-xml> contém conteúdo num formato XML, por exemplo, Content MathML ou OpenMath.

As regras para determinar o elemento filho visível no elemento <semantics> são as seguintes:

  • Se mais nenhuma regra se aplica: O primeiro elemento filho é apresentado por pré-definição, este é suposto ser notação de apresentação.
  • Se o primeiro filho é um elemento MathML de apresentação que não é <annotation> nem <annotation-xml>, é apresentado o primeiro filho.
  • Se não existem elementos MathML de apresentação, apresenta o primeiro elemento <annotation> ou <annotation-xml> que seja filho do <semantics>.
    Atenção que elementos de <annotation-xml> só são reconhecidos se o atributo de codificação tem um dos seguintes valores:
    • "application/mathml-presentation+xml"
    • "MathML-Presentation"
    • "SVG1.1"
    • "text/html"
    • "image/svg+xml"
    • "application/xml".
    Note que "application/mathml+xml" não é mencionado aqui, já que não distingue entre MathML de apresentação ou MathML de conteúdo.

Atributos

Os seguintes atributos podem ser adicionados aos elementos <annotation> e <annotation-xml>:

definitionURL
A localização do símbolo da chave da anotação.
encoding
A codificação da informação semântica na anotação (e.g. "MathML-Content", "MathML-Presentation", "application/openmath+xml", "image/png")
cd
O dicionário que ontem o símbolo da chave da anotação.
name
O nome do símbolo da chave da anotação.
src
A localização de uma fonte externa de informação semântica.

Exemplo

<math>
  <semantics>

    <!-- Presentation MathML -->
    <mrow>
      <msup>
        <mi>x</mi>
        <mn>2</mn>
      </msup>
      <mo>+</mo>
      <mi>y</mi>
    </mrow>

    <!-- Content MathML -->
    <annotation-xml encoding="MathML-Content">
      <apply>
        <plus/>
        <apply>
          <power/>
          <ci>x</ci>
          <cn type="integer">2</cn>
        </apply>
        <ci>y</ci>
      </apply>
    </annotation-xml>

    <!-- anotar uma imagem -->
    <annotation encoding="image/png" src="some/path/formula.png"/>

    <!-- anotar TeX -->
    <annotation encoding="application/x-tex">
      x^{2} + y
    </annotation>

  </semantics>
</math>

Especificações

Compatibilidade

BCD tables only load in the browser

Notas para Gecko

  • O algoritmo para determinar o elemento visível em <semantics> foi corrigido em (Firefox 23 / Thunderbird 23 / SeaMonkey 2.20) para ser conforme a especificação de MathML. Em versões anteriores o primeiro elemento era apresentado.
  • No Gecko, os elementos <annotation> e <annotation-xml> são ignorados se têm o atributo src.