1-Give me the length of the Kenedy. spelling ->KENNEDY PARSED! Give the length of the ship KENNEDY JF LEN - 1072 2-Width and draft PARSED! Trying Ellipsis: GIVE ME WIDTH AND DRAFT OF THE KENEDY Give the beam and draft of the ship KENNEDY JF (BEAM 130 DFT 36) 3-Who is her commander? PARSED! Give the rank and name of the commander of the ship KENNEDY JF (RANK CAPT NAME MOFFETT P) 4-What about the Fox? PARSED! Trying Ellipsis on: THE FOX WHO IS THE FOX COMMANDER Give the rank and name of the commander of the ship FOX (RANK CAPT NAME EVERETT J) 5-What U.S. merchant ships carrying vanadium ore are within 500 miles of the Kimlow? PARSED! Give the position of and time at position for the ship KIMLOW T Give the name of merchant American ship S where the type of cargo on S is VNAD the great-circle distance from the position of S to 15-33N, 30-10W, is less than or equal to 500 SHIP = GREENVILLE VICTOR, CRAIN ME, TOTOR 6-How fast are the U.S. subs with lengths greater than 150 feet? PARSED! Give the maximum cruising speed for and name of American ship S where the first character of the type of S is S the second character of the type S is S the length of S is greater than 150 (A long table relating the names and maximum cruising speeds of American submarines is printed.) 7-What French ships are at readiness status 1? PARSED! Give the name of French ship S where the state of readiness of S is 1 There is no French ship S NONE --------------------------------------------------------------------- LADDER uses a systemic (or semantic) grammar. You could parse some of the sentences with the following grammar rule: q --> q-word,[me], ship-prop, ship-name. Where q is a question sentence, q-word is a question word, ship-prop is a ship property and ship-name is the name of a ship. ---------------------------------------------------------------------- wh_s(Wh,N) --> wh(Wh),[is],np(N). np(N) --> det, n(N). det --> [the]. n(kennedy) --> [kennedy]. wh(where) --> [where]. parse(S) :- wh_s(S,[],Wh,N), synonym(Wh,Wh_sum), database(Wh_sym,N,Ans), write(Ans), nl. synonym(where,locations). database(location,kennedy,pacific). /* following just show using {} */ wh(what --> [what], {write(in_what), nl}.