I would like to say first that I am new to this idea and project and not as familiar with coding or linguistics as some of you, so I apologize in advance if I am severely misunderstanding something in this thread.

While any of these phrases would sound decent in a sentence, I believe that the context of the rest of the sentence would be needed to determine the correct thematic relation. Even if the output phrases all contain the same words, natural speech and language would not pick these phrases necessarily at random, because the three phrases have different "set-ups" as I would call them. I'll give examples so I become much more clear.

Let us assume we have the agent-patient-instrument pair of Bobby, the ball, and the bat, and finish this clause with the directional relation "over the stadium". Thus our sentences would most likely be as follows:

[1] Bobby hit the ball using the bat over the stadium.
[2] Bobby, using the bat, hit the ball over the stadium.
[3] Using the bat, Bobby hit the ball over the stadium.

Despite all of these being technically correct sentences in English, sentence [1] in my opinion would definitely not look as natural to a native English speaker in text as [2] or [3] (though in my opinion [3] is best) Let's do another example with the phrase "while he hummed a song."

[1] Bobby hit the ball using the bat while he hummed a song.
[2] Bobby, using the bat, hit the ball while he hummed a song.
[3] Using the bat, Bobby hit the ball while he hummed a song.

Now with this new phrase, sentences [1] and [2] have become the most natural sentences (again, in my opinion), when in the previous sentence where the phrase "over the stadium" was used, these two were the most *un*natural. As such, I believe that the most accurate method to find the most natural phrasing would need to find a pattern in the context in order to apply the correct formation to.

One last thought of mine has to do with spoken English and not written, but still may assist with our problem. From my thinking, the stressed word on a previous sentence may also affect the construction of the next. Let's treat our agent-patient-instrument as a complete sentence, and the sentence before this in spoken English as "Bobby had a ball and a bat" - introducing Bobby, ball, and bat beforehand. The stress could affect the construction like so, where * * indicates the stressed word in the sentence.

[1] *Bobby* had a ball and a bat. Bobby hit the ball using the bat.
[2] Bobby had a *ball* and a bat. Bobby, using the bat, hit the ball.
[3] Bobby had a ball and a *bat.* Using the bat, Bobby hit the ball.

Again, I am not a very experienced person in either linguistics or programming, so I may have missed the point of something, but I hope my thoughts help with this.

Sincerely,
SWork


On Fri, Jul 24, 2020, 6:07 PM <abstract-wikipedia-request@lists.wikimedia.org> wrote:
Send Abstract-Wikipedia mailing list submissions to
        abstract-wikipedia@lists.wikimedia.org

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.wikimedia.org/mailman/listinfo/abstract-wikipedia
or, via email, send a message with subject or body 'help' to
        abstract-wikipedia-request@lists.wikimedia.org

You can reach the person managing the list at
        abstract-wikipedia-owner@lists.wikimedia.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Abstract-Wikipedia digest..."


Today's Topics:

   1. Re: Conjugation and Declension Functions (Adam Sobieski)


----------------------------------------------------------------------

Message: 1
Date: Fri, 24 Jul 2020 23:07:03 +0000
From: Adam Sobieski <adamsobieski@hotmail.com>
To: "General public mailing list for the discussion of Abstract
        Wikipedia (aka Wikilambda)" <abstract-wikipedia@lists.wikimedia.org>
Subject: Re: [Abstract-wikipedia] Conjugation and Declension Functions
Message-ID:
        <CH2PR12MB41841C5E1C4E820B9766AB1BC5770@CH2PR12MB4184.namprd12.prod.outlook.com>

Content-Type: text/plain; charset="windows-1252"

In addition to broaching the discovery, encoding and reuse of language-specific patterns, which I view as a discussion topic when comparing and contrasting approaches (see: the DRY principle [1] and the abstraction principle [2]), and indicating how conjugation and declension functions would facilitate the discovery, encoding and reuse of these patterns, I would like to share some topics which arose as I explored adding the thematic relation [3] of instrument to the agent-patient pair.

When exploring how best to add the thematic relation of instrument to the agent-patient pair (e.g. adding “using the bat” to “Bobby hit the ball”), I observed that, for the same input grammatical arguments, there was a set of possible output paraphrases:


  1.  “Bobby hit the ball using the bat”
  2.  “Bobby, using the bat, hit the ball”
  3.  “Using the bat, Bobby hit the ball”

I wondered: how might we be able to generate each?

One possibility is indicated. There could be a type for each thematic relation [3]. Then, using explicit type conversions to these types, we could have different functions for different sequences of input arguments.

That is,

hit<voice::active, tense::past, aspect::perfective, mood::indicative>(context, (Agent)Bobby, (Patient)ball, (Instrument)bat) --> “Bobby hit the ball using the bat”
hit<voice::active, tense::past, aspect::perfective, mood::indicative>(context, (Agent)Bobby, (Instrument)bat, (Patient)ball) --> “Bobby, using the bat, hit the ball”
hit<voice::active, tense::past, aspect::perfective, mood::indicative>(context, (Instrument)bat, (Agent)Bobby, (Patient)ball) --> “Using the bat, Bobby hit the ball”

or

