aphenine: Teresa and Claire (Default)
aphenine ([personal profile] aphenine) wrote in [site community profile] dw_dev_training2009-09-03 02:51 pm
Entry tags:

Tagging

When I was looking around the database, I noticed that the tag database obeyed a tree form, which meant that tags could be stored with categories and subcategories and so on.

This is not a feature that's implemented, and it's high on my list of "features I'd love to have in DW" (possibly no 1 :-) ), and I have also written some tree algorithms using HTML/PHP before, so I thought I might try to give it a go and see if it went easily. However, when I went looking, there are no bugs in bugzilla about tree tagging, nor does there appear to be any information about this as a planned feature, despite the DB support.

So, I was wondering, can any of you please tell me more?
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)

[staff profile] mark 2009-09-03 06:41 pm (UTC)(link)
So, a spec generally refers to the usage of a feature, not the development implementation. I mean, I want to know how this is going to be used on the site, what functionality it enables, what it's good for, what it's bad for, what benefits it brings, why we should do it, etc.

Technically, your comment looks reasonable, but I don't know what problem you're trying to solve with your particular implementation. I.e., without knowing what people want to do with the tags (and why they want hierarchical tags), it's going to be impossible to judge an implementation plan as good or bad.

Let's start with the usage of nested tags. How they appear on the site, what pages have to change, UI and behavior commentary, use cases, etc.
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)

[staff profile] mark 2009-09-03 08:01 pm (UTC)(link)
So, I don't use hierarchical tags. I've never maintained a community that uses them. You seem to take for granted a lot of knowledge that I personally do not have, which is hindering my ability to participate in this conversation.

I have no idea what you want these nested tags for, what you intend to do with them, how they make your life better, why they're needed, or anything. Which means that, technically, it's not really a good use of time to discuss implementation on something I am not convinced we need (because I don't understand what it is you're saying we need).

For most feature development on Dreamwidth, we go through a few steps:

1) The suggestion is made, which outlines exactly what you want the feature to do. This is typically done in [site community profile] dw_suggestions via the Suggestion Submission Form and then people can vote and provide feedback to refine the idea until there's a solid idea.

2) The idea is then approved by Denise or myself and put in Bugzilla as a new bug.

3) Someone who is interested in the feature then writes up a formal feature specification. This formalizes everything about a particular feature. For example, Denise wrote a spec for overhauling memories. That spec makes a formal plan for what a feature MUST do, what it SHOULD do, and what it COULD do (implementation and time permitting). With suggestions for UI, pages that need changing, things to watch out for, etc.

4) Denise or I approve the spec in Bugzilla. (Or we reject it with commentary and the author updates it and resubmits.)

5) Someone takes the bug and begins a technical implementation. This includes what you're writing here; the technical spec for the implementation plan formalized by steps 1 and 3.

6) The implementor uploads a patch and requests a review.

7) The review happens. If it needs more work, the patch is rejected and the submitter has to update it with the feedback from the reeview.

8) The patch is committed.

9) The feature goes live.

So, from my point of view, you're jumping straight to the 5th step, and I am not clear on the first four steps. I don't understand this feature you want, what you want to do with it, and therefore I cannot judge whether or not the technical implementation you are proposing makes any sense.

Make more sense now? If you really want nested tags, then you should start at the first step. I promise it's not as painful as it sounds, and the feature will be much, much better for it. :)
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)

[staff profile] mark 2009-09-03 11:32 pm (UTC)(link)
Oh, don't be sorry! It's totally fine. If there were more than five lines of code and one database column, then you might be on to something. But really, there's not much support in the code for nested tags. Even if there was, we'd probably still at least go through everything from step #2. (We sometimes skip the suggestions process, but almost never skip the spec process.)
cesy: "Cesy" - An old-fashioned quill and ink (Default)

[personal profile] cesy 2009-09-21 07:10 am (UTC)(link)
Can we get this put in Bugzilla, and then one of us will do a feature spec? Proper nested tags would be very useful.
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)

[staff profile] mark 2009-09-21 07:37 am (UTC)(link)
If you want to do so, go for it!
av8rmike: Picard from ST:TNG, text: I'd hit it with an inverse tachyon beam (hit it)

[personal profile] av8rmike 2009-09-04 02:26 pm (UTC)(link)
I don't know what problem you're trying to solve with your particular implementation.

I don't have a dog in this fight, so to speak, but individual tag length limit is one problem this implementation could conceivably fix. Nested tags right now aren't really nested, they just use a delimiter that the S2 code uses to split and display in different levels. The depth of the nesting is limited to whatever you can squeeze into the current 40-character limit. To use [personal profile] yvi's tags as examples, her longest is 40 characters, and looks to be cut off:

character:buffy-verse:wesley wyndam-pryc

With a true tag tree implementation, individual tags would still have a character limit, but the amount of nesting wouldn't be subject to the same limit (it'd have to have its own, I assume).