Share via


Sobre os Serviços Linguísticos Estendidos

Os ELS (Serviços Linguísticos Estendidos) são implementados como uma DLL (biblioteca de vínculo dinâmico) 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ço linguístico predefinidos acessíveis para o aplicativo por meio 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 por meio da mesma API, o 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 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. Portanto, seu aplicativo só precisa vincular à DLL (Elscore.dll) do componente ELS vinculando ao Elscore.lib ou carregando dinamicamente Elscore.dll.

Serviços ELS

Para o Windows 7 e versões posteriores, a plataforma ELS dá suporte apenas aos seguintes serviços predefinidos.

Observação

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

 

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

  • "Detecção de idioma"
  • "Detecçã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, idiomas e scripts de entrada e saída com suporte 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 compatível com uma DLL que pode ser instalada no sistema operacional para que a plataforma ELS possa detectá-lo e usá-lo. Os serviços podem expor seus próprios subsserviços, se necessário.

Principais operações do ELS

Esta seção descreve as operações de main compatíveis com a plataforma ELS. A plataforma dá suporte a modos de chamada síncronos e assíncronos. O modo de chamada assíncrona usa um pool de threads de aplicativo para agendar threads para solicitações de processamento.

Observação

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

 

Enumeração de serviço

A plataforma ELS carrega e gerencia todos os serviços 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 motivos de desempenho fazer com 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 sejam sempre atuais.

 

Reconhecimento de Texto

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

Depois que o serviço reconhecer o texto, MappingRecognizeText retornará com uma estrutura MAPPING_PROPERTY_BAG preenchida com dados de saída e propriedades produzidas pelo serviço. Para evitar vazamentos de memória, o aplicativo deve liberar o recipiente de propriedades chamando MappingFreePropertyBag para cada vez que o MappingRecognizeText retornar 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 recipiente de propriedades é liberado, MappingFreePropertyBag retorna.

Instruções de programação para reconhecimento de texto são fornecidas em Solicitando Reconhecimento de Texto.

Terminação de Serviço

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

Controle de versão

Versões futuras do ELS permitirão que os serviços ELS sejam atualizados. O aplicativo poderá marcar os números de versão da estrutura MAPPING_SERVICE_INFO para detectar alterações nos serviços.

Observação

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