See 
PublishedAPI for packages intended to be used by Plugin and Contrib authors, or 
browse all packages.
See also 
Developing plugins, 
Developer's Bible, 
Technical Overview
  internal package Foswiki::Plugins::ClassificationPlugin::Hierarchy  
a hierarchy is the container for all categories in a web. each web is associated
with exactly one hierarchy object. A hierachy is stored persistently on disk
and is loaded into memory. it is only reloaded if it changed on disk by another
process
 ClassMethod new($web, $topic, $text) → $hierarchy 
constructor
 ObjectMethod finish() 
does not invalidate this object; it is kept intact to be cached in memory
in a mod_perl or speedy-cgi setup; we only store it to disk if we updated it 
 ObjectMethod purgeCache($mode, $touchedCats) 
 
-  mode = 0 → do nothing
-  mode = 1 → a tagged topic has been saved
-  mode = 2 → a categorized topic has been saved
-  mode = 3 → a classified topic has been saved
-  mode = 4 → a category has been saved
-  mode = 5 → clear all
 ObjectMethod init() 
initializes all categories of this hierarchy
 ObjectMethod initFromTopic() 
initializes this hierarchy from its web.topic properties
 ObjectMethod initFromText() 
initializes this hierarchy from the text of its web.topic
 ObjectMethod initFromWeb() 
this is the most common way to initialize a hierarchy: by 
traversing all topics in a web and create categories from topics
of type "Category"
 ObjectMethod printDistanceMatrix() 
debugging method to show the content of the distance matrix as computed
by 
computeDistance()
 ObjectMethod computeDistance() 
computes the distance between all categories using a Wallace-Kollias
algorith for transitive closure. results are cached as part of the hierarchy
 ObjectMethod distance($topic1, $topic2) → $integer 
This computes the minimum distance between two categories or a topic and a
category or between two topics. If a non-category topic is under consideration
then all of its categories are measured against each other while computing the
overall minimal distances.  So simplest case is measuring the distance between
two categories; the most general case is computing the min distance between two
sets of categories.
 ObjectMethod catDistance($cat1, $cat2) → $integer 
fast lookup of the distance between two categories
 ObjectMethod getSimilarTopics($topicA, $threshold)  
Find all topics that are similar to the given one i nthe current web
similarity is computed by calculating the weighted matching coefficient (WMC)
counting matching tags and categories between two topics. Matching categorization
is weighted in a way to matter more, that is two topics correlate more if
they are categorized similarly than if they do based on tagging information.
This is an rought adhoc model to reflect the intuitive importance in 
knowledge management of category information versus tagging information.
The provided threshold limits the number of topics that are considered similar
 ObjectMethod computeSimilarity($params) 
 ObjectMethod subsumes($cat1, $cat2) 
return true if cat1 subsumes cat2 (is an ancestor of)
returns a list reference of all tags in use
 ObjectMethod getCategoriesOfTopic($topic) → $list 
returns a list reference of all direct categories of a topic
 ObjectMethod getCatFields(@topicTypes) → $list 
get names of category formfields of a topictype
 ObjectMethod getCategories() → @list 
returns a list of all category objects in this hierarchy
 ObjectMethod getCategoryNames() → @list 
returns a list of all category names in this hierarchy
 ObjectMethod getCategory($name) → $cat 
returns a category object of the given name
See 
Foswiki::Plugins::ClassificationPlugin::Category
 ObjectMethod setCategory($name, $cat) 
adds the named category to the hierarchy
 ObjectMethod createCategory(…) → $cat 
returns a new category object for the given parameters
See 
Foswiki::Plugins::ClassificationPlugin::Category::new()
 ObjectMethod traverse($params) → $results 
recursively traverses a hiearchy and formats results.
params may hold:
 
-  top: starting point
-  sort
-  header
-  footer
-  separator
-  nullformat
 ObjectMethod getPreferences(@list) 
get preferences of a set of categories
 ObjectMethod checkAccessPermission($mode, $user, $topic, $order) → $boolean 
experimental: check permissions based on category preferences
 ObjectMethod collectTopicsOfCategory() 
iterates of the hierarchy's web and assigns topics to their category
 ObjectMethod filterCategories($params) → @list 
returns a list of categories matching the properties in 
$params as there are:
 
-  title: regex
-  name: regex
-  casesensitive: boolean
 ObjectMethod sortCategories($cats, $crit) → $list 
returns a sorted list of categories. 
$crit can be
 
-  order: sort by order property of categories
-  name
-  title
 ObjectMethod translate($text) → $string 
compatibility wrapper for 
MultiLingualPlugin