Module talk:ru-verb

Definition from Wiktionary, the free dictionary
Jump to: navigation, search

Contents

Question: What does com.iotation() do[edit]

I am wondering what com.iotation() does but there seems to be no source code for it, even when searching via google.

http://en.wiktionary.org/wiki/Module:ru-common

Suggested changes[edit]

Good job!

Can all (or most) parameters be made optional and wikified (without accents and to allow entry creation)? For optional forms (the translit function shouldn't be called, to avoid ()). The verb победить doesn't have 1st person singular future (!), so, to say "I'll win" one should rephrase to something like "я бу́ду победи́телем" (ja búdu pobedítelem). The impersonal verbs will have a few forms missing, e.g. ru:смеркаться (smerkátʹsja) (to grow dark, to get dusky). Please let me know if it's too much or if you have questions. --Anatoli (обсудить/вклад) 22:33, 11 April 2013 (UTC)

I would like to start by applying this template to all verbs where it can be used, and skip any verbs like победить where it doesn't. But I wonder whether it is really necessary to leave out forms that are rarely used, but not strictly wrong. In English for example, it's not wrong to say "we rained down on them" even though rain is usually impersonal. I wouldn't be surprised if Russian verbs also have such poetic uses. And it would simplify it a lot if we could just list those forms even if almost nobody ever uses them. I mean, just because almost nobody says "my space shuttle is tasty" doesn't mean it's not valid English. :) I am not sure what you mean with making the parameters optional. If they're all optional, how would the module know what to do? —CodeCat 22:42, 11 April 2013 (UTC)
For победить there really is no 1st person singular future. People make fun of this by saying "я победю́/побежду́" but that's not valid Russian. For "смеркаться" the missing forms can sound weird (e.g. я смеркаюсь, ты смеркаешься) but can perhaps be considered valid in some circumstances. OK, for impersonal verbs I could add usage notes.
Re: "optional and how would the module know what to do" A calling template would just pass nothing as a parameter and the module would display an em dash. --Anatoli (обсудить/вклад) 23:09, 11 April 2013 (UTC)
What would be the use of a table full of dashes, though? Surely at least the stem is necessary to make anything useful appear? As for победить... are there many verbs like this? If not, we can just treat them as irregular. I do find over 40 thousands results on Google for побежду, and победю 168 thousand, but I don't know the context of those words so maybe they are not actually uses of this verb at all. —CodeCat 23:20, 11 April 2013 (UTC)
I can't think of many verbs like победить. Missing inflected forms or forms that sound awkward is a Russian feature, he-he, and some people complain about this and talk jokingly about introduction of the form "побежду", that's why there are hits. Other just discuss this problem and ask experts how to say "I'll win."
Because of победить and impersonal verbs I thought that some forms could be made optional, so that we don't have to rework it later.
Because such verbs are so rare, I think the approach I outlined above would make things easier for us. Focus on the "majority" cases, and deal with rarer cases later once we have everything working. I have used this approach when converting Dutch and Catalan verbs to Lua and it seems to work. For Dutch it is actually quite easy: there are strong, weak, weak-cht and irregular verbs, where the irregular verbs just basically have their own special conjugation for them alone. So the "exceptions" have their own separate method, different from the normal verbs. —CodeCat 23:42, 11 April 2013 (UTC)

Where to from here?[edit]

Could you add the categories, please as discussed?

It seems hard if this module will try to do all types of conjugations. I can't follow it yet. I'd like to create new templates for other types. Or should I try to work on functions like "function conj_1a(args)"?

Are the things in Template talk:ru-conj-1a still outstanding? (Re: Transitive/intransitive doesn't work yet, and the short form of the adverbial participle is also missing). --Anatoli (обсудить/вклад) 06:04, 12 April 2013 (UTC)

The short form works, and I've added transitive/intransitive just now. Categories also work now. I will start on the table of conjugation types now. —CodeCat 13:26, 12 April 2013 (UTC)
Thank you. I'd like to start creating templates. I was reading Zaliznyak's book and started documenting just a bit here - User talk:Atitarev/Russian verb templates. There are many exceptions starting from type 3. Can I start creating new templates? Not sure I'll be able to do it in Lua, though. It seems like changes between types and subtypes are big, there are many exceptions, differences in stress patterns. Not sure if one module should handle all different types but I think I could write the old way. --Anatoli (обсудить/вклад) 13:52, 12 April 2013 (UTC)
I don't think that many of those templates are actually necessary, and we can do much more with Lua anyway. For example, I think it would be possible to collapse almost all of class 1 into a single Lua function, and all of class 2 into another. Most of the subtypes that cater to a specific consonant at the end of the stem wouldn't be necessary either, because Lua can detect which consonant is at the end and adjust. In other words, many of the things that we might have originally needed separate templates or parameters for can be done "automatically" with Lua. That is why I kindly ask you to wait and not rush into things (but you are Rushin' after all so... *giggle*) because a lot of the work that you are so eager to do might not actually be necessary in the end. Of course, if you don't mind that and just need something to do, then of course feel free to go ahead, but a lot of your work might become obsolete if I am able to implement it more efficiently in Lua. —CodeCat 14:55, 12 April 2013 (UTC)
Do you mean that I temporarily changed the codes from Lua back to templates? Consider that was done just for my learning. Not trying to break your work or something and I wasn't impatient. Also, I don't know about your commitments. Once we start, it's better to get it to some meaningful end. I hope you're not oversimplifying. Besides, if you had a Lua program similar to Template:ru-conj-table, making new templates wouldn't be hard for me now. With Lua and the way you're trying to make it work for all templates, I'm a bit lost and also I can't do much. Could you also document Module:ru-verb a bit? BTW, did you get my email? --Anatoli (обсудить/вклад) 15:09, 12 April 2013 (UTC)
Well, that is actually pretty much what we do have. Have a look at the module and you'll see what I mean. Hopefully, the Lua code that makes the forms is not too difficult to understand, so that you can see how it is done and extend the pattern yourself. I have now added a function for 2a verbs as well, but only the -ovat' variety, not -evat' yet. Are verbs of that class ever stressed on the a or the o/e, like -óvat'/-évat' or -ovát'/-evát'? And if the stress is there, where does the stress fall when the ending changes to -uje-? The code currently doesn't support that yet, but I can add it fairly easily if it turns out to be necessary.
That is where I would like to ask you for help. There is now {{ru-conj-1a}} and {{ru-conj-2a}}, and I would like to see how many verb entries you can add those templates to. And more importantly, where they do not yet work because the forms they generate are wrong for some verb. In other words, I want to "stress test" these templates, and see whether these templates can cover all the verbs of classes 1 and 2, and which they cannot cover yet and why not. Once we have an idea of the variety of reasons why they do not work with some verbs, we can decide to either create a new function/template, or extend the current ones with code detects the exceptions if there is a certain pattern in them.
And yes I did get your email but I'm not sure what to say to it... —CodeCat 15:44, 12 April 2013 (UTC)
{{ru-conj-1a}} is fine and I will be able to create many verbs - already converted existing. I have already advised about {{ru-conj-2a}}. The stress shifts if the infinitive form is shifted, see current шлифовать. Just need to make the params longer. These two are pretty standard. The "b" version - Template:ru-verb-2b-impf has always stressed endings. --Anatoli (обсудить/вклад) 16:12, 12 April 2013 (UTC)
I notice that the stressed endings only apply to the present and the present active and adverbial participles. Is that true of all verbs with b stress pattern? —CodeCat 16:15, 12 April 2013 (UTC)
That's correct. It's not a big group of verbs. Could you add categories based on conjugation type? --Anatoli (обсудить/вклад) 16:22, 12 April 2013 (UTC)
I've created it and added it to блевать. Can you check it? I'm not sure about the present passive participle, not just for this verb but for all of them because none of the 2b verbs had one in their table, but they did have a past passive participle (so they are probably transitive?). —CodeCat 16:40, 12 April 2013 (UTC)
There's no present passive, even for transitive verbs for the whole group. I don't se, which part of the module does it but all instances of "блу" should be replaced with "блю". Gotta go to bed. Talk to you tomorrow. Thanks for your work:)
Ok, I've fixed that. —CodeCat 17:06, 12 April 2013 (UTC)
(Today I won't be very responsive - real life is in the way). I think this pattern and all onwards should have two stem parameters(at least). блева́/блю but other verbs have "у" in the second stem. Verb ru:наставать has the same conjugation but stems are different. Can we have two params: блева́/блю? (2a could be done the same, will also make it easier to program for future forms). --Anatoli (обсудить/вклад) 23:30, 12 April 2013 (UTC)
If one of the stems can be predicted from the other, why would it be necessary to provide two? For the class 2 verbs I have made the module do the conversion itself, so you don't need to provide more than one stem. 2 stems should only be necessary if one cannot be predicted from the other. —CodeCat 23:32, 12 April 2013 (UTC)
It didn't work for наставать. The two stems настава́/наста are the two stems like блева́/блю for блевать. They have a different shape but same conjugation. --Anatoli (обсудить/вклад) 23:47, 12 April 2013 (UTC)
Um... that's kind of because that's not the right verb class. It belongs to class 13 according to your list. —CodeCat 23:51, 12 April 2013 (UTC)
You'rr right! Changed the Russian wiki. But with two stem params we could combine these two! 13b and 2b. --Anatoli (обсудить/вклад) 00:05, 13 April 2013 (UTC)
We could combine more than these two, in that case. (I think you are beginning to see the advantages of merging now...) On the other hand, if we merge them we wouldn't be able to put them into distinct categories the way we do now. Let's try to have at least 1 template/function per class, and once they're all done we can see what we can do about merging. —CodeCat 00:10, 13 April 2013 (UTC)
I should have said reusing, not merging :) There will be, no doubt similarities but it makes sense to classify them in 16 types and subtypes. Can categorisation be left with the calling templates instead? A new parameter for types? This module does too much work. 1 template/function per class sounds good to me, I see you're using for subclasses as well. (They are actually called types in the original book and ru:wiki). --Anatoli (обсудить/вклад) 04:35, 13 April 2013 (UTC)
The functions don't have to correspond to the templates one-to-one. For example, each of the functions could contain only a small piece of code that generates stems, and it could then pass those stems on to another generic function (which works for many classes) which then creates the full forms. Look at Module:nl-verb or Module:ca-verb for example, where this has been done. nl-verb has a "present" and a "past" function, and ca-verb has make_impf, make_pret, make_pres_sub and so on. However, it is probably better to write everything out in full first, before we start merging them. There is a saying in programming that goes "premature optimisation is the root of all evil". It means that you shouldn't start simplifying your code too much right from the start, and wait until it's all finished and you have a complete picture of the situation. —CodeCat 13:10, 13 April 2013 (UTC)
You seem to be unhappy if I add new functions for subtypes, which cover variations. While adding I'm learning and testing the results. I'm happy if you redo them later, correct my mistakes by making functions more generic but let me take an active part in this. --Anatoli (обсудить/вклад) 13:31, 13 April 2013 (UTC)

Refexive - also intransitive[edit]

Could you make reflexive verbs intransitive as well (category)? --Anatoli (обсудить/вклад) 15:34, 12 April 2013 (UTC)

I put the reflexive category inside the intransitive category. That way, it's almost the same but the entries won't need even more categories. —CodeCat 15:44, 12 April 2013 (UTC)
I see. Thanks. I haven't checked that it was nested. --Anatoli (обсудить/вклад) 15:55, 12 April 2013 (UTC)

Template:ru-conj-2a needs to change[edit]

This template is not working as before as the stem is shorted. монти́ровать and шлифова́ть have different stress patterns. The old template included longer parameters: шлифова́|шлифу́|шлифу́емый|шлифо́ванный. Please have a look. --Anatoli (обсудить/вклад) 15:53, 12 April 2013 (UTC)

I guess that answers my question above then. So if the infinitive has -óvat' or -ovát' then the present has -úje-? —CodeCat 16:02, 12 April 2013 (UTC)
I think шлифовать works now, and I think verbs with -evati are now also supported. But I haven't found one to try it on yet. —CodeCat 16:12, 12 April 2013 (UTC)
Passive participle is incorrect: "отшлифо́ва", should be "отшлифо́ванный", "русифицировать" is OK though. --Anatoli (обсудить/вклад) 16:38, 12 April 2013 (UTC)
You need to specify the full word, not just the stem. Like with the old templates. I don't know if that's convenient or not but it can always be changed again. —CodeCat 16:42, 12 April 2013 (UTC)
I prefer шлифо́ва, отшлифо́ва, if you can please that was in the old template (if you mean my template), the participles were full words. --Anatoli (обсудить/вклад) 16:49, 12 April 2013 (UTC)
That can work, but is the past passive participle always formed by adding нный to the end of some stem? There are the t-participles, so that is one case where the full word needs to be specified, right? And it would be a bit more confusing if some templates expected a stem, and others expected a full word. —CodeCat 16:55, 12 April 2013 (UTC)
I missed this answer and question. It's always "-нный" with this pattern, т-participle is not part of it but the stress can vary. --Anatoli (обсудить/вклад) 07:20, 13 April 2013 (UTC)
Right now, the participle is completely independent of any pattern. I can make it pattern dependent but I wonder what good that will do, since the parameter will need to be specified anyway. —CodeCat 12:55, 13 April 2013 (UTC)
Perhaps let's leave the participle as is - parameter. I've made some codes and tested. Slowly learning. Looks I'm getting the hang of it but the module will become very big if all functions for each subtype go in. Please let me know what you think. I chose the simplest approach - a bit more parameters will make less the number of functions and templates. There are too many irregularities with the Russian verbs but there will be less templates then e.g. noun templates Category:Russian_noun_inflection-table_templates (those with -unc could be combined) I don't understand all the code but learning bits and pieces as I go.
I'd like to also be able to use the module for completely irregular verbs, where each parameter is passed, like есть. --Anatoli (обсудить/вклад) 13:09, 13 April 2013 (UTC)
For completely irregular verbs, in Module:nl-verb I have just written one function that generates all the full forms. We can probably do that for Russian too as long as we don't have too many, and it has an advantage: you automatically get the conjugation of all prefixed verbs "for free". I don't know if there are any verbs that are prefixed forms of есть, but if there are, they should be able to use the same conjugation function shouldn't they? —CodeCat 13:29, 13 April 2013 (UTC)
There are a few derivatives of есть, e.g. perfective надоесть, which needs attention. For understanding how to write a function this, I wouldn't need a walk-through or rely on you to do, if you can. :) --Anatoli (обсудить/вклад) 13:57, 13 April 2013 (UTC)

Two more functions 10c, 10a[edit]

I've created simple functions - conjugations["10c"], and conjugations["10a"], covering a very small group of verb, I only made a few examples. --Anatoli (обсудить/вклад) 07:12, 13 April 2013 (UTC)

There are some issues, I hope I can fix them. --Anatoli (обсудить/вклад) 07:38, 13 April 2013 (UTC)
What is the purpose of the 3 stems of the 10c conjugation? —CodeCat 12:59, 13 April 2013 (UTC)
With 3 stems for 10c stems it's easier. cf ru:молоть and ru:колоть. Why is it bad to have three parameters.? --Anatoli (обсудить/вклад) 13:20, 13 April 2013 (UTC)
I would just like to know what each one is for. The names you've given them (stem2, stem3) don't really reveal much. I also wonder what the relationship between them is. Can one of the stems be automatically derived from the other in some way? (Compare the class 2 verbs, where ová is automatically replaced with ú, ova with u, evá with jú, eva with ju) —CodeCat 13:24, 13 April 2013 (UTC)
1. моло́ - infinitive, past forms, past participle, adverbial, 2. ме́л - present tense (except for 1st pers. sg), 3. мел - 1st pers. sg pres, pres adverbial. полоть has these: поло́|по́л|пол. Stem 2 and 3 only differ in the presence or absence of the accent, they both are different from stem1. --Anatoli (обсудить/вклад) 13:50, 13 April 2013 (UTC)
I see. The accent can be automatically removed, so stem 3 isn't really necessary. As for the difference between stem 1 and 2, is it true that е́л > оло́ and о́л > оло́? Because in that case, you can make stem 2 the "real" stem and you can make a rule that creates stem 1 by replacing е́л and о́л > оло́. —CodeCat 14:00, 13 April 2013 (UTC)
Doesn't seem right. ru:трепаться has трепа́/тре́пл/трепл. Adding an extra "л". It may be allright just because it's a small group of verbs. --Anatoli (обсудить/вклад) 14:16, 13 April 2013 (UTC)
That seems like another rule called Proto-Slavic iotation, where certain consonants change when there is an ending that starts with -j-. Slovene has this too: kj > č, gj > ž, pj > plj, tj > č and so on. I think it also happens in class 4, in the 1st person singular? I will make a function that applies this change, because it seems like it would be useful to have a re-usable function for this (it was for Slovene, anyway). —CodeCat 14:21, 13 April 2013 (UTC)
The list of standard interchange of consonants is here: User talk:Atitarev/Russian verb templates, sometimes non-standard happend (т - щ). --Anatoli (обсудить/вклад) 14:31, 13 April 2013 (UTC)
I thought that d was usually replaced by žd in this change? —CodeCat 14:35, 13 April 2013 (UTC)
No, обижать/обидеть. --Anatoli (обсудить/вклад) 14:38, 13 April 2013 (UTC)

Class 4[edit]

What is the purpose of the "4a-сс" class? I don't see any difference between it and the normal 4a. And what about the "ш" class? If that class is used automatically with verbs that end in certain consonants, then we can remove it and add code to the normal class 4 functions, which can detect the last consonant and change the endings accordingly. —CodeCat 13:05, 13 April 2013 (UTC)

I don't have a full understanding but "сс" seems to indicate the cluster of consonants, the difference is in the imperative. It's hard to decide whether just add a check for consonant cluster will fix all other verbs of this type. For me it was easier to add a new code and then later decide if some subtypes can be merged. I won't create too many verbs with small subtypes, so the change is easy.
Agree about "ш". If you can do that, it would be great. --Anatoli (обсудить/вклад) 13:20, 13 April 2013 (UTC)
Can you tell me which final consonants automatically use this subtype? —CodeCat 13:25, 13 April 2013 (UTC)
I couldn't find anything in the book but it's not searchable, so I might have missed. The Russian wiki is not well documented. I just made first an assumption that "сс" stands for согласный but not sure anymore. All I see is "сс" verbs have an "и", not "й" in the imperative. --Anatoli (обсудить/вклад) 13:42, 13 April 2013 (UTC)
No I meant the ш class... —CodeCat 13:50, 13 April 2013 (UTC)
Copying from User talk:Atitarev/Russian verb templates: "ш" (шипящий звук - hissing, hushing or sibilant sound - what's the proper term?) change ending as per spelling rules for vowels after hushing sounds ш, щ, ж and ч. (ю - у, я - а, etc.). --Anatoli (обсудить/вклад) 13:53, 13 April 2013 (UTC)
Ok, I've made this change and I removed the ш conjugations (they now have script errors). Can you see if they work correctly with the normal 4a / 4b? —CodeCat 14:10, 13 April 2013 (UTC)
It falls over on find function. Trying to make обручиться work with Template:ru-conj-4b. --Anatoli (обсудить/вклад) 14:28, 13 April 2013 (UTC)
Oops... fixed I hope. —CodeCat 14:32, 13 April 2013 (UTC)
Yes, working and is correct :). Please keep me in the loop if you plan to add new functions, will add a couple of verbs and test. I answered some other questions on this page. Have a good night, it's 00:30 am here. --Anatoli (обсудить/вклад) 14:36, 13 April 2013 (UTC)

Test module[edit]

@CodeCate. I have created a test module Module:ru-verb-testmodule to test new types, to see what can be done.

Looking at type 3, stress patterns a, b and c. Ru:wikt has many variants. Dropping "-ну-" and variant imperatives are the variants I spotted so far.

Numbers 5 and 6 mean that "-ну-" is preserved in certain forms.

Ru:wikt seems to be a bit inconsistent in choosing patterns, will have to check thoroughly and test verbs from different subtypes.

--Anatoli (обсудить/вклад) 08:50, 14 April 2013 (UTC)

Moved group 3 from Module:ru-verb-testmodule[edit]

I have moved four type 3 functions from Module:ru-verb-testmodule - a, b and c stress patterns and one irregular. Unlike types 1 and 2, this seems to be complete and works for one exception as well. Will address irregular verbs of types 1 and 2. And I need to document the functions and calling templates. --Anatoli (обсудить/вклад) 01:01, 18 April 2013 (UTC)

conjugations["4a"][edit]

I'm making the necessary changes to the function to allow for variant imperatives - unpredictable, predictable iotation. Currently the calling template is using Module:ru-verb-testmodule. I'm going through the whole type 4, so other functions will be changed or added. --Anatoli (обсудить/вклад) 12:27, 18 April 2013 (UTC)

When converting Module:ca-verb, I've tried to allow for as few irregularities as I could. The module currently only supports two irregular forms: the past participle and a stress-based stem change. My intention was to see how many regular forms could be done first. That way, what you're left with is only the irregular verbs, which makes it much easier to recognise what changes would be needed to support them. In Catalan, as it turns out, the remaining irregular verbs are just single verbs rather than any verbs with specific patterns, so they would just need to be taken care of individually. —CodeCat 12:45, 18 April 2013 (UTC)
Yes, if you mean the "irreg" functions I've done so far, they would only work for those exceptions but as I found later, one template works for two verbs. I could have done them later but I'm going through each type, trying not leave anything behind and may find that that template may also work on another one. I may review them when I'm done with regular verbs. The "regular" ones are also not that regular, they may have a different form of imperative (unpredictable) or two interchangeable forms. --Anatoli (обсудить/вклад) 13:58, 18 April 2013 (UTC)
I meant adding the ability to say "this verb is regular, except for these forms". The old Catalan templates allowed you to say that any form was irregular, but that really became a mess because there were long lists of forms in entries. So with the module I want to prevent that. —CodeCat 14:14, 18 April 2013 (UTC)
I see your Module:ca-verb only handles regular verbs. Do you want me to move irregular verbs to a different module? I'd prefer irregular verbs to be handled by a module as well (either this one or a separate), some irregular verbs also have a number of derivatives. So far, I've been able to keep few functions for a variety of conjugation types. I've added handling of consonant interchange into type 4 (that is still in the test module but the same will have to be done to b and c subtypes). The imperative form difference (ь/й) seems to be only partially predictable. --Anatoli (обсудить/вклад) 22:45, 18 April 2013 (UTC)
Oh, no. That module isn't finished yet. My intention is to add new functions for the remaining verbs, but they would work differently. Instead of making functions that work for whole classes of verbs, these functions would conjugate just that one verb, and derivatives of it. So for example the irregular verb estar would have its own function. In fact, some of them already have their own templates right now, so it's just extending that same idea to the remainder. Basically what I have done is I've looked at Catalan verbs and asked "how many verbs have this irregularity", and then I figured, I might as well not even create a "type" for them because there's just one or two like it. But you may also notice that I have actually added specific exceptions for some verbs. The verb donar is regular but has a few unpredictable forms, and the module recognises when someone conjugates that form and replaces the forms accordingly. I have also applied that principle to Module:nl-verb, for verbs like zeggen or houden. So technically, as long as the list of exceptions is small, you can even treat them as regular verbs and make the module so that it catches those verbs and handles the exceptions itself. —CodeCat 23:00, 18 April 2013 (UTC)
My idea is not different from yours. Irregular verbs like есть will have a bunch of derivatives, perfective and imperfective, so a separate function will handle them. Slight but unpredictable variations in the conjugations are also handled by one template but I use additional parameters, which is more intuitive to editors, rather than relying on the module to figure out everything. Predictable variations are done consistently (I'm using your code and also started using Module:ru-common). Russian verbs are more complicated than Romance or Germanic verbs, and because of various stress patterns even more complicated than Czech and Polish (but these two have more predictable consonant interchanges and internal vowel (especially Polish)), so there will be more Russian functions. Surprisingly, there's little systematic approach to address Russian verbs in a smart systematic way. All reference materials, online or print, as a maximum provide conjugations of individual verbs (e.g. 501 Russian verbs) and show only two conjugation types. Zaliznyak's work hasn't been implemented and described anywhere except the Russian Wiktionary but there are some errors there. I may have some technical questions but I think I'll be able to make a module comprehensive and good. Please let me know about the irregular verbs - separate modules and templates? --Anatoli (обсудить/вклад) 23:26, 18 April 2013 (UTC)
With irregular verbs in Dutch, I made a single template which takes the name of the verb itself as the parameter. The module then just shows the inflection of that verb, which is stored in the module itself. —CodeCat 02:30, 19 April 2013 (UTC)
That's not a bad idea. It can partially be applied to Russian. Although the endings in Dutch are more consistent, in Russian you would still need to fit inflected forms into some other template or templates. Verbs миновать and живописать combine features of the 1st and the 2nd type, минуть has two types of stress patterns, ru:морщиться (not done yet) has two forms of imperatives. есть, хотеть, мочь are completely irregular (some can be reused for other verbs). I only scratched the surface of irregular verbs. --Anatoli (обсудить/вклад) 02:46, 19 April 2013 (UTC)
If Russian is anything like Proto-Slavic, then there are really only two types of present tense endings... one with -e- as the vowel and one with -i-. I suppose because Russian has separate letters for a preceding j, there would be one or two more types. But what if you split off the formation of the present into a separate function? Then it could be re-used for almost all verbs. —CodeCat 02:52, 19 April 2013 (UTC)
It's possible but I might get lost. Will think about it. Not just -ет(-ёт)/ит but also different stress patterns (stressed "е" changes to "ё"). If present can be done, then past as well. There are two stress patterns an -0- ending for some masculine forms. --Anatoli (обсудить/вклад) 03:01, 19 April 2013 (UTC)

Conjugation endings to use in a separate function and/or in the documentation[edit]

Moved to Appendix:Russian stress patterns - verbs --Anatoli (обсудить/вклад) 13:09, 20 April 2013 (UTC)

Thank you. I will try to work on the two present conjugations instead as they seem simpler. Do you know if the present participle(s) and/or the imperative also follow those two patterns? —CodeCat 12:55, 20 April 2013 (UTC)
I have moved to an appendix, as above.
They seem predictable but see у́чащий/уча́щийся (from учить/учиться) and there are some variations in using ь/и in type 4a (unstressed ending), й is used after vowels.
a/: де́лающий (делать), ве́рящий (верить); b/: беру́щий (брать), стоя́щий (стоять); c/: пи́шущий (писа́ть), у́чащий (учить)/уча́щийся (учиться)
a/: де́лай, ве́рь; b/: бери́, стой; c/: пиши́, учи́/учи́сь. --Anatoli (обсудить/вклад) 13:09, 20 April 2013 (UTC)
Variations are not that much of a problem as long as they are predictable from the stem in some way. What I need to know is, can the current 3 functions (which I created) correctly create the imperative forms based on the parameter that they have received? —CodeCat 13:23, 20 April 2013 (UTC)
Please fix the script error.
I'll search for the answers. I have no confidence yet in answering with certainty. The accent matches 1st person singular but forming may be less predictable for stems ending in consonants.
I wouldn't create functions for imperatives for all verbs just yet. E.g., type 11's imperatives have forms, which are different from personal forms: бить - бей (я, бью, ты бьёшь). I'll write about some rules. --Anatoli (обсудить/вклад) 13:37, 20 April 2013 (UTC)
Present participle is predictable, I've written in Appendix:Russian stress patterns - verbs. --Anatoli (обсудить/вклад) 14:35, 20 April 2013 (UTC)

I have been looking at the imperative forms that we have so far and I think that they may be predictable:

  • Stem ends in vowel -> й
  • Stem ends in hushing consonant ->
    • Accent A -> ь
    • Accent B + C -> ??
  • Stem ends in other consonant ->
    • Accent A -> и
    • Accent B + C -> и́

Can you see if this applies correctly to most verbs? —CodeCat 14:45, 20 April 2013 (UTC)

  • Stem ends in vowel for B + C is also и́ - поить - пои́, hushing or other consonant, still и́, водить - води́, держать - держи́.
  • The issue is only with stress pattern A, which can get either ь or и. Single consonant seem to get ь (including hushing consonants, for which ь is only a grammatical indicator (прятать - прячь), clusters may get ь or и. The rules is not clear to me yet and haven't found enough info. Type 11 is completely different as above. --Anatoli (обсудить/вклад) 20:58, 20 April 2013 (UTC)
    • But for 2b it's -у́й and not -уи́? I'm not sure if поить counts as a good example because it's irregular anyway. I will leave things as they are for now, maybe it will be clearer when we've created functions for more classes. What we could also do is assume a default, and just override (by reassigning) the default form in the individual conjugations when necessary. That way, we can easily see for which verbs the default works and for which it doesn't. —CodeCat 21:44, 20 April 2013 (UTC)
"поить" is standard because и is stressed: "пои́ть", other verbs with this stress pattern will work the same way - дои́ть - дои́.
I can suggest the following:
Types 1 and 2 get й.
From 3 upward: "и́" is consistent for b and c stress patterns, except for types 2b (goof pickup!) and 11.
Otherwise, for type a: й - after vowels, ь after single consonants and и after consonant clusters. Some consonant clusters have variants: морщиться but forms with ь are less common, a bot colloquial but also sometimes harder to pronounce - портить - по́рти, порть. "и" would work as default for type a with consonant clusters (any two consonants). If there are any exceptions, we can review. --Anatoli (обсудить/вклад) 00:14, 21 April 2013 (UTC)

Script error[edit]

See делать and must many other verbs:

Lua error in Module:ru-verb at line 595: attempt to concatenate local 'stem' (a nil value). --Anatoli (обсудить/вклад) 13:39, 20 April 2013 (UTC)

Fixed, hopefully. —CodeCat 13:44, 20 April 2013 (UTC)
Thanks. --Anatoli (обсудить/вклад) 20:59, 20 April 2013 (UTC)

Parameters of 3c and 10c[edit]

These two conjugations have extra stem parameters. 3c has stem and stem2, and 10c has inf_stem, stem2 and stem3. What do those stems actually mean? Is stem2 just stem with an accent in it, and likewise for stem3 and stem 2? If that's the case, then those parameters are not needed, because Lua can remove the accents. I think clearer names would also be more appropriate. I have named variables that had the accents removed with _noa (for "no accent") or we could change that to _noacc if it's clearer. In any case it's very important to use names that are clear and descriptive, so that others can understand what they represent. —CodeCat 13:48, 20 April 2013 (UTC)

Done, thanks for fixing the order. --Anatoli (обсудить/вклад) 20:59, 20 April 2013 (UTC)

conjugations["2b"][edit]

This part:

    pres_stem = mw.ustring.gsub(pres_stem, "о(́?)ва(́?)$", "у%1%2")
    pres_stem = mw.ustring.gsub(pres_stem, "е(́?)ва(́?)$", "ю%1%2")

is working OK but I don't know if it's justified scientifically and perhaps it's better to have two parameters for two different stems. There seem to be no rule on how the present form is made, like type 10. --Anatoli (обсудить/вклад) 21:32, 20 April 2013 (UTC)

Could you let me know before I convert verbs from Template:ru-verb-2b-impf to this module Template:ru-conj-2b? I go mushrooming today and will be away for most of the day. --Anatoli (обсудить/вклад) 21:34, 20 April 2013 (UTC)
It is justified scientifically, because this alternation happens the same way in all Slavic languages and is therefore inherited from Proto-Slavic. And in Proto-Slavic itself, it is the result of regular sound changes. The original endings were *(j)-ova-ti and *(j)-ov-j-, which were then affected by these two sound changes:
  1. o > e after hushing consonant or j (this is the change that you also see in hard vs. soft stem nouns): *-ova-ti, *-ov-j- but *j-eva-ti, *j-ev-ju
  2. ov > u, ev > ju before a consonant: *-ova-ti, *-u-j- and *j-eva-ti, *j-u-j-
So, it is very much scientifically justified... —CodeCat 21:51, 20 April 2013 (UTC)
Agreed, will change "наставать" to use a different function later. --Anatoli (обсудить/вклад) 10:06, 21 April 2013 (UTC)

present_e_a and similar functions for type 4[edit]

I wonder how to use this type of functions with stems that don't have the hushing consonants but change their consonants in 1st person singular, like бредить (using "conjugations["4a"]" in my Module:ru-verb-testmodule but I'd like to convert using your new logic). 1st singular - бре́жу, 3rd plural - бре́дят. "бре́ж" is the "iotated_stem" and "бре́д" is "stem" in the function.

Perhaps the forms should be build in the main function first, then passed to present conjugation first, which ending would fit? --Anatoli (обсудить/вклад) 11:18, 21 April 2013 (UTC)

There is a function in Module:ru-common that performs iotation, so there is no need for a parameter. If we automatically add iotation to the 1st person singular of i-presents, then it should be applied to all stems where it is possible (which I think is correct, but you should check). We would need to perform iotation first, and then see if the result of the iotation has a hushing consonant, and then apply the rule. That means that if the stem undergoes iotation, then the 1st person singular might have a hushing consonant while the 3rd person plural does not. —CodeCat 12:10, 21 April 2013 (UTC)
I think you misunderstand my question. I'm already using the iotation function in Module:ru-verb-testmodule: local iotated_stem = com.iotation(stem). The problem in the function "present_e_a" is that it takes "stem" as the parameter, which assumes that all present forms are either iotated or not iotated. Please see "conjugations["4a"]" function in Module:ru-verb-testmodule and please tell me if how I could use the conjugation function with verbs like бредить. --Anatoli (обсудить/вклад) 12:20, 21 April 2013 (UTC)
Why are you not using present_i_a instead? The iotation applies only to i-presents, not e-presents. —CodeCat 12:30, 21 April 2013 (UTC)
I chose one name of the function but this is applicable to all of them. "present_i_a" converts both "pres_futr_1sg" and "pres_futr_3pl", which is not desirable (which type did you use it for). Need to convert only "pres_futr_1sg". --Anatoli (обсудить/вклад) 12:39, 21 April 2013 (UTC)
Yes, that is why I said, if the function applies iotation, it needs to check those two forms separately. I've added it to present_i_a now to show what I mean. —CodeCat 12:43, 21 April 2013 (UTC)
Now that you separated "present_i_a" it is clearer to me how it works. I will test new functions here then.
Could you apply the following logic to "conjugations["4a"]", please?:
Variable "impr_end" (imperative ending) should be for "a" stress type the following: "й" - after vowels, "ь" - after single consonants, "и" - after consonant clusters (any two of "бвгджзклмнпрстфхцчшщ" in a row?). --Anatoli (обсудить/вклад) 13:13, 21 April 2013 (UTC)
I can check for vowels and consonants using this:
    if mw.ustring.find(stem, "[аэыоуяеиёюа́э́ы́о́у́я́е́и́ю́]$") and impr_end == nil then
        impr_end = "й"
    else --default
        impr_end = "ь"
    end
but don't know how to check for two consonants in a row, could you help, please.
Function "conjugations["4a-сс"]" (template: "Template:ru-conj-4a-сс") could go if you could do that. The only difference of this with "conjugations["4a"]" (without "-сс") is the imperative form endings in consonantal stems - "ь" vs "и": --Anatoli (обсудить/вклад) 13:17, 21 April 2013 (UTC)
You can check for a sequence by removing the []. The [] means "any of these characters". You can also use [^ at the start to say "none of these characters". You need to be careful with accented vowels, because they really count as two characters, not one, so they are really a sequence. So [аэыоуяеиёюа́э́ы́о́у́я́е́и́ю́] really contains all the vowels twice, and lists the accent character ten times. It is nearly equivalent to [аэыоуяеиёю́], which means "all ten vowels, and the accent on any letter". If you want to make absolutely sure that the accent is on a vowel, you can use "[аэыоуяеиёю]́" which means "any vowel, followed by an accent". —CodeCat 14:06, 21 April 2013 (UTC)
Thank you, I'll check tomorrow. It's too late here. I'll have to read something about Lua's regular expressions. By "[аэыоуяеиёюа́э́ы́о́у́я́е́и́ю́]" I meant "any vowel, with or without accent". How do I check for a sequence of two consonants at the end of the stem? --Anatoli (обсудить/вклад) 14:18, 21 April 2013 (UTC)
You can use "CC$", but that checks only for two C's. I suppose you could do it like this: "[^аэыоуяеиёю][^аэыоуяеиёю]$" which means "any character that is not a vowel, followed by any character that is not a vowel, followed by the end of the string". But that would not work for а́C because that matches the sequence, because C is not a vowel and the character before it is not a vowel either (because it's the accent). So I think treating the accent as a vowel too, like "[^аэыоуяеиёю́][^аэыоуяеиёю́]$", would work best. As long as nobody puts a vowel on a consonant (р́р would not match), it would work. —CodeCat 14:31, 21 April 2013 (UTC)
Thank you, that's really helpful. I've modified the function the following way. (Note: this only applies to stress pattern "a", b and c use only "и").
    --set defaults if nothing is passed, "й" for stems ending in a vowel, "ь" for single consonant ending, "и" for double consonant ending
    -- "й" after any vowel, with or without an acute accent (беспоко́ить), no parameter passed
    if mw.ustring.find(stem, "[аэыоуяеиёю́]$") and impr_end == nil then
        impr_end = "й"
    -- "и" after two consonants in a row (мо́рщить, зафре́ндить), no parameter passed
    elseif mw.ustring.find(stem, "[CC$]$") and impr_end == nil then
        impr_end = "и"
    -- "ь" after a single consonant (бре́дить), no parameter passed
    elseif mw.ustring.find(stem, "[аэыоуяеиёю́C$]$") and impr_end == nil then
        impr_end = "ь"
    -- default
    else --default
        impr_end = "ь"
    end
Could you please check? Will add the comments to the model, as above. --Anatoli (обсудить/вклад) 00:37, 22 April 2013 (UTC)
Sorry, I think you misunderstood. I meant C as a kind of placeholder to describe the idea. If you literally type in "CC$" then that is what it will match: two capital letter C's. If you put it in [ ] then it becomes a choice between one of the characters, so "[CC$]$" means "a Latin capital letter C (the second one is redundant), or a dollar sign, at the end of the string". "[аэыоуяеиёю́C$]$" means "any Russian vowel, or an acute accent, or a Latin capital letter C, or a dollar sign, at the end of the string". —CodeCat 00:39, 22 April 2013 (UTC)
Oops, I've changed to "elseif mw.ustring.find(stem, "[бвгджзклмнпрстфхцчшщ][бвгджзклмнпрстфхцчшщ]$") and impr_end == nil then". Is it better? --Anatoli (обсудить/вклад) 01:00, 22 April 2013 (UTC)
It's working! Removing "conjugations["4a-сс"]" function. --Anatoli (обсудить/вклад) 01:40, 22 April 2013 (UTC)

Type 4 exception groups[edit]

The basic forms for type 4 are now complete but there are many important exception groups, e.g. when "т" is iotised as "щ" (защити́ть - защищу́), not "ч" (usually тратить - тра́чу) or when "т" is not undergoing iotation (почти́ть - почту́), also verbs with 1st pers. sg. missing altogether - победи́ть - 0. Some groups are not so small and can have derivatives. --Anatoli (обсудить/вклад) 03:07, 22 April 2013 (UTC)

The current template already covers the majority of verbs of type 4.

A few verbs/patterns to consider:

  1. "т"-> "щ" (not "ч") (a larger group with this type, will make a separate function) ru:поглотить (Шаблон:гл ru 4c(7)-щСВ), ru:защитить (see ru:защититься Шаблон:гл ru 4b-щ-сяСВ), возвратиться, etc (ru templates use letter "щ").
  2. Missing 1st pers. sg. missing altogether - ru:победить (Шаблон:гл ru 4bСВ-жд) (убедить, переубедить, возродить, (на)дерзить, предубедить, разубедить, побудить)
  3. ru:очутиться (Шаблон:гл ru 4c-т?-сяСВ) - no 1st pers. sg. or " очучусь"?
  4. ru:стелить (Шаблон:гл ru 4c-стелить) - exception. --Anatoli (обсудить/вклад) 05:30, 22 April 2013 (UTC)
I am wondering why iotation sometimes resulted in "т"-> "щ" rather than the regular "ч". I know that in Old Church Slavonic щ was the normal outcome of iotated т, but in OCS that letter was pronounced as št. Iotated t always has the same outcome as kt and gt in infinitives, so Russian has some infinitives ending in -чь, and in OCS those same infinitives end in -щи (-šti). The only reason I can think of why Russian might use that letter for iotation, could be because they might have borrowed the verb and all its forms from OCS while preserving their spelling, and therefore also inherited the (irregular for Russian) iotation outcome. I would need to know the Proto-Slavic origin of the "т"-> "щ" verbs to understand this more. Do you think you could help with that? —CodeCat 12:41, 22 April 2013 (UTC)
I'm not so good with etymologies but защитить/защищать (related term: щит - shield) seem to be derived from Proto-Slavic "*ščitъ", Slovene cognate ščìt. See ru:защищать#Этимология. возвращаться/возвратиться - OCS "вращати" --Anatoli (обсудить/вклад) 14:19, 22 April 2013 (UTC)

no_short_past in 3a[edit]

There is an if statement there with three possible cases. But I don't really understand what they are for. Either there is a short past or there isn't one, right? Why three options and not just two? —CodeCat 12:34, 22 April 2013 (UTC)

Not exactly. One param is for no_short_past and no_short_past_partcpl sometimes seem to be independent from each other. That's what I found when I looked at various verbs of type 3. Zaliznyak marks them with 5 and 6 for each exception type (5 - no short present, 6 - no short past participle). There are definitely verbs that never have short forms, the other way is also true. I have no example ready right now where one is true but not the other (I saw them before). I thought I'd keep it that way because this type has many verbs for which one or the other short form is either not used at all or extremely rare. It would be easier if ru-wikt was consistent about this but it's not and I don't have all verbs in my memory. I had to verify verb forms, which are not in the template or vice versa - they were but sounded weird to me. Sorry if I sound confusing. --Anatoli (обсудить/вклад) 14:08, 22 April 2013 (UTC)
What confuses me is the parameters. The parameter can either be yes or no, and yet there are three possibilities. How do you specify the third possibility? "maybe"? :p —CodeCat 14:52, 22 April 2013 (UTC)
I see. This could be done better. I wanted to make the parameters optional without making the module crash or generate errors if parameters are missing. In this example (завянуть, although short form "завявший" is also attestable) is the second argument nil or ""? {{ru-conj-3a|pf-intr|завя́||1|нь|завя́нуть|завял}} I don't know ho wto test the module without first saving saving it, which makes it more time-consuming. --Anatoli (обсудить/вклад) 23:36, 22 April 2013 (UTC)
I don't know how to test it either. In your example, the second argument is "завя́" but I assume you meant the third, which is "" and not nil. It is only nil if the argument is missing altogether, which is harder to do for numbered parameters. For that reason I usually do it this way: local param = args[3]; if param == "" then param = nil end That way, "" and nil become equivalent, because every time it is "" it is changed into nil. It doesn't really matter whether you choose to represent empty parameters with "" or with nil, so you could also do the opposite: local param = args[3]; if param == nil then param = "" end Both approaches have advantages and disadvantages, and consequences you need to be aware of:
  • When you put things in an if-statement, the condition is converted into a boolean value (true or false). nil is considered false, but "" is considered true. That means that if you want to check whether a parameter has been provided, if param then (or to check if it is missing, if not param then) is enough. If you use "" to represent an empty parameter, you will instead need if param ~= "" then (or if param == "" then for the opposite) which is less clear and slightly more cumbersome.
  • The same also applies when you want to choose a default value if the parameter is missing. If you use nil, it becomes (param or "default") which will use param if it is not nil, otherwise it will use "default". If you use "", it is a bit longer: (param ~= "" and param or "default").
  • One advantage of using "" is that you can easily add it to another string: local someword = stem .. param. You cannot add nil to a string, so if you use it, you have to use a default-value-expression, like so: local someword = stem .. (param or "").
I prefer to use nil instead of "", although I didn't start doing that immediately (Module:nl-verb uses "" instead, but it's easy to convert). —CodeCat 23:51, 22 April 2013 (UTC)
Yes, I meant the 3rd parameter. I understand and I saw your examples of evaluating nil as false. I see you have already converted the code, thanks for that. --Anatoli (обсудить/вклад) 00:52, 23 April 2013 (UTC)

temp fix[edit]

I had to use this to fix the fix the error. Not the best solution but it's working now for both тратить (тра́чу) and похитить (похи́щу) - two types of iotation:

    -- if shch is nil, pass a dummy string, otherwise pass "щ"
    if not shch then
        present_i_a(forms, stem, "blah")    -- param #3 must be a string
    else -- tell the conjugator that this is an exception
        present_i_a(forms, stem, shch)
    end

Checking for nil won't work in Module:ru-common, so I changed it to check explicitly for "щ". --Anatoli (обсудить/вклад) 13:32, 23 April 2013 (UTC)

Why doesn't it work? —CodeCat 14:14, 23 April 2013 (UTC)
I was getting an error message, something "string expected, got nil". My previous version (before your last edit) didn't work either. I made it work (test: тратить (тра́чу) and похитить (похи́щу)) but this temporary fix is not elegant. Please change to make it a better style if you can. I will follow your style and make a change to b and c functions.
I'd also like to accommodate conjugation of verbs like победить, возродить (type 4b), which don't have 1st person singular future (they are all perfective). I'll have to change three functions for that. Hopefully I can reuse a similar approach as with "т-щ"-verbs. --Anatoli (обсудить/вклад) 22:22, 23 April 2013 (UTC)
It would be helpful if I knew where that error occurred. Script errors normally tell you in which function on which line the error happened. If this special type 4b is the same as the regular type 4b, except for this strange missing form, then maybe there isn't even a need for a special function. Just a parameter like "no_1sg_futr=1" would be enough. Another way would be to add code to the function that recognises when the stem is one of these verbs, and does it automatically, but that is only useful if there aren't many verbs like this. —CodeCat 22:26, 23 April 2013 (UTC)
Sorry, I couldn't replicate the error. I've changed it to you style, I hope. Anyway, it's working and I will do the same for b and c functions.
With the parameter "no_1sg_futr=1", i would need to make change in "present_i_a" as well, meaning that both "conjugations["4a"]" and "present_i_a" need a new parameter?
(before the edit conflict):
function present_i_a(forms, stem, shch, no_1sg_futr)
...

    if no_1sg_futr == 1 then 
        forms["pres_futr_1sg"] = ""
    elseif mw.ustring.find(iotated_stem, "[шщжч]$") then
        forms["pres_futr_1sg"] = iotated_stem .. "у"
    else
        forms["pres_futr_1sg"] = iotated_stem .. "ю"
    end

--Anatoli (обсудить/вклад) 23:15, 23 April 2013 (UTC)

There is no need to change present_i_a... you can just allow it to generate the form as usual, and then override it after the call. It could also be made into a global parameter that applies to all templates identically, like the first parameter and the participle already do. That way, you won't need to add it to every conjugation where this occurs. —CodeCat 23:18, 23 April 2013 (UTC)
(after the edit conflict). Thanks for your help. I see. Will try to implement your approach. --Anatoli (обсудить/вклад) 23:22, 23 April 2013 (UTC)

1, 2, 3, 4 types are done[edit]

Conjugation for verb types 1, 2, 3, 4 are completely Yes check.svg Done! It wasn't easy for me but I'm getting a hang of it, a little. Type 3 is only documented in the templates, type 4 needs to be documented. Haven't checked for very minor exceptions. Thank you very much for your guidance, CodeCat! There are many types to do but it should become much easier. --Anatoli (обсудить/вклад) 05:20, 24 April 2013 (UTC)

There are some annoying exceptions but I will address them later. --Anatoli (обсудить/вклад) 03:32, 25 April 2013 (UTC)

Red links[edit]

I'd like to display red links as black. How can this be done? --Anatoli (обсудить/вклад) 02:12, 25 April 2013 (UTC)

I think you add the "inflection-table" CSS class, but I'm not sure. —CodeCat 02:25, 25 April 2013 (UTC)
Thank you, I will check on GP later. (I'm doing type 5a on Module:ru-verb-testmodule). --Anatoli (обсудить/вклад) 03:28, 25 April 2013 (UTC)

Splitting future imperfective?[edit]

@CodeCat. I'd like to split "бу́ду де́лать" into "бу́ду" "де́лать" or simply бу́ду де́лать, etc. leaving transliteration as it is. Could you help me with this, please? --Anatoli (обсудить/вклад) 07:30, 27 April 2013 (UTC)

I think it would make more sense to not link them at all. Or to link only the first word. The second word would always be the same as the current page. —CodeCat 11:05, 27 April 2013 (UTC)
Yes, please, that would be great, if you could do it. --Anatoli (обсудить/вклад) 11:08, 27 April 2013 (UTC)
I'm actually not sure how to do it. If I add links to the future auxiliary, then that link will also appear in the transliteration... —CodeCat 12:09, 27 April 2013 (UTC)

This section could be processed later and excluded from the "for loop" for key, form in pairs(forms) do ...

        forms["futr_1sg"] = "бу́ду " .. forms["infinitive"]
        forms["futr_2sg"] = "бу́дешь " .. forms["infinitive"]
        forms["futr_3sg"] = "бу́дет " .. forms["infinitive"]
        forms["futr_1pl"] = "бу́дем " .. forms["infinitive"]
        forms["futr_2pl"] = "бу́дете " .. forms["infinitive"]
        forms["futr_3pl"] = "бу́дут " .. forms["infinitive"]

This "if statement" should exclude all "futr..." forms.

   if form ~= "" then

I could add the above section with translit just below the "for loop" but I don't know how to exclude them from processing by the "if statement". --Anatoli (обсудить/вклад) 12:18, 27 April 2013 (UTC)

But it shouldn't skip if the verb is perfective, should it? —CodeCat 12:30, 27 April 2013 (UTC)
Yes, that's right, only imperfective compound future forms. Perhaps, it's also better to process the infinitive form later as well. I will add translit later. --Anatoli (обсудить/вклад) 12:42, 27 April 2013 (UTC)
Thank you, looks great! --Anatoli (обсудить/вклад) 14:08, 27 April 2013 (UTC)

Irregular verbs[edit]

Wouldn't it be reasonable to move all irregular verb forms into separate data table which will be loaded via mw.loadData() when other types are insufficient? And: I think that есть as "to eat" definitely has present active participle едящий and probably has present passive form едомый. The reason in separate module is also that such cases would be fixed in it without regenerating all the verb pages. Ignatus (talk) 13:05, 14 May 2013 (UTC)

UPD: I see you added them, and even form едя (I don't use it in my speech but maybe it's considered possible by scholars). But now I note that it has broken the logic. These templates for irregular verbs should handle a bunch of verbs derived from basic one by prefixes, e.g. поесть, заесть, отъесть etc. But since such verbs are mostly perfective (and sometimes have other differences from their parent), they don't have some forms of original verb, like present active participle *поедящий. Another example of current malfunctioning is absence of pres_adv_part будучи for быть. Thus, we either should examine the inf form specially, if it is strictly есть or something more, and include some switches for it (as it is done in some other cases); or for original form we should override some parts of the paradigm in-place (after forming it automatically, examine args for parameters like pres_adv_part=будучи, and generate table after that). Ignatus (talk) 18:06, 2 June 2013 (UTC)

  • Having examined поесть, I se that pf suppresses unnecessary forms, so the edit doesn't need to be rollbacked, and for some rare prefixes which don't form perfect (не-, со-, сверх-, compound bases) sush forms can exist (but prefix.. was omitted, so if words like *малоесть ever appear and listed, they wouldn't work). But en tute I don't like the code structure. Ignatus (talk) 18:22, 2 June 2013 (UTC)

P.S. Generating result with endless consequentive concatenations is an inefficient way, consider using string.format or table.concat instead. Ignatus (talk) 18:06, 2 June 2013 (UTC)

Thank you for your efforts and no doubt, for the just criticism but I'll have to decline. Despite being a poor Lua developer, nevertheless, I've brought this module to the conclusion. Don't get me wrong, I don't want to take all the credit for the work, thanks to CodeCat, she got me started. It will now work for 99% of Russian verbs, including irregular and marginal cases. Admittedly, there are flaws. My main concern is not the code standards but the fact that I only implemented Andrey Zaliznyak's idea partially. Types 1 to 16 have subtypes - a/, b/ and c/ but only the present tense stress variation was implemented in this module. Many types have the second part - /a, /b and /c - for the past tense. As a result, some functions are more complicated than others, e.g. 7b is more complicated than it could be if it were split. Stressed final particle "ся́", alternative forms, override and missing forms were added later and it wasn't done the best way. Still, the module works and is almost complete. No need to fix something, which is not broken. Even if it's less efficient, I can understand it.
I'll have to support, enhance and document the functions of this module, so that other users can use it. Some parts of you module I may start using when I understand them.
Thank you for understanding. You may use your skills for other languages lacking such modules. New transliteration modules are needed and some need a lot of attention. With Korean, Hindi I know the reading rules but don't know how to code this. Modules can be done for languages such as Thai - again, the problem is in expressing the rules in code. There are about 2,000 Russian verbs to convert. We also have Russian noun and adjective templates, which are not Lua'ised. But it's not just about creating a module, needed to see it in action, stress-test it and convert a number of entries to use them. Tell me, which of the projects are you interested in. (Feel free to reply in Russian if it's too hard). --Anatoli (обсудить/вклад) 23:24, 2 June 2013 (UTC)
Well, I won't insist except on fixing быть, I didn't examined this module very carefully. I'll think about noun/adjective modules. In fact, in Russian wiktionary there is totally very few lua yet, it's seemingly main techadmin is now busy on Wikipedia, thus the front of works is great. Ignatus (talk) 18:51, 4 June 2013 (UTC)

Another suggestion[edit]

Is it ok for anyone to include biaspectual verbs? From

impf - imperfective, transitive
pf - perfective, transitive
impf-intr - imperfective, intransitive
pf-intr - perfective, intransitive
impf-refl - imperfective, reflexive
pf-refl - perfective, reflexive

Into

impf - imperfective, transitive
pf - perfective, transitive
impf-intr - imperfective, intransitive
pf-intr - perfective, intransitive
impf-refl - imperfective, reflexive
pf-refl - perfective, reflexive
bi - biaspectual, transitive
bi-intr - biaspectual, intransitive

Just saying. --KoreanQuoter (talk) 09:11, 20 April 2014 (UTC)

2 exceptions for клеветать and жаждать[edit]

@Wyang Hi Frank, клеветать is type "6c" needs a "щ" parameter, like "4a", жаждать is "6a" type, it needs to suppress iotation, like you did before. Could you help me, please? --Anatoli T. (обсудить/вклад) 23:18, 20 November 2014 (UTC)

бдеть[edit]

I couldn't find a parameter no_1sg_pres in this module.--Cinemantique (talk) 08:15, 6 July 2015 (UTC)

OK, leave it with me. --Anatoli T. (обсудить/вклад) 08:52, 6 July 2015 (UTC)
@Cinemantique, KoreanQuoter, Stephen G. Brown, Vahagn Petrosyan, Wanjuscha Yes check.svg Done Hopefully, it should work for any verb type with no 1st person singular present or future. For победить I used specific coding for the conjugation class but now made it more generic. Now, we have a bunch of verbs, which have no present tense, such as писывать, an iterative verb but not all iterative verbs have no present tense, e.g. полёживать, поглядывать, похаживать, etc. have present tense forms. I've made слыхать and видать "exceptions" (they can't be classified as iteratives but they have no present tense) but we may need to review how we categorise some of these verbs. We can probably just use no_present/no_future param for now (I will add it to my to-do list). User:Dan Polansky suggested iterative verb categories for Czech on his own talk but it was never implemented. --Anatoli T. (обсудить/вклад) 11:23, 6 July 2015 (UTC)
Fascinating, Anatoli. --KoreanQuoter (talk) 11:26, 6 July 2015 (UTC)
Thank you, Anatoli. Russian iterative verbs have no present tense, including participles (see Zalizniak's dictionary, page 88). If they have they are not iterative. In dictionaries iterative verbs are marked as "многокр." or "наст. вр. не употр." (example).--Cinemantique (talk) 12:10, 6 July 2015 (UTC)
(before edit conflict) Hmm, I beg to differ. While many iterative verbs don't have the present tense, some do. Verbs поглядывать, похаживать ARE iterative by nature/definition but they do have present tense forms, I would add бывать to this category (certain senses). As I said, we could use no_present/no_future parameter to suppress present/future tense forms but adding iterative category is slightly a different thing, IMO. We don't have to combine both features. --Anatoli T. (обсудить/вклад) 12:31, 6 July 2015 (UTC)
No, they are not. Anatoli, please read §§ 1410 and 1424 there.--Cinemantique (talk) 12:47, 6 July 2015 (UTC)
OK, we need to define/categorise "глаголы прерывисто-смягчительного способа действия" then. The verb бывать is still iterative according to this source and it has present tense forms. --Anatoli T. (обсудить/вклад) 13:11, 6 July 2015 (UTC)
According to Zalizniak's dictionary, "бывать" is not iterative. I think we should use this source in case of doubt.--Cinemantique (talk) 13:46, 6 July 2015 (UTC)
Do we have a parameter for impersonal verbs, by the way (e.g. знобить)? They have only infinitive and 3d person singular forms.--Cinemantique (talk) 12:21, 6 July 2015 (UTC)
(after edit conflict). Yes, ...|impf-impers-refl or ...|pf-impers-refl. --Anatoli T. (обсудить/вклад) 12:31, 6 July 2015 (UTC)

варить[edit]

Zalizniak: 4c [④] -- present active participle ва́рящий or варя́щий.--Cinemantique (talk) 02:11, 7 July 2015 (UTC)

Added with "...|pres_actv_part2=ва́рящий". The module has a list of parameters for alternative forms, after the line "--alternative forms". --Anatoli T. (обсудить/вклад) 02:20, 7 July 2015 (UTC)

мереть[edit]

According to many sources, the adverbial participle is not in use. Zalizniak's dictionary gives мёрши but I couldn't find examples.--Cinemantique (talk) 01:38, 8 July 2015 (UTC)

You can add usage notes (e.g. rare/prescriptive form) or * small notes just below the conjugation table. Let me know if you require any change. It's not just Zaliznyak, other dictionaries list this form too, e.g. Ozhegov. We may need to search more thoroughly also using мерши spelling. --Anatoli T. (обсудить/вклад) 01:52, 8 July 2015 (UTC)
I have Ozhegov/Shvedova-4 (2000) and Ozhegov-28 (2013). I don't see мере́в, мере́вши or мёрши there.--Cinemantique (talk) 02:44, 8 July 2015 (UTC)
@Cinemantique if nothing can be cited, we can remove the forms altogether or use only those, which can be confirmed. What do you suggest and what are your findings? I don't have my Zaliznyak dictionary here with me (I am in Brisbane on a contract but I live in Melbourne). --Anatoli T. (обсудить/вклад) 11:10, 8 July 2015 (UTC)
According to Zalizniak's dictionary, verbs of this class (impf 9b) have only one adverbial participle (stem + -ши).--Cinemantique (talk) 12:55, 8 July 2015 (UTC)
Your image shows "тёрши", so мереть should only have "мёрши", which we couldn't find citations for, right? --Anatoli T. (обсудить/вклад) 13:27, 8 July 2015 (UTC)
Yes, we should use this form or nothing.--Cinemantique (talk) 13:39, 8 July 2015 (UTC)
Agreed. I'll do it later when I can. --Anatoli T. (обсудить/вклад) 13:56, 8 July 2015 (UTC)
@Cinemantique I think it's done. --Anatoli T. (обсудить/вклад) 12:04, 11 July 2015 (UTC)
Thank you!--Cinemantique (talk) 13:26, 11 July 2015 (UTC)

fixed pres_ and futr_ overrides, added 3 alternative forms for each form[edit]

@Atitarev, Cinemantique, Wikitiki89 You can now override e.g. pres_1sg for imperfective verbs, and futr_1sg for perfective verbs, and it works; no need to override pres_futr_1sg. Also, for each form there are three alternates, e.g. |impr_sg= with |impr_sg2=, |impr_sg3=, |impr_sg4=. I can easily add more if needed. Benwing2 (talk) 06:26, 5 January 2016 (UTC)

Thanks! I hope all instances with pres_futr_... are overwritten or fixed. --Anatoli T. (обсудить/вклад) 07:18, 5 January 2016 (UTC)

do all reflexive verbs have passive meaning?[edit]

@Atitarev I created расслабиться and расслабляться. My dictionary doesn't list a passive meaning for them but I assumed it's present. Is it generally safe to do so? Benwing2 (talk) 02:21, 25 February 2016 (UTC)

Yes, it's (generally) safe to do it if there is a corresponding transitive verb without -ся. --Anatoli T. (обсудить/вклад) 02:38, 25 February 2016 (UTC)

past tense forms of дать, датся and derivatives[edit]

@Atitarev Zaliznyak says that даться and all derivatives except воздаться and выдаться have the following past forms: да́лся, дала́сь, дало́сь // да́лось, дали́сь // да́лись. We also list the form дался́; ruwikt lists this as well but appears to say that it's dated. For воздаться, only the form воздало́сь // возда́лось is given; not sure if the rest are like даться. For выдаться, of course, вы́- is always stressed. Is all of this info correct? If so I want to update the forms and module appropriately. And is воздаться like даться as well? Benwing2 (talk) 21:08, 26 February 2016 (UTC)

@Atitarev Not sure if you got the ping, I messed up the signature. Benwing2 (talk) 21:47, 26 February 2016 (UTC)
  • Yes, дался́ is dated. воздаться is an impersonal verb, it has only two forms.--Cinemantique (talk) 03:23, 27 February 2016 (UTC)
Thanks. Benwing2 (talk) 04:20, 27 February 2016 (UTC)
@Benwing2 Sorry for not responding earlier. Yes, what Cinemantique said. дался́ stress pattern is also used as a dated form with other derivatives, e.g. "пра́здник уда́лся//удался́ ". The frequency of forms with the stressed -ся́ may differ from verb to verb. I think it would be OK to mark all as "dated". Yes, all forms of вы́даться have ONLY the first syllable stressed. --Anatoli T. (обсудить/вклад) 06:00, 27 February 2016 (UTC)

──────────────────────────────────────────────────────────────────────────────────────────────────── @Atitarev, Cinemantique I've implemented the dated footnote for даться and derivatives. I've also added partial support for footnotes in general for the verb module. I also added extra parameters to {{ru-conj-irreg-дать}} to support different past-tense stress patterns. But I have a question: According to Zaliznyak, преподать and various others with multisyllabic prefixes (передать, запродать, перепродать, распродать, пораспродать, etc.) all work like задать in having prefix-stressed past forms, e.g. за́дал/зада́л, задала́, за́дало/зада́ло, за́дали/зада́ли. Zaliznyak says that передать has stressed forms пе́редал, etc. but doesn't say about these others. Is it препо́дал or пре́подал, распро́дал or ра́спродал [ро́спродал??]? Benwing2 (talk) 00:54, 28 February 2016 (UTC)

@Benwing2 It's препо́дал, распро́дал, пораспро́дал, etc. --Anatoli T. (обсудить/вклад) 04:50, 28 February 2016 (UTC)
① means the stress is on one syllable to the left (except the prefix пе́ре-, two syllables).--Cinemantique (talk) 05:12, 28 February 2016 (UTC)
Thanks. Benwing2 (talk) 05:49, 28 February 2016 (UTC)

past tense of прибыть,убыть[edit]

@Atitarev, Cinemantique, Wikitiki89 Zaliznyak says this has past tense c(1), i.e. при́был, прибыла́, при́было, при́были but ruwikt says c[(1)] with forms при́бы́л, прибыла́, при́бы́ло, при́бы́ли. Are these forms прибы́л, прибы́ло, прибы́ли real? If so, which should be listed first, при́был or прибы́л? Benwing2 (talk) 22:57, 28 February 2016 (UTC)

BTW Zaliznyak says убыть behaves like прибыть, with past у́был,убыла́,у́было,у́были. In this case, ruwikt agrees. Benwing2 (talk) 23:17, 28 February 2016 (UTC)
I just found a document on the web saying that Zaliznyak says прибы́л is not recommended and убы́л is incorrect - [1]. I agree with that. --Anatoli T. (обсудить/вклад) 23:42, 28 February 2016 (UTC)

внимать[edit]

@Atitarev, Cinemantique, Wikitiki89 I edited this module, changing e.g. impr_sg вне́мли́ to вне́мли, внемли́. Similarly for impr_pl вне́мли́те, pres_1sg вне́млю́, pres_adv_part вне́мля́. In each case, the stem-stressed form is listed before the ending-stressed form. Is this order correct? Also, Zaliznyak doesn't seem to recognize pres_1sg внемлю́, only вне́млю, but ruwikt includes both forms. Who's correct? Benwing2 (talk) 06:44, 29 February 2016 (UTC)

The order is fine. A number of authoritative dictionaries use внемлю́, including Ozhegov (Ожёгов).--Anatoli T. (обсудить/вклад) 06:55, 29 February 2016 (UTC)
Gramota.ru also agrees.--Anatoli T. (обсудить/вклад) 06:58, 29 February 2016 (UTC)
Thanks. Benwing2 (talk) 07:20, 29 February 2016 (UTC)

footnote symbols[edit]

@Atitarev As you've noticed, they're now supported. See e.g. быть ‎(bytʹ) and зажить ‎(zažitʹ). The module documentation now describes them. Benwing2 (talk) 01:35, 1 March 2016 (UTC)

@Benwing2 Great job, as always. Thank you! --Anatoli T. (обсудить/вклад) 02:27, 1 March 2016 (UTC)

Past pasv participles of imperfective aspect of biaspectual verbs?[edit]

Currently семплировать is listed as having a PPP both in its imperfective and perfective aspect. Is this correct? Based on this, I similarly added a PPP to both aspects of приветствовать. Benwing2 (talk) 03:00, 3 March 2016 (UTC)

Yes. That's correct.--Anatoli T. (обсудить/вклад) 02:12, 8 March 2016 (UTC)
Thanks. Benwing2 (talk) 02:53, 8 March 2016 (UTC)

Type 3°a verbs, e.g. притихнуть[edit]

@Atitarev I'm not too comfortable with 3a verbs, can you help? ruwikt says притихнуть is type 3°a[(6)], and has only short past forms (притихнул not given), and also has short participle forms прити́хший (listed first), прити́хши (listed last). Is ruwikt correct here? I'm not sure what Zaliznyak says, need to read up on it. If ruwikt is correct, presumably there are other verbs like this, and we'll have to fix up Module:ru-verb appropriately? Currently there doesn't seem to be any obvious way of making 3a verbs behave this way. Benwing2 (talk) 12:49, 7 March 2016 (UTC)

3a is notoriously difficult. When making new entries I sometimes have to check the existence of either short or long forms, if they are not obvious to me. The long forms of "притихнуть" exist but they are dated. --Anatoli T. (обсудить/вклад) 13:07, 7 March 2016 (UTC)
@Atitarev Zaliznyak splits type 3a into regular 3a, which has only long forms, and type 3°a, which has only short fem sg/neut sg/plural past but may have long, short or both for masc sg past and for the participles in -(в)ший and -(в)ши, where "long" means it has -ну- in it and "short" doesn't. I created {{ru-conj-3oa}} for type 3°a. You can specify whether you want long/short/both for masc sg and/or past active/adverbial participles using Zaliznyak's notation:
  • (5) = only long masc sg.
  • [(5)] = both short and long masc. sg.
  • no (5) or [(5)] = only short masc sg.
  • (6) = only long past active/adverbial participles
  • [(6)] = both short and long past active/adverbial participles
  • no (6) or [(6)] = only short past active/adverbial participles
  • They can be combined, e.g. (5)[(6)] or [(5)(6)] (the latter is equivalent to [(5)][(6)])
Your existing type 3a doesn't properly support this. You said above in the case of притихнуть, which per Zaliznyak is type 3°a[(6)] (meaning only short finite past tense forms but both short and long past active/adverbial participles), that the long finite past tense forms exist but are dated. Are you sure about this? Zaliznyak normally says when dated forms exist and he doesn't mention this at all. My instinct is to go with him; that would mean
  1. Fixing up all 3a verbs that are actually 3°a to use {{ru-conj-3oa}}, and deleting long forms that have been created but don't belong;
  2. Making sure all the remaining 3a verbs suppress short forms, and deleting short forms that have been created but don't belong;
  3. Changing the calling sequence of {{ru-conj-3a}} so that params 2 (suppress short past-tense forms) and 3 (suppress short participle forms) disappear, and these forms are always suppressed. Also, changing param 4 (the imperative ending) so it defaults according to Zaliznyak's rules and supports Zaliznyak's additional imperative variants (some verbs have imperatives in both -ь and -и, and some verbs have both variants in the singular but only one in the plural).
What do you think? Benwing2 (talk) 06:31, 12 March 2016 (UTC)
Well, you have already changed it. The long past tense forms for притихнуть are listed in Толковый словарь Ушакова 1935-1940, (D.N Ushakov) and Google book searches show dozens of hits. Not a lot, compared to short forms. The Google books include results from Mikhail Bulgakov and Alexandre Tvardovsky. Certainly, the short past tense are the current standard and common but the long forms are attested in literature. --Anatoli T. (обсудить/вклад) 10:51, 12 March 2016 (UTC)
I couldn't find any results in Google books for "притихнуло", only in Ushakov dictionary but other genders and plural are present. You can continue your work based on Zaliznyak dictionary but we may need to include additional forms, if they are attested. --Anatoli T. (обсудить/вклад) 11:02, 12 March 2016 (UTC)
OK. Should we include the forms and mark them as rare, or not include them? There are many other such 3°a verbs, e.g. стынуть, остынуть, простынуть, достигнуть, вянуть, завянуть, гибнуть, погибнуть, мокнуть, отвергнуть, исчезнуть, подвигнуть, воздвигнуть, волгнуть, etc. For some of them, the longer past_m forms are allowed or required: стыл or стынул, остыл only, достиг only, вял or вянул, завял only, гибнул or гиб, погиб only, мок or мокнул, отверг or отвергнул, исчез only, подвигнул only, воздвиг only, волгнул only, etc. Does your Ushakov dictionary say the longer forms are allowed for all such verbs or only for притихнуть? Benwing2 (talk) 19:16, 12 March 2016 (UTC)
@Benwing2 It would take me some time to go through each verb but стынуть/стыть has both long and short past tense forms: [2] (note: Устаревающие формы стынул, стынула и др. часто встречались в литературном языке XIX века.…). I did this sort of checks when creating entries. Zaliznyak describes the modern standard. No-one says now простынул, достигнул or исчезннул in modern Russian. It would be easier, if we just follow one dictionary but many forms, which are missing in Zaliznyak are either rare or dated, some may be even considered non-standard but they are attestable. I know my explanation may not be much of help. What do you think? --Anatoli T. (обсудить/вклад) 09:33, 13 March 2016 (UTC)
@Atitarev Yeah, I'm not really sure what you're getting at. I think we have two possibilities: either follow Zaliznyak exactly and don't include the additional long forms at all when Zaliznyak says they're not there (which means we would delete the entries for these forms if they currently exist), or include them in every verb and mark them as "rare and dated" (which means we would include entries for these forms). A third possibility is to add flags to type 3°a to indicate whether to include the additional long forms and mark them as rare/dated; but that would require going through each verb, are you willing to do that? (There are 50 type-3a verbs that are actually type 3°a, plus 7 verbs currently marked as 3°a.) Which possibility do you think we should do? Benwing2 (talk) 09:47, 13 March 2016 (UTC)
I am not very enthusiastic about going through each verb again, which I already did (just feeling a bit sorry about my previous work). At the same time, including dated or rare forms may be confusing for users, if they are not marked appropriately. I couldn't confirm the usage of "притихнуло", even if Ushakov mentions it, along with other long forms. If you're willing to follow Zaliznyak exactly and carefully, I guess, I won't have strong objections to remove forms that Zaliznyak doesn't mention. Just in case, calling @Wikitiki89, Cinemantique, Stephen G. Brown, Wanjuscha. --Anatoli T. (обсудить/вклад) 10:03, 13 March 2016 (UTC)
OK. Just for reference, if the additional long forms were included they'd be marked as "rare, dated" in the conjugation table, although not necessarily in the non-lemma entries for each form. Benwing2 (talk) 10:05, 13 March 2016 (UTC)
Words that have obsolete, dated, regional, or dialectal forms are troublesome, but if some of the forms might be encountered in literature, they are still important. My feeling is that the main page (such as притихнуть) does not need to mention forms that have fallen out of use, but these forms should have their own entries that link to the притихнуть page. As I said, these words are problematic, and if anyone feels that there is a different way to handle them, it’s fine with me. —Stephen (Talk) 10:13, 13 March 2016 (UTC)

──────────────────────────────────────────────────────────────────────────────────────────────────── @Stephen G. Brown Thank you, Stephen. Yes, these verbs cause some problems. If there is no objection, we should probably do what Benwing2 is suggesting, just follow Zaliznyak. Whether we add them to conjugation tables or make entries, we still have to support them. @Benwing2 If you think you make all type 3a verbs following Z, go ahead, while you have interest. We can always add rare/dated/non-standard forms later. In any case, if our verbs follow modern standard Russian grammar, it's only a positive thing. --Anatoli T. (обсудить/вклад) 07:54, 14 March 2016 (UTC)

OK, I'll do that. Benwing2 (talk) 07:56, 14 March 2016 (UTC)
@Atitarev I've finished working on 3a verbs. There are now two types, type 3°a and a new type 3a that is totally different from the old one and much simpler (only one additional param instead of six). All existing verbs have been converted to use these two new types, and the obsolete long forms corresponding to type 3°a have been deleted.
Note that the basic difference between 3a and 3°a is that 3a always has long past tense and past active/adverbial participles (with -ну-), and 3°a always has short past feminine/neuter/plural (no -ну-), while the past masculine and participles may be either short or long or both, indicated by variant codes (5), [(5)], (6) and/or [(6)] in param 1, as is marked in Zaliznyak.
In 3a, all the removed params are supported as follows: params 4 and 5 supporting short past tense and participles aren't supported; param 6 (the imperative ending) can be set through a variant code in param 1, but you rarely need to do this as the defaults are better than before; param 7 (infinitive, for дости́чь and пости́чь) is set using an infinitive= override if necessary; param 8 (short past_m) isn't needed.
Benwing2 (talk) 04:47, 22 March 2016 (UTC)

Past tense stress pattern subtypes - /a, /b, /c /c’’[edit]

@Benwing2 You're probably aware that past tense stress patterns are also classified by A Zaliznyak, see Appendix:Russian_verbs#Past_tense. His dictionary provides /a, /b, /c and /c’’ (irregular) in addition to present tenses subtypes - a, b, c and c’ (irregular - missing at Wiktionary). I see you're working on past tenses as well. It might be beneficial to show the past tense stress patterns as well or even add categorization. Just a thought, not sure if this is really good idea, if it's hard and worth doing. E.g. нести́ ‎(nestí) would belong to type "7b/b" (BTW, Zaliznyak uses types, not classes) because past tense endings are -л/(0)*, -ла́, ло́, -ли́ and ждать ‎(ždatʹ) would belong to type "6b/c" because past tense endings are -л/(0)*, -ла́, ло, -ли. Most verbs would belong to subtype /a and it's not important to show this (default). --Anatoli T. (обсудить/вклад) 03:29, 9 March 2016 (UTC)

@Atitarev I'm supporting all the past stress variants of Zaliznyak plus things like c(1) and a(1) which have stress on the prefix instead of the root, and possibilities like c(1),c that can go both ways. So far there's support for these variants in types 9/11/14/16 and I'm planning on adding it to other types like 7. The errors you saw were because I'm eliminating some of the numbered params so I can reuse them for past stress variants. Benwing2 (talk) 04:59, 9 March 2016 (UTC)
BTW showing the stress in the title is a good idea, I'll implement it. Benwing2 (talk) 05:01, 9 March 2016 (UTC)

16a[edit]

@Benwing2 What is "плють" in the documentation? Did you mean плыть? That's a different subtype. --Anatoli T. (обсудить/вклад) 07:53, 9 March 2016 (UTC)

@Atitarev Yes, I meant плыть. It seems that all type-16 verbs are derivatives of жить, плыть or слыть. Benwing2 (talk) 07:59, 9 March 2016 (UTC)

type 7b[edit]

@Atitarev I'm redoing this type so as to eliminate many of the parameters. Some questions:

  1. цвести, расцвести: Per Zaliznyak, past active participles of these verbs should be цве́тший and расцве́тший; past adverbial participles should be цве́тши and расцветя́/расцве́тши, with расцве́тши "dated". Currently, for цвести we have indicated both цвётший and цве́тший, and цвётши and цве́тши; similarly for расцвести but with the order reversed. Are the ё forms real, and if so should they be marked as non-standard?
  2. мести, подмести, помести: Per Zaliznyak, we should have participles мётший, мётши, etc. but instead we have ме́тший, ме́тши, etc. Is this just a mistake or are these forms real? Note BTW that смести does have смётший, as expected per Zaliznyak.
  3. погрести: Similar to above. Per Zaliznyak we should have погрёбший, погрёбши but instead we have погре́бший, погре́бши. Mistake? Note that грести does have грёбший, грёбши as expected.
  4. потрясти: Has pres pasv part specified as потря́сший. Almost certainly a mistake, should be the past actv part.
  5. отвести, увести: Have pres pasv part specified (отводи́мый, уводи́мый). These do look like pres pasv parts but these verbs are perfective so don't have these participles. A mistake, I presume.

Thanks for your help. Benwing2 (talk) 07:55, 12 March 2016 (UTC)

  1. цвётший, etc exist but are non-standard, dictionaries mention these forms as non-standard.
  2. Yes, please correct.
  3. Yes, please correct.
  4. Yes.
  5. Yes. Thank you. --Anatoli T. (обсудить/вклад) 11:49, 12 March 2016 (UTC)

Thinking of redoing conjugation templates to use a single template {{ru-conj}}[edit]

@Atitarev, Cinemantique, Wikitiki89, Wanjuscha @KoreanQuoter I'm thinking of redoing the verb conjugation templates, currently named {{ru-conj-*}}, to use a single template {{ru-conj}}, where what was formerly {{ru-conj-*}} becomes {{ru-conj|*}}, e.g. {{ru-conj|1a}} instead of {{ru-conj-1a}}. There are various reasons. One is to make it easier to specify past-tense stress patterns and other variants; currently these are specified using a parameter whose position varies depending on the conjugation type, but I'd like to be able to say e.g. {{ru-conj|7b/b}} for type 7b, past-tense stress pattern b, or {{ru-conj|4c(4)}} for type 4c with variant (4) (this is per Zaliznyak, where variant (4) means that the stress in the present active participle is one syllable to the left of where it otherwise would be expected). Another reason is to make it possible to specify multiple verb conjugations, e.g. {{ru-conj|4c|ру́к|or|4b|рук}} for something that can be conjugated either as 4c or 4b, similar to what can currently be done with nouns; currently we need to include two whole conjugation tables for this. What do you think? Benwing2 (talk) 06:58, 18 March 2016 (UTC)

  • I think it's a good idea.--Cinemantique (talk) 07:49, 18 March 2016 (UTC)
    • Yes, it's a good idea. Please plan how you make it smooth, so that the old matches the new. Having sub-subtypes (past tense) is going to be good. Only some types allow various stress patterns in the past tense. Please make sure e.g. "1a/b" is not possible. --Anatoli T. (обсудить/вклад) 09:43, 18 March 2016 (UTC)
Yes, it is a good idea. --KoreanQuoter (talk) 11:19, 18 March 2016 (UTC)
  • I completely agree. Can we also improve the layout of the table in the process? I can help with that if you want. --WikiTiki89 15:29, 18 March 2016 (UTC)
@Wikitiki89 We can definitely improve the table layout. Feel free to edit the code; I'm not going to be changing the part that lays out the table. What sorts of changes do you want?
@Atitarev The particular types of variant (e.g. past stress, imperative endings, etc.) that are supported depend on the conjugation type. The support for this is already in the code in fact. Benwing2 (talk) 22:32, 18 March 2016 (UTC)
The conversion is done. Benwing2 (talk) 02:38, 19 March 2016 (UTC)

Past passive participle generation[edit]

@Atitarev, Cinemantique, Wikitiki89, Wanjuscha I've made various changes to make it easier to specify past passive participles (PPP's). The biggest change is that there's now a variant code +p that generates the PPP according to Zaliznyak's rules (put it in the first parameter, along with the verb class and past stress). This is supported for all 16 classes, but not yet for irregular verbs. There are some additional variant codes that can be given in cases where the PPP rules don't give the right result; these correspond almost exactly to what is found in Zaliznyak. They are documented, but in short:

  1. (7): put the stress on the ending instead of the preceding syllable
  2. (8): put the stress on the syllable preceding the ending, instead of on the ending
  3. ё: convert stressed е́ to ё (e.g. поверну́ть ‎(povernútʹ), PPP повёрнутый ‎(povjórnutyj))
  4. жд: iotate -д- to -жд- instead of -ж- (e.g. роди́ть ‎(rodítʹ), PPP рождённый ‎(roždjónnyj))

In addition, the override past_pasv_part= can be abbreviated to ppp= for easier typing; similar aliases exist for other participles. Benwing2 (talk) 04:55, 22 March 2016 (UTC)

iterative/frequentative verbs[edit]

(moved from Talk:видать)

@Atitarev, Cinemantique, Wikitiki89, Wanjuscha Anatoli et al. — I'm trying to clean up this entry and add повидать. Some issues:

  1. None of my dictionary, ruwikt, Zaliznyak nor slovari.yandex mention that this is missing present and imperative. Normally, the first three would mention this. My dictionary does say that увидать (but not повидать) is past only.
  2. My dictionary says that the perfective is повидать not увидать, and ruwikt agrees. Are they both perfectives?
  3. Does the expression видать виды have a perfective equivalent? It meaning sounds kind of imperfective-only but it's not indicated as such in my dictionary. Benwing2 (talk) 19:16, 24 March 2016 (UTC)
    BTW, Zaliznyak also says that увидать (but not повидать) is missing the future in the literary language (буд. в лит. языке нет), and also missing the PPP. Benwing2 (talk)
    I think the imperatives might exist, but are rare. More commonly, the imperatives of повидать would be used. I'm not sure if увидать has imperatives. Повидать definitely has a future. I would say that увидать and повидать are both perfectives of видать, but with slightly different meanings. Повидать is not defective and has a full conjugation with a PPP. The verbs видеть and увидеть are used in place of any missing parts of the conjugation of видать and увидать (this can be mentioned in a usage note, but not in the conjugation table). --WikiTiki89 19:30, 24 March 2016 (UTC)
    Verbs видать/видывать, слыхать/слыхивать, бирать, читывать, делывать, хаживать are so-called iterative or frequentative verbs (многократные глаголы), normally without present forms. They may be used as adverbs in the present - "не видать" - "can't be seen". I agree with Wikitiki89's comment. Perfective forms have different meanings and may have imperatives. --Anatoli T. (обсудить/вклад) 09:32, 26 March 2016 (UTC)
    @Benwing2 Not sure if you read my message about iterative verbs. Slavic iterative verbs may merit some special attention. Note that they not necessarily lack present tense forms (?). See also Frequentative#Russian, User_talk:Dan_Polansky/2015#Czech_iteratives_or_frequentatives. --Anatoli T. (обсудить/вклад) 07:22, 27 March 2016 (UTC)
    @Benwing2 Like видать and слыхать, it would be good to allow to remove present tense forms for iterative/frequentative verbs. I have just confirmed that хаживать, бирать, читывать, etc. don't have present forms. Otherwise, they belong to type 1a, not really "irregular" verbs. --Anatoli T. (обсудить/вклад) 07:38, 27 March 2016 (UTC)
    @Atitarev Thanks. I'll add a feature to Module:ru-verb to make it easy to remove the present tense. Does this apply only to imperfectives? Presumably they also lack imperatives? What about present participles? Benwing2 (talk) 07:43, 27 March 2016 (UTC)
    I think they are ALL imperfectives, повидать (pf) is not an iterative verb and похаживать, посиживать are also imperfective and iterative, variants of хаживать, сиживать. No present participles or imperatives. I think it's safe to handle ALL iterative verbs as being imperfective, lacking all present tense forms and imperatives. Theoretically they may have present tense forms and imperatives but not in practice. @Cinemantique, you might want to consider some changes in ruwikt as well for those verbs. --08:14, 27 March 2016 (UTC)
    OK, will do. @Cinemantique, I think Anatoli's ping might not have made it because his signature got eaten. Benwing2 (talk) 08:32, 27 March 2016 (UTC)

──────────────────────────────────────────────────────────────────────────────────────────────────── Thanks for duplicating my broken ping. I've made some entries in Category:Russian iterative verbs, which could be used. --Anatoli T. (обсудить/вклад) 09:18, 27 March 2016 (UTC)

@Benwing2 Please consider adding iterative verbs to your to-do list. Let me know if you have questions. I may only have some difficulties defining such verbs in English.--Anatoli T. (обсудить/вклад) 07:11, 31 March 2016 (UTC)
@Atitarev Will do. Benwing2 (talk) 08:47, 31 March 2016 (UTC)
@Atitarev I implemented this using a new flag iter=1. This removes the present tense, present participles and imperative and automatically categorizes in Category:Russian iterative verbs. I changed some of the verbs to use this, you might want to fix the rest of them. Benwing2 (talk) 10:23, 31 March 2016 (UTC)
@Benwing2 Thank you! Sorry, I missed one more thing - there is no future tense either! It's just past tense and infinitive. Could you remove the future tense as well? I'll fix other verbs when I get a chance.--Anatoli T. (обсудить/вклад) 20:58, 31 March 2016 (UTC)

просторечие vs. разговорное, устаревший vs. устарелый etc.[edit]

(moved from Talk:стонать) @Atitarev, Cinemantique, Wikitiki89, Wanjuscha, KoreanQuoter Hopefully you'll get this ping. Zaliznyak seems to indicate that стона́ю is the only 1a form of this verb, and that it's dated; the other forms (стона́ешь, стона́ет, etc.) don't seem to exist. Is this correct? ruwikt lists стона́ешь, стона́ет, ... and participle стона́ющий but not imperative стона́й/стона́йте. Benwing2 (talk) 15:38, 29 March 2016 (UTC)

ОК, various other dictionaries list стона́ешь, стона́ет, стона́ющий, стона́й, variously claiming that they're colloquial or dated. Benwing2 (talk) 16:19, 29 March 2016 (UTC)
OK but I wouldn't add the 1a forms to all derivatives automatically, without checking.--Anatoli T. (обсудить/вклад) 19:45, 29 March 2016 (UTC)
I did check застонать before adding the 1a forms. Ушаков says 1a forms are "прост.", which I take to mean "colloquial"; Ожегов says they're "устар."; Словарь трудностей произношения и ударения в современном русском языке says they're "устарелое". Benwing2 (talk) 05:00, 30 March 2016 (UTC)
Yes, BTW, there is some difference between просторе́чие ‎(prostoréčije) and разгово́рное ‎(razgovórnoje). The former is on the border between "non-standard" and "colloquial", not sure about the English equivalent for "просторечие". IMO, стона́ешь, etc. are просторечие, not just разговорная форма. --Anatoli T. (обсудить/вклад) 05:06, 30 March 2016 (UTC)
@Atitarev I've sometimes seen просторечие rendered as "vernacular" but that's not very helpful as it doesn't have a specific linguistic register meaning like "colloquial" or "nonstandard". If просторечие is outside the literary norm then I'd render it as "nonstandard" or maybe "nonstandard but common" ... what do you think of either of these? And BTW is there a difference between устарелый and устаревший? If so, which one does устар. stand for? Benwing2 (talk) 07:16, 30 March 2016 (UTC)
устарелый is the same as устаревший.--Cinemantique (talk) 08:04, 30 March 2016 (UTC)
Yes. I'd mark terms labeled "просторечие as "non-stardard". No ping again.--Anatoli T. (обсудить/вклад) 08:09, 30 March 2016 (UTC)
@Atitarev Strange you didn't get a ping. Hopefully you got this one. Benwing2 (talk) 06:44, 31 March 2016 (UTC)
BTW thanks for your comments, I'll start using "nonstandard". Benwing2 (talk) 06:45, 31 March 2016 (UTC)

pace of new definitions, synonyms and antonyms, etc.[edit]

(moved from Talk:стащить)

@Atitarev Could you review this entry? I'm not very sure it's correct. Wanjuscha fixed it up but didn't touch the synonyms, which come from ruwikt. I removed some of them and tried to identify the senses but things may still be wrong. Benwing2 (talk) 02:55, 5 April 2016 (UTC)

@Benwing2 I'll try to review tonight but IMO you're making it more difficult by adding all the synonyms and antonyms. There are are too many nuances and some antonyms may be synonyms instead. The defs themselves should be right, of course, to make a better judgements about synonyms/antonyms. Since you're making a lot of new entries and native speakers are not always keeping up with your rate, maybe you should focus on definitions alone, not on related terms? Just a thought. --Anatoli T. (обсудить/вклад) 03:40, 5 April 2016 (UTC)
@Atitarev OK. I've been watching the numbers of entries in Category:Russian entries needing definition; I've been adding them at a fair clip but Wanjuscha has generally been keeping up, so the number has been fairly stable over time. (It was about 180 a few weeks ago and it was about 200 today before I added the last batch.) If this stops happening I'll add fewer entries. Mostly I'm not adding synonyms and antonyms any more as it takes too much time when creating the entry; this entry was an exception. I still do the related/derived terms because it's not too hard (I use a dictionary for this to make sure the terms are actually related), and I think the info is helpful (certainly, it helps me in understanding the relations between words). Benwing2 (talk) 04:01, 5 April 2016 (UTC)
@Atitarev, Wanjuscha Wanjuscha is very efficient. He (she?) finished the definitions for 60 entries in about 1.5 hours. Thanks, Wanjuscha! This is significantly less time than it takes me to generate all the entries, even with a script I use to facilitate generating the actual entries (I enter a line of directives that specify all the relevant info without redundancy, and the script generates the entry). We're now down to 211 entries in Category:Russian entries needing definition, from 270. Wanjuscha skipped a few, maybe 10 or 11 out of 70, that are evidently fairly obscure; I put them in because they are listed as the perfective counterparts of imperfective verbs or vice-versa, or because e.g. Zaliznyak says a verb has both a perfective and imperfective meaning, so I create entries for both meanings even though one may be obscure. Anatoli, do you think you could help? These should be the last few entries in Category:Russian entries needing definition. If you don't think you can help, but you identify which ones are definitely obscure, I can delete those entries if you think this is a good idea. Benwing2 (talk) 08:42, 5 April 2016 (UTC)
OK, some of the skipped entries follow: I'm about to add new entries. For most of these I think, the corresponding verb of the other aspect is defined.
Benwing2 (talk) 03:35, 6 April 2016 (UTC)

impersonal verbs aren't always intransitive?[edit]

@Atitarev, Cinemantique, Wikitiki89, Wanjuscha, KoreanQuoter Anatoli, you might want to comment on this since you wrote the original version of the module. The module as it stands treats all impersonal verbs as intransitive but it seems to me they could be either transitive or intransitive, depending on whether they take an object in the accusative case. I'm pretty sure that impersonal verbs can have passive participles, for example. This suggests we should split things like 'impf-impers' into a transitive variant ('impf-impers') and an intransitive variant ('impf-impers-intr'). What do you think? Benwing2 (talk) 07:49, 21 April 2016 (UTC)

Yes. I'm okey with this. I can't think of a good example but such verbs may have non-impersonal senses as well, so they won't need "impers" parameter.--Anatoli T. (обсудить/вклад) 08:12, 21 April 2016 (UTC)
@Atitarev If I'm not mistaken, лихорадить is an example. It appears to be intransitive in most uses but transitive impersonal in some uses, at least that's what Zaliznyak seems to be saying. Benwing2 (talk) 08:22, 21 April 2016 (UTC)
I agree that in theory impersonalness has nothing to do with transitivity, even though in practice most impersonal verbs are intransitive. Perhaps this is because another verb is likely to be chosen that would make the would-be object into the subject. --WikiTiki89 15:14, 21 April 2016 (UTC)
Perhaps it's right to say that pure impersonal verbs (those that never have personal forms) can't be really transitive, only those that also have personal meanings - его взволновало - взволнованный, запрещается - запрещено. However, there are impersonal adverbials like "накурено" (it's full of tobacco smoke), which look like they are derived from past passive participles but I can't think of "накурить" as a transitive verb. --Anatoli T. (обсудить/вклад) 22:09, 21 April 2016 (UTC)

type 9b past adverbial participle[edit]

@Atitarev, Cinemantique, Wikitiki89, Wanjuscha, KoreanQuoter Anatoli et al: Zaliznyak indicates that the past adverbial participle of class 9b perfective verbs (натереть, запереть, etc.) has two possibilities: e.g. натере́в/натёрши or запере́в/за́перши. The "short" one ends in -е́в, the "long" one in -ши, with the stress of the latter following the past_m form. But the module formerly specified a "long" form with -е́вши, e.g. натере́вши, запере́вши. Is this form real? If so should it be included, and if so should it be marked as "colloquial" or "nonstandard" or left unmarked? ruwikt has e.g. за́перши, запере́в(ши) with за́перши and запере́в linked, and the final (ши) unlinked. Benwing2 (talk) 05:59, 25 April 2016 (UTC)

натере́вши, запере́вши are the least common but citable with modern authors. --09:48, 25 April 2016 (UTC)
@Atitarev OK I will include them, but should they be marked as nonstandard or colloquial? Benwing2 (talk) 22:29, 25 April 2016 (UTC)