Comments/Ratings for a Single Item
I have added a restriction against tagging hidden, unpublished, or deleted pages.
It looks like the restriction is being applied over‐eagerly: I tried adding the square‐removal tag to Cheshire Cat and Wormhole Chesses but in both cases it tells me I mayn't tag a deleted page.
I forgot a ! operator. I made the correction, and it now works properly.
Since any parents or children are listed on the page for a tag
Parents are listed, but at present children seem to be absent
Parents are listed, but at present children seem to be absent
There are few parent tags, but children are listed for each one of them. Most tags have no children, and for those, no children are listed.
We seem to be seeing different things then. https://www.chessvariants.com/tag/Parent%3AChild lists the #Parent
child under the heading ‘Parent’, but #Parent: Child: Grandchild
is, for me, nowhere to be found on that page.
That's really weird, since I created these two tags expressly for testing the ability of a page to show both a parent and children, and that's what I got. When I look at the Parent:Child page, I see both its parent and its child. Under what conditions are you viewing the page, such as browser, OS, desktop or mobile, and ads blocked or not?
I'm using Firefox 86.0.1 on an Artix Linux stratum on a desktop Bedrock Linux system (so effectively Arch Linux's FF); I have both uBlock Origin and uMatrix enabled with no exceptions set up for this site, but temporarily enabling an exception for the stuff that isn't in its dark red list (i.e. mostly ad servers ⁊c., so basically just enabling google fonts and paypal objects) doesn't make anything show up. Also I'm connecting over Tor, which sometimes affects things, though idþ that's given me any issues here before.
I checked the page source, and that doesn't include the string ‘grand’, so it's probably something serverside?
Same behavior here. On Windows, neither Firefox nor Edge show the child tag either. Ad blocker enabled or disabled doesn't make any difference.
On Windows, neither Firefox nor Edge show the child tag either. Ad blocker enabled or disabled doesn't make any difference.
When I looked at the code for displaying children, it was inside an if (fpdip()) block, which I use for testing code before others are ready to see it. I have now removed that condition. So, it should work for others now.
Confirmed
After I added the ability to name a parent in a tag using the colon, I saw that there were various tags that should have a parent/child relation based on meaning, and it seemed like it would be awkward to rewrite their names. I was also thinking about adding the ability to tag tags. I brought these two ideas together by adding the ability to tag parent tags. Instead of allowing tagging in the footer, the info page for a tag includes a form for adding a parent. This works the same as the tagging form and uses the same script. This allows anyone to add a parent, and it allows a tag to have multiple parents.
This allows anyone to add a parent, and it allows a tag to have multiple parents.
Be careful with this - this concept, known as multiple inherritance, usually leads to problems. For example, what's to stop a user from making circular references - e.g., two tags that are both parents of each other? This becomes particularly problematic when you attempt to leverage the hierarchy. If you search for games with a tag, does it return games tagged with child tags of the requested tags? Or, conversly, if you apply a tag to a game, does it also apply the parent tags? And if the answer to both of these questions is no, what does any of this accomplish?
what's to stop a user from making circular references - e.g., two tags that are both parents of each other?
Nothing for now. I could add code to stop this, but if it isn't recursive, it might allow three-way or larger loops.
If you search for games with a tag, does it return games tagged with child tags of the requested tags?
There is presently no searching of tags other than having the tagged pages listed on an individual tag page. This list includes only directly tagged pages.
if you apply a tag to a game, does it also apply the parent tags?
No, tags are not inherited by virtue of parent/child relation.
if the answer to both of these questions is no, what does any of this accomplish?
Links to parent and children tags are provided for further browsing and context. They are not used in any recursive fashion that would result in an infinite loop if two tags were tagged as each other's parent. If two tags do end up that way, editors may decide to delete one relation and better clarify the descriptions or choose to merge the two tags into one if they are too similar in meaning.
I'm working on code to delete individual parent/child relations, but I have commented it out for now, because it seems to be deleting whole tags.
Editors may now delete relations between tags. I also modified the Tagged Pages section to show up only when there are tagged pages, and I moved the button for deleting the whole tag to the bottom.
I brought these two ideas together by adding the ability to tag parent tags.
It appears that what I intended and what I programmed were two different things. When I finally looked at my own tags, I saw that the children were the tagged items, but I had expected the parents to be the tagged items. I guess it gets confusing when you're working with tags as tagged items. Nevertheless, this works out. When I view my own tags, it's more logical to see a tag followed by its children than to see it followed by its parents. Tagged pages are like leaves, and tagged tags are like branches.
Ok, good. This is better. I had concerns about the other approach.
When a tag is both the parent and the child of another tag, both of these relations are ignored, and the tag is listed separately as related. I have done this with the Shape and Geometry tags.
I corrected a bug that allowed anyone to tag a page without being signed in. I also deleted an anonymous tag. I think it was making Shape:Board a parent of RoundBoard.
One of the quickest ways to populate the tags is to convert categories into tags. However, I don't think that a direct translation of every category into a tag of the same name is the way to go. So, I want to plan things out first by discussing the individual categories:
chess
This category is for pages on Chess, which we have a lot of despite being mainly about variants.
1D, 2D, 3D, 4D
I don't think the 2D category needs to be translated into a tag. 2D is the assumed default, and it is such a large category, I don't think anyone ever browses through it. We currently have a 3DBoard tag, which may be a little more informative than just the tag 3D. I wonder if 3D-Board or 3dBoard would be better, since it will not put a space between two capital letters when displaying the name.
Large, Small
These respectively mean larger and smaller than the 8x8 64 square Chess board. We already have a Large tag. Small would also work. These may have children for various common sizes, particularly for those created for contests for boards of particular sizes. So, based on values for BoardCols, BoardRows, BoardLevels, and BoardCells, it could be given an appropriate child tag instead.
Multiplayer
Seems useful, but it could be combined with the PlayerCount value to create appropriate child tags.
Oriental
This could be a child of Regional, which we already have a tag for. Regional:Oriental might be appropriate for the tag name. However, most of the regional variants are oriental, since we understand Indian and Muslim forms of Chess as historical rather than regional. So, it might be appropriate to just name the region, such as Regional:Chinese, Regional:Japanese, etc.
Historical
Okay.
Dice, Cards
Possibly include as children of Random. So, Random:Dice, Random:Cards.
Wargame
Okay. This is mainly a separate category from Chess variants, and we might not have many here.
Shape
This is it. Shape:Board and Shape:Cells are not categories. Perhaps Shape should be translated to UnusualBoard.
Hexagonal, Round
Can be children of UnusualBoard. Round may be translated to RoundBoard, which we already have a tag for.
IncompleteInfo
Okay. It sort of works how info is an incomplete spelling of information.
Other
Too vague to be useful. It does not need to be translated into a tag.
Usual-Moving, Usual-MovingOpponent, Usual-MultiMove, Usual-BoardRules, Usual-Winning, Usual-Setups, Usual-Capturing, Usual-Other, Usual-Modest
These categories all describe ways in which a variant played with the same equipment as Chess differs from Chess. The last two are not particularly informative. Other means a difference not included by the previous ones, and Modest means a small difference, though it could fit any of the previous differences. What has always bothered me about these categories is that they are not supposed to be used for games played on different boards than Chess. Yet the same things that distinguish games played with the usual equipment from Chess also sometimes distinguish other variants from Chess, and apart from Other, which I dismissed above, we have never had anything like these available as categories for other games.
One possibility is to give these all the same parent name. I prefer the longer UsualEquipment, because it is more informative. We could translate them to UsualEquipment:DifferentPowersOfMovement, UsualEquipment:MovingOpponent'sPieces, UsualEquipment:Multi-Move, UsualEquipment:DifferentRules, UsualEquipment:DifferentObject, UsualEquipment:DifferentSetup, and UsualEquipment:DifferentCapturing.
But I will note that we already have some tags that cover some of these without the usual equipment part. The Goal parent tag can be used for different goals. The Multi-Move tag can be used for any game allowing multiple moves. I also want to create a Piece parent tag for identifying individual pieces in a game. This might replace my attempt to create separate tables for piece information.
Crossover
We already have this as a parent tag, and it is probably more useful that way. It might be better to go through the crossover games and create more informative child tags for them.
Singleplayer
Okay, though probably uncommon. Perhaps renaming the tag Solitaire.
XiangqiBased, ShogiBased
These don't have to be children of Regional or Oriental, because people in the west have sometimes created games based on Xiangqi or Shogi. One problem with Oriental, mentioned above, is that some games based on Xiangqi or Shogi might have been given the Oriental category despite being of western origin.
A lot to think about here. Thank you for posting this for feedback first. I will consider and reply with my thoughts later today. But my first thought is that we don't need to do it all at once. We can apply tags corresponding to the more obvious categories first. Tags and categories can coexist for a while.
I'm now thinking about how to build tag structures from the ground up. We could have parent tags to designate tags about specific types of features. For example, Board, Piece, Goal, Rules, and Players. These would cover most of the ways in which a variant might differ from Chess. Board could replace UnusualBoard and include its children plus Standard for the 8x8 Chess board. Piece could be used for individual pieces. Goal could be used for differences in how the game is won or drawn. Rules could include children for various common rule deviations. Players would mainly just get a number. One way to think of these is as parameters that the child tag gives specific values to.
25 comments displayed
Permalink to the exact comments currently displayed.
When you add a tag, you will now get feedback instead of being sent right back to the same page. When a tag has no description, you will be asked to provide one.