Sto tentando di analizzare (in Java) il markup di Wikimedia come trovato su Wikipedia. Ci sono un certo numero di pacchetti esistenti là fuori per questo compito, ma non ho trovato nessuno adatto alle mie esigenze particolarmente bene. Il miglior pacchetto con cui ho lavorato è lo Mathclipse Bliki parser, che fa un lavoro decente sulla maggior parte delle pagine.Analisi di markup wikimedia: i parser basati su EBNF sono inadeguati?
Questo parser è incompleto, tuttavia, e non riesce a analizzare alcune pagine o le analisi in modo errato su altri. Purtroppo il codice è piuttosto disordinato e quindi risolvere i problemi in questo motore di analisi è molto dispendioso in termini di tempo e tempo.
Nel tentativo di trovare un motore di analisi migliore, ho studiato utilizzando un parser basato su EBNF per questo compito (in particolare ANTLR). Tuttavia, dopo alcuni tentativi sembra che questo approccio non sia particolarmente adatto per questo compito, poiché il markup di Wikimedia è relativamente rilassato e quindi non può essere facilmente inserito in una grammatica strutturata.
La mia esperienza con ANTLR e parser simili è molto limitata tuttavia, quindi può essere la mia inesperienza che sta causando problemi piuttosto che tali parser sono intrinsecamente poco adatti per questo compito. Qualcuno con più esperienza su questi argomenti può pesare qui?
@Stobor: ho menzionato che ho esaminato vari motori di analisi, compresi quelli restituiti dalla query di Google. Il migliore che ho trovato finora è il motore Bliki. Il problema è che risolvere i problemi con tali parser diventa incredibilmente noioso, perché sono essenzialmente lunghe catene di condizionali ed espressioni regolari, con conseguente codice spaghetti. Sto cercando qualcosa di più simile al metodo di analisi EBNF, in quanto tale metodo è molto più chiaro e conciso, e quindi più facile da capire ed evolvere. Ho visto il link mediawiki che hai postato e sembra confermare i miei sospetti che EBNF out of the box sia inadatto per questa attività. Quindi sto cercando un motore di analisi che sia chiaro e comprensibile come EBNF, ma anche in grado di gestire la sintassi disordinata del markup wiki.
Potrebbe essere bello se si potesse indicare un paio di bisogni che non sono soddisfatte da i migliori successi su http://google.com/search?q=wikipedia+java+parser in modo da poter offrire risposte migliori ... – Stobor
anche: http://www.mediawiki.org/wiki/Markup_spec/BNF – Stobor