Código Desenvolvido
Meta 2 - Download do Código AQUI
Meta 3 - Download do Código AQUI
A aplicação desenvolvida foi realizada na Linguagem JAVA e JSP's utilizando o servidor Sun Glassfish v3.
O código desenvolvido divide-se em 5 packages:
Package examples.agentImp
Nesta package encontramos as classes responsáveis pela implementação das funções utilizadas pelos agentes. Estas são:
- Indexer.java: Esta classe implementa as funções utilizadas pelo agente AgentIndexer.java. Implementa função de obtenção da informação contida no feed.
- Selector.java: Implementação das funções do agente AgentSelector.java. Possbilita as operações de adicionar e retirar News da pool.
- Classifier.java: Implementa as operações agente AgentClassifier.java. Esta classe possibilita ao agente classificar a notícia, isto é, retirar stop words e caracteres não importantes, Stemming de palavras, cálculo de DF da palavra e Cálculo de IDF da palavra.
- DBWriter.java: Esta classe implementa o agente AgentDBWriter. Disponibiliza as operações de leitura e escrita de notícias, palavras, stems das palavras e feeds.
- Searcher.java: Implementa as funções do AgentSearcher. Disponibiliza as funções de pesquisa dos algoritmos: Word Count, Jaccard Index, e Cosine Algorithm.
Nesta package ainda encontramos as seguintes classes:
- Quicksort.java: Algoritmo de ordenção Quicksort retirado da Wikipédia.
Serve para ordenação por semelhança das notícias após a pesquisa.
- PositionsVector.java: Classe que guarda duas posições de uma String que é utilizada pelo
- CharacterReplace.java: Serve para formatar a String de será classificada. (Por Exemplo: Retirar acentos e Retirar tags HTML).
Package examples.agents
Esta package contém a implementação dos Agentes presentes na aplicação. São constituídos por um SimpleBehaviour que aguarda a recepção de uma mensagem. Os agentes são:
- AgentIndexer.java, AgentSelector.java, AgentClassifier.java, AgentDBWriter.java, AgentSearcher.java.
- LoggerAgent.java: Classe para criar e actualizar os logs de cada Agente atrás mencionado. (Classe retirada do JADE).
- AgentReceiver.java: Agente que implementa o JadeGateway usado para interligação entre o UserInteface (Browser) e os agentes.
Package examples.concept
Nesta package é implementada a Ontologia da aplicação. É constituída pelas seguintes classes:
- Concept.java: Conceitos de palavras.
- News.java: Classe que implementa o Objecto que guarda a informação de cada notícia do feed RSS.
- URL.java: Informação sobre o feed.
- Word.java:Informação sobre cada palavra de uma notícia.
Package examples.jspHelp
Esta Package contém as classes que auxiliam o JadeGateway, isto é, a interacção entre o User Interface e a plataforma JADE. Contém as classes:
- BlackBoardBean.java:Objecto que é utilizado para armazenar a informação entre o browser e a plataforma JADE. É utilizado pelo JadeGateway.
- ConceptsObject.java:Objecto que contém um array com os conceitos de uma notícia. É utilizado pelo BlackBoardBean.
- SearchObject.java:Utilizado pelo BlackBoardBean para transportar a informação de pesquisa.
-SendMessageAction.java:Utilizado pelos JSP's para activar o JadeGateway e receber a informação dos Agentes.
Package examples.messages
Nesta package são implementadas alguns conteúdos das mensagens entre Agentes. Estas são:
-ClassifierToWriter.java: Conteúdo da mensagem entre o AgentClassifier e o AgentDBWriter.
-WriterToClassifier.java: Conteúdo da mensagem entre o AgentDBWriter e o AgentClassifier.
-WriterToSearcher.java: Conteúdo da mensagem entre o AgentDBWriter e o AgentSearcher.