public class MySemanticAgent extends SemanticAgentBase { class MySemanticCapabilities extends SemanticCapabilities { protected SemanticInterpretationPrincipleTable setupSemanticInterpretationPrinciples() { SemanticInterpretationPrincipleTable t = super.setupSemanticInterpretationPrinciples(); t.addSemanticInterpretationPrinciple(...); ... return t; } protected KBase setupKbase() { FilterKBase kb = (FilterKBase) super.setupKbase(); kb.addKBAssertFilter(...); kb.addKBQueryFilter(...); ... return kb; } protected SemanticActionTable setupSemanticActions() { SemanticActionTable t = super. setupSemanticActions(); t.addSemanticAction(...); ... return t; } ... } public MySemanticAgent() { this.semanticCapabilites = new MySemanticCapabilities(); } } ====================================== class BookBuyerCapabilities extends SemanticCapabilities { class PriceProposalSIP extends ApplicationSpecificSIPAdapter { ... } class SellActionDoneSIP extends ActionDoneSIPAdapter { ... } protected SemanticInterpretationPrincipleTable setupSemanticInterpretationPrinciples() { SemanticInterpretationPrincipleTable t = super.setupSemanticInterpretationPrinciples(); t.addSemanticInterpretationPrinciple(new PriceProposalSIP()); t.addSemanticInterpretationPrinciple(new SellActionDoneSIP()); return t; } }