Concatenation "." of Creates Singular String

Why does concatenation "." of make the statement below a singular statement? If you take out the concatenation "." of the statement errors with the message “the left operand of “|” must be singular.”

(concatenation "." of (preceding texts of firsts ".jar" of following texts of firsts "plugins/workstation.iocagent_" of it) of lines whose (it does not contain " ") of file "wfm.ini" of folder "C:\Program Files (x86)\NICE_WFM\WFM" | "0.0.0.0") does not equal "70.1.0.201711160658"

concatenation "." of takes a singular or plural string and turns it into a concatenated singular string.

concatenations "." of takes a singular or plural string and turns it into a concatenated plural string (of which there is never more than 1 result)

This isn’t how I would write this relevance. I would do it more like this:

not exists (it as version) whose(it = "70.1.0.201711160658") of preceding texts of firsts ".jar" of following texts of firsts "plugins/workstation.iocagent_" of lines whose (it does not contain " ") of files "wfm.ini" of folders "C:\Program Files (x86)\NICE_WFM\WFM"

This keeps it plural and flows more consistently from right to left.

concatenation seems to have some special ability to deal with nonexistance of what comes before it in an unusual way:

Q: concatenations "blah" of ("";NOTHING;"") whose(FALSE)
A: 
T: 0.243 ms
I: plural string

In some cases where you may need to make a plural into a singular, I would generally recommend using unique value of instead of concatenation, though ideally I wouldn’t use singular in quite this way most of the time unless you actually want to throw an error if it doesn’t exist or if there is more than one.

Another option is to use tuple string items 0 of concatenations ", " of unique values of to take a plural string and just grab the first unique sorted result.


For some reason I don’t like this as much, but this would be another possibility:

exists it whose(it does not equal "70.1.0.201711160658") of (unique value of (preceding texts of firsts ".jar" of following texts of firsts "plugins/workstation.iocagent_" of it) of lines whose (it does not contain " ") of files "wfm.ini" of folders "C:\Program Files (x86)\NICE_WFM\WFM" | "0.0.0.0")

But in this case, it still uses plurals everywhere, except when using unique value of ... | "0.0.0.0"