content: package aima.core.logic.fol.domain;
  
  /**
   * @author Ravi Mohan
   * 
   */
  public class DomainFactory {
  	public static FOLDomain crusadesDomain() {
  		FOLDomain domain = new FOLDomain();
  		domain.addConstant("John");
  		domain.addConstant("Richard");
  		domain.addConstant("England");
  		domain.addConstant("Saladin");
  		domain.addConstant("Crown");
  
  		domain.addFunction("LeftLegOf");
  		domain.addFunction("BrotherOf");
  		domain.addFunction("EnemyOf");
  		domain.addFunction("LegsOf");
  
  		domain.addPredicate("King");
  		return domain;
  	}
  
  	public static FOLDomain knowsDomain() {
  		FOLDomain domain = new FOLDomain();
  		domain.addConstant("John");
  		domain.addConstant("Jane");
  		domain.addConstant("Bill");
  		domain.addConstant("Elizabeth");
  		domain.addFunction("Mother");
  		domain.addPredicate("Knows");
  		return domain;
  	}
  
  	public static FOLDomain weaponsDomain() {
  
  		FOLDomain domain = new FOLDomain();
  		domain.addConstant("West");
  		domain.addConstant("America");
  		domain.addConstant("M1");
  		domain.addConstant("Nono");
  		domain.addPredicate("American");
  		domain.addPredicate("Weapon");
  		domain.addPredicate("Sells");
  		domain.addPredicate("Hostile");
  		domain.addPredicate("Criminal");
  		domain.addPredicate("Missile");
  		domain.addPredicate("Owns");
  		domain.addPredicate("Enemy");
  
  		return domain;
  	}
  
  	public static FOLDomain kingsDomain() {
  		FOLDomain domain = new FOLDomain();
  		domain.addConstant("John");
  		domain.addConstant("Richard");
  		domain.addPredicate("King");
  		domain.addPredicate("Greedy");
  		domain.addPredicate("Evil");
  		return domain;
  	}
  
  	public static FOLDomain lovesAnimalDomain() {
  		FOLDomain domain = new FOLDomain();
  		domain.addPredicate("Animal");
  		domain.addPredicate("Loves");
  		domain.addPredicate("Kills");
  		domain.addPredicate("Cat");
  		domain.addConstant("Jack");
  		domain.addConstant("Tuna");
  		domain.addConstant("Curiosity");
  		return domain;
  	}
  
  	public static FOLDomain ringOfThievesDomain() {
  		FOLDomain domain = new FOLDomain();
  		domain.addPredicate("Parent");
  		domain.addPredicate("Caught");
  		domain.addPredicate("Friend");
  		domain.addPredicate("Skis");
  		domain.addConstant("Mike");
  		domain.addConstant("Joe");
  		domain.addConstant("Janet");
  		domain.addConstant("Nancy");
  		domain.addConstant("Ernie");
  		domain.addConstant("Bert");
  		domain.addConstant("Red");
  		domain.addConstant("Drew");
  		return domain;
  	}
  }
  