AxKit::App::TABOO::Data::Category - Category Data objects for TABOO


  use AxKit::App::TABOO::Data::Category;
  $cat = AxKit::App::TABOO::Data::Category->new(@dbconnectargs);
  $cat->load(what => '*', limit => {catname => 'kitten'});


It is often convenient to lump articles together in categories. People do that to organize subjects that interest them, find things that are related and so on. In the TABOO framework, the intention is to use several types of categories, but they are conceptually similar, and so, stored together.


This class implements only one method, in addition to the constructor, the rest is inherited from AxKit::App::TABOO::Data.


The constructor. Nothing special.


This is an ad hoc method to retrieve the full name of a category, and it takes a $catname key to identify the category to retrieve. It will return a string with the name, but it will also populate the corresponding data fields of the object. You may therefore call write_xml on the object afterwards and have markup for the categoryname and name.


The data is stored in named fields, and for certain uses, it is good to know them. If you want to subclass this class, you might want to use the same names, see the documentation of AxKit::APP::TABOO::Data for more about this. These are the names of the stored data of this class:

  • catname

    A simple word containing a unique name and identifier for the category.

  • name

    An expanded name intended for human consumption.

  • type

    TABOO (is intended to) recognize several types of categories, for different uses. The content of type should be one of several 5-character strings:

    • categ - the basic category, for a hacker website, for example "Perl", "Apache" etc. However, it is the intention that categ should be a controlled vocabulary, i.e. your article should fit in one or more categories, and you have to choose from those provided to you.

    • frees - Sort of like a category, but Free Subjects. If it doesn't really fit in any of the categories, you should be free to specify something, and this may also be useful in lumping things together in an ad hoc way.

    • angle - People write articles about the same subject but see it from different angles. For example, an anthropologist will view hackerdom from a different angle than a programmer.

    • stsec - Stories that are managed by the Story data objects go in different sections, and we store them here.

    This may be extended, and this may not even be the place to document it in the future.

  • uri

    In the Semantic Web you'd like to identify things and their relationships with URIs. So, we try to record an URI for everything.

  • description

    A longer description of a category, intended as an explanation to a human what kind of things belong in that category.

XML representation

The write_xml() method, implemented in the parent class, can be used to create an XML representation of the data in the object. The above names will be used as element names. The xmlelement(), xmlns() and xmlprefix() methods can be used to set the name of the root element, the namespace URI and namespace prefix respectively. Usually, it doesn't make sense to change the default namespace or prefix, that are


  • category

However, the root element may change depending on what kind of category we have. The default is category.


See AxKit::App::TABOO.