hit<voice::active, tense::past, aspect::perfective, mood::indicative>(context, Bobby as Agent, ball as Patient, bat as Instrument) --> “Bobby hit the ball using the bat”
hit<voice::active, tense::past, aspect::perfective, mood::indicative>(context, Bobby as Agent, bat as Instrument, ball as Patient) --> “Bobby, using the bat, hit the ball”
hit<voice::active, tense::past, aspect::perfective, mood::indicative>(context, bat as Instrument, Bobby as Agent, ball as Patient) --> “Using the bat, Bobby hit the ball”

These functions could each wrap the use of patterns (as indicated in previous email) and attempt to realize output sentences utilizing the arguments in the same sequence in which they were provided. This would, however, mean that the callers of the functions would be responsible for “shuffling” the input arguments to express the desired paraphrase ((1), (2), (3)).

There are, of course, other approaches to consider and other possibilities to consider with respect to addressing the matter of outputting the example paraphrases.

Any thoughts on these topics?


Best regards,
Adam

[1] https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
[2] https://en.wikipedia.org/wiki/Abstraction_principle_(computer_programming)
[3] https://en.wikipedia.org/wiki/Thematic_relation

P.S.: We could also put the grammatical arguments on the context object (context.voice, context.tense, context.aspect, context.mood, et cetera) and then make use of generic parameters for other uses.

From: Adam Sobieski<mailto:adamsobieski@hotmail.com>
Sent: Thursday, July 23, 2020 7:38 PM
To: General public mailing list for the discussion of Abstract Wikipedia (aka Wikilambda)<mailto:abstract-wikipedia@lists.wikimedia.org>
Subject: RE: Conjugation and Declension Functions


I had an idea about discovering, encoding and reusing patterns in languages that I would like to share with the group.



The following is rough-draft pseudocode for a function with which to generate sentences for the verb “to kick”. The function has generic parameters for voice and tense and parameters for context, agent and patient.



Clause kick<V, T>(Context context, Noun agent, Noun patient)

{

  switch(V)

  {

    case voice::active:

      switch(T)

      {

        case tense::past:

        case tense::present:

          return join(" ", [

            agent,

            conjugate_en(“kick”, V, T, …),

            “the”,

            patient

          ]);

        case tense::future:

          return join(" ", [

            agent,

            “will”,

            conjugate_en(“kick”, V, T, …),

            “the”,

            patient

          ]);

        …

      }

    case voice::passive:

      switch(T)

      {

        case tense::past:

          return join(" ", [

            “the”,

            patient,

            “was”,

            conjugate_en(“kick”, V, T, …),

            “by”

            agent

          ]);

        case tense::present:

          return join(" ", [

            “the”,

            patient,

            “is”,

            “being”,

            conjugate_en(“kick”, V, T, …),

            “by”

            agent

          ]);

       …

     }

  }

}



and



kick<voice::active, tense::past>(context, Bobby, ball) returns “Bobby kicked the ball”.



In English, most combinations of tense, aspect, mood and voice are expressed periphrastically, using constructions with auxiliary verbs. After implementing a number of these for similar verbs, per the above example, we would notice a pattern. That pattern could be expressed as something resembling:



Clause pattern123<V, T>(Context context, Verb verb, Noun agent, Noun patient)

{

  switch(V)

  {

    case voice::active:

      switch(T)

      {

        case tense::past:

        case tense::present:

          return join(" ", [

            agent,

            conjugate_en(verb, V, T, …),

            “the”,

            patient

          ]);

        case tense::future:

          return join(" ", [

            agent,

            “will”,

            conjugate_en(verb, V, T, …),

            “the”,

            patient

          ]);

        …

      }

    case voice::passive:

      switch(T)

      {

        case tense::past:

          return join(" ", [

            “the”,

            patient,

            “was”,

            conjugate_en(verb, V, T, …),

            “by”

            agent

          ]);

        case tense::present:

          return join(" ", [

            “the”,

            patient,

            “is”,

            “being”,

           conjugate_en(verb, V, T, …),

            “by”

            agent

          ]);

       …

     }

  }

}


We could then simply express that the verb “to kick” is an instance of pattern pattern123 with something resembling:



Clause kick<V, T>(Context context, Noun agent, Noun patient)

{

  pattern123<V, T>(context, new Verb(“kick”, …), agent, patient);

}

or


Clause kick<V, T>(Context context, Noun agent, Noun patient)

{

  pattern123<V, T>(context, getVerb(“https://…#kick”), agent, patient);

}

and this pattern could be reused for a large number of verbs.

This use of patterns should extend to scenarios where there are more parameters for other thematically-related nouns:



Clause kick<V, T>(Context context, Noun agent, Noun patient, Noun instrument)

{

  pattern1234<V, T>(context, new Verb(“kick”, …), agent, patient, instrument);

}

For English, there might be more generic parameters than those for voice and tense; we could add those for aspect and mood (e.g. pattern1234<V, T, A, M>(…)).

In conclusion, with generic programming and functions for conjugation and declension, we have expressiveness with which to discover, encode and reuse language-specific patterns.


Best regards,
Adam Sobieski

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.wikimedia.org/pipermail/abstract-wikipedia/attachments/20200724/f76417ca/attachment.html>

------------------------------

Subject: Digest Footer

_______________________________________________
Abstract-Wikipedia mailing list
Abstract-Wikipedia@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/abstract-wikipedia


------------------------------

End of Abstract-Wikipedia Digest, Vol 1, Issue 81
*************************************************