Partilhar via


Sobre os Serviços Linguísticos Alargados

Os Serviços Linguísticos Estendidos (ELS) são implementados como uma biblioteca de vínculo dinâmico (DLL) que fornece uma variedade de funcionalidades de suporte linguístico para texto especificado pelo aplicativo. A tecnologia inclui a plataforma ELS e plug-ins para vários tipos de serviços linguísticos predefinidos acessíveis à aplicação através da plataforma.

Observação

O módulo ELS é instalado automaticamente com o Windows 7 e posterior.

 

Plataforma ELS

A plataforma ELS é a interface entre seu aplicativo e os serviços ELS. Ele fornece uma maneira simples de implementar vários tipos de funcionalidade linguística através da mesma API, que permite que o aplicativo acesse e use serviços específicos. Para obter mais informações sobre a API, consulte Referência de Serviços Linguísticos Estendidos.

Observação

Quando o aplicativo chama qualquer uma das funções da API do ELS, a plataforma aloca memória e recursos conforme necessário para a comunicação com os serviços. O aplicativo é responsável por chamar a plataforma novamente para liberar esses recursos.

 

A plataforma é executada dentro do espaço de memória virtual do aplicativo, e toda a memória alocada faz parte desse espaço. Assim, seu aplicativo só precisa vincular à DLL do componente ELS (Elscore.dll) vinculando a Elscore.lib ou carregando dinamicamente Elscore.dll.

Serviços ELS

Para Windows 7 e versões posteriores, a plataforma ELS suporta apenas os seguintes serviços predefinidos.

Observação

Versões futuras do ELS darão suporte a serviços adicionais fornecidos pela Microsoft ou provedores de serviços.

 

Cada serviço está associado a uma categoria de serviço que descreve o que o serviço faz. A categoria é representada por uma cadeia de caracteres não localizável. Ele é usado por aplicativos para enumerar os serviços disponíveis. As categorias de serviço atuais são:

  • "Deteção de idioma"
  • "Deteção de script"
  • "Transliteração"

A plataforma usa metadados de serviço para enumerar os serviços solicitados pelo aplicativo. Propriedades como o GUID (identificador global exclusivo) do serviço, linguagens e scripts de entrada e saída suportados e a categoria de serviço podem ser usadas pelo aplicativo para enumerar os serviços ELS desejados.

Cada serviço ELS é implementado como um plug-in suportado por uma DLL que pode ser instalada no sistema operacional para que a plataforma ELS possa detetá-lo e usá-lo. Os serviços podem expor seus próprios subserviços, se necessário.

Principais operações do ELS

Esta seção descreve as principais operações suportadas pela plataforma ELS. A plataforma suporta os modos de chamada síncrona e assíncrona. O modo de chamada assíncrona usa um pool de threads de aplicativo para agendar threads para processar solicitações.

Observação

Como a plataforma suporta um modo assíncrono, os serviços do ELS não precisam implementar esse tipo de funcionalidade por conta própria.

 

Enumeração de Serviços

A plataforma ELS carrega e gerencia todos os serviços do ELS, tornando a operação transparente para o aplicativo. O aplicativo enumera os serviços disponíveis chamando MappingGetServices. Para obter instruções de programação, consulte Enumerando e liberando serviços.

Observação

É aconselhável, por razões de desempenho, que seu aplicativo enumere os serviços disponíveis apenas uma vez. A plataforma ELS verifica os serviços novamente na próxima enumeração para garantir que seus resultados de enumeração estejam sempre atualizados.

 

Reconhecimento de texto

Após a enumeração de serviço, o aplicativo chama a função MappingRecognizeText para utilizar um serviço ELS específico no mapeamento de qualquer intervalo de texto de entrada para texto de saída. Um exemplo de reconhecimento de texto é o uso de um serviço de deteção de idioma que recebe um segmento de texto e deteta seu idioma mais provável.

Depois que o serviço reconhece o texto, MappingRecognizeText retorna com uma estrutura MAPPING_PROPERTY_BAG preenchida com dados de saída e propriedades produzidas pelo serviço. Para evitar fugas de memória, a aplicação deve liberar o pacote de propriedades ao chamar MappingFreePropertyBag cada vez que MappingRecognizeText retorna S_OK. Normalmente, o aplicativo faz isso quando termina de usar os dados de saída ou quando os dados de saída não são mais relevantes porque a região de entrada do texto foi modificada, por exemplo, editada ou excluída. Quando o pacote de propriedades é liberado, MappingFreePropertyBag retorna.

As instruções de programação para reconhecimento de texto são fornecidas em Solicitando reconhecimento de texto.

Cessação do Serviço

Quando seu aplicativo não requer mais serviços do ELS, ele chama MappingFreeServices antes de ser encerrado. Para obter mais informações, consulte Enumerando e liberando serviços.

Controle de versão

As versões futuras do ELS permitirão que os serviços do ELS sejam atualizados. O aplicativo será capaz de verificar os números de versão da estrutura MAPPING_SERVICE_INFO para detetar quaisquer alterações nos serviços.

Observação

Seu aplicativo ELS não deve presumir que diferentes versões do mesmo serviço podem recuperar exatamente os mesmos resultados.