Help talk:Extensions/Semantic MediaWiki

Possible Future Steps
--Kroocsiogsi 17:21, 18 May 2012 (UTC)
 * Figure out how the hell we deal with translated strings. This is going to be awkward with any database structure. It's going to make abilities kind of a nightmare, to the extent that I am seriously reconsidering if it is even worth it to store non-English-language strings as data.
 * Create schema for items
 * Create schema for abilities
 * Create schema for non-hero units
 * Create schema for tournaments
 * Create schema for players
 * Create schema for teams
 * Create schema for cosmetic items


 * Re the first point: the only way I can think of doing it is by putting all the translated strings onto the english page (as "Trait1ru=blahblah" for example) and then use that for the other languages. It would be a horrible mess, though. The alternative is to not store strings as data at all (only store numbers etc). It would certainly make the linguistics easier, but might create some issues. I think we need to come up with our schema for items/abilities/etc first and see how/if translated strings fit into it at all, or if it would simply be better to keep doing what we have been doing for strings.


 * I would like to see the ability schema created soonish, as pages like Linken's Sphere are much much much easier to maintain with it implemented. And frankly, there are probably a lot of lists on pages like Stun that are somewhat outdated by now, although the real difficulty will be later on when actual balance changes hit Dota 2 again. -Baloroth 18:03, 18 May 2012 (UTC)
 * This is probably going to be my last response until Tuesday or so, though I might get a few minutes of internet sometime, so I'll try to do a mini-braindump. SMW uses pages as the primary entity, so we would probably make ability pages into their own pages with a soft redirect. In other words, we would have a page named "Silence (Drow Ranger)" which includes (1) a link back to Drow Ranger and (2) an instance Template:Ability with SMW markup. Then Drow Ranger (in English and all other languages) would use something like Template:Ability_wrapper. "Silence (Drow Ranger)" could, as you say, have trait1ru etc. But it would probably also need value1ru, in case the meaning of trait1en changes. That diminishes the value of using a data structure in the first place. (This solution is similar to the language switching that would be necessary in Template:AbilityInfo.) We could hardcode in a couple dozen common traits and their translations, like duration, range, radius, stun duration, etc, and use generic trait1 for anything that didn't fit. If we did that, we would actually probably need to include four (or seven...?) of each, for the different ability levels. That would be somewhat more elegant and more meaningful, but also lot of work. Along the same lines, we could create properties like "ministuns = true" or "silences = true", but really I don't know if that's worth it. The mechanics pages won't be updated often, and I'm not sure if they'd be used otherwise. Back to translations: we could just store English values, and let other languages take the convenient values (e.g. hotkey) and provide their own values otherwise. That would mean it would be possible to automatically query, for instance, the Russian list of abilities blocked by magic immunity, or possibly the Russian list of stun durations (if we did the hardcoded common traits mentioned above), but not the Russian list of Linken's interaction notes. Another idea is to create "Silence (Drow Ranger)", "Silence (Drow Ranger)/ru", etc, each of which contains its own semantic properties. Maybe "Silence (Drow Ranger)/ru" would take some of its values from "Silence (Drow Ranger)" and set others itself.
 * FWIW, items would be much more straightforward. We could probably hardcode in all the generic bonuses ("Intelligence", which would also be nice for lists of, say, intelligence bonus items), and either include translations (on the English page) for unique bonuses ("Freezing Aura") and unique abilities ("Arctic Blast") OR just include English bonuses and let other languages override them in the template wrapper. Other than that, I think all the other parameters in Template:Item_infobox can be dealt with as simply as they are in Template:Hero_infobox.
 * But: ick. Abilities. Ick. --Kroocsiogsi 19:25, 18 May 2012 (UTC)