Example #1
0
  /**
   * ************************************************************************************************************
   * 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);
      }
    }
  }