Skip to topic | Skip to bottom
Home

Tesi
Tesi.OMMLMathMLConverterr1.18 - 20 Dec 2008 - 11:18 - JohnatanGrazianitopic end

Start of topic | Skip to actions

OMMLMathMLConverter

Descrizione

OMML è il formato interno delle applicazioni MS Office per rappresentare le formule matematiche. MathML è uno standard (più potente) con obiettivi simili. Obiettivo della tesi è realizzare un convertitore tra questi formati, in modo da permettere agli utenti di usare applicazioni di produttività personale per scrivere formule matematiche, poi riusate in altri contesti. Tesi assegnata a JohnatanGraziani

Titolo del progetto di tesi: Estrazione di caratteristiche significative da documenti d'ufficio: Il caso Matematica

Riguardo a MathML

Il MathML è un linguaggio di marcatura del W3C per descrivere la notazione matematica e catturarne sia la struttura che il contenuto. L'obiettivo del MathML è far sì che testi matematici possano essere trasmessi, ricevuti ed elaborati sul Web. Il MathML può essere usato per codificare sia la notazione matematica che il contenuto matematico. Circa trenta dei tag di MathML descrivono la struttura della disposizione della notazione matematica(marcatura di presentazione), mentre altri tag forniscono un modo di specificare in maniera non ambigua il significato che si intende dare ad un'espressione (marcatura di contenuto).

Il progetto di tesi da me realizzato, per quanto riguarda il MathML, si basa sulla parte di marcatura presentazionale, cioè tutti quegli elementi del MathML che suggeriscono soltanto modi, in maniera specifica, di presentazione per permettere una presentazione dipendente dal mezzo e per preferenze individuali di stile. Questi tag descrivono piuttosto in dettaglio le regole di visualizzazione suggerite, ma un particolare riproduttore MathML è libero di usare le sue regole finché le sue presentazioni saranno comprensibili.

Cenni sui tag presentazionali:

Uno degli elementi più significativi per la rappresentazione delle formule matematiche è il tag <mrow>, usato per raggruppare insieme un numero qualunque di sottoespressioni, in quanto esprimere in maniera efficace la struttura sintattica di un espressione. Questa struttura permette una presentazione di qualità migliore della matematica, specialmente quando i dettagli dell'ambiente di riproduzione come l'ampiezza dello schermo non sono noti all'autore del documento; inoltre facilita notevolmente l'interpretazione automatica delle strutture matematiche rappresentate.

Un'altra caratteristica della marcatura presentazionale del MathML è quella di identificare con i tag (chiamati 'Elementi Token'), ad esempio <mn>, <mi> e <mo>, i tipi di dato utilizzati nelle espressioni. Ad esempio l'elemento token <mo> identifica un elemento di tipo operatore, parentesi o separatore, l'elemento <mn> un elemento di tipo numero e in fine l'elemento <mi> rappresenta un identificatore.

Considerazioni sul MathML:

Come si può ben notare il MathML è uno strumento molto potente perchè permette di evidenziare sia la presentazione di una notazione matematica che il contenuto dell'idea matematica o dell'oggetto che essa rappresenta attarverso tag ben specifici. Il MathML permette agli autori di codificare sia la notazione che rappresenta un oggetto matematico che la struttura dell'oggetto stesso. Inoltre, gli autori possono mescolare entrambi i tipi di codifica per specificare sia la presentazione che il contenuto di un'idea matematica.

Riguardo a Math (Office Math ML)

Microsoft Office Word 2007 include un supporto incorporato per la scrittura e la modifica di equazioni matematiche chiamato 'Equation 3.0'. Questo supporto si avvale del formato XML, Math di OOXML(Office OpenXML). Possiamo capire che MathML è un linguaggio non molto diverso da OMML. Si può osservare ad esempio che MathML organizza gli elementi matematici attarverso l'ordine in cui vengono inseriti, mentre, OMML organizza gli elementi matematici attarverso il loro esplicito significato (numeratore e denominatore), ad esempio:

Una frazione in MathML è istanziata nel seguente modo:

<mml:mfrac>
  <mml:mn>2</mml:mn>
  <mml:mi>x</mml:mi>
</mml:mfrac>

In OMML invece è istanziata nel seguente modo seguente:

<m:f>
  <m:num>
    <m:r>2</m:t>
  </m:num>
  <m:den>
    <m:r>x</m:r> 
  </m:den>
</m:f>

Una seconda differenza è che gli elementi matematici creati con MathML possono essere descritti con notazione infissa, mentre in OMML sono descritti con notazione prefissa.

Conversione dei formati matematici

Scopo della tesi è quello di realizzare una libreria che fornisca supporto (per la conversione di frammenti matematici) ad applicazioni che hanno il compito di convertire i documenti d’ufficio da un formato ‘A’ ad un formato ‘B’. Le procedure della libreria che hanno il compito di convertire i formati matematici, devono prediligere la corretta conversione di contenuto e struttura anche a discapito della fedeltà presentazionale, piuttosto che mantenere la presentazione a discapito della correttezza strutturale o, peggio, di contenuto.

La libreria deve presentare certi tipi di caratteristiche:

1. Deve essere modulare, cioè deve avere la possibilità di integrarsi all’interno di applicazioni esterne ad essa;

2. Deve essere reversibile, ovvero deve avere la possibilità di ricreare lo stesso documento o sorgente iniziale, o qualcosa di simile all’originale, una volta che è stata lanciata due volte la conversione (avanti e indietro), ovvero dal formato A al formato B e poi riconvertito dal formato B al formato A;

La libreria di conversione viene eseguita attraverso una piccola applicazione Java , che ha lo scopo di leggere il flusso di dati in ingresso ed elaborare una conversione in uno dei due formati presi in esame ( MathML oppure OMML ), producendo un flusso di dati in uscita. Per realizzare questa applicazione mi sono servito della libreria Saxon, realizzata per l’elaborazione di dati XML in Java. Una volta che letti i dati in ingresso vengono passati ad un foglio di stile XSLT che ha il compito di elaborare a sua volta le strutture dati del formato matematico d’ingresso e di ricrearne in uscita la struttura nel secondo formato.

-- JohnatanGraziani


to top

I Attachment sort Action Size Date Who Comment
PresentazioneTesitriennaleInformaticaJohnatanGraziani.rar manage 455.6 K 20 Dec 2008 - 11:22 JohnatanGraziani Presentazione tesi
ProgettoConverterOMMLMathML.rar manage 256.4 K 20 Dec 2008 - 11:26 JohnatanGraziani Codice sorgente progetto
tesiConverterOMMLMathML.rar manage 1982.3 K 20 Dec 2008 - 11:47 JohnatanGraziani Tesi sul convertitore

You are here: Tesi > ArgomentiDiTesi > OMMLMathMLConverter

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Fabio's Wiki? Send feedback