480 likes | 566 Views
Matching Module Novas Instâncias para a Infra-estrutura de Matchmaking. Agenda. Overview Criando um Domain Knowledge Usando o Matching Module A Aplicação Cliente Novas Instâncias Documentos para Consulta. Overview.
E N D
Matching Module • Novas Instâncias para a Infra-estrutura de Matchmaking
Agenda • Overview • Criando um Domain Knowledge • Usando o Matching Module • A Aplicação Cliente • Novas Instâncias • Documentos para Consulta
Overview • Biblioteca + Framework em Java para realização de matching entre indivíduos • Dados dois grupos de indivíduos • séries de soluções para o problema de matching proposto • score para cada solução apresentada
Overview • Requisitos • Flexibilidade • Extensibilidade • Compatibilidade com padrões • RDF, RDFS, DAML+OIL, OWL • Independência de domínio • Simplicidade e Facilidade de Uso
Overview • Requisitos • Configurabilidade • Que algoritmo de matching utilizar? • Que informação de domínio utilizar? • Que ontologia ou modelo semântico foi utilizado para descrever os recursos que serão processados? • Que recursos que estão sendo processados? • Que tipo de matching será aplicado (uma a um, um a múltiplos, múltiplos a um, múltiplos a múltiplos)? • Que operações deverão ser aplicadas aos resultados? (número máximo de resultados, filtragem acima ou abaixo de um fator de corte).
Criando um Domain Knowledge • Como criar um novo domínio de conhecimento para o Matching Module? • Exemplo: • Competências de um Funcionário
Criando um Domain Knowledge Ontologia para Competências
Criando um Domain Knowledge Ontologia para Cursos
Criando um Domain Knowledge Ontologia para Pessoas
Criando um Domain Knowledge • Como ensinar ao MM como avaliar os possíveis conjuntos de resultados? • Definindo um domain knowledge • Definindo um evaluator • Definindo um state changer
Criando um Domain Knowledge • Como ensinar ao MM como avaliar os possíveis conjuntos de resultados? • Definindo um domain knowledge
Criando um Domain Knowledge • Como ensinar ao MM como avaliar os possíveis conjuntos de resultados? • Definindo um evaluator • Matching é um problema sensível a contexto • Como saber se uma seqüência (OO, Java) é melhor que uma (OO, .Net) para o funcionário Daniel?
Criando um Domain Knowledge • Como ensinar ao MM como avaliar os possíveis conjuntos de resultados? • Definindo um evaluator • Um evaluator é responsável por calcular o score de uma solução particular para um matching em um dado domínio. • Isso é feito através da definição de funções genéricas que podem, em tempo de execução, calcular o score para instâncias de solução. • Os métodos eval do evaluator avaliam quão boa uma solução é para um problema
Criando um Domain Knowledge • Como ensinar ao MM como avaliar os possíveis conjuntos de resultados? • Definindo um evaluator • Novos evaluators devem ser criados através da herança de um dos tipos de evaluators existentes, com a implementação de novos comportamentos para os métodos: • public double[] eval1to1( Individual i1, Individual i2 ) • public double[] eval1toN( Individual i, IndividualsCollection list ) • public double[] evalNto1( IndividualsCollection list, Individual i ) • public double[] evalNtoN( IndividualsCollection l1, IndividualsCollection l2 ) • (essas implementações são ou não necessárias de acordo com a natureza do problema)
Criando um Domain Knowledge • Exemplo • Uma pessoa deve fazer um curso se este desenvolve alguma competência que aquela pessoa demanda. • Quanto maior o número de competências que o curso desenvolve, mais adequado ele é para aquela pessoa. • Nenhuma pessoa deve fazer o mesmo curso duas vezes. • Cursos podem ter pré-requisitos.
Criando um Domain Knowledge Eval 1 to 1
Criando um New Domain Knowledge Eval 1 to N
Criando um New Domain Knowledge • Como ensinar ao MM como avaliar os possíveis conjuntos de resultados? • Definindo um state changer • Resultados são obtidos incrementalmente • A cada iteração, o estado do grupo de indivíduos muda, bem como as próximas melhores soluções • Um state changer é o mecanismo que muda o estado de um problema após cada solução
Criando um Domain Knowledge State Changer para o domínio de exemplo
Usando o Matching Module • Definindo o problema e o espaço de soluções para o matching • Definindo os parâmetros de matching • Especificando o problema • Especificando o espaço de soluções • Especificando uma estratégia
Usando o Matching Module • Definindo o problema e o espaço de soluções para o matching • Estrutura do XML
Usando o Matching Module • Definindo o problema e o espaço de soluções para o matching • Parâmetros de Matching
Usando o Matching Module • Definindo o problema e o espaço de soluções para o matching • Parâmetros de Matching • Name • Type (1to1, Nto1, 1toN, NtoN) • Model • MaxResultsSize • Threshold
Usando o Matching Module • Definindo o problema e o espaço de soluções para o matching • Problema
Usando o Matching Module • Definindo o problema e o espaço de soluções para o matching • Soluções
Usando o Matching Module • Definindo o problema e o espaço de soluções para o matching • Estratégias
Usando o Matching Module • Definindo o problema e o espaço de soluções para o matching • Estratégias • Três estratégias já estão implementadas no MM: • Estratégia Força Bruta • Estratégia Gulosa • Estratégia Busca Tabu
Usando o Matching Module • Definindo o problema e o espaço de soluções para o matching • Especificação Completa
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências • Resultados Esperados
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências Configuração do servidor
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências Configuração do servidor
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
A Aplicação Cliente • Exemplo: Domínio de Pessoas, Cursos e Competências
Novas Instâncias • Problemas de Matching: • Dada uma vaga e as competências necessárias para preenchê-la, qual o melhor candidato? (Já desenvolvido) • Dado um conjunto de pessoas e seus interesses e um conjunto de mensagens publicitárias, quais são aquelas que terão o maior impacto? • Dado um projeto e suas necessidades e um conjunto de profissionais, suas competências e disponibilidades, quais são os profissionais mais indicados? • Dado um conjunto de cursos, as competências e um conjunto de profissionais, quais são os mais indicados para o treinamento? • Dada uma dissertação ou tese e seus temas, qual a composição mais indicada para uma banca?
Documentos de Referência • An Overview of the Matching Module • Creating a New Domain Knowledge • Using the Matching Module • Configuring a Matching Server • An Introduction to the Matching Module Client Application • Skills Management Case Study • JavaDocs, Diagramas e Classes
Obrigado! • Cristiano Rocha, Luiz Gustavo Ferrão, Francisco Ferreira, Daniel Orlean 21 3114-1800 daniel.orlean@milestone-ti.com.br orlean@inf.puc-rio.br