Well then, bumping this again because jarvis. I'm going to concisely reiterate my points, most of which I stated last year, but some of them changed since then, and there are some new ones.
1. Leave the current page as is. Create a new page and transfer the data to it. Delete the old page after 1-2 months.
This is in order not to break anything that currently relies on this page. I can probably fix everything I have in ~10 minutes, but I don't know what else is out there that parses this page (e.g. that X-com-like Foundation game, maybe? Who knows), and I think it would be nice to offer a grace period.
I like "relations-metadata" for the url of the page. It's not bot-specific, and it reflects the fact that it's not about authors anymore, but about all the possible relations between pages and users. Another possibility is "link-metadata", but that may be confused with url links.
2. Make the new page on the main site, not on 05.
I don't see why we can't allow authors to record their own rewrites and such. I don't find the argument of "they will break things" to be sufficient. The new format for the page will basically be just a table, and that's it. When a table is broken, it's really noticeable. Most wiki members can edit a table without breaking it just fine. If anything does break, I'll make jarvis ping the ops about it, and they can go and revert the last edit.
3. New page format.
Page Name |
User Name |
Relation Type |
Date |
example_page |
Alice |
original_author |
|
example_page |
Bob |
rewrite_author |
2012-01-03 |
example_page |
Carol |
rewrite_author |
2015-09-10 |
another_page |
David |
coauthor |
2012-10-20 |
another_page |
Emily |
coauthor |
2012-10-20 |
translated_page |
Фёдор |
original_author |
|
translated_page |
Bob |
translator |
2015-03-22 |
abandoned_page |
Alice |
maintainer |
2015-09-15 |
This should help illustrate what I have in mind.
example_page was rewritten twice by different people. For the purposes of the !author command, Carol adds the page's rating to her net total, while Alice and Bob do not.
another_page was co-written by David and Emily. Co-written pages cannot have an original_author relation with any user. Both David and Emily add the page's rating to their net totals.
translated_page is pretty self explanatory. Both users add the rating to their totals.
The author of the abandoned_page is no longer active on the site. Since they aren't listed in the table, they default to the user who made the 0th revision. Alice wasn't involved in the creation of the page in any way, and doesn't add the rating. However, before the original author left, they specifically granted the rights to make decisions about the page to Alice. Thus she is listed as a maintainer.
Note that when I'm talking about adding rating to users' net totals, this is just one example of how this metadata can be used in various circumstances. Another example could be to automatically generate and update translated-works hubs if we ever get enough of those that manual updating becomes cumbersome.
The date column is mostly optional, and likely will not be used for anything, at least at first. The one thing I can think of where it can be useful, is to resolve priorities in cases of pages with multiple rewrites (e.g. example_page). However, at the moment I don't even know if we even have a single one of those, so *shrugs*. Back to the date column however. I think it's a nice thing to have, even if it's not very useful, and it doesn't cost us anything. And it's better to have it and not need it, than to need it and not have it.
4. Recognized relation types.
In general, any arbitrary string in the Relation Type column should be parsed and saved. If they don't fall into one of the recognized values, they can then just be ignored.
So, here's some types that I think should be applicable, in a vague order of how much rights they have to the page:
- rewrite_author
- rewrite_coauthor
- original_author
- coauthor
- maintainer
- comaintainer
- translator
- cotranslator
This covers every situation I can think of. If anyone has any other suggestions, I'd be happy to hear them.
Okay, I think that's all. I probably forgot something, I'll add it later if so. For now, I'd like to hear what other people think about each point. If everyone is in agreement, I'd like to create and fill out the new page in a couple of days, and add jarvis support soon after.