FR2689661A1 - Procédé de reconnaissance syntaxique de configurations à grammaires à attributs contraints. - Google Patents

Procédé de reconnaissance syntaxique de configurations à grammaires à attributs contraints. Download PDF

Info

Publication number
FR2689661A1
FR2689661A1 FR9301524A FR9301524A FR2689661A1 FR 2689661 A1 FR2689661 A1 FR 2689661A1 FR 9301524 A FR9301524 A FR 9301524A FR 9301524 A FR9301524 A FR 9301524A FR 2689661 A1 FR2689661 A1 FR 2689661A1
Authority
FR
France
Prior art keywords
symbol
symbols
terminal
rule
rules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9301524A
Other languages
English (en)
Other versions
FR2689661B1 (fr
Inventor
Pagallo Giulia
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of FR2689661A1 publication Critical patent/FR2689661A1/fr
Application granted granted Critical
Publication of FR2689661B1 publication Critical patent/FR2689661B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • G06V30/274Syntactic or semantic context, e.g. balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Machine Translation (AREA)

Abstract

L'invention concerne un procédé de détermination d'une configuration valide dans un système de reconnaissance d'une configuration valide à sous-configurations. Une grammaire comprend des symboles non terminaux, des symboles mots-clés, des symboles non mots-clés, un moyen de définition d'attribut, des règles de production, un symbole de début de grammaire, et un moyen d'application d'un symbole mot-clé. Audit moyen d'analyse sont fournies les sous-configurations d'entrée à valider, et ledit symbole de début de grammaire. Il analyse ladite sous-configuration pour déterminer si ledit ensemble de sous-configurations d'entrées peut être récrit en tant que ledit symbole de début. Si tel est le cas, il renvoie une représentation analysée et sinon, une information de motif d'invalidité.

Description

La présente invention concerne le domaine de la reconnaissance de
configurations, en particulier la reconnaissance d'une configuration fournie en tant que
configuration valide dans un langage prédéfini.
Une reconnaissance de configuration est un domaine dans lequel des configurations, typiquement une expression visuelle comme une expression mathématique ou un schéma logique ou un organigramme sont identifiés comme valides Typiquement, une image d'une configuration sera fournie par une exploration optique d'un support pour créer une image à topographie mémoire, (ou carte de bits) de ce milieu Dès lors que l'image à topographie mémoire est créée, des symboles ou caractères individuels seront identifiés au moyen d'un processus appelé la reconnaissance de caractères De telles techniques de reconnaissance de caractères incluent une concordance d'une représentation à topographie mémoire du caractère avec des règles à symboles, ou calibres, de caractères connus, une analyse de représentations polygonales du caractère et une analyse statistique de la représentation à topographie mémoire du caractère. La reconnaissance de configurations est une composante importante d'une technologie, qui émerge actuellement, de systèmes d'ordinateurs appelés des
systèmes à base de stylets (ou ordinateurs blocs-
notes) Dans un système de bloc-note, un utilisateur entre des données dans l'ordinateur en "écrivant" sur un bloc, ou tablette d'entrée Ceci diffère des procédés classiques d'entrées de données sur un clavier ou de déplacement d'un curseur sur un affichage pour invoquer un effet Puisque la donnée qui est entrée peut être un élément quelconque qui est écrit sur le bloc d'entrée, il faut déterminer pour une application particulière que la donnée qui est entrée est du type approprié et d'une syntaxe appropriée pour
l'application particulière.
Il est connu que les symboles de caractères compris dans une classe de configurations (langage) présentent des relations (appelées également des procédés syntaxiques) qui peuvent être définies en termes d'une grammaire Une grammaire est un ensemble de règles syntaxiques et de symboles qui définissent un langage (ou domaine) Différentes grammaires peuvent posséder des types différents de règles et/ou de symboles Le langage peut être un langage parlé, par exemple l'anglais ou le français, ou ce peut être un langage d'ordinateur, par exemple le Fortran ou le PASCAL Les règles syntaxiques définissent un procédé au moyen duquel une expression peut être, identifiée dans un langage, en tant qu'expression valide ou invalide On a également utilisé, en Science des Ordinateurs, des grammaires pour décrire la logique de calcul Des cours de base de théorie des automates utilisent des grammaires pour définir des modèles de
calcul finis et non finis.
En ce qui concerne la reconnaissance de configurations, il est souhaitable d'utiliser des procédés syntaxiques lorsqu'il est commode de représenter une configuration en tant que collection
d'une ou plusieurs sous-configurations Une sous-
configuration est définie comme étant un symbole ou un groupe de symboles liés Pour un langage écrit, un symbole peut être une lettre d'un alphabet ou un opérateur mathématique ou un symbole graphique Des procédés syntaxiques sont également souhaitables lorsque la validité d'une configuration dépend des relations de ses configurations Par exemple, pour reconnaître la validité d'une équation mathématique, il peut ne pas être valide que deux opérateurs mathématiques soient adjacents, même si chaque opérateur, pris isolément, est un symbole valide de la grammaire. Alors qu'une grammaire définit les symboles valides et les règles syntaxiques, une configuration particulière est analysée en utilisant un processus d'analyse Des procédés classiques d'analyse sont linéaires, c'est-à-dire de haut en bas ou de bas en haut Un processus d'analyse détermine si une configuration est valide ou invalide Le processus d'analyse détermine la validité au moyen d'une analyse lexicale (c'est-à-dire qu'il vérifie la validité des sous-configurations individuelles) et en déterminant que les règles syntaxiques sont suivies Si la configuration est valide, le processus d'analyse renvoie une représentation, analysée selon les règles syntaxiques, de la configuration Si la configuration est invalide, le processus d'analyse peut se terminer et fournir l'information exposant la raison pour
laquelle la configuration est invalide.
Comme noté ci-dessus, des procédés syntaxiques ont été utilisés dans l'art de la reconnaissance de configurations L'un de ces procédés syntaxiques est appelé une grammaire d'attribut Des grammaires d'attributs sont décrites dans un article intitulé "Attributed Grammar A Tool for Combining Syntatic and
Statistical Approaches to Pattern Recognition" (c'est-
à-dire Grammaire des attributs un outil de combinaison des approches syntaxiques et statistiques à la reconnaissance de configurations) de Wen-Hsiang Tsai et King-Su Fu, publié dans IEEE Transactions on Systems, Man, and Cybernetics, pages 873-885, Vol. SMC-10, Ne 12, décembre 1980 Dans une grammaire d'attributs, une information sémantique des configurations est combinée avec les règles syntaxiques pour créer une règle de production Les règles
syntaxiques établissent une relation parmi des sous-
configurations L'information sémantique est utilisée pour calculer des attributs d'une configuration en
utilisant les attributs des sous-configurations liées.
Les attributs d'une sous-configuration liée peuvent également être utilisés pour indiquer l'applicabilité
d'une règle de production.
Une grammaire d'attributs est définie par une fonction quintuple
G = (VT, VN, A, P, S),
o VT est un ensemble de symboles terminaux, VN est un ensemble de symboles non terminaux, A est un ensemble d'attributs, P est un ensemble de règles de production et S est le symbole de début Un symbole est simplement une représentation d'une configuration ou sous- configuration incluse dans la grammaire Un symbole terminal représente des sous-configurations qui ne peuvent pas être encore divisées (par exemple une lettre d'un alphabet) alors qu'un symbole non terminal représente une sous-configuration qui peut encore être divisée Pour chaque x e VT U VN, l'expression A(x) désigne les valeurs d'attributs de x, même si certaines des valeurs d'attributs peuvent être indéfinies pour un symbole donné Chaque règle de production de l'ensemble P comprend deux parties: la première partie de la règle spécifie une restriction syntaxique parmi les symboles et la deuxième partie de la règle spécifie une restriction sémantique parmi les symboles La partie syntaxique est une forme exempte de contexte La partie sémantique décrit la manière dont les valeurs d'attribut du symbole situé sur le côté gauche de la règle syntaxique sont calculées en termes de valeurs d'attributs des symboles situés sur le côté droit En variante, la partie sémantique peut indiquer dans quelles conditions la règle syntaxique s'applique De façon formelle, la partie syntaxique d'une règle est: B B 1, B 2 Bn
o Bi e VN u VT, pour 1 < i < n.
La partie sémantique de la règle est un ensemble d'applications Il existe autant d'applications qu'il y a d'attributs pour le non terminal B Chaque application calcule la valeur d'attribut correspondante de B à partir des valeurs d'attributs de
B 1, B 2 * Bn-
Des grammaires d'attributs connues sont limitées à définir, entre des sous-configurations, des relations unidimensionnelles On a reconnu qu'il est souhaitable dans certaines applications de définir des relations
multidimensionnelles entre les sous-configurations.
Ceci peut se produire par exemple dans l'analyse d'expressions ou de fractions mathématiques Dans une fraction, une valeur entière est située au-dessus d'une ligne de fraction alors qu'une deuxième valeur entière est située au-dessous de la ligne de fraction Il peut en être de même pour des sous-expressions d'une expression mathématique Ici, les relations entre les symboles sont aussi bien horizontales que verticales
(c'est-à-dire bidimensionnelles).
Un procédé de description et d'analyse de
configurations à relations bidimensionnelles est décrit dans un document intitulé "Syntax-Directed Recognition
of Hand-Printed Two-Dimensional Mathematics" (c'est-à-
dire Reconnaissance, dirigée par syntaxe, de mathématiques bidimensionnelles écrites à la main) de Robert H Anderson, Interactive Systems for Experimental Applied Mathematics, pages 436 à 459, New York, Academic Press, 1981 Le document d'Anderson décrit des règles syntaxiques pour commander un processus d'analyse Les règles syntaxiques comprennent des conditions correspondantes pour identifier positivement une entrée particulière Cependant, le procédé décrit exige des ressources importantes de calcul pour effectuer une analyse de reconnaissance de configuration La raison en est que l'analyse associée exige l'examen d'un ensemble excessivement large de permutations des sous- configurations qui constituent la configuration En particulier, le procédé décrit ne prévoit pas l'utilisation de mots-clés ou d'informations heuristiques à l'intérieur du processus d'analyse. C'est donc un but de la présente invention que de fournir un procédé de reconnaissance de configurations dans lequel des configurations à relations multidimensionnelles sont définies et reconnues avec
précision et moyennant un calcul efficace.
La présente invention fournit un procédé de définition et d'identification de configurations valides dans un système de reconnaissance de configurations Le procédé est particulièrement bien adapté pour définir et reconnaître des configurations comprenant des sous-configurations à relations multidimensionnelles Le système de reconnaissance de configurations est typiquement incorporé dans un système fonctionnel de plus grande ampleur qui inclut un système de reconnaissance de caractères et un
système de manipulation de données.
La présente invention est généralement divisée en deux parties, une partie de définition de langage et une partie de vérification La partie de définition de langage est incorporée dans une grammaire contrainte d'attributs La grammaire contrainte d'attributs inclut des ensembles de symboles non terminaux, des symboles mots-clés, et des symboles non mots-clés, des définitions d'attributs correspondant à chaque symbole, un ensemble de règles de production et une mesure de la pertinence de chacun des symboles mots-clés Les règles de production incluent des parties syntaxiques, sémantiques, de contraintes et d'effets La partie syntaxique définit une relation de production entre symboles Les parties sémantiques définissent une relation basée sur les attributs de symboles La partie de contraintes inclut des définitions pour des relations multidimensionnelles entre symboles La partie d'effet définit l'effet qui est réalisé si la règle concorde La partie de vérification comprend un
schéma d'analyse qui prend un ensemble de sous-
configurations d'entrées fournies par un système de reconnaissance de caractères et qui détermine si les configurations d'entrées définissent une configuration valide selon une implantation de langage de la grammaire La sortie de la partie de vérification est une représentation de la configuration selon une
structure en arbre.
Selon un premier aspect, la présente invention fournit un procédé de définition et de détermination d'une configuration valide dans un système de reconnaissance d'une configuration valide, ladite
configuration comprenant une ou plusieurs sous-
configurations, ladite ou lesdites sous-configurations présentant des relations multidimensionnelles, caractérisé en ce qu'il comprend les étapes consistant à: fournir une grammaire à un moyen d'analyse,
ladite grammaire comprenant: -
un ensemble de symboles non terminaux; un ensemble de symboles mots-clés; un ensemble de symboles non mots non-clés; un moyen de définition d'attribut, ledit moyen de définition d'attribut étant prévu pour définir une liste d'attributs ou l'un quelconque desdits symboles non terminaux, mots-clés ou non mots-clés; un ensemble de règles de production, chaque règle de production dudit ensemble de règles de production comprenant une partie syntaxique, une partie sémantique, une partie de contraintes et une partie d'effet; un symbole de début de grammaire; un moyen d'application d'un symbole mot-clé, ledit moyen d'application de symbole mot-clé étant prévu pour appliquer à une valeur de nombre réel chacun des symboles dudit ensemble de symboles mots-clés; b) fournir audit moyen d'analyse un ensemble de sous- configurations d'entrées à reconnaître comme configurations valides; c) fournir audit moyen d'analyse ledit symbole de début de grammaire; d) analyser ladite sous-configuration parmi lesdites sous-configurations d'entrée pour déterminer si ledit ensemble de sous-configurations d'entrées peut être récrit, selon ledit ensemble de règles de production, en tant que ledit symbole de début; e) renvoyer une représentation analysée dudit ensemble de sous-configurations d'entrées si ledit ensemble de sous-configurations d'entrées peut être récrit en tant que ledit symbole de début selon ledit ensemble de règles de production; f) renvoyer une information exposant la raison pour laquelle ladite configuration est invalide si ledit ensemble de sous-configurations d'entrées ne peut pas être récrit en tant que ledit symbole de début
selon ledit ensemble de règles de production.
Lesdites règles de production peuvent comprendre en outre: a) un ensemble de règles syntaxiques, chacune desdites règles syntaxiques définissant une production à partir de l'un desdits symboles non terminaux X vers un ou plusieurs desdits symboles identificateurs, des symboles non terminaux ou des symboles mots-clés Y; b) un ensemble de règles sémantiques, chacune desdites règles sémantiques correspondant à une règle syntaxique, lesdites règles sémantiques définissant une relation physique entre X et Y; c) un ensemble de contraintes pour chacune desdites règles syntaxiques, chacune des contraintes dudit ensemble décrivant des règles d'ordonnancement
d'analyse et des contraintes spatiales.
Dans ce cas, ladite étape d'analyse desdits ensembles de sousconfigurations d'entrées, destinée à déterminer si ledit ensemble de sous-configurations d'entrées peut être récrit en tant que ledit symbole de début selon ledit ensemble de règles de production, comprend en outre, de préférence, les étapes consistant à: a) identifier un premier sous-ensemble dudit ensemble de sous-configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non- terminaux; et b) déterminer s'il existe une règle de production dans laquelle ledit début de symbole produit, dans ladite partie syntaxique, ledit symbole non terminal identifié à l'étape a); c) renvoyer ladite représentation analysée dudit ensemble de sous- configurations d'entrées, s'il existe une telle règle de production,; et f) renvoyer ladite information exposant la raison pour laquelle ladite configuration est invalide, s'il
n'existe pas de telles règles de production.
L'étape d'identification d'un premier sous-
ensemble dudit ensemble de sous-configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux comprend alors, de façon avantageuse, les étapes consistant:
a) identifier, dans ledit ensemble de sous-
configurations d'entrées, une sous-configuration qui concorde avec l'un desdits mots-clés; b) identifier une règle de production qui correspond audit mot-clé; c) identifier un sous-ensemble desdits symboles qui satisfont à une première contrainte de ladite règle de production, ladite première contrainte possédant un symbole non terminal correspondant N; d) déterminer que ledit sous-ensemble desdits symboles ne contient qu'un seul symbole X; et e) déterminer qu'il existe une règle de production dans laquelle ledit symbole non terminal N produit, dans ladite partie syntaxique, ledit symbole X. Selon un deuxième aspect, la présente invention fournit un procédé de définition de relations spatiales multidimensionnelles entre symboles dans un système de reconnaissance de configurations valides de symboles, caractérisé en ce qu'il comprend les étapes consistant à: a) fournir un ensemble d'opérateurs spatiaux; b) fournir un ensemble de symboles identificateurs; c) fournir un ensemble de symboles non terminaux; d) fournir un ensemble de symboles mots-clés; e) fournir un ensemble de règles syntaxiques, chacune desdites règles syntaxiques définissant une production à partir de l'un desdits symboles non terminaux X vers un ou plusieurs desdits symboles identificateurs, desdits symboles non terminaux ou desdits symboles mots-clés Y; f) fournir un ensemble de règles sémantiques, chacune desdites règles sémantiques correspondant à une règle syntaxique, lesdites règles sémantiques définissant une relation physique entre X et Y; g) fournir un ensemble de contraintes pour chacune desdites règles syntaxiques, chacun desdits ensembles de contraintes décrivant des règles d'ordonnancement et des contraintes spatiales en
utilisant lesdits opérateurs spatiaux.
Selon un troisième aspect, la présente invention
fournit un procédé d'analyse d'un ensemble de sous-
configurations d'entrées pour déterminer des configurations valides desdites sous-configurations d'entrées selon un langage prédéfini, ledit langage utilisant une grammaire, ladite grammaire comprenant des symboles terminaux, des symboles non terminaux, un symbole de début et des règles de production, caractérisé en ce qu'il comprend les étapes consistant à: a) identifier un sous- ensemble dudit ensemble de sous-configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux; b) récrire ledit ensemble de sous-configurations d'entrées en tant que ledit symbole non terminal; et c) déterminer s'il existe une règle de production o ledit symbole de début produit ledit symbole non terminal; Dans ce procédé dans lequel lesdits symboles non terminaux comprennent en outre des mots-clés et des identificateurs, ladite étape d'identification d'un sous-ensemble desdites sous-configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux comprend en outre, de préférence, les étapes consistant à: a) déterminer que l'un desdits symboles dudit ensemble de sous- configurations d'entrées concorde avec l'un desdits mots-clés; b) identifier une règle de production qui correspond audit mot-clé; c) identifier un sous-ensemble desdits symboles qui satisfont à une première contrainte de ladite règle de production, ladite première contrainte possédant un symbole non terminal correspondant N; d) déterminer que ledit sous-ensemble desdits symboles ne contient qu'un seul symbole X; et e) déterminer qu'il existe une règle de production dans laquelle ledit symbole non terminal N produit, dans ladite partie syntaxique, ledit symbole X. Les buts, avantages et particularités de la présente invention décrits ci-dessus, ainsi que d'autres, seront mieux compris à partir de la
description détaillée qui suit en se référant aux
dessins annexés dans lesquels: la Figure la illustre un système d'ordinateur qui peut incorporer le mode de réalisation préféré de la
présente invention.
La Figure lb illustre une vue d'ensemble d'un système de reconnaissance de configuration selon le
mode de réalisation préféré de la présente invention.
La Figure 2 illustre les relations spatiales, entre les symboles et les expressions mathématiques, qui peuvent être reconnues selon le mode de réalisation
préféré de la présente invention.
La Figure 3 illustre, pour les divers symboles décrits à la Figure 2, des rectangles limites qui peuvent être utilisés selon le mode de réalisation
préféré de la présente invention.
Les Figures 4 a à 4 d sont des schémas logiques illustrant les étapes générales d'analyse qui peuvent être utilisées dans le mode de réalisation préféré de
la présente invention.
La Figure 5 illustre un exemple d'arbre d'analyse qui peut être engendré pendant l'analyse selon le mode
de réalisation préféré de la présente invention.
Une partie de la description de cette demande de
brevet contient des matières qui font l'objet d'une protection de droits d'auteurs Le propriétaire des droits d'auteur n'émet aucune objection à la reproduction par fac-similé, par quiconque, de la
description du brevet, telle qu'elle apparaît dans les
fichiers ou enregistrements de brevet de l'Office des Brevets et des Marques Commerciales, mais réserve par ailleurs tous les droits d'auteurs, quels qu'ils soient. On va maintenant décrire un procédé de définition et d'identification de configurations valides dans un système de reconnaissance de configurations Dans la
description qui suit, de nombreux détails spécifiques
sont exposés, par exemple les relations spatiales spécifiques pour des fonctions mathématiques bien connues, afin de fournir une compréhension complète de la présente invention Il ressortira cependant à l'homme de l'art que la présente invention peut être mise en oeuvre sans ces détails spécifiques Dans d'autres cas, des techniques spécifiques de reconnaissance de caractères ou de manipulation de données n'ont pas été représentées de façon détaillée afin de ne pas obscurcir de façon inutile la présente invention. On décrira en premier lieu une vue générale du système d'ordinateur adapté au mode de réalisation préféré. Le mode de réalisation de la présente invention peut être mis en oeuvre sur des systèmes d'ordinateur présentant diverses configurations La Figure la illustre certains des composants de base d'un tel système d'ordinateur, mais elle ne doit pas exclure d'autres composants ni impliquer que ces composants sont discrets Il est connu que certains composants, de façon particulièrement remarquable un dispositif d'affichage, peuvent exercer aussi bien des fonctions d'entrée que de sortie (comme celles que l'on trouve dans les systèmes de type bloc-notes) Dans tous les cas, le système d'ordinateur illustré à la Figure la comprend un bus ou un autre moyen de communication 101 pour communiquer les informations, un moyen de traitement 102 couplé au bus 101 pour traiter l'information, une mémoire vive (REM) ou un autre dispositif de mémoire 103 (appelé habituellement une mémoire principale) couplé au bus 101 pour mémoriser les informations et les instructions destinées au processeur 102, une mémoire morte (ROM) ou un autre dispositif de mémoire statique 104 couplé au bus 101 afin de mémoriser une information statique et des
instructions destinées au processeur 102.
D'autres dispositifs couplés au bus 101 incluent un dispositif de mémorisation de données 105, par exemple un disque magnétique et une unité de disque pour mémoriser une information et des instructions, un dispositif alphanumérique d'entrées 106 incluant des touches alphanumériques et autres pour communiquer une information et pour ordonner des choix au processeur 102, un dispositif de commande de curseur 107, par exemple une souris, une balle roulante, des touches de commande de curseur, etc pour commander un curseur et communiquer une information et ordonner des choix au processeur 102, un dispositif d'affichage 108 pour afficher une entrée et une sortie de données et une tablette graphique 109 pour communiquer, par
inscription, une information au processeur 102.
Un dispositif d'exploration 110 peut également être couplé au système d'ordinateur par le bus 101 Le dispositif d'exploration 110 fournirait des représentations à topographie mémoire de documents en tant qu'entrées au logiciel d'exécution, par exemple un logiciel de reconnaissance de caractères, travaillant
sur le système d'ordinateur.
Il est instructif ici, pour éviter des confusions ultérieures, de distinguer la présente invention d'une utilisation de la présente invention On dit qu'un
langage particulier est un exemple d'une grammaire.
Ainsi, dans la description qui suit, la classe de
grammaires contraintes d'attributs et le schéma d'analyse représentent le mode de réalisation préféré, alors que le langage d'expressions mathématiques donné à titre d'exemple représente un exemple du mode de
réalisation préféré.
Il est utile de définir ici un certain nombre de termes qui seront utilisés dans toute la présente
description.
Une configuration désigne l'objet qui doit être reconnu comme valide ou invalide Une configuration
comprend typiquement une ou plusieurs sous-
configurations Une sous-configuration correspond à un caractère individuel ou à un ensemble de caractères liés En se référant brièvement à la Figure 2, une expression mathématique " 3 + 4 " 201 est une configuration, alors que les sous-expressions " 3 + 4 " 202, le symbole de division 204 et le nombre " 5 " 203 sont des sous- configurations En outre, chacun des caractères individuels " 3 " 205, "+ " 209 et " 4 " 207
représenterait aussi une sous-configuration.
Dans les définitions précédentes, les références concernent un langage visuel de systèmes de reconnaissance Cependant, de telles définitions ne doivent pas être considérées comme limitant le cadre de la présente invention Il ressortira à l'homme de l'art que les concepts décrits sont extensibles à d'autres domaines dans lesquels des procédés syntaxiques peuvent
être utilisés.
On va maintenant décrire les types de symboles
utilisés dans la description d'une grammaire contrainte
d'attributs Un symbole est simplement une représentation, dans la grammaire, d'une configuration ou d'une sous-configuration Il existe quatre types de symboles de base: les symboles mots-clés, les symboles non mots-clés, les symboles terminaux et les symboles non terminaux Un symbole mot-clé détient une
signification spéciale dans l'analyse Un symbole mot-
clé fournit un point de début local pour un processus d'analyse Par exemple, en ce qui concerne la Figure 2, le symbole de division 204 est un mot-clé Puis, un symbole non mot-clé représente un caractère qui n'est pas un mot-clé Par exemple, en ce qui concerne la Figure 2, le " 3 " et le " 4 " sont représentés par des symboles non mots-clés Collectivement, on désigne
comme symboles terminaux l'ensemble des symboles mots-
clés et non mots-clés Des symboles non terminaux représentent des sousconfigurations qui ne sont pas des symboles terminaux Par exemple, la sous-expression " 3 + 4 " 202 serait représentée par un symbole non terminal. On va maintenant donner une vue d'ensemble d'un système de reconnaissance d'une configuration selon le
mode de réalisation préféré.
Un système de reconnaissance de configurations dans le mode de réalisation préféré est généralement une composante fonctionnelle d'un système de reconnaissance Un tel système de reconnaissance peut être utilisé pour reconnaître des langages visuels, par exemple des organigrammes ou des expressions mathématiques ou des partitions musicales écrites Une entrée d'un système de reconnaissance de configuration proviendrait d'un système de reconnaissance de caractères ou d'un système semblable qui peut fournir à un ensemble de sous-configurations d'un niveau de symboles terminaux Lasortie du système de reconnaissance de configurations irait vers un système de manipulation de données Par exemple, le système de reconnaissance de configurations peut être incorporé à l'intérieur d'un système de calcul o un utilisation "écrit" sur une tablette graphique l'équation mathématique à exécuter Le système de reconnaissance
de caractères séparerait et identifierait les-
caractères et les symboles "écrits" individuels Le système de reconnaissance de configurations détermine si les caractères "écrits" sont valides de manière syntaxique, c'est-à-dire s'ils forment une expression valide Finalement, le système de manipulation de
données effectuerait le calcul mathématique.
La Figure lb illustre le système de reconnaissance de configurations selon le mode de réalisation préféré Le système de reconnaissance de configurations comprend une partie de définition de langage et une partie de vérification de configurations La base du système de reconnaissance de configurations est incorporée dans la grammaire 121 (partie de définition de langage) et dans l'analyseur 122 (partie de vérification de configurations) qui sont entourés, ou limités, par le rectangle 120 L'ensemble d'entrées 123 est constitué par un système de reconnaissance de caractères Comme décrit de façon plus détaillée ci-après, l'ensemble d'entrées 123 consiste en sous-configurations qui constituent la configuration en cours de reconnaissance L'expression analysée 124 ou une information d'expression invalide est fournie en tant que sortie de l'analyseur 122 On va maintenant décrire de façon plus détaillée chacune
de ces fonctions.
On décrira en premier lieu de façon détaillée la
grammaire 121.
Le système de reconnaissance de configuration du mode de réalisation préféré permet la représentation, par un exemple concret, d'un langage en utilisant le cadre de grammaires contraintes d'attributs En bref, la classe des grammaires contraintes d'attributs ajoute des contraintes dimensionnelles au cadre des grammaires d'attributs (décrites précédemment en liaison avec l'art antérieur) De telles contraintes dimensionnelles permettent l'implantation de langages qui comprennent
des sous-configurations à relations multi-
dimensionnelles La classe des grammaires contraintes d'attributs est décrite de façon plus détaillée ci- dessus. La fonction d'une grammaire dans une reconnaissance de configuration est représentée à titre d'exemple dans l'analyse d'expressions mathématiques simples En utilisant une notation anglaise, ou
française, classique, l'expression " 3 + 5 " est valide.
Cependant, les mêmes caractères peuvent être disposés différemment pour créer une expression, par exemple, " 3 + 11 qui est invalide En outre, en notation polonaise, l'expression 1 + 3 5 " est valide alors que l'expression " 3 + 5 " est invalide Dans cet exemple, si la grammaire choisie est la notation anglaise, ou française, une expression comprenant le symbole clé "+" n'est valide
que lorsqu'il existe des nombres sur les deux côtés.
On va maintenant décrire l'Analyseur 122.
La partie de vérification du système de reconnaissance de configuration est définie en termes d'un Analyseur Un Analyseur interprète des configurations selon une grammaire particulière Un Analyseur applique à la configuration les règles de la grammaire afin de déterminer si les relations dimensionnelles et syntaxiques définies par la grammaire sont en place Si les relations ne sont pas en place, la configuration est déterminée comme invalide Si les relations sont en place, l'Analyseur fournit une représentation à structure en arbre de la configuration d'entrée, qui correspond aux règles de la grammaire La représentation à structure en arbre fournit une organisation logique donnée pour le système
de manipulation de données.
On va maintenant décrire les relations multidimensionnelles. Comme noté précédemment, la classe des grammaires contraintes d'attributs du mode de réalisation préféré permet de définir des configurations dont les sousconfigurations présentant des relations multidimensionnelles En se référant à nouveau à la Figure 2, il y est illustré une configuration dont les sous-configurations présentent une relation spatiale bidimensionnelle ( 2-D) A la Figure 2 est illustrée
l'expression mathématique " 3 + 4 ", 201 La sous-
expression 202, " 3 + 4 " est située au-dessus d'une sous-configuration 204, qui est ici le symbole de division Dans cet exemple, la sousconfiguration 204 est un mot-clé Ainsi, une sous-configuration 203, ici le nombre " 5 " est au-dessous du mot-clé 204 Un aspect de la relation spatiale de la configuration 201 est défini par rapport au mot- clé 204, (bien que les relations spatiales ne soient pas limitées, dans le mode de réalisation préféré, à celles qui impliquent un mot-clé) Ici, pour qu'il existe une configuration valide, une première sous- configuration doit être
située au-dessus du mot-clé 204 et une deuxième sous-
configuration doit être située au-dessous du mot-clé 204 Ainsi, une relation verticale valide entre des sous-configurations doit être établie Un deuxième
aspect des relations spatiales est trouvé dans la sous-
configuration 202 " 3 + 4 " Ici, la sous-configuration comprend un motclé 206 "+" et des sous-configurations 203 " 3 " et 207 " 4 " Pour que la sous-configuration 206
définisse une configuration valide, une sous-
configuration doit se trouver à la gauche du mot-clé 206 et une sousconfiguration doit se trouver à la droite du mot-clé 206 Ainsi, il doit exister une
relation horizontale valide entre sous-configurations.
Ici, les sous-configurations 202 et 203 satisfont aux
critères verticaux nécessaires et les sous-
configurations 205 et 207 satisfont aux critères horizontaux nécessaires La manière dont il est déterminé que ces critères sont satisfaits est décrite en relation avec les attributs de la sous- configuration. Comme décrit de façon plus détaillée ci-dessous, chaque symbole terminal et non terminal d'une grammaire contrainte d'attributs possède une liste associée d'attributs Ces attributs concernent les propriétés d'une sous-configuration correspondante Par exemple dans le cas d'un langage visuel, l'attribut associé à une configuration peut être un rectangle limite Un rectangle limite est créé en projetant la configuration sur un système de coordonnées X-Y et en déterminant le rectangle qui limite la configuration La Figure 3 illustre des rectangles limites des sous-configurations de la configuration 201 de la Figure 2 Il faut noter que les rectangles limites illustrés à la Figure 3 ne sont pas précis en ce qu'ils sont plus grands que ceux qui seraient en fait définis Ceci est fait dans un but d'illustration afin que les différents rectangles limites puissent être clairement distingués Pour clarifier encore, on suppose que la configuration 201 représente un symbole non terminal Un rectangle limite 301 du symbole non terminal enveloppe la configuration entière Comme décrit plus loin en ce qui concerne un exemple spécifique d'implantation de langage, le rectangle limite d'un symbole non terminal est
simplement l'union des rectangles limites des non mots-
clés et des mots-clés qui constituent le non terminal.
En outre, des rectangles limites 302, 303 et 304 sont illustrés et correspondent à la sous-configuration 202,
à la sous-configuration de mot-clé 204 et la sous-
configuration 203, respectivement Chacun des rectangles limites peut être défini en termes de ses adresses de coordonnées Afin de déterminer s'il est répondu à des contraintes spatiales spécifiées, les rectangles limites sont comparés Comme illustré à la
Figure 3, le rectangle limite 302 de la sous-
configuration 202 est situé au nord du rectangle limite 303 pour la sousconfiguration de mot-clé 204 En outre, le rectangle limite 304 de la sous-configuration 203 est situé au sud du rectangle limite 304 de la sous-configuration 203 Ainsi, il est répondu aux contraintes spatiales d'une configuration valide
incluant un symbole de division.
On va maintenant définir la classe de grammaires contraintes d'attributs conforme au mode de réalisation préféré. Une grammaire contrainte d'attributs diffère des grammaires connues par l'addition de contraintes dimensionnelles à un ensemble de règles syntaxiques et sémantiques Une autre distinction affine la
classification des symboles terminaux.
Une grammaire contrainte d'attributs est septuple.
G = (VN, VK, VNK, A, P S, M)
Dans la grammaire, VN est un ensemble de symboles non terminaux (non terminaux), VK est un ensemble de symboles mots-clés (mots-clés) et VNK est un ensemble symboles non mots-clés (non mots-clés) Il faut noter en outre que l'ensemble combiné des symboles mots-clés VK et des symboles non mots-clés VNK (c'est-à-dire VT = VK U VNK) est appelé l'ensemble des symboles terminaux VT (terminaux) Il faut noter que les
symboles terminaux représentent typiquement les sous-
configurations initiales d'entrée du procédé d'analyse du mode de réalisation La raison de la classification des symboles terminaux en classes séparées est décrite
de façon plus détaillée ci-après.
A est un ensemble d'attributs tel que pour chaque
x e VT VN, A(x) désigne les valeurs d'attributs de x.
Des attributs décrivent une caractéristique physique, par exemple les coordonnées d'un rectangle limite enfermant un symbole terminal ou un symbole non terminal Il faut noter que certains attributs peuvent
être non définis pour un symbole particulier.
P est un ensemble de règles de production Des règles de production définissent les règles syntaxiques et sémantiques, les contraintes qui doivent exister entre des terminaux et/ou des non terminaux afin qu'une configuration soit valide, et l'effet qui est réalisé lorsqu'une règle concorde Des règles de production sont décrites de façon plus détaillée ci-dessous S est le symbole de début Le symbole de début S est un symbole non terminal qui est utilisé pour indiquer le noeud de racine d'une structure en arbre qui sera engendrée pendant l'étape d'analyse Finalement, M est une application, sur les nombres réels, de l'ensemble des mots-clés L'application M fournit un facteur de pondération pour les symboles mots-clés et elle fournit un ordre de traitement pour un arbre d'analyse engendré. Comme décrit ci-dessus, l'ensemble des symboles mots-clés VK combiné avec l'ensemble des symboles non mots-clés VNK constitue l'ensemble des symboles terminaux VT L'ensemble des symboles terminaux VT est
divisé en symboles mots-clés et symboles de non mots-
clés pour plusieurs raisons Une première raison est qu'un symbole mot-clé peut être utilisé de façon commode comme un point de début local de l'analyse Par conséquent, un symbole mot-clé peut être utilisé comme un point de saisie, pour analyser un sous-ensemble de l'entrée Comme décrit ci-dessus, la mesure de la pertinence de mots-clés utilisés en liaison avec des contraintes fournit un procédé simple d'imposition d'un ordre selon lequel sont choisis les symboles d'entrée de début local Une deuxième raison de la dichotomie des symboles terminaux est de rendre uniforme la
représentation de contraintes de règles de production.
Toutes les contraintes d'une règle donnée peuvent
utiliser le même mot-clé comme point de référence.
Cependant, ceci pourrait facilement être généralisé.
L'utilisation de mots-clés dans chaque règle de
production d'une grammaire n'est pas nécessaire.
Cependant, l'utilisation de mots-clés pour l'une quelconque des raisons mentionnées ci-dessus peut avoir
pour effet de simplifier le processus d'analyse.
En revenant aux règles de production décrites ci-
dessus, chaque règle de production de P consiste en quatre parties une partie syntaxique, une partie sémantique, une partie de contrainte et une partie d'effet La forme de la partie syntaxique de la règle est: B -> Bl B 2 Bn o N est un entier positif, B e VN et Bt e VN U VT O Bi e VN U VNK, pour 2 < i < n A partir de cette définition, on peut voir que pratiquement qu'au plus un mot-clé quelconque peut être associé à une règle Comme on le verra, l'exigence qu'au plus un mot-clé soit associé à une règle et que ce mot- clé soit listé comme premier symbole sur le côté droit facilite l'analyse Cependant, cette exigence n'est pas une limitation parce qu'une règle qui exigerait plus d'un mot-clé peut être récrite sous la forme d'une séquence de règles comprenant chacune au plus un mot- clé, et parce que les symboles de règles peuvent être écrits dans un ordre quelconque en utilisant des contraintes Les parties syntaxiques et sémantiques d'une règle de production possèdent la même interprétation que dans des grammaires d'attributs La part de contrainte d'une règle établit une correspondance entre des symboles d'entrée et des symboles situés sur le côté droit de la règle syntaxique Il existe une contrainte pour chaque symbole situé à droite de la partie syntaxique d'une règle Cependant, il existe des cas dans lesquels il est satisfait une règle si la seule partie syntaxique est satisfaite (par exemple lorsqu'une contrainte est valide pour un symbole quelconque) Chaque symbole d'entrée qui satisfait à la contrainte d'un symbole de
règle est en correspondance avec ce symbole de règle.
Des contraintes sont fréquemment exprimées en termes d'attributs des symboles Supposons, par exemple, que les attributs des symboles sont les points des coins de leurs rectangles limites Une contrainte souhaitée d'un symbole non terminal d'une règle peut consister à limiter les symboles d'entrée, associés à ce symbole de
règle, à être les symboles situés à la droite du mot-
clé Cette contrainte peut être établie en termes des rectangle limites des symboles d'entrée (par exemple le rectangle limite du symbole d'entrée doit se trouver à droite du symbole limite du mot-clé) Cependant, d'autres types de contraintes sont possibles Comme mentionné ci-dessus, des contraintes peuvent aussi être utilisées pour imposer un ordre d'analyse sur la base
de la mesure de pertinence de mots-clés.
A chaque règle est en outre associé un effet La partie d'effet d'une règle encode un effet qui est effectué en cas de concordance avec la règle Un tel effet peut être encodé comme fonction ou comme procédure Un exemple d'un effet consisterait à créer
un mot-clé particulier si une règle est en concordance.
Un deuxième exemple consisterait à provoquer une
évaluation d'une sous-expression en concordance.
Cependant, la partie d'effet d'une règle peut être vide, c'est-à-dire qu'il peut n'y avoir aucun effet à
exécuter lorsque la règle est en concordance.
Il est utile ici de passer en revue les différences entre des grammaires d'attributs et des grammaires contraintes d'attributs On observera qu'une règle de production d'une grammaire contrainte comprend une partie syntaxique et une partie sémantique comme dans le cas d'une grammaire d'attributs Cependant, une grammaire contrainte d'attributs incorpore dans une règle de production des contraintes et des effets Une contrainte associe des symboles d'entrée (par exemple des sous- configurations) à des symboles terminaux et non terminaux Ce sont les contraintes qui permettent
la définition des relations spatiales entre les sous-
configurations De plus, dans une grammaire contrainte d'attributs, il est fourni une division des symboles terminaux en mots-clés et non mots- clés Finalement, une grammaire contrainte d'attributs permet de poursuivre une distinction des mots-clés en permettant
la définition d'une mesure de pertinence de chaque mot-
clé. On va maintenant donner, en utilisant la définition ci- dessus, un exemple d'une grammaire contrainte d'attributs destinée à reconnaître des
expressions mathématiques.
Une telle grammaire serait utile dans des applications comme la reconnaissance d'expressions mathématiques écrites sur une tablette graphique Afin de simplifier l'exemple, on suppose que le langage définit deux opérateurs, l'addition (+) et la division (-), et que chaque caractère d'une expression du langage donnée à titre d'exemple a été déterminé comme valide. Dans ce cas, le langage possède le mot-clé "+ " pour l'addition, et le mot-clé "-" pour la division Le symbole "nk" désigne un non mot-clé Les non terminaux sont S, E, El et E 2, o S est le symbole de début Les valeurs d'attributs d'un symbole terminal sont les
points des coins du rectangle limite d'une sous-
configuration correspondante Les valeurs d'attributs d'un symbole non terminal sont les points des coins du
rectangle limite minimal qui enferme toutes les sous-
configurations correspondantes de symboles terminaux qui comprennent le symbole non terminal (on se rappellera que le rectangle limite minimal d'un non terminal est simplement une union des rectangles limites des symboles terminaux qui constituent le non terminal) Ainsi, pour un symbole terminal ou non terminal quelconque x, A(x) désigne les valeurs des points de coins d'un rectangle limite La mesure pertinente M d'un mot-clé est calculée comme la largeur
de sa case limite Ici, M(+) = 32 et M(-) = 60.
Les règles de production de la grammaire sont décrites au tableau A Dans la partie de contrainte de chaque règle, le symbole x indique un symbole terminal ou non terminal, alors que le symbole k désigne un symbole mot-clé Il faut noter que les règles de production de cette grammaire ne sont suivies d'aucun effet.
TABLEAU A
REGLES DE PRODUCTION
Partie syntaxique Partie sémantique 1 S -> El nk A(S)=A(E)IA(nk)
2 E->+E 1 E 2 A(E) = A(+) UA(E 1)U
3 E E 1 E 2
Contraintes Cl(x) = vrai
A(E 2)
CO(x) = Eq(x,+) et M(x) 2 M (k) pour tous les k Si plus d'un x satisfait à CO, en choisir un arbitrairement. Cl(x)=Ouest(x,+)
C 2 (x)=Est (x,+).
A(E)=A(-)U A(E 1) UA(E 2)
CO(x) = Eq(x,-)) et M(x) 2 M(k)
pour tous les k.
Si plus d'un x satisfait à CO, en choisir un arbitrairement. Cl(x)=Nord(x,-) C 2 (x)=Sud (x,-) 4 E 1 E Ink A(E 1)=A(E)JA(nk) Cl(x)=vrai E 2 Elnk A(E 1)=A(E)JA(nk) Cl(x)=vrai Afin d'établir une correspondance entre des contraintes et des symboles d'entrée, on notera que les symboles situés sur le côté droit de chaque règle sont implicitement numérotés 0, 1 et ainsi de suite Par exemple, à la règle 2, chaque symbole d'entrée qui satisfait à la contrainte C 1 est en correspondance avec
le symbole E 1.
Les symboles utilisés dans les règles de production seraient familiers à l'homme de l'art, mais leurs définitions sont fournies ici afin d'aider à la compréhension Le symbole "->" peut être lu comme "produit" Le symbole "|" peut être lu comme "ou" Le
symbole "U 3 " peut être lu comme "union avec".
Finalement, le symbole "e" peut être lu comme "est un élément de" Il faut noter que des contraintes spatiales, par exemple Nord, Sud, Est et Ouest sont des primitives fonctionnelles prédéfinies De telles primitives fonctionnelles comparent les rectangles limites pour des symboles afin de déterminer s'il est satisfait à un critère spatial prédéterminé Il serait évident d'inclure d'autres contraintes spatiales, par exemple des diagonales pour des opérations matricielles, afin de satisfaire à toutes exigences spatiales pour une implantation particulière de
langage.
En ce qui concerne la règle 1, la partie syntaxique signifie que le symbole de début S produit le non terminal E ou le non mot-clé nk Le non mot-clé serait ici un caractère ou un nombre conforme à la définition de l'alphabet de langage La partie sémantique signifie que l'attribut, c'est-à-dire le rectangle limite, du symbole de début serait égal à l'attribut du non terminal ou du non mot-clé La partie de contrainte indique que tout symbole satisfait à la
règle.
En ce qui concerne la règle 2, la partie syntaxique signifie que le non terminal E produit un mot-clé "+" associé à un premier non terminal (E 1) et une deuxième non terminal (E 2) Il faut noter que cette partie syntaxique n'indique pas une relation spatiale entre les deux non terminaux, mais indique seulement
que deux expressions doivent être associées au mot-clé.
La partie sémantique signifie que le rectangle limite du non terminal E est égal à l'union des rectangles
limites du mot-clé "+" et des non terminaux E 1 et E 2.
La partie de contrainte fournit les relations spatiales nécessaires La contrainte C O exige que le symbole d'entrée soit le mot-clé "+" et que la mesure de pertinence du mot-clé "+" soit supérieure ou égale à la mesure de pertinence de tous les mots-clés qui n'ont pas encore été traités Si plusieurs mots-clés 11 +", possèdent la même mesure de pertinence, l'un d'eux est choisi arbitrairement La contrainte C O fournit un moyen par lequel l'analyse de mot-clé peut être ordonnée La contrainte C 1 choisit un symbole terminal ou non terminal quelconque qui est à l'ouest du mot-clé "+" La contrainte C 2 choisit un symbole terminal ou non terminal quelconque qui est à l'est du
mot-clé "+".
En ce qui concerne la règle 3, la partie syntaxique signifie que le non terminal E produit un mot-clé "-" associé à un premier non terminal (E 1) et à un deuxième non terminal (E 2) Il faut noter que cette partie syntaxique n'indique pas une relation spatiale entre les deux non terminaux, mais qu'elle indique seulement que deux expressions doivent associées au mot-clé La partie sémantique signifie que le rectangle limite du non terminal E doit être égal à l'union des rectangle limites du mot-clé "-" et des non terminaux E 1 et E 2 La partie de contrainte fournit les relations spatiales nécessaires Comme pour la règle 2, la contrainte C O exige que le symbole d'entrée soit le
mot-clé "-" et que la mesure de pertinence de ce mot-
clé "- " soit supérieure ou égale à la mesure de pertinence de tous les mots-clés qui n'ont pas encore été traités Si plusieurs mots-clés "- " possèdent la même mesure de pertinence, l'un d'eux est choisi arbitrairement La contrainte C 1 choisit un symbole terminal ou non terminal quelconque qui est au nord du mot clé "-" La contrainte C 2 choisit un symbole terminal ou non terminal quelconque qui est au sud du
mot-clé "_-.
La partie syntaxique de la règle 4 signifie que le non terminal El produit le non terminal E ou le non mot-clé nk La partie sémantique signifie que le rectangle limite du non terminal E 1 égal le rectangle limite du non terminal E ou du non mot-clé La partie de contrainte indique que tout symbole satisfait à la contrainte. La règle 5 est identique à la règle 4 sauf que c'est le non terminal E 2 qui est considéré La mise en oeuvre de toutes les règles de production ressortira
mieux de la description d'un processus d'Analyseur
décrit ci-dessous.
* On va maintenant décrire des détails
d'implantation du langage utilisé comme exemple.
Dans une implantation d'une grammaire contrainte d'attributs, les symboles terminaux représentent l'alphabet du langage L'alphabet est un ensemble de symboles prédéterminés L'implantation inclurait des
fonctions d'identification de mots-clés et de non mots-
clés, et une fonction d'association d'un mot-clé à une règle de production Par exemple, la fonction permettant de déterminer si un caractère est un symbole mot-clé peut être implantée de la façon suivante Un caractère c est prévu comme paramètre d'entrée de la fonction Puis, la fonction renvoie la valeur VRAIE si c est un mot-clé du langage, elle renvoie la valeur FAUSSE dans le cas contraire Une implantation semblable peut être donnée pour la fonction qui
détermine si un symbole est un non mot-clé du langage.
Le tableau B illustre les fonctions d'identification de
mots-clés, de non mots-clés, et d'association d'un mot-
clé à une règle de production dans le langage de programmation C pour le langage donné à titre d'exemple
qui est décrit dans la section précédente.
1. 2. 3.
4.
5. 6. 7. 8.
9.
10. 11. 12. 13.
14.
15. 16. 17. 18.
19.
20. 21. 22. 23.
24.
TABLEAU B
Boolean Is Keyw(c) char c; { return ( c =='+' lc=='-'); } Symbol Kind char c; Get Keyw Kind (c) ( switch (c) { case '+': return (addop)' case": return ( divline); default: Debug Str("\p Get Keyw Kind: unknown symbol"); } } Boolen Is Non Keyw(c) char c; ( return ('O' ≤c && c ≤'9 ')II('a' ≤ c && c ≤'z') lI'A' ≤ c && c ≤ 'Z')); } Une première fonction Is KEYW, lignes 1 à 5, reçoit un caractère et détermine si c'est un mot clé défini à l'intérieur du langage Dans cet exemple, l'ensemble de mots-clés est constitué par les symboles
+, -.
Une deuxième fonction Get Keyw Kind, lignes 6 à 18, évalue un caractère fourni pour déterminer le type de mot-clé dont il s'agit Une telle évaluation est nécessaire pour identifier ultérieurement les règles associées au mot-clé Par exemple, les lignes 10-11 vérifient le cas d'un caractère "+" et associent au
caractère "+" une règle de production appelée addop.
Chacun des mots-clés est associé à une chaîne de
caractères qui identifie une règle de production.
Finalement, les lignes 14-15 fournissent un message d'erreur par défaut si un non mot-clé est amené comme entrée. Une troisième fonction Is Non Keyw, lignes 19 à 24, identifie un caractère comme étant un non mot-clé Dans ce cas, l'ensemble de non mots-clés est constitué par les chiffres de " O " à " 9 ", les caractères de "a" à "z",
et les caractères de "A" à "Z".
Le tableau C illustre la définition d'une règle de production Dans ce cas, la règle de production est associée au mot-clé "+" On suppose ici que le symbole mot-clé "+" a été associé de la manière décrite
plus haut à la chaîne de caractères "addop".
TABLEAU C
1.rule=New Object(rule Kind,"\psexpression",&r); 2.Add Rule(rule, rulesaddop,sexpression,UNDEFINED,
3 UNDEFINED);
4.symbol=New Object(symb Kind, "\paddop",&r); 5.Add Symbol To Rule(symbol,rule,addop,UNDEFINED,UNDEFINED 6.UNDEFINED,l); 7.symbol=New Object(symb Kind,"\psexpression",&r)' 8 Add Symbolto Rule(symbol, rule,sexpression,c WEST,
WEST,0,2);
9.symbol=New Object(symb Kind,"\pterm",&r); 10.Add Symbol To Rule(symbol, rule,term,c EAST,EAST,0,3); Il existe deux fonctions primaires qui sont utilisées dans la définition d'une règle de production; Add Rule et Add Symbolto Rule La fonction Add Rule est le moyen par lequel une règle est ajoutée à un ensemble de règles La fonction Add Rule possède la syntaxique suivante: Add Rule (r, R, k, lhs, ai, a 2) o r est la règle en cours de traitement, R est
un ensemble de règles de la grammaire, k est le mot-
clé, lhs est le symbole du côté gauche et a, et a 2 sont des effets qui peuvent être effectués lorsque la règle est en concordance. La fonction Add Symibol To Rule est le moyen par lequel un symbole est ajouté à la règle Dans ce cas, un symbole est, soit un mot-clé, soit un non mot-clé, soit un terminal La fonction Add Symbolto Rule possède la syntaxique suivante: Add Symbol To Rule (s, r, n, c, d, q, m) o S est le symbole, r est la règle en cours de traitement, N est le nom de symbole, c est le nom de la fonction contrainte associée au symbole, d est le nom de la procédure d'affichage du symbole, si la règle comprend un mot-clé, q est égal au numéro de symbole du mot-clé et q est égal à -1 si la règle nepossède pas de mot-clé, et m est le numéro de symbole pour le symbole en cours de traitement Il est important de noter qu'il existe typiquement une série de symboles
associés à une règle.
En se référant au tableau C, en utilisant la notation de grammaire de règles décrite ci-dessus, une règle de la forme suivante est créée: Sexpression -> addop Sexpression Term Il faut noter que le symbole Sexpression à gauche de la règle a été défini par la fonction Add Rule alors que les symboles addop, Sexpression et Term du côté droit de la règle ont été définis par la fonction
Add Symbolto Rule.
En se référant aux lignes 2 et 3 du tableau C, la fonction Add Rule définit le mot-clé addop à associer à
la règle et à un symbole de côté gauche Sexpression.
Ici, les notations UNDEFINED indiquent qu'il n'existe aucun effet qui serait effectué en cas de concordance
de cette règle.
En se référant aux lignes 4 à 6 du tableau C, la fonction Add Symbolto Rule définit un symbole mot-clé addop sur le côté droit de la règle Le symbole mot-clé addop ne présente aucune contrainte spatiale et il lui a été assigné le numéro de symbole 1. En se référant aux lignes 7 et 8 du tableau C, la fonction Add Symbolto Rule définit le symbole Sexpression sur le côté droit de la règle selon une contrainte qui
est d'être à l'ouest du numéro de symbole 1, c'est-à-
dire du symbole mot-clé addop A ce symbole a été
assigné le numéro de symbole 2.
En se référant aux lignes 9-10 du tableau C, la fonction Add Symbolto Rule définit le symbole Term sur le côté droit de la règle selon une contrainte qui est d'être à l'est du numéro de symbole 1, c'est-à- dire le symbole mot-clé addop A ce symbole a été assigné le
numéro de symbole 3.
En ce qui concerne les contraintes spatiales incluses dans les règles de production, des comparaisons sont effectuées sur la base de rectangle limites associés à chaque symbole (selon la définition de la partie sémantique de la règle) Une telle contrainte est illustrée au tableau D. 1. 2. 3.
4.
5. 6. 7. 8.
9.
10. 11. 12. 13.
14.
15. 16. 17. 18.
19.
20. 21. 21. 22. Boolean int Rect Rect
TABLEAU D
c EAST (dist, rl, r 2) *dist; *rl; *r 2; int midx, midy; Boolean east; if (Rect Height (*rl) < Rect Height (*r 2)) t midx = (rl->right + rl-> left) >> 1; midy = (rl->top + rl->bottom) >> 1; east = (r 2->top ≤midy) && (midy≤r 2->bottom) && (midx ≤r 2->right); *dist = r 2->right-midx; } else { midx = (r 2->right + r 2->left) >> 1; midy = (r 2->top + r 2-> bottom) >> 1; east = (rl->top ≤midy) && (midy≤rl->bottom) && (rl-> right≤midx); *dist = midx-rl->right; *} return (east) } Le tableau D illustre une implantation en langage C d'un "Est" de contrainte La fonction renvoie deux valeurs: une valeur de Boole indiquant si un deuxième rectangle (c'est-à-dire r 2) se trouve ou non à l'est d'un premier rectangle (c'est-à-dire rl) et la distance orientée vers l'est entre les deux rectangles Si le deuxième rectangle (r 2) n'est pas à l'est du premier rectangle (rl), une distance invalide est renvoyée I 1 faut noter que la coordonnée Y augmente de haut en bas
et que la coordonnée X augmente de gauche à droite.
Le flux d'opération de la contrainte c EAST est semblable à celui qui est utilisé pour toutes les contraintes de ce langage Le traitement est d'abord basé sur une hypothèse concernant le rectangle dont la hauteur est la plus grande La ligne 8 du tableau D est un exposé conditionnel qui dicte la commande de traitement Si la hauteur de ri est inférieure à celle de r 2, les points médians de ri sont déterminés (lignes 9-10) Une valeur vraie est renvoyée, c'est-à-dire r 2 est à l'est de ri, si la coordonnée Y du point supérieur gauche de r 2 est inférieure ou égale à la coordonnée Y du point médian de ri et que la coordonnée Y du point médian est inférieure ou égale à la coordonnée Y située au point inférieur droit de r 2 et que la coordonnée X du point inférieur droit de r 2 est inférieure ou égale à la coordonnée X du point médian de ri (voir lignes 11-12) Dans le cas contraire, une valeur fausse est renvoyée La distance renvoyée est la valeur obtenue en soustrayant de la coordonnée X du point inférieur droit de r 2 la coordonnée X du point
médian de ri (voir ligne 13).
Si la hauteur de ri est supérieure ou égale à la hauteur de r 2, le point médian de r 2 est déterminé
(lignes 16-17) Une valeur vraie est renvoyée, c'est-à-
dire ri est à l'est de r 2, si la coordonnée Y du point supérieur gauche de ri est inférieure ou égale à la coordonnée Y du point médian de r 2 et que la coordonnée Y du point médian est inférieure ou égale à la coordonnée Y du point inférieur droit de ri et que la coordonnée X du point inférieur droit de ri est inférieure ou égale à la coordonnée X du point médian de r 2 (voir lignes 18-19) Dans le cas contraire, une valeur fausse est renvoyée La distance renvoyée est le résultat obtenu en soustrayant de la coordonnée X du point inférieur droit de r 2 la coordonnée X du point de
médian de r 2 (voir ligne 20).
On va maintenant décrire le procédé d'analyse du
mode de réalisation préféré.
Le procédé d'analyse du mode de réalisation préféré produit un arbre analysé à partir d'un ensemble de sous-configurations d'entrée et d'une grammaire contrainte d'attributs si les sous-configurations d'entrée constituent une configuration valide selon la définition de la grammaire Si l'entrée ne définit pas une configuration du langage, le procédé d'analyse renvoie un message d'erreur Le procédé du mode de réalisation préféré utilise des techniques de programmation par récurrence Il faut noter que le procédé d'analyse du mode de réalisation préféré utilise l'heuristique pour limiter le processus
d'analyse Dans la description du procédé du mode de
réalisation préféré, il est fourni un moyen de retour.
Un tel moyen de retour serait utilisé dans des situations dans lesquelles une poursuite de l'analyse n'est plus possible après que l'on a tenté d'analyser une règle En utilisant un tel moyen de suite, toute combinaison analysable significative possible peut
pourrait être dérivée.
Le procédé d'analyse du mode de réalisation préféré est illustré aux Figures 4 a à 4 d En se référant à la Figure 4 a, le procédé du mode de réalisation préféré comprend, comme paramètres d'entrée, un exemple d'une grammaire contrainte d'attributs G, un symbole non terminal L, et un
ensemble non vide de symboles d'entrées I, étape 401.
L'ensemble I est modifié pendant le traitement du procédé Le procédé d'analyse est implanté sous la forme d'une fonction qui renvoie une valeur "réussite" si les éléments de l'ensemble de symboles d'entrée I peuvent être récrits comme le symbole non terminal L en utilisant la grammaire G Dans le cas contraire, la fonction envoie "défaillance" Pour l'appel initial, le symbole L est le symbole de début S et I est l'ensemble
initial de symboles d'entrée (c'est-à-dire les sous-
configurations) reçus d'un système de reconnaissance de caractères La notation utilisée pour invoquer la fonction sera Parse (G, L, I) Des invocations par récurrence fourniront typiquement des valeurs différentes de L et I Ainsi, la notation du premier
appel de la fonction sera Parse (G, S, 1).
Il faut ensuite déterminer si l'ensemble I contient plus d'un élément, étape 402 En se référant maintenant à la Figure 4 b, si l'ensemble I contient un symbole élément, l'un des trois cas suivants se présente En premier lieu, s'il est déterminé que le symbole L est du même type que l'élément de l'ensemble d'entrées I, étape 403 S'ils sont du même type, une valeur de réussite est renvoyé étape 404 Si L n'est pas de la même sorte syntaxique que l'élément de l'ensemble d'entrées I, L doit être un symbole non terminal Il est ensuite déterminé s'il existe une règle de production telle que le symbole non terminal
produit l'élément de l'ensemble d'entrées I, étape 405.
On y parvient en examinant la partie syntaxique des règles de production afin de localiser l'ensemble d'entrées I comme étant sur le côté droit de la règle et le symbole non terminal comme étant sur le côté gauche de la règle Si aucune règle de production ne produit l'élément, le procédé renvoie une valeur
"défaillance", étape 406 Ceci signifie qu'une sous-
configuration invalide a été trouvée dans la configuration et que la configuration n'est donc pas valide selon le langage S'il existe bien une telle règle de production, le symbole non terminal est enlevé de l'ensemble I, étape 407 Puis, un symbole intermédiaire non terminal désigné par L est créé, ses valeurs étant calculées en utilisant le règle de production identifiée à l'étape 405, étape 408 Le symbole non terminal L est ensuite ajouté à l'ensemble I, étape 409 Une valeur de "réussite" de l'invocation de la fonction est ensuite renvoyée, étape 410 Il faut noter que les étapes 403 à 410 vérifient la validité
des sous-configurations.
En se référant de nouveau à la Figure 4 a, s'il existe plus d'un élément dans l'ensemble d'entrées I, il faut déterminer quel symbole de l'ensemble d'entrées I doit être traité Il est déterminé en premier lieu si l'ensemble d'entrées I contient des mots-clés, étape 611 Si tel est le cas, la mesure de pertinence 1 de chaque mot-clé dans l'ensemble d'entrées I est calculée, étape 412 Puis, le mot-clé le plus pertinent, c'est-à-dire le mot-clé dont la valeur de
pertinence est la plus élevée est choisi, étape 413.
Des règles de production qui contiennent le mot-clé K sur leur côté droit et dont le côté gauche peut être dérivé de L sont collectées dans un ensemble appelé R 1, étape 414 Toutes les règles de production de R 1 sont
ensuite marquées comme inutilisées, étape 416.
En variante, si l'ensemble I ne contient aucun mot-clé, l'ensemble de règles de production qui ne contiennent aucun mot-clé et dont le côté gauche peut être dérivé de L est placé dans l'ensemble R 1, étape 415 Ici aussi, toutes les règles de production de R 1
seraient marquées comme inutilisées selon l'étape 416.
En se référant maintenant à la Figure 4 c, il est ensuite déterminé s'il existe une règle de production inutilisée, étape 417 S'il n'existe aucune règle de production inutilisée, il est renvoyé une valeur de défaillance, étape 418 S'il existe dans R 1 une règle inutilisée, on choisit une règle non utilisée et on la marque comme utilisée, étape 419 Il est ensuite déterminé si la règle choisie comprend un mot-clé,
étape 420 Si la règle choisie ne contient pas de mot-
clé, la forme de la règle est B Bl B 2 * Bn et les symboles possèdent les contraintes correspondantes C 1 C 2 Cn, étape 421 Dans le cas contraire, la forme de la règle est B K B 2 * Bn et les contraintes correspondantes des symboles sont
C 1 C 2 Cn, étape 422.
Pour chaque symbole Bl de la règle choisie, on forme un ensemble Il d'éléments de I qui satisfont à la contrainte Ci de la règle identifiée, étape 423 Pour chaque symbole terminal Bu si l'ensemble Ii contient un élément unique et que le type d'élément est égal à Bl on marque la "réussite" de l'accord, sinon on marque la "défaillance" de l'accord, étape 424 a Le résultat de chacune des vérifications de symboles terminaux Bl est déterminé, étape 424 b Si les accords ne sont pas tous des réussites, c'est-à-dire si l'un des accords est marqué de la valeur "défaillance", une vérification concernant une règle inutilisée est effectuée selon
l'étape 417 et le procédé continu comme décrit ci-
dessus. Si les accords de tous les symboles terminaux de la règle constituent des réussites, un appel par récurrence est ensuite effectué de chaque symbole non
terminal Bi, étape 425 a (par exemple Parse G, Bi, Ii).
Le résultat de chaque appel est ensuite déterminé, étape 425 b Si tous les appels ne sont pas des réussites, c'est-à-dire si l'un des appels par récurrence renvoie une valeur de "défaillance", il est effectué une vérification concernant une règle inutilisée selon l'étape 417 et le procédé continue
comme décrit ci-dessus.
En se référant maintenant à la Figure 4 d, si tous les appels par référence renvoient effectivement une "réussite', un nouveau symbole non terminal B est créé à partir du côté gauche de la partie syntaxique de la règle de production utilisée et les valeurs d'attributs sont fournies à partir de la partie sémantique de la règle de production, étape 426 Le nouveau symbole non terminal B est ensuite ajouté à l'ensemble d'entrées I, étape 427 Puis, tous les symboles qui ont été en accord avec la règle sont enlevés de l'ensemble d'entrées I, étape 428 La partie d'effet, s'il en existe, associée à la règle est ensuite exécutée, étape 429 Finalement, un appel par récurrence au moyen de l'ensemble d'entrées modifié I et du symbole L (par
exemple Parse G, S, I), étape 430.
Afin qu'un appel initial de la fonction d'Analyseur renvoie une valeur de "réussite", toutes les invocations de la fonction d'Analyseur doivent avoir renvoyé une valeur de "réussite" Si une valeur de "défaillance" a été renvoyée à un point quelconque,
la valeur de l'appel initial sera "défaillance".
Il faut noter que le procédé d'Analyse du mode de
réalisation préféré est général par nature C'est-à-
dire, qu'il n'existe aucune restriction quant à l'existence de mots-clés dans les règles En outre, il faut noter que l'envoi de messages d'erreurs n'a pas été décrite Il serait pour l'homme de l'art de renvoyer des messages d'erreurs à des points du procédé
o une valeur de défaillance est renvoyée.
On va décrire de façon plus détaillée le fonctionnement du procédé d'analyse du mode de réalisation en ce qui concerne l'exemple du langage mathématique décrit ci-dessus Considérons l'équation mathématique suivante: 3 + 1 La sortie des processus de reconnaissance de caractères fournirait l'ensemble d'entrées initiales (+, -, 3, 4, 1) Dans un appel initial, le symbole non terminal est le symbole de début S et l'ensemble d'entrées Ainsi, la grammaire G = Exemple d'Expressions Mathématique, L = le symbole de début S et I = (+, -, 3, 4, 1) En utilisant la notation décrite ci-dessus, l'appel initial serait Parse (G, S, 1) Il faut noter que chaque nombre de l'ensemble I est un symbole du terminal (nk) Cependant, dans un but de clarté de l'exposé, on se référera aux nombres au lieu
de se référer à leur type.
Puisque l'ensemble d'entrées initial comprend plus d'un élément, il est déterminé s'il existe un mot-clé quelconque dans l'ensemble d'entrées I Les mots-clés "+" et c"-" existent dans l'ensemble d'entrées I Des mesures de pertinence de chaque mot clé sont ensuite calculées Les mesures de pertinence respectives sont M(+) = 32 et M(- ) = 60 Ainsi, le mot-clé le plus pertinent est "-" (le symbole de division) Lors de l'examen des règles de production concernant le mot- clé "-", on trouve qu'une seule de ces règles existe La
règle de production du mot-clé "-" est donnée ci-
dessous Le symbole x de la partie de contrainte de la règle désigne un symbole non terminal ou un symbole
terminal alors que le symbole k désigne un symbole mot-
clé.
E -> -E 1 E 2 A(E) = A(-) U A(E 1) U A(E 2)
CO(x) = Eq (x,-) et M(x) > M(k) C 1 (x) = Nord(x,-) C 2 (x) = Sud (x,-) La règle est ensuite placée dans un ensemble R 1,
marquée inutilisée, choisie et marquée comme utilisée.
Un sous-ensemble de symboles provenant de I, qui satisfait aux contraintes correspondantes est créé pour
chacun des symboles non terminaux E 1 et E 2 Ces sous-
ensembles sont appelés Il et I 2, respectivement Le sous-ensemble Il = { 3}, que le non mot-clé 3 satisfait
à Ci et le sous-ensemble I 2 = { 4} puisque le non mot-
clé 4 satisfait à C 2 Des appels par récurrence sont ensuite effectués au moyen des symboles E 1 et E 2 et de leurs sous-ensembles correspondants, c'est-à-dire
Parse (G, El, Il) et Parse (G, E 2, I 2).
En évaluant l'appel par récurrence Parse (G, E 1, Il), il est déterminé que l'ensemble
d'entrées ne contient qu'un élément, c'est-à-dire ( 3).
Le symbole non terminal E 1 ne possède pas le même type que l'élément de Il, mais une règle de production quoi produit l'élément est la règle 4 E 1 Elnk (on se rappellera que le nombre 3 est un non mot- clé) Ainsi, l'élément de l'ensemble d'entrées Il peut être remplacé par le symbole non terminal E 1 On notera que la partie
sémantique de la règle 4 prévoit que A(E 1) = A( 3).
L'élément 3 est enlevé de l'ensemble d'entrées Il tandis que le symbole intermédiaire E 1, utilisé dans l'appel par récurrence est ajouté à l'ensemble Par conséquent, Il = {E 1} Cette invocation de la fonction
envoie ensuite une valeur de "réussite".
En évaluant l'appel par récurrence Parse (G, E 2, I 2), il est déterminé que l'ensemble
d'entrées ne contient qu'un élément, c'est-à-dire ( 4).
Le symbole non terminal E 2 ne possède pas le même type que l'élément de I 2, mais une règle de production qui produit l'élément est la règle 5 E 2 Elnk (on se rappellera que le nombre 4 est un non mot- clé) Ainsi, l'ensemble d'entrées I 2 peut être récrit comme le symbole non terminal E 2 On notera que la partie
sémantique de la règle 5 prévoit que A(E 2) = A( 4).
Ainsi, l'élément 4 est enlevé de l'ensemble d'entrées I 2 alors que le symbole intermédiaire E 2, utilisé dans l'appel par récurrence est ajouté à l'ensemble Par conséquent, I 2 = {E 2} Cette invocation de la fonction
renvoie ensuite une valeur "réussite".
Puisque les deux fonctions appelées par récurrence ont renvoyé des "réussites", un symbole non terminal E est créé et ajouté à l'ensemble d'entrées I. E provient du côté gauche de la partie syntaxique de la règle 3 En outre, la valeur d'attribut du non terminal
E est dérivée de la partie sémantique de la règle.
Ainsi, A(E) = A(-)U A( 3) U A( 4) Les symboles accordés dans la règle sont enlevés de l'ensemble d'entrées I, et le symbole non terminal du côté gauche est ajouté de
sorte que I = (E,+,l) Effectivement, la sous-
configuration a été récrite comme E Il n'existe aucune partie d'effet dans cette règle Un appel par récurrence Parse
(G, S, I) est ensuite effectué.
Pendant cet appel par récurrence, il existe ici aussi plus d'un élément dans l'ensemble d'entrées; et
le mot-clé "+" est le plus pertinent (et seul) mot-clé.
Lors de l'examen des règles de production du mot-clé "+", on trouve qu'un seul de ces mots-clés existe La
règle de production du mot-clé "+" est donnée ci-
dessous Le symbole x de la partie de contrainte de la règle désigne un symbole non terminal ou un symbole terminal, alors que le symbole k désigne un symbole mot-clé.
E -> E 1 E 2 A(E) = A(+)U A(E 1) U A(E 2)
CO(x) = Eq (x,+) et M(x) 2 M(k) C 1 (x) = Nord(x,+) C 2 (x) = Sud (x,+) La règle est ensuite insérée dans l'ensemble R 1,
marquée inutilisée, choisie et marquée comme utilisée.
Comme ci-dessus, un ensemble de symboles provenant de I, qui satisfait aux contraintes correspondantes, est
créé pour chacun des symboles E 1 et E 2 Ces sous-
ensembles sont appelés Il et I 2, respectivement Le sous-ensemble Il = {E} puisque le non terminal E satisfait à C 1 et le sous-ensemble 12 = { 1} puisque le non mot-clé 1 satisfait à C 2 Des appels par récurrence sont ensuite effectués avec les symboles E 1 et E 2 et leurs sous- ensembles correspondants, c'est-à-dire
Parse (G, El, Il) et Parse (G, E 2, I 2).
En évaluant l'appel par récurrence Parse (G, El, Il), il est déterminé que l'ensemble
d'entrées ne contient qu'un élément, c'est-à-dire (E).
Le symbole non terminal El ne possède pas le même type que E, mais une règle de production qui produit l'élément est la règle 4: E 1 E Ink Ainsi, l'élément de l'ensemble Il est remplacé par le symbole non terminal E 1 On notera que la partie sémantique de la règle 4 prévoit que A(E 1) = A(E) Ainsi, l'élément E est enlevé de l'ensemble d'entrées Il et le symbole intermédiaire El, utilisé dans l'appel par récurrence, est ajouté à l'ensemble Par conséquent, Il = {El} La
fonction renvoie ensuite une valeur de "réussite".
En évaluant l'appel par récurrence Parse (G, E 2, I 2), il est déterminé que l'ensemble
d'entrées ne contient qu'un élément, c'est-à-dire ( 1).
Le symbole non terminal E 2 ne possède pas le même type que 1 mais une règle de production qui produit l'élément est la règle 5 E 2 E Ink (rappelons que le nombre 1 est un non mot-clé) Ainsi, l'ensemble d'entrées I 2 peut être récrit comme le symbole non terminal E 2 On notera que la partie sémantique de règle 5 prévoit que A(E 2) = A( 1) Ainsi, l'élément 1 est enlevé de l'ensemble d'entrées I 2 et il est remplacé par le symbole intermédiaire E 2 utilisé dans l'appel par récurrence Par conséquent, I 2 = {E 2} La fonction appelée par récurrence renvoie ensuite une "réussite". Puisque les deux fonctions appelées par récurrence ont renvoyé une "réussite", un nouveau symbole non terminal E est créé et est ajouté à l'ensemble d'entrées I E provient du côté gauche de la règle syntaxique 2 du mot-clé "+" Les symboles accordés dans la règle, y compris "l'ancien" E, sont
enlevés de l'ensemble d'entrée 1, de sorte que I = (E).
En outre, la valeur d'attribut du non terminal E est dérivée de la partie sémantique de la règle Ainsi, A(E) = A(l) U A("ancien" E) U A(l) Ici, l'expression E + 1 a été récrite en tant que E La règle ne comprend aucune partie d'effet Un autre appel par récurrence Parse (G, S, I) est ensuite effectué. Dans cet appel par récurrence, il n'existe qu'un élément de l'ensemble d'entrées I, c'est-à-dire E Ce non terminal n'est pas égal à S mais une règle de production qui produit l'élément est la règle 1 S Ejnk Ainsi, l'élément de l'ensemble I est remplacé par le symbole non terminal S On notera que la partie sémantique de la règle 1 prévoit que A(S) = A(E) Cette invocation par récurrence de la fonction renvoie
ensuite une valeur de "réussite".
Les valeurs de "réussites" renvoyées se propagent ensuite en remontant en retour de sorte que l'invocation initiale fournit une valeur de succès de sorte que l'ensemble d'entrées I est récrit en tant que le symbole de début S et que la configuration est
estimée valide.
La structure en arbre qui est engendrée comme résultat de l'analyse est illustrée à la Figure 5 A la Figure 5, le symbole de début 501 est le noeud de racine Un symbole non terminal E 502 correspond à l'analyse du mot-clé "+" Le non terminal E 502 est ensuite divisé en non terminaux composants E 1 504, E 2 505 et le mot-clé "+" 503 Les non terminaux 504 et 505 sont encore analysés en un non terminal 506 et un non mot-clé " 1 " 507, respectivement Le non terminaux E 506 est analysés en le mot-clé 11 "-" 508 et des non terminaux E 1 309 et E 2 510 Finalement, le non mot-clé " 3 " 511 correspond au non terminal E 1 509 et le non
mot-clé " 4 " 512 correspond au non terminal E 2 510.
Un procédé de définition et d'identification de configurations valides d'un système de reconnaissance
de configurations a donc été décrit.

Claims (7)

REVENDICATIONS
1 Procédé de définition et de détermination d'une configuration valide dans un système de reconnaissance d'une configuration valide, ladite configuration ( 201) comprenant une ou plusieurs sous-configu- rations ( 202-207), ladite ou lesdites sous-configurations présentant des relations multidimensionnelles, caractérisé en ce qu'il comprend les étapes consistant à: fournir une grammaire ( 121,G) à un moyen d'analyse ( 122), ladite grammaire comprenant: un ensemble de symboles non terminaux (V); un ensemble de symboles mots-clés (V) un ensemble de symboles non mots-clés (V NK) un moyen de définition d'attribut, ledit moyen de définition d'attribut étant prévu pour définir une liste d'attributs (A) ou l'un quelconque desdits symboles non terminaux, mots-clés ou non mots-clés; un ensemble de règles de production (P), chaque règle de production dudit ensemble de règles de production comprenant une partie syntaxique, une partie sémantique, une partie de contraintes et une partie d'effet; un symbole de début de grammaire (S); un moyen d'application (M) d'un symbole mot-clé, ledit moyen d'application de symbole mot-clé étant prévu pour appliquer à une valeur de nombre réel chacun des symboles dudit ensemble de symboles mots-clés; b) fournir audit moyen d'analyse un ensemble de sous-configurations d'entrées à reconnaître comme configurations valides; c) fournir audit moyen d'analyse ledit symbole de début de grammaire; d) analyser ladite sous-configuration parmi lesdites sous-configurations d'entrée pour déterminer si ledit ensemble de sous-configurations d'entrées peut être récrit, selon ledit ensemble de règles de production, en tant que ledit symbole de début; e) renvoyer une représentation analysée dudit ensemble de sous-configurations d'entrées si ledit ensemble de sous-configurations d'entrées peut être récrit en tant que ledit symbole de début selon ledit ensemble de règles de production; f) renvoyer une information exposant la raison pour laquelle ladite configuration est invalide si ledit ensemble de sous-configurations d'entrées ne peut pas être récrit en tant que ledit symbole de début
selon ledit ensemble de règles de production.
2 Procédé selon la revendication 1 caractérisé en ce que lesdites règles de production comprennent en outre: a) un ensemble de règles syntaxiques, chacune desdites règles syntaxiques définissant une production à partir de l'un desdits symboles non terminaux X vers un ou plusieurs desdits symboles identificateurs, des symboles non terminaux ou des symboles mots-clés Y; b) un ensemble de règles sémantiques, chacune desdites règles sémantiques correspondant à une règle syntaxique, lesdites règles sémantiques définissant une relation physique entre X et Y; c) un ensemble de contraintes pour chacune desdites règles syntaxiques, chacune des contraintes dudit ensemble décrivant des règles d'ordonnancement
d'analyse et des contraintes spatiales.
3 Procédé selon la revendication 2 caractérisé en ce que ladite étape d'analyse desdits ensembles de sous-configurations d'entrées, destinée à déterminer si ledit ensemble de sous-configurations d'entrées peut être récrit en tant que ledit symbole de début selon ledit ensemble de règles de production, comprend en outre les étapes consistant à: a) identifier un premier sous-ensemble dudit ensemble de sous- configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non-terminaux; et b) déterminer s'il existe une règle de production dans laquelle ledit début de symbole produit, dans ladite partie syntaxique, ledit symbole non terminal identifié à l'étape a); c) renvoyer ladite représentation analysée dudit ensemble de sous- configurations d'entrées, s'il existe une telle règle de production,; et f) renvoyer ladite information exposant la raison pour laquelle ladite configuration est invalide, s'il
n'existe pas de telles règles de production.
4 Procédé selon la revendication 3, caractérisé
en ce que l'étape d'identification d'un premier sous-
ensemble dudit ensemble de sous-configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux comprend les étapes consistant:
a) identifier, dans ledit ensemble de sous-
configurations d'entrées, une sous-configuration qui concorde avec l'un desdits mots-clés; b) identifier une règle de production qui correspond audit mot-clé; c) identifier un sous-ensemble desdits symboles qui satisfont à une première contrainte de ladite règle de production, ladite première contrainte possédant un symbole non terminal correspondant N; d) déterminer que ledit sous-ensemble desdits symboles ne contient qu'un seul symbole X; et e) déterminer qu'il existe une règle de production dans laquelle ledit symbole non terminal N produit, dans ladite partie syntaxique, ledit symbole X.
5 Procédé de définition de relations spatiales multidimensionnelles entre symboles dans un système de reconnaissance de configurations valides de symboles, caractérisé en ce qu'il comprend les étapes consistant à: a) fournir un ensemble d'opérateurs spatiaux; b) fournir un ensemble de symboles identificateurs; (c) fournir un ensemble de symboles non terminaux (VN); (d) fournir un ensemble de symboles mots-clés (VK); (e) fournir un ensemble de règles syntaxiques (En), chacune desdites règles syntaxiques définissant une production à partir de l'un desdits symboles non terminaux X vers un ou plusieurs desdits symboles identificateurs, desdits symboles non terminaux ou desdits symboles mots-clés Y; f) fournir un ensemble de règles sémantiques (A(E n)) chacune desdites règles sémantiques correspondant à une règle syntaxique, lesdites règles sémantiques définissant une relation physique entre X et Y; g) fournir un ensemble de contraintes (C n) pour chacune desdites règles syntaxiques, chacun desdits ensembles de contraintes décrivant des règles d'ordonnancement et des contraintes spatiales en
utilisant lesdits opérateurs spatiaux.
6 Procédé d'analyse d'un ensemble de sous-
configurations d'entrée ( 202-207) pour déterminer des configurations valides desdites sous-configurations d'entrées selon un langage prédéfini, ledit langage utilisant une grammaire (G), ladite grammaire comprenant des symboles terminaux (VT), des symboles non terminaux (VN), un symbole de début (S) et des règles de production
(P), caractérisé en ce qu'il comprend les étapes consis-
tant à: a) identifier un sous-ensemble dudit ensemble de sousconfigurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux; b) récrire ledit ensemble de sous- configurations d'entrées en tant que ledit symbole non terminal; et c) déterminer s'il existe une règle de production o ledit symbole de début produit ledit symbole non terminal;
7 Procédé selon la revendication 6 dans lequel les-
dits symboles non terminaux (VN) comprennent en outre des mots-clés (VK) et des identificateurs, et ladite étape
d'identification d'un sous-ensemble desdites sous-
configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux comprend en outre les étapes consistant à: a) déterminer que l'un desdits symboles dudit ensemble de sousconfigurations d'entrées concorde avec l'un desdits mots-clés; b) identifier une règle de production (P) qui correspond audit mot-clé; c) identifier un sous-ensemble desdits symboles qui satisfont à une première contrainte (CN) de ladite règle de production, ladite première contrainte possédant un symbole non terminal correspondant N; d) déterminer que ledit sous-ensemble desdits symboles ne contient qu'un seul symbole X; et e) déterminer qu'il existe une règle de production dans laquelle ledit symbole non terminal N produit, dans ladite partie syntaxique, ledit symbole X,
FR9301524A 1992-04-07 1993-02-11 Procede de reconnaissance syntaxique de configurations a grammaires a attributs contraints. Expired - Lifetime FR2689661B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/864,607 US5317647A (en) 1992-04-07 1992-04-07 Constrained attribute grammars for syntactic pattern recognition

Publications (2)

Publication Number Publication Date
FR2689661A1 true FR2689661A1 (fr) 1993-10-08
FR2689661B1 FR2689661B1 (fr) 1996-05-24

Family

ID=25343655

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9301524A Expired - Lifetime FR2689661B1 (fr) 1992-04-07 1993-02-11 Procede de reconnaissance syntaxique de configurations a grammaires a attributs contraints.

Country Status (2)

Country Link
US (1) US5317647A (fr)
FR (1) FR2689661B1 (fr)

Families Citing this family (192)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418424B1 (en) 1991-12-23 2002-07-09 Steven M. Hoffberg Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US6850252B1 (en) 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US5903454A (en) 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
US5710844A (en) * 1992-05-27 1998-01-20 Apple Computer Method for searching and displaying results in a pen-based computer system
NL9300310A (nl) * 1993-02-19 1994-09-16 Oce Nederland Bv Inrichting en werkwijze voor syntactische signaal-analyse.
DE69426541T2 (de) * 1993-03-12 2001-06-13 Toshiba Kawasaki Kk Dokumentdetektionssystem mit Darstellung des Detektionsresultats zur Erleichterung des Verständnis des Benutzers
US5491628A (en) * 1993-12-10 1996-02-13 Xerox Corporation Method and apparatus for document transformation based on attribute grammars and attribute couplings
US5515453A (en) * 1994-01-21 1996-05-07 Beacon System, Inc. Apparatus and method for image processing in symbolic space
US6965864B1 (en) * 1995-04-10 2005-11-15 Texas Instruments Incorporated Voice activated hypermedia systems using grammatical metadata
US5778402A (en) * 1995-06-07 1998-07-07 Microsoft Corporation Method and system for auto-formatting a document using an event-based rule engine to format a document as the user types
JP4326591B2 (ja) * 1995-07-26 2009-09-09 テジック・コミュニケーションズ・インコーポレーテッド 減少型キーボード曖昧さ除去システム
US5818437A (en) * 1995-07-26 1998-10-06 Tegic Communications, Inc. Reduced keyboard disambiguating computer
US7216116B1 (en) 1996-05-06 2007-05-08 Spotfire Ab Data analysis system with automated query and visualization environment setup
US5930512A (en) * 1996-10-18 1999-07-27 International Business Machines Corporation Method and apparatus for building and running workflow process models using a hypertext markup language
US5841895A (en) * 1996-10-25 1998-11-24 Pricewaterhousecoopers, Llp Method for learning local syntactic relationships for use in example-based information-extraction-pattern learning
US5953541A (en) * 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US6687404B1 (en) 1997-06-20 2004-02-03 Xerox Corporation Automatic training of layout parameters in a 2D image model
US7257528B1 (en) 1998-02-13 2007-08-14 Zi Corporation Of Canada, Inc. Method and apparatus for Chinese character text input
US6684211B1 (en) * 1998-04-01 2004-01-27 Planetweb, Inc. Multimedia communication and presentation
US6770572B1 (en) 1999-01-26 2004-08-03 Alliedsignal Inc. Use of multifunctional si-based oligomer/polymer for the surface modification of nanoporous silica films
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US6959434B2 (en) * 1999-12-01 2005-10-25 International Business Machines Corporation Method of determining the syntactic correctness of expressions
US6834280B2 (en) * 2000-02-07 2004-12-21 Josiah Lee Auspitz Systems and methods for determining semiotic similarity between queries and database entries
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US6952666B1 (en) * 2000-07-20 2005-10-04 Microsoft Corporation Ranking parser for a natural language processing system
US7475006B2 (en) * 2001-07-11 2009-01-06 Microsoft Corporation, Inc. Method and apparatus for parsing text using mutual information
ITFI20010199A1 (it) 2001-10-22 2003-04-22 Riccardo Vieri Sistema e metodo per trasformare in voce comunicazioni testuali ed inviarle con una connessione internet a qualsiasi apparato telefonico
US20030144978A1 (en) * 2002-01-17 2003-07-31 Zeine Hatem I. Automated learning parsing system
US7324990B2 (en) * 2002-02-07 2008-01-29 The Relegence Corporation Real time relevancy determination system and a method for calculating relevancy of real time information
WO2003071393A2 (fr) * 2002-02-15 2003-08-28 Mathsoft Engineering And Education, Inc. Support linguistique pour un dispositif de reconnaissance d'expressions mathematiques
AU2002313588A1 (en) * 2002-07-26 2004-02-16 Subramanian Seethalakshmi Gopala Method for specifying equivalence of language grammars and automatically translating sentences in one language to sentences in another language in a computer environment
US6886819B2 (en) 2002-11-06 2005-05-03 Lord Corporation MR fluid for increasing the output of a magnetorheological fluid damper
US7081837B2 (en) * 2003-04-24 2006-07-25 Taylor Bollman Compressed standardized keyboard
US7310053B2 (en) * 2003-04-24 2007-12-18 Taylor Bollman Compressed standardized keyboard
US7232070B2 (en) * 2004-06-10 2007-06-19 Lockheed Martin Corporation Chemical/biological hazard trigger with automatic mail piece tagging system and method
US7552116B2 (en) * 2004-08-06 2009-06-23 The Board Of Trustees Of The University Of Illinois Method and system for extracting web query interfaces
US7583819B2 (en) * 2004-11-05 2009-09-01 Kyprianos Papademetriou Digital signal processing methods, systems and computer program products that identify threshold positions and values
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7633076B2 (en) 2005-09-30 2009-12-15 Apple Inc. Automated response to and sensing of user activity in portable devices
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US7823053B2 (en) * 2006-12-19 2010-10-26 International Business Machines Corporation System and method for searching error messages
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US9053089B2 (en) 2007-10-02 2015-06-09 Apple Inc. Part-of-speech tagging using latent analogy
US8620662B2 (en) 2007-11-20 2013-12-31 Apple Inc. Context-aware unit selection
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8065143B2 (en) 2008-02-22 2011-11-22 Apple Inc. Providing text input using speech data and non-speech data
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US8464150B2 (en) 2008-06-07 2013-06-11 Apple Inc. Automatic language identification for dynamic text processing
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8768702B2 (en) 2008-09-05 2014-07-01 Apple Inc. Multi-tiered voice feedback in an electronic device
US8898568B2 (en) 2008-09-09 2014-11-25 Apple Inc. Audio user interface
US8583418B2 (en) 2008-09-29 2013-11-12 Apple Inc. Systems and methods of detecting language and natural language strings for text to speech synthesis
US8712776B2 (en) 2008-09-29 2014-04-29 Apple Inc. Systems and methods for selective text to speech synthesis
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
WO2010067118A1 (fr) 2008-12-11 2010-06-17 Novauris Technologies Limited Reconnaissance de la parole associée à un dispositif mobile
US8862252B2 (en) 2009-01-30 2014-10-14 Apple Inc. Audio user interface for displayless electronic device
US8380507B2 (en) 2009-03-09 2013-02-19 Apple Inc. Systems and methods for determining the language to use for speech generated by a text to speech engine
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US20120309363A1 (en) 2011-06-03 2012-12-06 Apple Inc. Triggering notifications associated with tasks items that represent tasks to perform
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10540976B2 (en) 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US8682649B2 (en) 2009-11-12 2014-03-25 Apple Inc. Sentiment prediction from textual data
US8600743B2 (en) 2010-01-06 2013-12-03 Apple Inc. Noise profile determination for voice-related feature
US8381107B2 (en) 2010-01-13 2013-02-19 Apple Inc. Adaptive audio feedback system and method
US8311838B2 (en) 2010-01-13 2012-11-13 Apple Inc. Devices and methods for identifying a prompt corresponding to a voice input in a sequence of prompts
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
DE202011111062U1 (de) 2010-01-25 2019-02-19 Newvaluexchange Ltd. Vorrichtung und System für eine Digitalkonversationsmanagementplattform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
EP2586021A4 (fr) * 2010-06-25 2015-04-15 Smart Technologies Ulc Procédé de classement d'évaluations à base d'équations et système de réponse de participant utilisant ce procédé
US8713021B2 (en) 2010-07-07 2014-04-29 Apple Inc. Unsupervised document clustering using latent semantic density analysis
US8719006B2 (en) 2010-08-27 2014-05-06 Apple Inc. Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis
US8719014B2 (en) 2010-09-27 2014-05-06 Apple Inc. Electronic device with text error correction based on voice recognition data
US10515147B2 (en) 2010-12-22 2019-12-24 Apple Inc. Using statistical language models for contextual lookup
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US8781836B2 (en) 2011-02-22 2014-07-15 Apple Inc. Hearing assistance system for providing consistent human speech
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US20120310642A1 (en) 2011-06-03 2012-12-06 Apple Inc. Automatically creating a mapping between text data and audio data
US8812294B2 (en) 2011-06-21 2014-08-19 Apple Inc. Translating phrases from one language into another using an order-based set of declarative rules
US8706472B2 (en) 2011-08-11 2014-04-22 Apple Inc. Method for disambiguating multiple readings in language conversion
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US8762156B2 (en) 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US8775442B2 (en) 2012-05-15 2014-07-08 Apple Inc. Semantic search using a single-source semantic model
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US10019994B2 (en) 2012-06-08 2018-07-10 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US8935167B2 (en) 2012-09-25 2015-01-13 Apple Inc. Exemplar-based latent perceptual modeling for automatic speech recognition
US9069882B2 (en) * 2013-01-22 2015-06-30 International Business Machines Corporation Mapping and boosting of terms in a format independent data retrieval query
CN113470640B (zh) 2013-02-07 2022-04-26 苹果公司 数字助理的语音触发器
US9733821B2 (en) 2013-03-14 2017-08-15 Apple Inc. Voice control to diagnose inadvertent activation of accessibility features
US10572476B2 (en) 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US10642574B2 (en) 2013-03-14 2020-05-05 Apple Inc. Device, method, and graphical user interface for outputting captions
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US9977779B2 (en) 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
WO2014144579A1 (fr) 2013-03-15 2014-09-18 Apple Inc. Système et procédé pour mettre à jour un modèle de reconnaissance de parole adaptatif
KR102014665B1 (ko) 2013-03-15 2019-08-26 애플 인크. 지능형 디지털 어시스턴트에 의한 사용자 트레이닝
AU2014251347B2 (en) 2013-03-15 2017-05-18 Apple Inc. Context-sensitive handling of interruptions
WO2014144949A2 (fr) 2013-03-15 2014-09-18 Apple Inc. Entraînement d'un système à commande au moins partiellement vocale
WO2014197334A2 (fr) 2013-06-07 2014-12-11 Apple Inc. Système et procédé destinés à une prononciation de mots spécifiée par l'utilisateur dans la synthèse et la reconnaissance de la parole
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (fr) 2013-06-07 2014-12-11 Apple Inc. Système et procédé pour détecter des erreurs dans des interactions avec un assistant numérique utilisant la voix
WO2014197335A1 (fr) 2013-06-08 2014-12-11 Apple Inc. Interprétation et action sur des commandes qui impliquent un partage d'informations avec des dispositifs distants
WO2014200728A1 (fr) 2013-06-09 2014-12-18 Apple Inc. Dispositif, procédé et interface utilisateur graphique permettant la persistance d'une conversation dans un minimum de deux instances d'un assistant numérique
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
AU2014278595B2 (en) 2013-06-13 2017-04-06 Apple Inc. System and method for emergency calls initiated by voice command
WO2015020942A1 (fr) 2013-08-06 2015-02-12 Apple Inc. Auto-activation de réponses intelligentes sur la base d'activités provenant de dispositifs distants
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
EP3480811A1 (fr) 2014-05-30 2019-05-08 Apple Inc. Procédé d'entrée à simple énoncé multi-commande
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DE102018008923A1 (de) * 2018-10-09 2020-05-20 makmad.org e. V. Verfahren zur Erstellung einer effizienten, logisch vollständigen, ontologischen Ebene im erweiterten relationalen Datenbankkonzept
CN112434532B (zh) * 2020-11-05 2024-05-28 西安交通大学 一种支持人机双向理解的电网环境模型及建模方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5020112A (en) * 1989-10-31 1991-05-28 At&T Bell Laboratories Image recognition method using two-dimensional stochastic grammars

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4688195A (en) * 1983-01-28 1987-08-18 Texas Instruments Incorporated Natural-language interface generating system
US5083268A (en) * 1986-10-15 1992-01-21 Texas Instruments Incorporated System and method for parsing natural language by unifying lexical features of words

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5020112A (en) * 1989-10-31 1991-05-28 At&T Bell Laboratories Image recognition method using two-dimensional stochastic grammars

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A. BELAID ET AL.: "A Syntactic Approach for Handwritten Mathematical Formula Recognition", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLGENCE,, vol. 6, no. 1, January 1984 (1984-01-01), NEW YORK US, pages 105 - 111 *

Also Published As

Publication number Publication date
FR2689661B1 (fr) 1996-05-24
US5317647A (en) 1994-05-31

Similar Documents

Publication Publication Date Title
FR2689661A1 (fr) Procédé de reconnaissance syntaxique de configurations à grammaires à attributs contraints.
Liu et al. Latent space cartography: Visual analysis of vector space embeddings
Park et al. CORD: a consolidated receipt dataset for post-OCR parsing
CN109543690B (zh) 用于提取信息的方法和装置
Joseph et al. Knowledge-directed interpretation of mechanical engineering drawings
Brun et al. Model differences in the eclipse modeling framework
Coüasnon Dmos, a generic document recognition method: Application to table structure analysis in a general and in a specific way
Grenander A unified approach to pattern analysis
US9031894B2 (en) Parsing and rendering structured images
CN109840255A (zh) 答复文本生成方法、装置、设备及存储介质
Schmitt-Koopmann et al. FormulaNet: A benchmark dataset for mathematical formula detection
George Visual perception of music notation: on-line and off-line recognition
Groleau et al. Augraphy: A data augmentation library for document images
Sidnyaev et al. Formal grammar theory in recognition methods of unknown objects
Slimane et al. Database and evaluation protocols for arabic printed text recognition
CN110209880A (zh) 视频内容检索方法、视频内容检索装置及存储介质
CN113592523B (zh) 一种金融数据处理系统及方法
CN112149523B (zh) 基于深度学习和并查集算法识别并抽取图片的方法及装置
WO2022134578A1 (fr) Procédé et appareil pour déterminer une séquence de réponses
US9443139B1 (en) Methods and apparatus for identifying labels and/or information associated with a label and/or using identified information
CN110473092B (zh) 一种高效阅读智能合约辅助方法
Esteban A Generic, Efficient, and Interactive Approach to Image Processing with Applications in Mathematical Morphology
Bhasin et al. A secure mobile application for speech to text conversion using artificial intelligence techniques.
Shukla et al. Recognition and quality assessment of data charts in mixed-mode documents
CN110362538A (zh) 关系确定方法和装置、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20051031

D3 Ip right revived
CD Change of name or company name