Partager via


Proxy de données avec analyse manuscrite

Comme mentionné dans vue d’ensemble de l’analyse manuscrite, la technologie d’analyse manuscrite gère en interne un modèle de document basé sur des arborescences pour contenir des résultats et des relations d’analyse. Si votre application dispose déjà d’un magasin de documents établi qui est différent, vous devez utiliser les fonctionnalités d’analyse manuscrite conçues pour proxyr des données entre des modèles de documents disparates.

Types de proxy de données

Les fonctionnalités de proxy de données permettent à votre application de :

  • Intégrez des données de résultats d’analyse dans un modèle de document existant.
  • Communiquez les résultats précédents (ou état) dans le InkAnalyzer.
  • Communiquez l’état non manuscrit dans le InkAnalyzer.
  • Communiquez uniquement le jeu minimal de données (état précédent et non manuscrit) nécessaire pour terminer l’opération d’analyse.
  • Mettez facilement à jour le modèle de document d’application interne avec des résultats d’analyse.

Il existe deux approches de base pour le proxy de données d’analyse manuscrite. Les différences se présentent dans les détails du moment et de la façon dont la synchronisation entre les modèles de document se produit. La première approche, mise à jour synchrone, nécessite la modification du modèle de document d’analyse manuscrite lorsque des modifications se produisent dans le document d’application. La deuxième approche, mise à jour à la demande, exige uniquement que les données affectées par les modifications apportées au modèle de document d’application soient transmises au InkAnalyzer. Autrement dit, seules les données des parties du modèle de document Analyse manuscrite qui se trouvent dans la même zone que les modifications apportées au document d’application doivent être transmises au InkAnalyzer en fonction de leurs besoins.

Mise à jour synchrone

L’approche de mise à jour synchrone nécessite la modification (création et suppression) de nœuds dans la collection d’objets InkAnalyzer InkAnalyzer d’objets ContextNode lorsqu’ils se produisent dans le document de l’application. Par exemple, chaque fois qu’un mot de texte est ajouté à l’application, un TextWord correspondant style ContextNode est créé dans le InkAnalyzer. Si l’emplacement du mot de texte sur la page change, l’emplacement du ContextNode correspondant est mis à jour en même temps. Cette méthode est moins efficace en termes de ressources informatiques que la méthode à la demande, car chaque modification de document implique une mise à jour de l'InkAnalyzer, même si la modification n’affecte pas l’entrée manuscrite analysée.

L’exemple suivant est destiné à montrer le fonctionnement de la mise à jour synchrone. Imaginez une application qui a un modèle de document existant. Lorsque l’utilisateur final apporte une modification au document, comme l’ajout de nouveau texte, la modification est traitée comme suit :

  1. L’utilisateur final crée les nouvelles données.
  2. L’application détermine comment traiter les données, les stocke et les affiche.
  3. À des fins pratiques, les étapes suivantes s’effectuent simultanément.
    1. L’application place les données dans son modèle de document.
    2. L’application crée uneInkAnalyzeret la met à jour. Cela garantit simultanément que le InkAnalyzer dispose toujours des informations les plus récentes.
    3. L’application appelle BackgroundAnalyze sur leInkAnalyzerpour commencer l’analyse.
  4. Une série d’événements est déclenchée si la modification implique des entrées manuscrites et que la InkAnalyzer détermine les nouveaux résultats. Un événement est déclenché pour chaque modification apportée à la collection d’objets ContextNode ContextNode dans la InkAnalyzer. Ces événements incluent ContextNodeCreated, ContextNodeDeleting, ContextNodeMovingToPosition, ContextNodePropertiesUpdated, ContextNodeLinkAdding, ContextNodeLinkDeletinget ContextNodeReparenting. L’application gère ces événements pour proxyr les résultats de l’opération d’analyse dans le modèle de document selon les besoins.
  5. L’application met à jour la disposition du document, en extrayant les nouvelles données du modèle de document.
  6. Les nouvelles données sont rendues à l’utilisateur final.

Mise à jour à la demande

L’approche à la demande exige uniquement que les données soient transmises pour ces ContextNode objets qui se trouvent dans les zones analysées. Les ContextNode nécessaires objets sont extraits du modèle de document de l’application juste après l’appel de l’opération d’analyse, puis à nouveau juste avant de réconcilier les résultats. Bien qu’elle soit plus complexe à implémenter que les mises à jour synchrones, cette approche produit de meilleurs résultats en matière de performances.

Vue d’ensemble de l’analyse manuscrite

InkAnalyzer, classe (C++)

Microsoft.Ink.InkAnalyzer

Microsoft.Ink.ContextNode