Skip to topic | Skip to bottom
Home
Projects
Projects.Micalr1.16 - 07 Sep 2003 - 17:03 - MaximeRey?topic end

Start of topic | Skip to actions

Mical

Mical est une bibliothèque d'inférence grammaticale régulière implementée en C++. Elle s'appuie sur Vaucanson pour la manipulation des automates.

Mical propose aussi bien les algorithmes classiques d'inférence avec échantillon négatif que sans échantillon négatif. Toutefois c'est surtout les services/primitives proposé(e)s pour l'implémentation des algorithmes d'inférence avec échantilon négatif qui constitue le cœur de Mical. En effet Mical propose un pattern spécifique pour définir un cadre de travail au sein duquel l'utilisateur pourra pratiquer l'inférence de son choix.



News

  • 19/07/2003 : Some benchmarks ... available here
  • 10/07/2003 : Mical version 0.1 realeased

Principaux services proposés dans Mical 0.1

Echantillons (1)

  • Type de données :
    • échantillon simple (positif ou négatif)
    • présentation (échantillons positif et négatif):
      • à données fixées
      • pour inférence incrémentale
      • pour inférence semi-incrémentale
  • Services :
    • noyau d'un langage (pour un automate canonique donné)
    • ensemble des préfixes courts d'un langage (pour un automate canonique donné)
    • fournir un échantillon caractéristique (pour un automate canonique donné)
    • fournir un échantillon structurellement complet (pour un automate donné)
    • vérifier si un échantillon est structurellement complet (pour un automate donné)
  • Divers:
    • Chargement à partir d'un fichier d'un(e) échantillon/présentation

Services 'internes' (1)

  • fusion d'états
  • compatibilité d'un automate vis-à-vis d'une présentation (de son échantillon négatif)
  • création du MCA à partir d'une présentation
  • création du PTA à partir d'une présentation
  • conversion MCA -> PTA
  • renumerotation (des états d'un automate):
    • selon l'ordre standard
    • selon l'ordre de fréquence de passage au-travers des états
  • primitives sur les automates (find_suffix, quotient, ...)

Cadres de travail

  • Espace de recherche proposés:
    • treillis ayant pour élément nul le MCA
    • treillis ayant pour élément nul le PTA
    • demi-treillis supérieur des automates déterministes (ayant pour élément nul le PTA)

  • Type d'inférences proposées:
    • à données fixées
    • incrémentale (à terminer dans Mical 0.2)
    • semi-incrémentale (à terminer dans Mical 0.2)

  • Primitives proposées au sein du cadre de travail (2):
    • fusion
    • fission
    • est un élément de l'ensemble frontière
    • est l'élément universel (du treillis)
    • est l'élément nul (du treillis)
    • est (toujours / encore) un élément du treillis
    • génération d'un vrai automate (manipulable ie pas seulement en mode lecture) à partir de l'élément du treillis considéré (3)
    • ... (cf le code)

  • Implémentation sous-jacente: (1)
    • partitions
    • services sur les partitions (distance, ...)
    • 'Vue' d'un automate à travers une partition

Algorithmes proposés :

  • K-TSSI
  • K-RI
  • MGGI
  • parcours du treillis:
    • évaluation lazy de l'ensemble frontière d'un espace de recherche donné (à terminer dans Mical 0.2 avec le système d'historique)
    • RIG (sans redondance des éléments énumérés)
  • fusion pour déterminisation
  • RPNI (version 'classique' à données fixées)

(1) : l'utilisateur n'a pas à les utiliser directement, leur utilisation est implicite à travers le cadre de travail choisi

(2) : le choix de la bonne implémentations de ces primitives (qui varient selon le choix du cadre de travail) est automatiquement géré par Mical

(3) : les éléments du treillis (hypothèses) considérés sont en fait proche du cadre théorique : on manipule des partitions (rapidité des opérations élémentaires (fusion/fission), économie de mémoire) et on 'regarde' l'élément nul du treillis à travers cette partition pour considérer notre hypothèse comme un automate.

Services attendus pour Mical 0.2

  • rajouter du sucre
  • terminer support général pour l'inférence incrémental / semi-incrémental
  • rajouter du sucre dans la manipulation du Framework (cadre de travail):
    • système d'historique (des déplacements dans le treillis)
    • nouvelle implémentation de partitions plus légère (bitsets)
    • manipulation de la Vue plus aisée
  • RPNI avec suppression de finales
  • RPNI version incrémentale
  • algorithme EDSM
  • algorithme Blue-fringe
  • test-suite (beaucoup) plus conséquente

Téléchargements

  • Documentation :
    • Rapport interne : Mical, une bibliothèque d'inférence grammaticale régulière (fin juillet 2003)
    • Séminaire du 04/06/2003 : slides

Contacts

-- MaximeRey? - 09 Jul 2003
to top


You are here: Projects > Mical

to top

Copyright © 1999-2013 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback