Package Contract
The Filter package is responsible for determining which HTML pages will finally be present in the user's space of pages. It filters the HTML pages approved by the Ferrets, that is, it applies exhaustive suitability tests on the HTML pages fetched and approved by the Ferrets to decide if the pages should be present in the user's space of pages. The suitability tests are based on a fingerprint function which is a mathematical function representing the attributes that an HTML page containing something of interest to the user, should possess.This fingerprint function is applied to each HTML page approved by the Ferret and if the result of this function is greater than the defined threshold, the page is considered approved by the Filter. Once the Filter has approved these pages, they are passed on to the Analyzer which analyzes the page to determine all its attributes. The fingerprint functions are maintained in the FilterFingerprint Pool. These functions are generated by the Filter Advisor based on its knowledge of the user's currents interests and his behavior when browsing the Internet. This package consists of three classes- Filter, FilterFingerprintPool and Annotations.
Package-Level CRCs
Collaborators:
Collaborator classes in cache: FerretApprovedPagesCache
Collaborator classes in fingerprint: FingerprintID, FingerprintFunction, FilterFingerprintFunction
Collaborator classes in parser: PageAttribute, AddFilterAnnotations
Collaborator classes in notifier: Notifier
Collaborator classes in advisor: FilterAdvisor
Responsibilities: