The Wongery

September 1, 2023: Subsubspaces

One of the features of MediaWiki, the wiki software that the Wongery runs on, is the use of namespaces. These are collections of pages that serve similar purposes, designated by a namespace prefix followed by a colon. The articles that make up the main part of the Wongery are part of the mainspace, in a sense the default namespace in that it's the namespace that's assumed if no prefix is provided. But there are others: the talkspace for discussion pages, the userspace for user pages, and so on.

As I've discussed before, I'm planning on creating at least six new namespaces for the Wongery, tentatiely called Atlas, Assets, Build, Game, Sources, and Works. I haven't actually created them yet, largely because I'm... not sure how, although I did just take advantage of the latest Udemy sale to buy a PHP course, which should help. (Though I want to finish the Javascript course I'm in the middle of first before I start the PHP course.)

But because the Gamespace will include material for different games, it's further subdivided into subsidiary namespaces, which I think of—and have referred to in the past—as subspaces. (This is, as far as I know, not a standard MediaWiki term, although it seems a natural enough coinage I wouldn't be at all surprised to find out someone else has used it before me; what else would you call a subsidiary namespace but a subspace?) For instance, the page for EABA material on Dadauar would be at Game:EABA:Dadauar; the page for Strike Engine cards based on Curcalen would be at Game:Strike:Curcalen; and so on.

It's not just the Gamespace that will have subspaces. The Buildspace will have separate subspaces for LEGOs, for origami, for papercraft, and for 3D-printable files. The Assetspace will have, perhaps, separate subspaces for pixelart, for 3D models, and for packages.

But I haven't been entirely satisfied with the subspace divisions in the Gamespace. It was fine when all the games were role-playing games, but the introduction of card games, war games, and so on complicates things. The individual subspaces are fine, but what about the base Gamespace for each page? I'd been planning on giving guidelines there for how these items could be used in role-playing games, but those don't really apply the same way to other games. This would seem to leave two options, neither of them ideal. Either try to expand those pages to encompass other types of games, even though I'm not sure I'd have nearly as much to say about applications to them, or just live with the fact that the base Game pages mostly treat role-playing games, even though there are other types of games represented.

Well, recently (by which I mean maybe a week or so ago but as usual it took me way too long to get around to finishing this blog post) I started considering a third option. Maybe instead of one Game namespace, I should have separate namespaces for RPGs, for war games, for customizable card games, and for, uh, miscellaneous games? That way I could have the base pages in the RPG namespace be mostly about RPGs, as the Gamespace base pages are now (what I've written of them), and I can address other games, when necessary, in the applicable namespaces. On the other hand, would this be needlessly adding to the number of namespaces? I was already planning on adding six new namespaces; is nine new namespaces maybe a bit excessive? How many namespaces is too many?

And then it occurred to me there was a fourth option. Rather than putting all the subspaces for different games directly in the Game namespace, I could have subspaces within the Game namespace for different types of games, and then have the individual games at another level within those—as subsubspaces, if you will. (Infrasubspaces? Resubspaces? Okay, let's stick with subsubspaces for now.) Then EABA stats for Dadauar would be at Game:RPG:EABA:Dadauar; Strike Engine cards for Curcalen would be at Game:CCG:Strike:Curcalen; ZipWarZ stats for Norg would be at Game:War:Zip:Norg; and so on. Tentatively, I'm thinking there'll be six subspaces in the Gamespace: Game:RPG for role-playing games, Game:CCG for customizable card games, Game:Card for other card games, Game:Dice for dice games, and Game:Board for board games. (Are there any games I'd want to include that don't fall into any of these categories? Uh... maybe, but if so I'll worry about them when they come up.)

In addition to addressing the issue of the base Gamespace pages being unduly weighted toward role-playing games, this also solves one other minor problem.... I mentioned in a previous post that there were, for instance, both an RPG and a dice game called Saga. Neither is one of my top priorities for games to support on the Wongery, but both on my list (if not particularly high on it), and I hadn't decided how I was going to differentiate the spaces for the two (not that it's something I'd devoted a whole lot of thought to). But this way it's easy. The former will be at Game:RPG:Saga, and the latter at Game:Dice:Saga. Of course, this doesn't address the issue of what to do if two games of the same category have the same name, but I'm unaware of any cases of this happening so far, and I suppose that's a proverbial bridge I'll cross if I come to it.

This use of "subspaces", however, does introduce a new problem of its own. How do I address the ambiguity if there's an article with a colon in its title? There aren't any such articles now, but it's not entirely out of the question that there may be in the future. Of course, if the part before the colon title doesn't match the word "Game" or any other subspace, this isn't an issue, so... well, while it's not impossible that this issue will come up, it doesn't currently strike me as particularly likely, and this is another bridge of which I think I can comfortably postpone the crossing. Wait, actually, come to think of it, this is a potential issue with colon-designated namespaces in general, even without the subspaces. How does Wikipedia handle titles with colons in them? Ah, it's addressed on the projectspace page Naming conventions (technical restrictions):

Article titles should not begin with a standard namespace prefix (Talk:, Help: etc.), as this will place them in the wrong namespace, which (among other problems) will exclude them from standard search results. In this case, another title must be found (it won't help to change the capitalization of the prefix or put spaces before or after the colon). For example, Help: A Day in the Life is located at Help!: A Day in the Life. A redirect is created at the original title (in this case at Help:A Day in the Life, which is what the above title resolves to).

Okay, so if an article title begins with a standard namespace prefix, then just... give it a different title. Sure, if that's good enough for Wikipedia, I guess I'll call it good enough for here.

Anyway, if I do end up implementing these subsubspaces, it may not only be the Gamespace they apply to. In the Assetspace, for instance, there may be some specific games and game construction systems I'll want to supply content for. So maybe 2D and 3D assets usable in many different game systems (and also audio assets, now that I think about it, and maybe others) can go in an "Assets:Generic" subspace (perhaps as Assets:Generic:2D, Assets:Generic:3D, Assets:audio, and so on—maybe a separate Assets:pixel for pixelart?), but then with other subspaces for assets for specific popular game creation systems—there could be Unity packages at Assets:Unity, Battle for Wesnoth add-ons and scenarios at Assets:Wesnoth, RPG Maker MZ assets at Assets:MZ, and so on. There could be subsubspaces within some of the subspaces for different types of assets: for instance, Assets:MZ:Maps, Assets:MZ:Characters, and so on. Or something. I don't know. I'm not sure I'm totally sold on that categorization scheme. Of course, at the rate I'm going there;s not likely to be anything in any of those subspaces at the time of the hard launch, but those are things I'd like to have on the Wongery eventually, so I want to have the infrastructure in place for them to be added.

But of course before any of this is put into place I have to learn enough PHP to implement it, so I ought to get on that PHP course. Which is to say, I need to get on finishing that Javascript course so I can start the PHP course. And of course I've also really got to get on posting more mainspace articles. Dang it... I have way too much to do, and not nearly enough time to do it. As always.