svoid test_RecursiveProbabilisticParser1() { new RecursiveProbabilisticParser1 p; p.loadRules(" has a => => has($1, $2)"); assertEqualsVerbose(ll([[has("the farmer", "pig")]]), p.parse("the farmer has a pig")); test_RecursiveProbabilisticParser1_2(); } svoid test_RecursiveProbabilisticParser1_2() { new RecursiveProbabilisticParser1 p; p.loadRules([[ "Ein/eine/der/die/das führt (nach/in/hin zu/ins) " => satz => $1 leads to $2 "zimmer " => zimmer => room $1 "der/die/dem/das/den " => nomen => the $1 ]]); p.sentenceClass = "satz"; p.useRoundBrackets = true; assertEqualsVerbose(ll("(Haustür) leads to (the (room (Flur)))"), p.parse("Die Haustür führt in das Zimmer Flur")); test_RecursiveProbabilisticParser1_3(); } svoid test_RecursiveProbabilisticParser1_3() { new RecursiveProbabilisticParser1 p; p.loadRules([[ "vom/... kommt/gelangt man in/nach/... " => satz => $1 connects to $2 "zimmer " => zimmer => room $1 "der/die/dem/das/den " => nomen => the $1 ]]); p.sentenceClass = "satz"; p.useRoundBrackets = true; assertEqualsVerbose(ll("(Flur) connects to (the (room (GästeWC)))"), p.parse("Vom Flur kommt man (auch) in das Zimmer GästeWC")); test_RecursiveProbabilisticParser1_4(); } svoid test_RecursiveProbabilisticParser1_4() { new RecursiveProbabilisticParser1 p; p.loadRules([[ "vom/... kommt/gelangt man in/nach/... " => satz => $1 connects to $2 "zimmer " => zimmer => room $1 "bereich " => bereich => area $1 "der/die/dem/das/den " => nomen => the $1 " hat " => satz => $1 has $2 " hat einen Bereich " => satz => $1 has an area $2 ]]); p.sentenceClass = "satz"; p.useRoundBrackets = true; assertEqualsVerbose(ll(""), p.parse("Das Zimmer Hauptkeller hat einen Bereich Heizungsanlage")); }