Informazioni sui servizi linguistici estesi
Extended Linguistic Services (ELS) viene implementato come libreria a collegamento dinamico (DLL) che fornisce un'ampia gamma di funzionalità di supporto linguistico per il testo specificato dall'applicazione. La tecnologia include la piattaforma ELS e i plug-in per diversi tipi di servizi linguistici predefiniti accessibili all'applicazione tramite la piattaforma.
Nota
Il modulo ELS viene installato automaticamente con Windows 7 e versioni successive.
Piattaforma ELS
La piattaforma ELS è l'interfaccia tra l'applicazione e i servizi ELS. Offre un modo semplice per implementare diversi tipi di funzionalità linguistiche tramite la stessa API, che consente all'applicazione di accedere e usare servizi specifici. Per altre informazioni sull'API, vedere Informazioni di riferimento sui servizi linguistici estesi.
Nota
Quando l'applicazione chiama una delle funzioni API ELS, la piattaforma alloca memoria e risorse in base alle esigenze per la comunicazione con i servizi. L'applicazione è responsabile di chiamare di nuovo la piattaforma per liberare queste risorse.
La piattaforma viene eseguita all'interno dello spazio di memoria virtuale dell'applicazione e tutta la memoria allocata fa parte di questo spazio. L'applicazione deve quindi collegarsi solo alla DLL del componente ELS (Elscore.dll) collegando elscore.lib o caricando dinamicamente Elscore.dll.
Servizi ELS
Per Windows 7 e versioni successive, la piattaforma ELS supporta solo i servizi predefiniti seguenti.
Nota
Le versioni future di ELS supporteranno servizi aggiuntivi forniti da Microsoft o dai provider di servizi.
Ogni servizio è associato a una categoria di servizio che descrive le operazioni del servizio. La categoria è rappresentata da una stringa non localizzata. Viene usato dalle applicazioni per enumerare i servizi disponibili. Le categorie di servizio correnti sono:
- Rilevamento della lingua
- "Rilevamento script"
- "Traslitterazione"
La piattaforma usa i metadati del servizio per enumerare i servizi richiesti dall'applicazione. Proprietà come l'identificatore univoco globale del servizio (GUID), i linguaggi e gli script di input e output supportati e la categoria di servizio può essere usata dall'applicazione per enumerare i servizi ELS desiderati.
Ogni servizio ELS viene implementato come plug-in supportato da una DLL che può essere installata nel sistema operativo in modo che la piattaforma ELS possa rilevarla e usarla. Se necessario, i servizi possono esporre i propri sottoservizi.
Operazioni ELS principali
In questa sezione vengono descritte le operazioni principali supportate dalla piattaforma ELS. La piattaforma supporta sia le modalità di chiamata sincrona che asincrona. La modalità di chiamata asincrona usa un pool di thread dell'applicazione per schedulare i thread per l'elaborazione delle richieste.
Nota
Poiché la piattaforma supporta una modalità asincrona, i servizi ELS non devono implementare questo tipo di funzionalità autonomamente.
Enumerazione dei Servizi
La piattaforma ELS carica e gestisce tutti i servizi ELS, rendendo l'operazione trasparente per l'applicazione. L'applicazione enumera i servizi disponibili chiamando MappingGetServices. Per istruzioni di programmazione, vedere Enumerazione e Rilascio dei Servizi.
Nota
Per motivi di prestazioni è consigliabile che l'applicazione enumera i servizi disponibili una sola volta. La piattaforma ELS controlla nuovamente i servizi nell'enumerazione successiva per assicurarsi che i risultati dell'enumerazione siano sempre aggiornati.
Riconoscimento del testo
Dopo l'enumerazione del servizio, l'applicazione chiama la funzione MappingRecognizeText per usare un particolare servizio ELS per eseguire il mapping di qualsiasi intervallo di testo di input al testo di output. Un esempio di riconoscimento del testo è l'uso di un servizio di rilevamento della lingua che riceve un segmento di testo e rileva la lingua più probabile.
Dopo che il servizio ha riconosciuto il testo, MappingRecognizeText restituisce una struttura MAPPING_PROPERTY_BAG popolata con i dati di output e le proprietà prodotti dal servizio. Per evitare perdite di memoria, l'applicazione deve liberare il contenitore delle proprietà chiamando MappingFreePropertyBag ogni volta che MappingRecognizeText restituisce S_OK. In genere l'applicazione esegue questa operazione al termine dell'utilizzo dei dati di output o quando i dati di output non sono più rilevanti perché l'area di input del testo è stata modificata, ad esempio, modificata o eliminata. Quando il contenitore delle proprietà viene rilasciato, MappingFreePropertyBag viene restituito.
Le istruzioni di programmazione per il riconoscimento del testo sono disponibili in Richiesta di riconoscimento del testo.
Terminazione del servizio
Quando l'applicazione non richiede più servizi ELS, chiama MappingFreeServices prima che termini. Per ulteriori informazioni, vedere Enumerazione e Liberazione dei Servizi.
Controllo delle versioni
Le versioni future di ELS consentiranno l'aggiornamento dei servizi ELS. L'applicazione sarà in grado di controllare i numeri di versione della struttura MAPPING_SERVICE_INFO per rilevare eventuali modifiche nei servizi.
Nota
L'applicazione ELS non deve presupposizione che versioni diverse dello stesso servizio possano recuperare esattamente gli stessi risultati.