001    /*
002     * Created on Sep 20, 2004
003     *
004     */
005    package aima.logic.fol.domain;
006    
007    
008    /**
009     * @author Ravi Mohan
010     * 
011     */
012    public class DomainFactory {
013            public static FOLDomain crusadesDomain() {
014                    FOLDomain domain = new FOLDomain();
015                    domain.addConstant("John");
016                    domain.addConstant("Richard");
017                    domain.addConstant("England");
018                    domain.addConstant("Saladin");
019                    domain.addConstant("Crown");
020    
021                    domain.addFunction("LeftLegOf");
022                    domain.addFunction("BrotherOf");
023                    domain.addFunction("EnemyOf");
024                    domain.addFunction("LegsOf");
025    
026                    domain.addPredicate("King");
027                    return domain;
028            }
029    
030            public static FOLDomain knowsDomain() {
031                    FOLDomain domain = new FOLDomain();
032                    domain.addConstant("John");
033                    domain.addConstant("Jane");
034                    domain.addConstant("Bill");
035                    domain.addConstant("Elizabeth");
036                    domain.addFunction("Mother");
037                    domain.addPredicate("Knows");
038                    return domain;
039            }
040    
041            public static FOLDomain weaponsDomain() {
042    
043                    FOLDomain domain = new FOLDomain();
044                    domain.addConstant("West");
045                    domain.addConstant("America");
046                    domain.addConstant("M1");
047                    domain.addConstant("Nono");
048                    domain.addPredicate("American");
049                    domain.addPredicate("Weapon");
050                    domain.addPredicate("Sells");
051                    domain.addPredicate("Hostile");
052                    domain.addPredicate("Criminal");
053                    domain.addPredicate("Missile");
054                    domain.addPredicate("Owns");
055                    domain.addPredicate("Enemy");
056    
057                    return domain;
058            }
059    
060            public static FOLDomain kingsDomain() {
061                    FOLDomain domain = new FOLDomain();
062                    domain.addConstant("John");
063                    domain.addConstant("Richard");
064                    domain.addPredicate("King");
065                    domain.addPredicate("Greedy");
066                    domain.addPredicate("Evil");
067                    return domain;
068            }
069    
070            
071            public static FOLDomain lovesAnimalDomain() {
072                    FOLDomain domain = new FOLDomain();
073                    domain.addPredicate("Animal");
074                    domain.addPredicate("Loves");
075                    domain.addPredicate("Kills");
076                    domain.addPredicate("Cat");
077                    domain.addConstant("Jack");
078                    domain.addConstant("Tuna");
079                    domain.addConstant("Curiosity");
080                    return domain;
081            }
082            
083            public static FOLDomain ringOfThievesDomain() {
084                    FOLDomain domain = new FOLDomain();
085                    domain.addPredicate("Parent");
086                    domain.addPredicate("Caught");
087                    domain.addPredicate("Friend");
088                    domain.addPredicate("Skis");
089                    domain.addConstant("Mike");
090                    domain.addConstant("Joe");
091                    domain.addConstant("Janet");
092                    domain.addConstant("Nancy");
093                    domain.addConstant("Ernie");
094                    domain.addConstant("Bert");
095                    domain.addConstant("Red");
096                    domain.addConstant("Drew");
097                    return domain;
098            }
099    }