From programers point of view each label has a type, a name and a value, e.g. for category labels it is type := CategoryLabel, name := Category (both are fix) and a value :=
name of snip which define the category.
A usecase is to define some category labels like (ToDo, Review) or (Preliminary, Accepted, Finished) and use these labels to track your workflow. You could add the labels "ToDo" and "Preliminary" to a snip if you have to work on it. After finish your work replace "ToDo" by "Review" to push it into the review process and so on.