<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

Especificação Estado Comentário
MathML 3.0
The definition of 'Mixing Markup Languages for Mathematical Expressions' in that specification.
Recommendation Especificação atual
MathML 2.0
The definition of 'Combining Presentation and Content Markup ' in that specification.
Recommendation Especificação inicial

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.