NAME
AxKit::App::TABOO::Data::Category - Category Data objects for TABOO
SYNOPSIS
use AxKit::App::TABOO::Data::Category;
$cat = AxKit::App::TABOO::Data::Category->new();
$cat->load('kitten');
DESCRIPTION
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.
METHODS
This class implements only one method, in addition to the constructor, the rest is inherited from AxKit::App::TABOO::Data.
new()
-
The constructor. Nothing special.
all_of_type($type)
-
This method will return an arrayref containing the catnames of all categories of type
$type
. This is a bit unelegant, since the typical use is to first call it on an object just created, then create an array containing Category objects based on it, but I didn't find a better solution right now... load_name($catname)
-
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 callwrite_xml
on the object afterwards and have markup for the categoryname and name.
STORED DATA
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.
This may be extended.
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()
and xmlns()
methods can be used to set the name of the root element and the namespace respectively. Usually, it doesn't make sense to change the default namespace, which is
http://www.kjetil.kjernsmo.net/software/TABOO/NS/Category/Output
However, the root element may change depending on what kind of category we have. The default is primcat
.
FORMALITIES
See AxKit::App::TABOO.