Here a filter means a transformation of data from a format into another(that can be the same). We only speak from data such as file or serialised finished memory block.
An other project, GStreamer, handles with stream/flow filters in order for example in the multimedia context to cut the decompression of the video stream part and the decompression of the audio part. See [ GStreamer Motivation ] for more informations about GStreamer.
To explain some concepts we are using the example of GIMP. GIMP has a native format XCF. This format is not a standart image format in the sense that many image application/libraries handle this format. But this format exists because GIMP can save into it all its specificies like layers, masks, paths, ... When Gimp exports an image, there is often a loss of informations. E.g. during an exportation into GIF, layers are merged, the alpha channel is deleted, and there is a 24bits TrueColor conversion to indexed 8 bit colors.
The Microsoft Office suite, during an exportation in HTML used to add some XML (non HTML) node to minimise that kind of loss of informations so they could reimport a HTML document with minimum variance from the original document.
The big importation problem that often appears is that there are no bijection with the data structures of the application. E.g. while importing a wiki database (like PHP Nuke) into a word processor, the articles will be kept, but what about the users management part ?
Isomorph filter is a particular case of exportation filter (or importation) in which the destination format is the same as the application format.
|Application or applications family||Importation filter||Exportation filter||Isomorph filter|
|GIMP (Image)||GIF to XCF||XCF to GIF, (decrease number of colors, ...)||XCF to XCF : Gaussian blur|
|GIMP (Image)||JPEG to XCF||XCF to JPEG, (informations destruction, merging layers, deleting alpha-channel, ...)||XCF to XCF : Dithering|
|GIMP (Image)||(nothing) to XCF, creating a logo with a script-fu with user parameters.||XCF to PNG, (losing layers, masks & paths)||XCF to XCF : Convolution matrix|
|Dia (diagrams)||.||DIA (UML) to a folder containing skeleton of app. in an object-oriented langage||DIA (graph) to DIA : solving a flow problem using Ford-Bellman|
|Dia (diagrams)||.||DIA to SVG (scalable vector graphics), loosing type of composite objects, loosing constraints||.|
|Abiword (wordprocessor)||Doc (Microsoft word) to ABW||ABW to HTML (web), generating not only html, but providing automatically all the graphics needed||ABW to ABW, TRANSLAting from english to french without loosing the layout|