aima.core.logic.fol.domain.DomainFactory Maven / Gradle / Ivy
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;
}
}