public AuctionOntology() {
		super(ONTOLOGY_NAME, BasicOntology.getInstance());
		
		try {
			//Add Concepts
			
			ConceptSchema cs = new ConceptSchema(GOOD);
			add(cs, Good.class);
			cs.add(GOOD_NAME, (PrimitiveSchema) getSchema(BasicOntology.STRING), ObjectSchema.MANDATORY);
			cs.add(GOOD_PRICE, (PrimitiveSchema) getSchema(BasicOntology.INTEGER), ObjectSchema.MANDATORY);
			
			//Add AgentActions
			
			AgentActionSchema as;
			
			add(as = new AgentActionSchema(PARTICIPATE), Participate.class);
	        as.add(PARTICIPATE_MESSAGE, (PrimitiveSchema) getSchema(BasicOntology.BOOLEAN), ObjectSchema.MANDATORY);
			
			add(as = new AgentActionSchema(ADD_GOOD), AddGood.class);
	        as.add(ADD_GOOD_PRICE, (PrimitiveSchema) getSchema(BasicOntology.INTEGER), ObjectSchema.MANDATORY);
	        as.add(ADD_GOOD_NAME, (PrimitiveSchema) getSchema(BasicOntology.STRING), ObjectSchema.MANDATORY);

			add(as = new AgentActionSchema(INCREASE_PRICE), IncreasePrice.class);
	        as.add(INCREASE_PRICE_AMOUNT, (PrimitiveSchema) getSchema(BasicOntology.INTEGER), ObjectSchema.MANDATORY);

			add(as = new AgentActionSchema(ACCEPT_PRICE), AcceptPrice.class);
	        as.add(ACCEPT_PRICE_DECISION, (PrimitiveSchema) getSchema(BasicOntology.BOOLEAN), ObjectSchema.MANDATORY);

			add(as = new AgentActionSchema(DROPOUT), Dropout.class);
	        as.add(DROPOUT_BIDDERS, (PrimitiveSchema) getSchema(BasicOntology.INTEGER), ObjectSchema.MANDATORY);
	        as.add(DROPOUT_REMAINING, (PrimitiveSchema) getSchema(BasicOntology.INTEGER), ObjectSchema.MANDATORY);
			
		} catch (OntologyException e) {
			e.printStackTrace();
		}
		
	}