knowledge-oriented middleware