The DeSyGNER knowledge management architecture: a building block approach based on an extensible kernel