Helps to create Ukrainian texts with the given phonetic properties.
Uses more functionality of the arrays and lists. The vector-related functionality is removed and this made the executables and libraries much more lightweight. Deal the Ukrainian as one of the phonetic languages. For the brief introduction in English, please, refer to: https://functional-art.org/2020/papers/Poetry-OleksandrZhabenko.pdf. Since the version 0.3.0.0 the package has the multiple variations mode for lineVariantsG3
executable that allows to use modifications in the text, e. g. synonyms, paraphrases etc. To present the created text you can use e. g. html-presentation-text package: https://hackage.haskell.org/package/html-presentation-text .
The new version adds support for additional properties, as well as multiple properties mode for distributionTextG. The theoretical part of this document has been improved. Fixed some code bugs. Switched in calculations of the average values and standard deviation from population to sample versions (now the standard deviation is slightly higher). Fixed issues with multiple variations of the text mode if it is not used interactively.
The short (possibly) instruction how to use the programs of the package phonetic-languages-simplified-examples-array in Ukrainian is here:
https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Ukr.21.pdf
or: https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Ukr.21.html
in html format,
or here:
(try https://web.archive.org/web/20220913192723/https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Ukr.21.pdf
or https://web.archive.org/web/20220913192509/https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Ukr.21.html
in html format ).
The instruction in English is here:
https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.pdf
or:
https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.html
in html format,
or here:
(try https://web.archive.org/web/20220913192921/https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.pdf
or https://web.archive.org/web/20220913193012/https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.html
in html format ).
Since the version 0.20.0.0 added the second major mode of operation -- SaaW (syllable-as-a-whole), additionally to the previous functionality of PhoPaaW (phonetic-phenomena-as-a-whole).
For more information, see the instructions.
Since the version 0.2.0.0 there exists also comparative mode for the rewritePoemG3 executable. It allows to create from two files with the text variants the new one. For more information in Ukrainian, please, refer to the instruction above to the part of the rewritePoemG3 executable.
Since the version 0.4.0.0 added new line of rhythmicity evaluation functions ("z"-line). The behaviour of the previous functions also changed, so it may be needed (in case where the results have some principal meaning, e. g. in scientific research, not the text itself) to recalculate the results using these functions. Added the possibility to get the Ukrainian informational messages during the work of the lineVariantsG3 executable (using the "+u" command line option not inside the groups of options).
Since the version 0.5.0.0 added two new lines with more complex behaviours ("w" and "x" lines). For more information, please, refer to the section 'WX argument' in the instructions above.
Since the version 0.6.0.0 changed the command line arguments modifiers notation to the small letters, removed the double ++ sign (changed to just single +) to simplify the command line arguments usage. Also changed the way to sign the writing to file for the lineVariantsG3 executable. Added new lines of properties for the (hypothetic) polyrhythmicity handling. Among them "c", "s", "t", "u", "v" lines are. Added the possibility to 'grow lines' for the rewritePoemG3 and propertiesTextG3 executables.
Since the version 0.8.0.0 added new weighted properties.
Since the version 0.13.0.0 added the pairwise permutations mode (with +p command line argument) where just pairwise permutations are used and the length of the line can be up to 10 words or their concatenations. Besides added the possibility to specify your own durations using the +d <path to the file with ordered durations>
command line arguments. They are used with H... properties, e. g. Hw04, Hw02, Hx36 etc.
- Examples of usage
- lineVariantsG3:
lineVariantsG3 <first argument>
[<WX argument>
\<whether to print the values of the property(ies)\> <whether the last word must remain on its place>
] <numeric arguments><property type><Ukrainian text>
or:
lineVariantsG3 <first argument>
[<WX argument>
\<whether print the values of the property(ies)\> <whether the last word must remain on its place>
] <numeric arguments><property type><Ukrainian text><somewhere among the arguments as a single group: constraints>
More partucular example of the abovementioned one:
lineVariantsG3 10.0_1.2 yy2 садок вишневий коло хати хрущі над вишнями гудуть
lineVariantsG3 +m 02y 3 03y 3 y0 10 -m +bl <Ukrainian text>.
lineVariantsG3 +i +m 02y 10 03y 10 y0 35 -m +bl садок вишневий коло хати хрущі над вишнями гудуть
lineVariantsG3 +f hello.txt +bl +m 02y 10 0y 10 y0 40 -m садок вишневий коло хати хрущі над вишнями гудуть
lineVariantsG3 +r 3 w02 +t 70 "sadok.txt" "other_poem.txt" "just_text.txt" ^t
lineVariantsG3 +r 3 w02 +t 70
lineVariantsG3 +r 3 w02 +f "fileForSaving.txt" +t 50
lineVariantsG3 +d 56.csv 11 HI32 весна уже прийшла і спів пташок лунає звідусіль
lineVariantsG3 +d 56.csv +m GHI32 01 HI32 20000 -m весна уже прийшла і спів пташок лунає звідусіль
lineVariantsG3 +r +d 56.csv +u 01 GHI32 весна уже прийшла і спів пташок лунає звідусіль
lineVariantsG3 +r +d 56.csv +u 01 GHK32 весна { уже / вже } прийшла і спів пташок { лунає / звучить } \ звідусіль
lineVariantsG3 +d 56.csv 3 HK02 Для дерева затих той теплий рух
lineVariantsG3 +d 56.csv +m GHK02 2118 HK02 15 -m Для дерева затих той теплий рух
lineVariantsG3 +d 56.csv +m GHK02 2118 HK02 15 GHK02 23 -m Для дерева затих той теплий рух
lineVariantsG3 3 +i a01y +s 1 десь тут була подоляночка
lineVariantsG3 0.001_100.0 3 +i a01y +s 1 десь тут була подоляночка
lineVariantsG3 3 aw01 +s 1 садок вишневий колохати
lineVariantsG3 100.0_-100.0 3 a02y +s 2 хрущі над вишнями гудуть
lineVariantsG3 100.0_0.0 3 a02y +s 2 хрущі над вишнями гудуть
lineVariantsG3 3 a02y +s 2 хрущі над вишнями гудуть
lineVariantsG3 100.0_0.001 +m ax01 5 02y 20 -m +s 1 +v 3 якісь цікаві ми отримуємо результати
lineVariantsG3 10.0_0.0 +m ax01 5 ax02 5 ax03 5 -m +s 3 +v 3 хрущі над вишнями гудуть
lineVariantsG3 +r 3 as01 +s 1 +u малювати щось гарне це цікаве заняття
lineVariantsG3 +m as01 3 w02 10 -m +s 1 +v 1 +u малювати щось гарне це цікаве заняття
To get the Ukrainian informational messages during the work of the executable (instead of the default English ones), please, use the "+u" command line option anywhere not inside the groups of the options.
For more information, please, refer to the text in the instructions above.
For example, you can also use multiple variations mode to look at the synonyms, paraphrases etc.
For this, use instead of just the text as the last arguments the following special construction:
{ <variant1 of the Ukrainian text>
/ <variant2 of the Ukrainian text>
/ ... / <variantN of the Ukrainian text>
}
with at least two variants inside the curly brackets. They will be processed in chain with the one variant of each and the possibility to choose at the end between these different ones, which finally results in a single line.
Please, remember that the program provides processing for every combination of the variations so if you specify too many of them (e. g. 3 variants of one word and 4 variants of the another one will lead to 3*4 = 12 variations possible), the processing while getting the final result can become longer than expected.
Recursive mode:
lineVariantsG3 +r
is incompatible with the constraints (+a ... -a).
Since the 0.11.0.0 version there is also the most complex mode of multiple sources processment or recursive interactive cycle mode. For this use +t {two-digits number} ... ^t command line arguments group with the two-digits number being one of the following: 20, 21, 30, 31, 40, 41, 50, 51, 60, 61, 70, 71.
For example:
lineVariantsG3 +r 3 w04 +t 71 "sadok.txt" "other_poem.txt" "just_text.txt" ^t
- propertiesTextG3:
propertiesTextG3 +i +s s 1 0 x02
propertiesTextG3 <first argument>
[<WX argument><whether to grow lines>
] <file with Ukrainian text><control of the quantity of the intervals>
\<control of printing the line of the text, too\> <control of the sectioning into the lines><property type>
propertiesTextG3 <first argument>
[<WX argument><whether to grow lines>
] <file with Ukrainian text><control of the quantity of the intervals>
\<control of printing the line of the text, too\> <control of the sectioning into the lines><property type>
| distributionTextG <the same argument of the quantity of the lines><whether to output also by-line statistics>
PowerShell -Command "propertiesTextG3 <first argument>
[<WX argument><whether to grow lines>
] <file with Ukrainian text><control of the quantity of the intervals>
\<control of printing the line of the text, too\> <control of the sectioning into the lines><property type>
| distributionTextG <the same argument of the quantity of the lines><whether to output also by-line statistics>
"
Note: Below the +RTS -N --RTS corresponds to the architectures where the parallelism is possible so that -N is one of the possible options for RTS. If the following with RTS arguments does not work, then remove the +RTS -N --RTS block from the command line. One of the examples where RTS does not support parallelism of this kind is armhf (e. g. Linux on Raspberry PI in 32-bit mode).
propertiesTextG3 sadok0.txt +RTS -N --RTS s 1 0 +m y0 0y 02z 03y z2 y3 yy3 -m
propertiesTextG3 sadok0.txt +RTS -N --RTS s 1 0 03z +b | distributionTextG s 1 +W
propertiesTextG3 sadok0.txt +RTS -N --RTS s 1 0 03z +g 73 +b | distributionTextG s 1 +W
propertiesTextG3 <filepath to the file with the Ukrainian text for analysis>
@n
- rewritePoemG3:
rewritePoemG3 <first argument >
[<whether to grow lines>
] <Ukrainian text file>
<property type><numerical arguments>
rewritePoemG3 <first argument >
[<whether to grow lines>
] <Ukrainian text file>
+m <properties types>
-m <numerical arguments>
rewritePoemG3 +c <files to read text variants from><final file>
Since the 0.9.0.0 version there is a possibility to run lineVariantsG3 in the recursive mode. It is not compatible with the contstraints so should be used not simultaneously with them (because they change their meaning).
Since the 0.13.0.0 version there is the possibility also to provide your own functions for the syllable durations. They are read from the file with special Haskell-like syntaxis. For more information, please, refer to the instructions above.
Since the 0.16.0.0 version you can use two reduced set of permutations modes in addition to the default full universal set of permutations mode. To use them, please, add "+p {1 or 2}" to the command line arguments. For more information, please, refer to the instructions following the links above.
In the version 0.18.0.0 there were fixes of the issues with interval rearrangements and string interpreter. Also improved the documentation and added examples of two sets of durations that is available as a ready-to-use file by the persistent link: https://web.archive.org/web/20220610171812/https://raw.githubusercontent.com/OleksandrZhabenko/phonetic-languages-data/main/0.20.0.0/56.csv.