syntax-prosody-ot / main

A webapp for the syntax-prosody analyst working in Optimality Theory, with automated Gen, Con and Eval. Download build files from syntax-prosody-ot/build
https://spot.sites.ucsc.edu/
GNU General Public License v2.0
12 stars 2 forks source link

Gradient NoShift as Linearity #293

Closed nkalivoda closed 4 years ago

nkalivoda commented 4 years ago

If we try to implement a gradient NoShift, one possibility would be to use McCarthy & Prince's (1995) constraint Linearity.

Linearity (McCarthy & Prince 1995, "Faithfulness and Reduplicative Identity") S₁ is consistent with the precedence structure of S₂, and vice versa. Let x, y ∈ S₁ and x', y' ∈ S₂. If xℜx' and yℜy', then x < y iff ¬(y' < x').

S₁ is the input string, S₂ is the output string, 'ℜ' is the correspondence relation, and 'p<q' means 'p precedes q'.

SPOT version:

Linearity (McCarthy & Prince 1995 applied to terminal strings) For every pair of terminals (x,y), assign a violation if x precedes y in the terminal string of sTree and y precedes x in the terminal string of pTree.

Example with moving X:

Screen Shot 2020-02-08 at 12 00 39 PM

Selected candidates with potential movers X,Y:

Screen Shot 2020-02-08 at 12 00 47 PM

Please correct me if I have misunderstood or miscounted anything.

jbellik commented 4 years ago

Create a helper function that takes a tree and gives back its terminal string. Use the code at the beginning of noShift for this.

jbellik commented 4 years ago

I would do this by making 2 NxN tables of the precedence relations among the N terminals (in the input and in the output). Then compare them and count up with cells that are marked "true" in the input table and "false" in the output table (but not the reverse, false in input and true in output)