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 }