NewsFilter --------- This is an application, an information filter to be precise, for Internet news groups, using a tightly coupled IAgent-based intelligent agent. The main points of this application include: * The underlying protocol for accessing an Internet news server is the 'Network News Transport Protocol' (NNTP). News servers listen at port 119. The basic command strings include 'GROUP' for selecting a news group, 'STAT' to set the cursor on a specific article, 'NEXT' to walk through the news group articles, and 'HEAD' and 'BODY' to retrieve data concerning the individual articles. * The 'NewsFilter' application class provides three types of filtering of news groups articles: - 'Keyword filtering' based on a number of keyword matches, - 'Cluster filtering' based on grouping similar articles using neural clustering, - 'Feedback filtering' using a neural prediction model to score articles based on relevance. * The 'FilterAgent' extends the IAgent class by providing methods for keyword scoring and for autonomously training Kohonen map and back propagation neural networks. The FilterAgent also maintains the user profile text files, 'newsfilter.dat' and 'newsfilter.dfn' for training the neural nets. To see the application in action you have to compile the application java file using: javac NewsFilter.java and produce 27 class files, apart from the 3 IAgent base classes, resulting with: NewsFilter.class IAgent.class FilterAgent.java NewsFilter.java KMapNet.class NewsArticle.java IAgentEvent.java NewsGroupDialog.java IAgentEventListener.java NewsHostDialog.java KeywordDialog.java NewsFilter$SymAction.class NewsFilter$SymItem.class AboutNewsFilterDialog.java QuitDialog.java IAgent.java NewsFilter$windowEvents.class FilterAgent.class IAgentEventListener.class BackProp.java KMapNet.java DataSet.java NewsArticle.class Variable.java NewsGroupDialog.class ContinuousVariable.java DataSet.class DiscreteVariable.java NewsGroupDialog$SymAction.class NewsGroupDialog$windowEvents.class NewsHostDialog.class NewsHostDialog$SymAction.class NewsHostDialog$windowEvents.class KeywordDialog.class KeywordDialog$SymAction.class KeywordDialog$windowEvents.class AboutNewsFilterDialog.class AboutNewsFilterDialog$SymAction.class AboutNewsFilterDialog$windowEvents.class QuitDialog.class QuitDialog$SymAction.class QuitDialog$windowEvents.class BackProp.class IAgentEvent.class Variable.class newsfilter.dfn newsfilter.dat ContinuousVariable.class DiscreteVariable.class Then run the application by issueing the command: java NewsFilter Note: This code was tested using JDK1.1.8 which can be downloaded and installed from the site: http://staff.um.edu.mt/mmon1/lectures/java ----------------------------------------- MM2000