/** * ************************************************************************************************************ * Put the "indirect object" of this process into natural language. */ void formulateNaturalIndirectObject() { VerbProperties verbProperties = new VerbPropertiesSimpleImpl(); String verb = getVerb().getVerb(); List<CaseRole> caseRolesToUse = verbProperties.getCaseRolesForGrammarRole( verb, SVOElement.SVOGrammarPosition.INDIRECT_OBJECT); for (CaseRole role : caseRolesToUse) { SVOElement element = new SVOElement(SVOGrammarPosition.INDIRECT_OBJECT); String obj = formulateNounPhraseForCaseRole(role, element, kb); if (!obj.isEmpty()) { List<String> preps = verbProperties.getPrepositionForCaseRole(verb, role); // TODO: for time being, take just the first one in the list String prep = preps.get(0); element.setSurfaceForm(prep + " " + obj + " "); indirectObjects.add(element); getCaseRolesScratchpad().removeAll(role); } } }