[Ocs] [SPAM] Proposal for more flexible category hierarchy.
Dion Moult
dion at thinkmoult.com
Thu Feb 3 12:11:42 PST 2011
On Monday 15 November 2010 14:16:18 Dion Moult wrote:
> I am currently implementing the OCS API on a site http://wipup.org/ which I
> hope to integrate later in DEs.
>
> However the current OCS API is quite restrictive in that it only allows a
> CATEGORY->CONTENT 2-tier hierarchy approach. I came across this issue
> briefly with Frank and I offer a solution. Here is the current set up for
> the OCS spec 1.6 (the list below shows the parameters they have):
>
> CATEGORY -> CONTENT
> -id -typeid
> -name -type
> -personid
> -etc
>
> Of course, we can list the categories via CONTENT->Categories and the typeid
> and type parameters show which CATEGORY the CONTENT belongs to.
>
> Before I describe the solution, let me describe my scenario on my current
> system. On WIPUP users create projects, and create updates (content) which
> must belong to a project. Thus we have:
>
> USERS -> PROJECTS -> CONTENT
>
> Also, the projects are categorised into subjects such as Art, Music,
> Programming, etc, thus we also have:
>
> CATEGORY -> PROJECT -> CONTENT
>
> As you see, the difference is that a PROJECT belongs to both a USER as well
> as a CATEGORY. Another difference is that PROJECTS are dynamically created
> and do not belong to a fixed set of results (ie, they differ for each user,
> as well as for each category, and can be edited/removed/added by a user).
>
> The solution (to the above problem, as well as other scenarios) is to
> provide this new proposed layout:
>
> CATEGORY -> SUBCATEGORY -> CONTENT
> -personid -personid -personid
> -etc -categoryid -categoryid (replaces typeid)
> -category -category (replaces type)
> -etc -subcategoryid
> -subcategory
>
> There are 3 big changes. The first is that we're changing the name to refer
> directly to categories as "categoryid" and "category" instead of "type",
> which is slightly confusing.
>
> The second is that every single tier in the hierarchy can also optionally
> belong to a user via the added "personid" parameter. This of course means
> that things such as CONTENT->Categories must now allow the URL Argument of
> "personid" to filter by user. This allows for systems just like User-added
> projects in my site, or even User-added groups, User-added sections, or
> whatever else might exist.
>
> The third change is not actually directly visible in the example above, but
> I propose that "CATEGORY" be made into a "recipe" which implementations can
> use to fit their specific system. For example, for sites such as the
> OpenDesktop network, they might only use:
>
> CATEGORY -> CONTENT
>
> Whereas another site might need:
>
> CATEGORY -> SUBCATEGORY -> CONTENT
>
> ... and yet another site might need:
>
> CATEGORY -> SUBCATEGORY -> SUBSUBCATEGORY -> CONTENT
>
> Which, if they wanted to do that, they just need to add the necessary
> "categoryid", "subcategoryid", "subsubcategoryid" etc parameters to their
> structure. Obviously the more categories you add, the messier it gets (which
> suggests you rethink your site!)
>
> So all we have to do is describe a single hierarchy level, and if people
> want more hierarchies, they just need to prefix another "sub" and add the
> necessary parameters to show the full parenthood tree.
>
> So using this new system, to use a practical example, I can now solve my
> WIPUP problem with:
>
> CATEGORY -> SUBCATEGORY (PROJECT) -> CONTENT
> -personid (USER)
>
> ... and I can call CONTENT->subcategories with the GET URL attribute of
> "personid" to show all the projects belonging to a user, or with the GET URL
> attribute of "categoryid" (not shown above) to show projects belonging to a
> category. Similarly I can call CONTENT->list with the GET URL attribute of
> "subcategory" to show all content in a single project.
>
> I hope this is a extremely flexible proposal which should work for most
> sites out there. Please let me know your comments (or
> questions/suggestions)!
Bumpity bump?
--
Dion Moult
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/ocs/attachments/20110204/cc206616/attachment.pgp>
More information about the Ocs
mailing list