package aminePlatform.samples.buildOntology; /******************************************************************* Amine - Artificial Intelligence platform for the development of Intelligent Systems. Copyright (C) 2004 AmineGroup. GNU Lesser General Public License This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 2.1 of the License. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *********************************************************************/ import java.util.*; import java.awt.event.*; import java.io.File; import aminePlatform.kernel.lexicons.*; import aminePlatform.kernel.ontology.*; import aminePlatform.util.cg.*; import aminePlatform.util.parserGenerator.*; import aminePlatform.guis.util.*; /** *

Title : BuildDictionaryOntology Sample class

*

Description : This class builds an ontology that concerns a subset of "My First Amazing * Dictionary". A first version was developed by DANGUIR Abdessamad, AZWAOU Med and * MANSOUR Taha (December 2003). Karim Buzoubaa reviewed the ontology.

* @author DANGUIR Abdessamad, AZWAOU Med, MANSOUR Taha, and reviewed/refined by Karim Bouzoubaa * @version 2 */ public class BuildDictionaryOntology { public BuildDictionaryOntology() { CG.setFunctionalCG(false); Identifier mainLanguage = new Identifier("English"); Identifier secondLanguage = new Identifier("Francais"); Identifier thirdLanguage = new Identifier("Espanol"); Identifier rootIdentifier = new Identifier("Universal"); Identifier rootRelIdentifier = new Identifier("Relation"); Object[] objs = {secondLanguage, thirdLanguage}; try { Ontology ontology = new Ontology(rootIdentifier, rootRelIdentifier, mainLanguage, objs); Lexicon englishLexicon = ontology.getLexicon(mainLanguage); Identifier living = new Identifier("living"); Identifier not_living = new Identifier("not_living"); Identifier action = new Identifier("action"); Identifier verb = new Identifier("verb"); Identifier others = new Identifier("others"); Identifier attribute = new Identifier("attribute"); objs = new Object[] {living, not_living, action, others, attribute}; englishLexicon.linkSubTypesToType(objs, rootIdentifier); Identifier human = new Identifier("human"); Identifier animal = new Identifier("animal"); Identifier vegetable = new Identifier("vegetable"); objs = new Object[] {human, animal, vegetable}; englishLexicon.linkSubTypesToType(objs, living); Identifier food = new Identifier("food"); englishLexicon.linkSubTypeToType(food, not_living); objs = new Object[] { new Identifier("Agnt"), new Identifier("Attr"), new Identifier("Loc"), new Identifier("Thm"), new Identifier("Goal"), new Identifier("Rcpt"), new Identifier("Poss"), new Identifier("Dim"), new Identifier("Manr"), new Identifier("Obj"), new Identifier("Target"), new Identifier("Madeof"), new Identifier("Psbl"), new Identifier("Part"), new Identifier("Inst"), new Identifier("Neg"), new Identifier("To"), new Identifier("Chrc"), new Identifier("Has"), new Identifier("Opposite"), new Identifier("Act"), new Identifier("Meth"), new Identifier("Efct"), new Identifier("Over"), new Identifier("Act"), new Identifier("Meas"), new Identifier("Number"), new Identifier("Cont"), new Identifier("With"), new Identifier("Dest"), new Identifier("Thme"), new Identifier("To"), }; englishLexicon.linkSubTypesToType(objs, rootRelIdentifier); Identifier bread = new Identifier("bread"); Identifier cake = new Identifier("cake"); Identifier butter = new Identifier("butter"); Identifier milk_or_cream = new Identifier("milk_or_cream"); Identifier meal = new Identifier("meal"); Identifier honey = new Identifier("honey"); objs = new Object[] {bread, cake, butter, milk_or_cream, meal, honey}; englishLexicon.linkSubTypesToType(objs, food); Identifier bread_and_cake = new Identifier("bread_and_cake"); englishLexicon.linkSubTypeToType(bread_and_cake, bread); Identifier water = new Identifier("water"); Identifier floor = new Identifier("floor"); Identifier yeast = new Identifier("yeast"); Identifier glass_or_plastic = new Identifier("glass_or_plastic"); Identifier cloth = new Identifier("cloth"); Identifier injury = new Identifier("injury"); Identifier bank = new Identifier("bank"); Identifier river = new Identifier("river"); Identifier wing = new Identifier("wing"); Identifier stick = new Identifier("stick"); Identifier bathtub = new Identifier("bathtub"); Identifier cheek = new Identifier("cheek"); Identifier bed = new Identifier("bed"); Identifier furniture = new Identifier("furniture"); Identifier bicycle = new Identifier("bicycle"); Identifier wheel = new Identifier("wheel"); Identifier pedal = new Identifier("pedal"); Identifier binoculars = new Identifier("binoculars"); Identifier glass = new Identifier("glass"); Identifier air = new Identifier("air"); Identifier bubble = new Identifier("bubble"); Identifier boat = new Identifier("boat"); Identifier ship = new Identifier("ship"); Identifier oven = new Identifier("oven"); Identifier bakery = new Identifier("bakery"); Identifier balance = new Identifier("balance"); Identifier balloon = new Identifier("balloon"); Identifier ball = new Identifier("ball"); Identifier stream = new Identifier("stream"); Identifier place = new Identifier("place"); Identifier money = new Identifier("money"); Identifier fire = new Identifier("fire"); Identifier case_ = new Identifier("case_"); Identifier electricity = new Identifier("electricity"); Identifier beak = new Identifier("beak"); Identifier mouth = new Identifier("mouth"); Identifier tail = new Identifier("tail"); Identifier broad = new Identifier("broad"); Identifier machine = new Identifier("machine"); Identifier feather = new Identifier("feather"); Identifier hold = new Identifier("hold"); Identifier blood = new Identifier("blood"); Identifier liquid = new Identifier("liquid"); Identifier lake = new Identifier("lake"); Identifier ocean = new Identifier("ocean"); Identifier bone = new Identifier("bone"); Identifier piece = new Identifier("piece"); Identifier bag = new Identifier("bag"); Identifier rubber = new Identifier("rubber"); Identifier gas = new Identifier("gas"); Identifier musical_instrument = new Identifier("musical_instrument"); Identifier bandage = new Identifier("bandage"); Identifier strip = new Identifier("strip"); Identifier bat = new Identifier("bat"); Identifier team = new Identifier("team"); Identifier container = new Identifier("container"); Identifier basket = new Identifier("basket"); Identifier fur = new Identifier("fur"); Identifier claw = new Identifier("claw"); Identifier hair = new Identifier("hair"); Identifier flat = new Identifier("flat"); Identifier tooth = new Identifier("tooth"); Identifier belt = new Identifier("belt"); Identifier strap = new Identifier("strap"); Identifier heart = new Identifier("heart"); Identifier blouse = new Identifier("blouse"); Identifier top = new Identifier("top"); Identifier body = new Identifier("body"); Identifier boomerang = new Identifier("boomerang"); Identifier wood = new Identifier("wood"); Identifier bottle = new Identifier("bottle"); Identifier bowl = new Identifier("bowl"); Identifier dish = new Identifier("dish"); Identifier other_object = new Identifier("other_object"); Identifier box = new Identifier("box"); Identifier side = new Identifier("side"); Identifier bottom = new Identifier("bottom"); Identifier brain = new Identifier("brain"); Identifier branch = new Identifier("branch"); Identifier tree = new Identifier("tree"); Identifier trunk = new Identifier("trunk"); Identifier bridge = new Identifier("bridge"); Identifier object = new Identifier("object"); Identifier road = new Identifier("road"); Identifier brush = new Identifier("brush"); Identifier tool = new Identifier("tool"); Identifier bristle = new Identifier("bristle"); Identifier hairbrush = new Identifier("hairbrush"); Identifier bucket = new Identifier("bucket"); Identifier handle = new Identifier("handle"); Identifier wall = new Identifier("wall"); Identifier roof = new Identifier("roof"); Identifier vegetable_bulb = new Identifier("vegetable_bulb"); Identifier bulldozer = new Identifier("bulldozer"); Identifier rock = new Identifier("rock"); Identifier soil = new Identifier("soil"); Identifier burglar = new Identifier("burglar"); Identifier building = new Identifier("building"); Identifier something = new Identifier("something"); Identifier bus = new Identifier("bus"); Identifier vehicle = new Identifier("vehicle"); Identifier cloth_button = new Identifier("cloth_button"); Identifier computer_button = new Identifier("computer_button"); Identifier nectar = new Identifier("nectar"); Identifier lamp = new Identifier("lamp"); Identifier barbecue = new Identifier("barbecue"); Identifier band = new Identifier("band"); Identifier batery = new Identifier("batery"); Identifier chin = new Identifier("chin"); Identifier game = new Identifier("game"); Identifier sport = new Identifier("sport"); Identifier scene = new Identifier("scene"); Identifier skeleton = new Identifier("skeleton"); Identifier act = new Identifier("act"); Identifier electric_bulb = new Identifier("electric_bulb"); Identifier key = new Identifier("key"); objs = new Object[] { game, sport, water, floor, meal, yeast, glass_or_plastic, cloth, injury, bank, river, wing, stick, bathtub, cheek, bed, furniture, bicycle, wheel, pedal, binoculars, glass, air, bubble, boat, ship, oven, bakery, balance, balloon, ball, stream, place, money, fire, case_, electricity, beak, mouth, tail, broad, nectar, machine, feather, hold, blood, liquid, river, lake, ocean, bone, piece, bag, rubber, gas, musical_instrument, bandage, strip, bat, team, container, basket, fur, claw, hair, flat, tooth, belt, strap, heart, blouse, top, body, boomerang, wood, bottle, bowl, dish, other_object, box, side, bottom, brain, branch, tree, trunk, oven, bridge, object, road, river, brush, tool, bristle, hairbrush, bucket, handle, wall, roof, money, vegetable_bulb, lamp, bulldozer, rock, soil, burglar, building, something, bus, electric_bulb, vehicle, cloth_button, barbecue, band, batery, chin, scene, skeleton, act, computer_button, key }; englishLexicon.linkSubTypesToType(objs, not_living); Identifier carry = new Identifier("carry"); Identifier turn_on = new Identifier("turn_on"); Identifier bake = new Identifier("bake"); Identifier cook = new Identifier("cook"); Identifier make = new Identifier("make"); Identifier keep = new Identifier("keep"); Identifier come_back = new Identifier("come_back"); Identifier throw_ = new Identifier("throw_"); Identifier be = new Identifier("be"); Identifier think = new Identifier("think"); Identifier fall_down = new Identifier("fall_down"); Identifier brake = new Identifier("brake"); Identifier play = new Identifier("play"); Identifier blow_up = new Identifier("blow_up"); Identifier cover = new Identifier("cover"); Identifier hit = new Identifier("hit"); Identifier eat = new Identifier("eat"); Identifier get_marry = new Identifier("get_marry"); Identifier build = new Identifier("build"); Identifier get_accross = new Identifier("get_accross"); Identifier fill = new Identifier("fill"); Identifier sit = new Identifier("sit"); Identifier wash = new Identifier("wash"); Identifier store = new Identifier("store"); Identifier grow = new Identifier("grow"); Identifier sleep = new Identifier("sleep"); Identifier collect = new Identifier("collect"); Identifier break_ = new Identifier("break_"); Identifier steal = new Identifier("steal"); Identifier turn_off = new Identifier("turn_off"); Identifier give = new Identifier("give"); Identifier turn = new Identifier("turn"); Identifier protect = new Identifier("protect"); Identifier wear = new Identifier("wear"); Identifier move = new Identifier("move"); Identifier bite = new Identifier("bite"); Identifier get = new Identifier("get"); Identifier take = new Identifier("take"); Identifier pump = new Identifier("pump"); Identifier blow = new Identifier("blow"); Identifier push = new Identifier("push"); Identifier have = new Identifier("have"); Identifier buy = new Identifier("buy"); objs = new Object[] {hold, carry, bake, cook, make, keep, come_back, throw_, be, think, brake, fall_down, play, blow_up, cover, cook, hit, eat, get_marry, build, get_accross, brush, fill, sit, wash, store, grow, sleep, collect, break_, steal, turn_off, give, turn, protect, wear, keep, move, make, bite, get, take, pump, cover, blow, push, have, buy, turn_on }; englishLexicon.linkConceptSubTypesToType(objs, verb); // we use linkConceptSubTypesToType since verb is unknown objs = new Object[] {hold, carry, bake, cook, make, keep, come_back, throw_, think, brake, fall_down, play, blow_up, cover, cook, hit, eat, get_marry, build, get_accross, brush, fill, sit, wash, store, grow, sleep, collect, break_, steal, turn_off, give, turn, protect, wear, keep, move, make, bite, get, take, pump, cover, blow, push, buy, turn_on }; englishLexicon.linkSubTypesToType(objs, action); Identifier degree = new Identifier("degree"); Identifier young = new Identifier("young"); Identifier back = new Identifier("back"); Identifier part = new Identifier("part"); Identifier steady = new Identifier("steady"); Identifier round = new Identifier("round"); Identifier hard = new Identifier("hard"); Identifier underground = new Identifier("underground"); Identifier colorful = new Identifier("colorful"); Identifier thin = new Identifier("thin"); Identifier group = new Identifier("group"); Identifier together = new Identifier("together"); Identifier high = new Identifier("high"); Identifier safe = new Identifier("safe"); Identifier open = new Identifier("open"); Identifier integer = new Identifier("integer"); Identifier bigger = new Identifier("bigger"); Identifier color = new Identifier("color"); Identifier darkest = new Identifier("darkest"); Identifier blanket = new Identifier("blanket"); Identifier first = new Identifier("first"); Identifier electric = new Identifier("electric"); Identifier carried = new Identifier("carried"); Identifier small = new Identifier("small"); Identifier furry = new Identifier("furry"); Identifier large = new Identifier("large"); Identifier sealed = new Identifier("sealed"); Identifier pointed = new Identifier("pointed"); Identifier speed = new Identifier("speed"); Identifier different = new Identifier("different"); Identifier lot = new Identifier("lot"); Identifier powerful = new Identifier("powerful"); Identifier fasten = new Identifier("fasten"); Identifier heavy = new Identifier("heavy"); Identifier thick = new Identifier("thick"); Identifier strong = new Identifier("strong"); Identifier beard = new Identifier("beard"); Identifier flying = new Identifier("flying"); Identifier curved = new Identifier("curved"); Identifier deep = new Identifier("deep"); Identifier straight = new Identifier("straight"); Identifier breakfast = new Identifier("breakfast"); Identifier fatty = new Identifier("fatty"); Identifier special = new Identifier("special"); Identifier thing = new Identifier("thing"); Identifier far = new Identifier("far"); Identifier warm = new Identifier("warm"); Identifier outside = new Identifier("outside"); objs = new Object[] {degree, young, back, part, body, steady, round, hard, special, thing, far, underground, colorful, thin, group, together, high, safe, open, integer, bigger, color, darkest, blanket, first, electric, carried, small, furry, large, sealed, hard, pointed, warm, speed, small, different, lot, powerful, fasten, heavy, thick, strong, beard, flying, curved, deep, straight, breakfast, part, fatty, outside }; englishLexicon.linkSubTypesToType(objs, attribute); Identifier bird = new Identifier("bird"); Identifier bear = new Identifier("bear"); Identifier beaver = new Identifier("beaver"); Identifier bee = new Identifier("bee"); Identifier beetle = new Identifier("beetle"); Identifier butterfly = new Identifier("butterfly"); Identifier bat_animal = new Identifier("bat_animal"); Identifier insect = new Identifier("insect"); objs = new Object[] {bat_animal, bird, bear, beaver, bee, beetle, butterfly, insect }; englishLexicon.linkSubTypesToType(objs, animal); Identifier baby = new Identifier("baby"); Identifier child = new Identifier("child"); Identifier person = new Identifier("person"); Identifier baker = new Identifier("baker"); Identifier people = new Identifier("people"); Identifier player = new Identifier("player"); Identifier boy = new Identifier("boy"); Identifier man = new Identifier("man"); Identifier bride = new Identifier("bride"); Identifier woman = new Identifier("woman"); Identifier tightrope_walker = new Identifier("tightrope_walker"); objs = new Object[] {tightrope_walker, baby, child, person, baker, people, player, boy, man, bride, woman }; englishLexicon.linkSubTypesToType(objs, human); Identifier black = new Identifier("black"); Identifier white = new Identifier("white"); Identifier yellow = new Identifier("yellow"); objs = new Object[] {black, white, yellow}; englishLexicon.linkSubTypesToType(objs, color); Identifier very = new Identifier("very"); Identifier good = new Identifier("good"); objs = new Object[] {very, good}; englishLexicon.linkSubTypesToType(objs, degree); Identifier game_and_sport = new Identifier("game_and_sport"); objs = new Object[] {game, sport}; englishLexicon.linkTypeToSuperTypes(game_and_sport, objs); Identifier baseball = new Identifier("baseball"); Identifier basketball = new Identifier("basketball"); objs = new Object[] {baseball, basketball}; englishLexicon.linkSubTypesToType(objs, sport ); Identifier water_flour_meal_yeast = new Identifier("water_flour_meal_yeast"); Identifier flour = new Identifier("flour"); objs = new Object[] {water, flour, meal, yeast }; englishLexicon.linkTypeToSuperTypes(water_flour_meal_yeast, objs ); Identifier hold_and_carry = new Identifier("hold_and_carry"); objs = new Object[] {hold, carry}; englishLexicon.linkTypeToSuperTypes(hold_and_carry, objs); Identifier plastic = new Identifier("plastic"); objs = new Object[] {glass , plastic}; englishLexicon.linkSubTypesToType(objs, glass_or_plastic); Identifier milk = new Identifier("milk"); Identifier cream = new Identifier("cream"); objs = new Object[] {milk , cream}; englishLexicon.linkSubTypesToType(objs, milk_or_cream); Identifier plant = new Identifier("plant"); englishLexicon.linkSubTypeToType(plant, vegetable); //baby Identifier bebe = new Identifier("bébé"); Identifier bebé = new Identifier("bebé"); englishLexicon.addSynonym(bebe, secondLanguage, baby); englishLexicon.addSynonym(bebé, thirdLanguage, baby); Type babyType = englishLexicon.getTypeCS(baby); babyType.setDefinition(CG.parseLF( "[child: super]-Attr->[young]-Meas->[very]", englishLexicon)); //back Identifier arriere = new Identifier("en arričre"); Identifier atras = new Identifier("atrás"); englishLexicon.addSynonym(arriere, secondLanguage, back); englishLexicon.addSynonym(atras, thirdLanguage, back); Type backType = englishLexicon.getTypeCS(back); backType.setDefinition(CG.parseLF( "[Part: super]<-Part-[body]", englishLexicon)); //bake Identifier cuir = new Identifier("cuir au four"); Identifier hornear = new Identifier("hornear"); englishLexicon.addSynonym(cuir, secondLanguage, bake); englishLexicon.addSynonym(hornear, thirdLanguage, bake); Type bakeType = englishLexicon.getTypeCS(bake); bakeType.addSituation(CG.parseLF( "[baker]<-Agnt-[make]-\n"+ "-Thme->[bread_and_cake],\n"+ "-Loc->[bakery]", englishLexicon)); //balance Identifier balanceFrancais = new Identifier("balance"); Identifier equilibrio = new Identifier("equilibrio"); englishLexicon.addSynonym(balanceFrancais, secondLanguage, balance); englishLexicon.addSynonym(equilibrio, thirdLanguage, balance); Type balanceType = englishLexicon.getTypeCS(balance); balanceType.setDefinition(CG.parseLF( "[keep]-\n"+ "-Chrc->[steady],\n"+ "-Thme->[body]-Neg->[fall_down]", englishLexicon)); balanceType.addSituation(CG.parseLF( "[tightrope_walker]-Has->[balance]-Meas->[good]", englishLexicon)); //ball Identifier balle = new Identifier("balle"); Identifier pelota = new Identifier("pelota"); englishLexicon.addSynonym(balle, secondLanguage, ball); englishLexicon.addSynonym(pelota, thirdLanguage, ball); Type ballType = englishLexicon.getTypeCS(ball); ballType.setDefinition(CG.parseLF( "[thing: super]-\n"+ "-Attr->[round],\n"+ "<-Inst-[play]-Obj->[game_and_sport]", englishLexicon)); //balloon Identifier ballon = new Identifier("ballon"); Identifier globo = new Identifier("globo"); englishLexicon.addSynonym(ballon, secondLanguage, balloon); englishLexicon.addSynonym(globo, thirdLanguage, balloon); Type balloonType = englishLexicon.getTypeCS(balloon); balloonType.setDefinition(CG.parseLF( "[thin]<-Chrc-[bag:super]-Madeof->[rubber],\n"+ "<-Obj-[blow_up]-Agnt->[gas]", englishLexicon)); //band Identifier orchestre = new Identifier("orchestre"); Identifier orquesta = new Identifier("orquesta"); englishLexicon.addSynonym(orchestre, secondLanguage, band); englishLexicon.addSynonym(orquesta, thirdLanguage, band); Type bandType = englishLexicon.getTypeCS(band); bandType.setDefinition(CG.parseLF( "[people]-\n"+ "-Chrc->[group],\n"+ "<-Agnt-[play]-\n"+ "-Inst->[musical_instrument],\n"+ "-Manr->[together]", englishLexicon)); //bandage Identifier pansement = new Identifier("pansement"); Identifier vendaje = new Identifier("vendaje"); englishLexicon.addSynonym(pansement, secondLanguage, bandage); englishLexicon.addSynonym(vendaje, thirdLanguage, bandage); Type bandageType = englishLexicon.getTypeCS(balloon); bandageType.setDefinition(CG.parseLF( "[strip:super]-\n"+ "-Part->[cloth],\n"+ "<-Inst-[cover]-Obj->[injury]", englishLexicon)); //bank Identifier banque = new Identifier("banque"); Identifier banco = new Identifier("banco"); englishLexicon.addSynonym(banque, secondLanguage, bank); englishLexicon.addSynonym(banco, thirdLanguage, bank); Type bankType = englishLexicon.getTypeCS(balloon); bankType.setDefinition(CG.parseLF( "[place:super]-\n"+ "-Attr->[safe],\n"+ "<-Loc-[keep]-Obj->[money]", englishLexicon)); //barbecue Identifier barbecueFrancais = new Identifier("barbecue"); Identifier barbacoa = new Identifier("barbacoa"); englishLexicon.addSynonym(barbecueFrancais, secondLanguage, barbecue); englishLexicon.addSynonym(barbacoa, thirdLanguage, barbecue); Type barbecueType = englishLexicon.getTypeCS(barbecue); barbecueType.setDefinition(CG.parseLF( "[meal:super]<-Obj-[cook]-\n"+ "-Agnt->[person],\n"+ "-Loc->[outside],\n"+ "-Over->[fire]-Attr->[open]", englishLexicon)); //baseball Identifier base_ball = new Identifier("base_ball"); Identifier beisbol = new Identifier("béisbol"); englishLexicon.addSynonym(base_ball, secondLanguage, baseball); englishLexicon.addSynonym(beisbol, thirdLanguage, baseball); Type baseballType = englishLexicon.getTypeCS(baseball); baseballType.setDefinition(CG.parseLF( "[sport: super]<-Obj-[play]-\n"+ "-Inst->[bat],\n"+ "-With->[ball],\n"+ "-Agnt->[team]-\n"+ "-Number->[integer=2],\n"+ "-Cont->[player]-Number->[integer=9]", englishLexicon)); //basket Identifier panier = new Identifier("panier"); Identifier cesta = new Identifier("cesta"); englishLexicon.addSynonym(panier, secondLanguage, basket); englishLexicon.addSynonym(cesta, thirdLanguage, basket); Type basketType = englishLexicon.getTypeCS(basket); basketType.setDefinition(CG.parseLF( "[container:super]-Inst->[carry]-Obj->[thing]-Attr->[carried]", englishLexicon)); //bat_animal Identifier chauve_souris = new Identifier("chauve souris"); englishLexicon.addSynonym(chauve_souris, secondLanguage, bat); Type bat_animalType = englishLexicon.getTypeCS(bat_animal); bat_animalType.setDefinition(CG.parseLF( "[animal: super]-\n"+ "-Attr->[small],\n"+ "-Attr->[furry],\n"+ "-Poss->[wing]", englishLexicon)); //bat Type batType = englishLexicon.getTypeCS(bat); batType.setDefinition(CG.parseLF( "[stick:super]<-Inst-[hit]-Obj->[ball]", englishLexicon)); //bathtub Type bathtubType = englishLexicon.getTypeCS(bathtub); bathtubType.setDefinition(CG.parseLF( "[container:super]-\n"+ "-Attr->[large],\n"+ "<-Obj-[fill]-\n"+ "-Agnt->[person],\n"+ "-With->[water],\n"+ "-Loc->[sit]-\n"+ "-Agnt->[person],\n"+ "-Target->[wash]->[person]", englishLexicon)); //battery Identifier pile = new Identifier("pile"); Identifier bateria = new Identifier("batería"); englishLexicon.addSynonym(pile, secondLanguage, batery); englishLexicon.addSynonym(bateria, thirdLanguage, batery); Type bateryType = englishLexicon.getTypeCS(batery); bateryType.setDefinition(CG.parseLF( "[case_:super]-\n"+ "-Attr->[sealed],\n"+ "<-Agnt-[store]-Obj->[electricity]", englishLexicon)); //beak Identifier bec = new Identifier("bec"); Identifier pico = new Identifier("pico"); englishLexicon.addSynonym(bec, secondLanguage, beak); englishLexicon.addSynonym(pico, thirdLanguage, beak); Type beakType = englishLexicon.getTypeCS(beak); beakType.setDefinition(CG.parseLF( "[part:super]-\n"+ "-Part->[mouth]-Part->[bird],\n"+ "-Attr->[hard],\n"+ "-Attr->[pointed]", englishLexicon)); //bear Identifier ours = new Identifier("ours"); Identifier oso = new Identifier("oso"); englishLexicon.addSynonym(ours, secondLanguage, bear); englishLexicon.addSynonym(oso, thirdLanguage, bear); Type bearType = englishLexicon.getTypeCS(bear); bearType.setDefinition(CG.parseLF( "[animal: super]-\n"+ "-Attr->[large],\n"+ "-Attr->[heavy],\n"+ "-Poss->[fur]-Attr->[thick],\n" + "-Poss ->[claw]-Attr->[strong]", englishLexicon)); //beard Identifier barbe = new Identifier("barbe"); Identifier barba = new Identifier("barba"); englishLexicon.addSynonym(barbe, secondLanguage, beard); englishLexicon.addSynonym(barba, thirdLanguage, beard); Type beardType = englishLexicon.getTypeCS(beard); beardType.setDefinition(CG.parseLF( "[hair:super]<-Agnt-[grow]-\n"+ "-Loc->[chin],\n"+ "-Loc->[cheek]", englishLexicon)); //beaver Identifier castor = new Identifier("castor"); englishLexicon.addSynonym(castor, secondLanguage, beaver); englishLexicon.addSynonym(castor, thirdLanguage, beaver); Type beaverType = englishLexicon.getTypeCS(beaver); beaverType.setDefinition(CG.parseLF( "[animal: super]-\n"+ "-Poss->[tail]-\n"+ "-Attr->[broad],\n"+ "-Attr->[flat],\n"+ "-Poss->[tooth]-\n"+ "-Attr->[large],\n"+ "-Attr->[strong]", englishLexicon)); //bed Identifier lit = new Identifier("lit"); Identifier cama = new Identifier("cama"); englishLexicon.addSynonym(lit, secondLanguage, bed); englishLexicon.addSynonym(cama, thirdLanguage, bed); Type bedType = englishLexicon.getTypeCS(bed); bedType.setDefinition(CG.parseLF( "[furniture: super]<-Loc-[sleep]-Agnt->[person]", englishLexicon)); //bee Identifier abeille = new Identifier("abeille"); Identifier abeja = new Identifier("abeja"); englishLexicon.addSynonym(abeille, secondLanguage, bee); englishLexicon.addSynonym(abeja, thirdLanguage, bee); Type beeType = englishLexicon.getTypeCS(bee); beeType.setDefinition(CG.parseLF( "[insect: super]-Attr->[flying]", englishLexicon)); beeType.addSituation(CG.parseLF( "[bee]-\n"+ "<-Agnt-[collect]-Obj->[nectar],\n"+ "<-Agnt-[turn]-Obj->[nectar]-To->[honey]", englishLexicon)); //beetle Identifier scarabee = new Identifier("scarabée"); Identifier escarabajo = new Identifier("escarabajo"); englishLexicon.addSynonym(scarabee, secondLanguage, beetle); englishLexicon.addSynonym(escarabajo, thirdLanguage, beetle); Type beetleType = englishLexicon.getTypeCS(beetle); beetleType.setDefinition(CG.parseLF( "[insect:super]-\n"+ "-Poss->[wing],\n"+ "-Poss->[case_]-\n"+ "-Attr->[hard],\n"+ "<-Agnt-[protect]-Obj->[wing]", englishLexicon)); //belt Identifier ceinture = new Identifier("ceinture"); Identifier cinturon = new Identifier("cinturón"); englishLexicon.addSynonym(ceinture, secondLanguage, belt); englishLexicon.addSynonym(cinturon, thirdLanguage, belt); Type beltType = englishLexicon.getTypeCS(belt); beltType.setDefinition(CG.parseLF( "[strap:super]-\n"+ "<-Obj-[wear]-Agnt->[person],\n"+ "<-Agnt-[keep]-\n"+ "-Obj->[cloth],\n"+ "-Loc->[place]", englishLexicon)); //bicycle Identifier bicyclette = new Identifier("bicyclette"); Identifier bicicleta = new Identifier("bicicleta"); englishLexicon.addSynonym(bicyclette, secondLanguage, bicycle); englishLexicon.addSynonym(bicicleta, thirdLanguage, bicycle); Type bicycleType = englishLexicon.getTypeCS(bicycle); bicycleType.setDefinition(CG.parseLF( "[machine:super]-\n"+ "-Poss->[wheel]-Number->[integer=2],\n"+ "-Poss->[pedal]", englishLexicon)); bicycleType.addSituation(CG.parseLF( "[person]<-Agnt-[turn]-\n"+ "-Obj->[pedal],\n" + "-Target->[move]-Obj->[bicycle]", englishLexicon)); //binoculars Identifier jumelles = new Identifier("jumelles"); Identifier prismaticos = new Identifier("prismáticos"); englishLexicon.addSynonym(jumelles, secondLanguage, binoculars); englishLexicon.addSynonym(prismaticos, thirdLanguage, binoculars); Type binocularsType = englishLexicon.getTypeCS(binoculars); binocularsType.setDefinition(CG.parseLF( "[glass:super]-\n"+ "-Chrc->[special],\n"+ "<-Agnt-[make]-Obj->[scene=[thing]-Attr->[far]]-Attr->[bigger]", englishLexicon)); //bird Identifier oiseau = new Identifier("oiseau"); Identifier pajaro = new Identifier("pájaro"); englishLexicon.addSynonym(oiseau, secondLanguage, bird); englishLexicon.addSynonym(pajaro, thirdLanguage, bird); Type birdType = englishLexicon.getTypeCS(bird); birdType.setDefinition(CG.parseLF( "[animal:super]-\n"+ "-Has->[feather],\n"+ "-Has->[wing]-Number->[integer=2],\n"+ "-Has->[beak]", englishLexicon)); //bite Identifier bouchee = new Identifier("bouchée"); Identifier bocado = new Identifier("bocado"); englishLexicon.addSynonym(bouchee, secondLanguage, bite); englishLexicon.addSynonym(bocado, thirdLanguage, bite); Type biteType = englishLexicon.getTypeCS(bite); biteType.setDefinition(CG.parseLF( "[take:super]-Obj->[hold]-Inst->[tooth]", englishLexicon)); //black Identifier noir = new Identifier("noir"); Identifier negro = new Identifier("negro"); englishLexicon.addSynonym(noir, secondLanguage, black); englishLexicon.addSynonym(negro, thirdLanguage, black); Type blackType = englishLexicon.getTypeCS(black); blackType.setDefinition(CG.parseLF( "[color:super]-\n"+ "-Attr->[darkest],\n"+ "-Opposite->[white]", englishLexicon)); //blanket Identifier couverture = new Identifier("couverture"); Identifier manta = new Identifier("manta"); englishLexicon.addSynonym(couverture, secondLanguage, blanket); englishLexicon.addSynonym(manta, thirdLanguage, blanket); Type blanketType = englishLexicon.getTypeCS(blanket); blanketType.setDefinition(CG.parseLF( "[cloth:super]-\n"+ "-Attr->[large],\n"+ "-Agnt->[person]-Attr->[warm],\n"+ "-Loc->[bed]", englishLexicon)); //blood Identifier sang = new Identifier("sang"); Identifier sangre = new Identifier("sangre"); englishLexicon.addSynonym(sang, secondLanguage, blood); englishLexicon.addSynonym(sangre, thirdLanguage, blood); Type bloodType = englishLexicon.getTypeCS(blood); bloodType.setDefinition(CG.parseLF( "[liquid:super]-\n"+ "-Attr->[color=red],\n"+ "<-Obj-[pump]-Agnt->[heart]", englishLexicon)); //blouse Identifier chemisier = new Identifier("chemisier"); Identifier blusa = new Identifier("blusa"); englishLexicon.addSynonym(chemisier, secondLanguage, blouse); englishLexicon.addSynonym(blusa, thirdLanguage, blouse); Type blouseType = englishLexicon.getTypeCS(blouse); blouseType.setDefinition(CG.parseLF( "[piece:super]-\n"+ "<-Part-[cloth],\n"+ "<-Agnt-[cover]-Obj->[top]-Part->[body]", englishLexicon)); //blow Identifier souffler = new Identifier("souffler"); Identifier soplar = new Identifier("soplar"); englishLexicon.addSynonym(souffler, secondLanguage, blow); englishLexicon.addSynonym(soplar, thirdLanguage, blow); Type blowType = englishLexicon.getTypeCS(blow); blouseType.setDefinition(CG.parseLF( "[move:super]-Obj->[air]-Manr->[speed]", englishLexicon)); blowType.addSituation(CG.parseLF( "[person]<-Agnt-[push]-Obj->[air]-Target->[blow]-Obj->[bubble]", englishLexicon)); //boat Identifier navire = new Identifier("navire"); Identifier barco = new Identifier("barco"); englishLexicon.addSynonym(navire, secondLanguage, boat); englishLexicon.addSynonym(barco, thirdLanguage, boat); Type boatType = englishLexicon.getTypeCS(boat); boatType.setDefinition(CG.parseLF( "[ship:super]-Attr->[small]", englishLexicon)); boatType.addSituation(CG.parseLF( "[boat]<-Agnt-[carry]-\n"+ "-Obj->[people],\n"+ "-Obj->[thing],\n"+ "-Loc->[river],\n"+ "-Loc->[lake],\n"+ "-Loc->[ocean]", englishLexicon)); //bone Identifier os = new Identifier("os"); Identifier hueso = new Identifier("hueso"); englishLexicon.addSynonym(os, secondLanguage, bone); englishLexicon.addSynonym(hueso, thirdLanguage, bone); Type boneType = englishLexicon.getTypeCS(bone); boneType.setDefinition(CG.parseLF( "[piece:super]-Part->[skeleton]", englishLexicon)); boneType.addSituation(CG.parseLF( "[person]<-Agnt-[have]-Obj->[bone]-\n"+ "-Number->[integer=206],\n"+ "-Attr->[different],\n"+ "-Loc->[body]", englishLexicon)); //boomerang Identifier boomerang_french = new Identifier("boomerang"); Identifier boomerang_espanol = new Identifier("boomerang"); englishLexicon.addSynonym(boomerang_french, secondLanguage, boomerang); englishLexicon.addSynonym(boomerang_espanol, thirdLanguage, boomerang); Type boomerangType = englishLexicon.getTypeCS(boomerang); boomerangType.setDefinition(CG.parseLF( "[piece*x]-\n"+ "-Attr->[curved],\n"+ "-Madeof->[wood],\n"+ "<-Agnt-[come_back]-Dest->[person]<-Agnt-[throw_]->[piece ?x]", englishLexicon)); //bottle Identifier bouteille = new Identifier("bouteille"); Identifier botella = new Identifier("botella"); englishLexicon.addSynonym(bouteille, secondLanguage, bottle); englishLexicon.addSynonym(botella, thirdLanguage, bottle); Type bottleType = englishLexicon.getTypeCS(bottle); bottleType.setDefinition(CG.parseLF( "[container:super]-Madeof->[glass_or_plastic]", englishLexicon)); //bowl Identifier bol = new Identifier("bol"); Identifier tazon = new Identifier("tazon"); englishLexicon.addSynonym(bol, secondLanguage, bowl); englishLexicon.addSynonym(tazon, thirdLanguage, bowl); Type bowlType = englishLexicon.getTypeCS(bowl); bowlType.setDefinition(CG.parseLF( "[dish:super]-\n"+ "-Attr->[deep],\n"+ "-Attr->[round],\n"+ "-Inst->[hold]-\n"+ "-Obj->[food],\n"+ "-Obj->[others]", englishLexicon)); //box Identifier boite = new Identifier("boite"); Identifier caja = new Identifier("caja"); englishLexicon.addSynonym(bol, secondLanguage, box); englishLexicon.addSynonym(caja, thirdLanguage, box); Type boxType = englishLexicon.getTypeCS(box); boxType.setDefinition(CG.parseLF( "[container:super]-\n"+ "-Has->[side]-Attr->[straight],\n"+ "-Has->[bottom],\n"+ "-Has->[top]", englishLexicon)); //boy objs = new Object[] { new Identifier("garcon"), new Identifier("gamin"), new Identifier("gosse") }; englishLexicon.addSynonyms(objs, secondLanguage, boy); objs = new Object[] { new Identifier("muchacho"), new Identifier("chico"), new Identifier("mozo") }; englishLexicon.addSynonyms(objs, thirdLanguage, boy); Type boyType = englishLexicon.getTypeCS(boy); boyType.setDefinition(CG.parseLF( "[child:super]<-Agnt-[grow]-Target->[act=[be]-Obj->[man]]", englishLexicon)); //brain Identifier cerveau = new Identifier("cerveau"); Identifier cerebro = new Identifier("cerebro"); englishLexicon.addSynonym(cerveau, secondLanguage, brain); englishLexicon.addSynonym(cerebro, thirdLanguage, brain); Type brainType = englishLexicon.getTypeCS(brain); brainType.setDefinition(CG.parseLF( "[brain*x]<-Meth-[think]-Agnt->[person]-Part->[brain ?x]", englishLexicon)); //branch Identifier branche = new Identifier("branche"); Identifier rama = new Identifier("rama"); englishLexicon.addSynonym(branche, secondLanguage, branch); englishLexicon.addSynonym(rama, thirdLanguage, branch); Type branchType = englishLexicon.getTypeCS(branch); branchType.setDefinition(CG.parseLF( "[part:super]-\n"+ "<-Part-[tree*x],\n"+ "<-Efct-[grow]-Loc->[trunk]<-Part-[tree ?x]", englishLexicon)); //bread Identifier pain = new Identifier("pain"); Identifier pan = new Identifier("pan"); englishLexicon.addSynonym(pain, secondLanguage, bread); englishLexicon.addSynonym(pan, thirdLanguage, bread); Type breadType = englishLexicon.getTypeCS(bread); breadType.setDefinition(CG.parseLF( "[food:super]-\n"+ "-Madeof->[water_flour_meal_yeast],\n"+ "<-Obj-[brake]-Inst->[oven]", englishLexicon)); //breakfast Identifier petit_dejeuner = new Identifier("petit_dejeuner"); Identifier desayuno = new Identifier("desayuno"); englishLexicon.addSynonym(petit_dejeuner, secondLanguage, breakfast); englishLexicon.addSynonym(desayuno, thirdLanguage, breakfast); Type breakfastType = englishLexicon.getTypeCS(breakfast); breakfastType.setDefinition(CG.parseLF( "[first]<-Chrc-[meal:super]<-Obj-[eat]-Agnt->[person]", englishLexicon)); //bride Identifier fiancee = new Identifier("fiancee"); Identifier novia = new Identifier("novia"); englishLexicon.addSynonym(fiancee, secondLanguage, bride); englishLexicon.addSynonym(novia, thirdLanguage, bride); Type brideType = englishLexicon.getTypeCS(bride); brideType.setDefinition(CG.parseLF( "[woman:super]<-Agnt-[get_marry]", englishLexicon)); //bridge Identifier pont = new Identifier("pont"); Identifier puente = new Identifier("puente"); englishLexicon.addSynonym(pont, secondLanguage, bridge); englishLexicon.addSynonym(puente, thirdLanguage, bridge); Type bridgeType = englishLexicon.getTypeCS(bridge); bridgeType.setDefinition(CG.parseLF( "[road:super]<-Obj-[build]-Over->[river]-Target->[act=[people]<-Agnt-[get_accross]]", englishLexicon)); //brush Identifier brosse = new Identifier("brosse"); Identifier cepillo = new Identifier("cepillo"); englishLexicon.addSynonym(brosse, secondLanguage, brush); englishLexicon.addSynonym(cepillo, thirdLanguage, brush); Type brushType = englishLexicon.getTypeCS(brush); brushType.setDefinition(CG.parseLF( "[tool:super]-Has->[bristle]-Chrc->[lot]", englishLexicon)); brushType.addSituation(CG.parseLF( "[person]<-Agnt-[brush]-\n"+ "-Obj->[hair],\n"+ "-Inst->[hairbrush]", englishLexicon)); //bucket Identifier seau = new Identifier("seau"); Identifier balde = new Identifier("balde"); englishLexicon.addSynonym(seau, secondLanguage, bucket); englishLexicon.addSynonym(balde, thirdLanguage, bucket); Type bucketType = englishLexicon.getTypeCS(bucket); bucketType.setDefinition(CG.parseLF( //verifier le CG "[container:super]-\n"+ "-Attr->[large],\n"+ "-Has->[handle]-Loc->[top],\n"+ "<-Inst-[hold_and_carry]-Obj->[thing]", englishLexicon)); //building Identifier batiment = new Identifier("batiment"); Identifier edificio = new Identifier("edificio"); englishLexicon.addSynonym(batiment, secondLanguage, building); englishLexicon.addSynonym(edificio, thirdLanguage, building); Type buildingType = englishLexicon.getTypeCS(building); buildingType.setDefinition(CG.parseLF( "[place:super]-\n"+ "-Poss->[wall],\n"+ "-Poss->[roof]", englishLexicon)); //vegetable_bulb Identifier oignon = new Identifier("oignon"); Identifier cebolla = new Identifier("cebolla"); englishLexicon.addSynonym(oignon, secondLanguage, vegetable_bulb); englishLexicon.addSynonym(cebolla, thirdLanguage, vegetable_bulb); Type vegetable_bulbType = englishLexicon.getTypeCS(vegetable_bulb); vegetable_bulbType.setDefinition(CG.parseLF( "[part:super]-\n"+ "<-Part-[plant],\n"+ "<-Agnt-[grow]-Manr->[underground]", englishLexicon)); vegetable_bulbType.addSituation(CG.parseLF( "[plant]<-Agnt-[store]-\n"+ "-Obj->[food],\n"+ "-Loc->[vegetable_bulb]", englishLexicon)); //electric_bulb Identifier ampoule = new Identifier("ampoule"); Identifier ampoula = new Identifier("ampoula"); //KARIM: check ampoula englishLexicon.addSynonym(ampoule, secondLanguage, electric_bulb); englishLexicon.addSynonym(ampoula, thirdLanguage, electric_bulb); Type electric_bulbType = englishLexicon.getTypeCS(electric_bulb); electric_bulbType.setDefinition(CG.parseLF( "[part:super]-\n"+ "-Attr->[glass],\n"+ "<-Part-[lamp]-Attr->[electric]", englishLexicon)); //bulldozer Type bulldozerType = englishLexicon.getTypeCS(bulldozer); bulldozerType.setDefinition(CG.parseLF( "[machine:super]-\n"+ "-Attr->[powerful],\n"+ "<-Inst-[move]-\n"+ "-Obj->[rock]-Attr->[heavy],\n"+ "-Obj->[soil]", englishLexicon)); //burglar Identifier cambrioleur = new Identifier("cambrioleur"); Identifier ladron = new Identifier("ladron"); englishLexicon.addSynonym(cambrioleur, secondLanguage, burglar); englishLexicon.addSynonym(ladron, thirdLanguage, burglar); Type burglarType = englishLexicon.getTypeCS(burglar); burglarType.setDefinition(CG.parseLF( "[person:super]<-Agnt-[act = [steal]-Obj->[something]]", englishLexicon)); //bus Identifier autobus = new Identifier("autobus"); englishLexicon.addSynonym(autobus, secondLanguage, bus); englishLexicon.addSynonym(autobus, thirdLanguage, bus); Type busType = englishLexicon.getTypeCS(bus); busType.setDefinition(CG.parseLF( "[vehicle:super]-\n"+ "-Attr->[large],\n"+ "-Psbl->[act=[carry]-Obj->[people]-Attr->[lot]]", englishLexicon)); //butter Identifier beurre = new Identifier("beurre"); Identifier mantequilla = new Identifier("mantequilla"); englishLexicon.addSynonym(beurre, secondLanguage, butter); englishLexicon.addSynonym(mantequilla, thirdLanguage, butter); Type butterType = englishLexicon.getTypeCS(butter); butterType.setDefinition(CG.parseLF( "[food:super]-\n"+ "-Attr->[fatty],\n"+ "-Attr->[yellow],\n"+ "-Madeof->[milk_or_cream]", englishLexicon)); //butterfly Identifier papillon = new Identifier("papillon"); Identifier mariposa = new Identifier("mariposa"); englishLexicon.addSynonym(papillon, secondLanguage, butterfly); englishLexicon.addSynonym(mariposa, thirdLanguage, butterfly); Type butterflyType = englishLexicon.getTypeCS(butter); butterflyType.setDefinition(CG.parseLF( "[insect:super]-\n"+ "-Attr->[flying],\n"+ "-Part->[wing]-Number->[integer=4]-Attr->[colorful]", englishLexicon)); //cloth_button Identifier bouton = new Identifier("bouton"); Identifier boton = new Identifier("boton"); englishLexicon.addSynonym(bouton, secondLanguage, cloth_button); englishLexicon.addSynonym(boton, thirdLanguage, cloth_button); Type cloth_buttonType = englishLexicon.getTypeCS(cloth_button); cloth_buttonType.setDefinition(CG.parseLF( "[object:super]-\n"+ "-Attr->[small],\n"+ "<-Inst-[fasten]-Obj->[cloth]", englishLexicon)); //computer_button Type computer_buttonType = englishLexicon.getTypeCS(computer_button); computer_buttonType.setDefinition(CG.parseLF( "[key:super]-\n"+ "-Attr->[small],\n"+ "-Loc->[machine]", englishLexicon)); computer_buttonType.addSituation(CG.parseLF( "[person]<-Agnt-[push]-Obj->[computer_button]-Target->[turn_on]-Obj->[machine]", englishLexicon)); //buy Identifier acheter = new Identifier("acheter"); Identifier comprar = new Identifier("comprar"); englishLexicon.addSynonym(acheter, secondLanguage, buy); englishLexicon.addSynonym(comprar, thirdLanguage, buy); Type buyType = englishLexicon.getTypeCS(buy); buyType.setDefinition(CG.parseLF( "[give]-\n"+ "-Obj->[money],\n" + "-Target->[get]-Obj->[something]", englishLexicon)); /*****************************************************************************************/ // add Synonyms Identifier objet = new Identifier("objet"); Identifier eau = new Identifier("eau"); Identifier voiture = new Identifier("voiture"); Identifier homme = new Identifier("homme"); Identifier femme = new Identifier("femme"); Identifier attribut = new Identifier("atrás"); englishLexicon.addSynonym(objet, secondLanguage, object); englishLexicon.addSynonym(eau, secondLanguage, water); englishLexicon.addSynonym(homme, secondLanguage, man); englishLexicon.addSynonym(femme, secondLanguage, woman); englishLexicon.addSynonym(action, secondLanguage, action); /************************************************************************************/ // Save the new created Lexicons/Ontology in the .ont and in .xml forms // in aminePlatform.samples.ontology. try { // Save the Lexicon/Ontology, by serialisation of Java object(s), in the specified file. ontology.store(AmineFrame.ontologyDirPath + "DictionaryOntology.ont"); // Save the Lexicon/Ontology in the specified XML file. ontology.storeInXML(AmineFrame.ontologyDirPath + "DictionaryOntology.xml"); } catch (Exception ex){ ex.printStackTrace(); } /************** // Visualize the Ontology (Optional) TextualDisplayOntology txtDsplyOntFrm = new TextualDisplayOntology(ontology); txtDsplyOntFrm.displayOntology(); txtDsplyOntFrm.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(-1); } }); *************/ } catch (Exception ex) { System.out.println(ex.getMessage()); ex.printStackTrace(); } } }