Edge and Path

The Alpha and Omega of the system is the filter. Filtering is a process that can transform "something" to "something" (what these "somethings" are depends on what kind of filter you are trying to write). Obviously, all filters must invest some energy to do their job. In the Egothor API this energy is termed "weight". If the filters are used one by one, the total weight of the filtering is the sum of all individual weights.

The underlying theory behind the filters is that of graphs. Hence, we will use this terminology: Edge (represents the filter), and Path (represents the sequential usage of filters).

If we know what edges are available, we can easily find the cheapest path from "something" to "something", that is, if this path exists. This funtion is realized by the Finder class - see below.

In practice, however, we need somewhat more complex machinery. First of all, all edges cannot be used anytime. For instance, after removing all capital letters we would, naturally, not count all capital letters. Second, the weight of the process (the edge E) can vary, because it may depend on the previous path taken before reaching edge E. This situation, fortunately, is rare and is not presented in this text or standard objects. Nevertheless, the possibility exists.


When a path is found, then we have a plan of how one can transform "something" to "something" (using one or more edges). Remember, this is just a plan, not the filter (or series of filters) that does the job. Thinking abstractly, the Edge only represents the filter, it is not the filter itself!

Prev Up Next
Chapter 1. System of Filters Home Filter
© 2003-2004 Egothor Developers