What better way is there to explain ADF than by an easy to read example: the random Weather Cartridge. The SDL Tridion Ambient Data Framework (ADF) is used for SmartTarget, Experience Manager, and the context engine. Especially for SmartTarget it is common to create your own cartridge. A cartridge can put information about the web visitors context the ADF claim store which in turn can be used in SmartTarget triggers.
This example cartridge puts in a random temperature and weather type. A real cartridge would look up the weather at a third party service, much like the Quova Cartrdige does.
I have put the weather-cartridge project up on GitHub. You can read this to explore ADF, or use it as a basis for your next project. Have look at the readme in the project for more details and build instructions.
The Maven project contains the Jetty plugin and a test webapp to test the cartridge.
Eric Huiza described the ADF mechanism in more detail earlier.