Faceted Classification and Process Patterns
These components have been added to deal with the problem of long and confusing selection lists, as in these github issues:
See also Process Pattern tips
- 1 Definition
- 2 Related to SENSORICA's VAS
- 3 Setting up the system
- 3.1 1. Create some Facets
- 3.2 2. Give them some values
- 3.3 3. Create some Process Patterns
- 3.4 4. Set their facet values to filter resource types for logging methods
- 3.5 5. Test your pattern. Select Patterns from the user menu on the far right
- 3.6 6. Make sure your pattern finds the resource types you want
- 3.7 7. Add facets to your resource types
Wikipedia describes faceted classification:
A faceted classification system allows the assignment of an object to multiple characteristics (attributes), enabling the classification to be ordered in multiple ways, rather than in a single, predetermined, taxonomic order. A facet comprises "clearly defined, mutually exclusive, and collectively exhaustive aspects, properties or characteristics of a class or specific subject". For example, a collection of books might be classified using an author facet, a subject facet, a date facet, etc.
Faceted classification is used in faceted search systems that enable a user to navigate information along multiple paths corresponding to different orderings of the facets. This contrasts with traditional taxonomies in which the hierarchy of categories is fixed and unchanging. http://en.wikipedia.org/wiki/Faceted_classification
Related to SENSORICA's VAS
People have proposed category hierarchies to deal with the selection list problems, but facets will be more flexible. (People have also asked for resource types to be able to belong to more than one category. That's what these facets are.)
The current categories have another problem: they combine apples and oranges, for example, Prototype and Equipment (with those categories, we can't have a prototype of some equipment). Facets don't have this problem because a resource type can have many facets, each of them describing different aspects. In other words, a resource type could be both prototype and equipment.
The next improvement, built on Facets, is Process Patterns. If we used Categories or even Facets alone to filter selection lists, people would first need to select Category or Facet before they could get their filtered selection list. So they would need to understand the Categories or Facets, besides needing more clicks and selections.
Process Patterns pre-selects the facets for a logging situation and does the filtering for you. So, for example, you could have an Optical R&D pattern that would pre-select only the output, input, citable and work resource types that typically go into Optical R&D processes.
But, of course, there is a catch in all these improvements: somebody needs to understand and create Facets and Process Patterns. And as in all configuration elements, they are akin to programming, and you can create bugs and unintended consequences. And so, this tutorial:
As of now, you can only create Facets and Process Patterns in Admin. But there's a page (below) for testing your Process Patterns to make sure you are finding the resource types you want, and also a nice table for assigning facet values to resource types.
More about facets and patterns
We have resource types, that are described/categorized by various facets (category, domain, stage, work, ...). The row in the Resource Type Facets has facet values and it should completely describe the resource type, and make all the necessary distinctions among them. This is where the system get's its power of representation.
Pattern, use and facet value.
A pattern is more related to a page.
Example of uses: cite, use, produced, consume, work
A "use" is a way of mixing facet values, defining facet value constraints. Example, I am only interested in resource-types that have SENSORICA (a facet value of the "source" facet) as a source in the system.
We must associate a uses to a pattern. A pattern can have multiple uses.
Definition of SENSORICA's facets
See how resources are classified as resource types
They are used in dropdowns in processes where we're picking something we're producing or using.
- logging time in labnotes and design logging
not uses in non-production work logging
When choosing a citation, the options presented for what can be citable are defined by the pattern "Intellectual design", which is linked by a "use case" (tells where in the system the pattern is used). Example, this is used in the Log Design page. That pattern as slots, and the design page has slots (work, cite and produced). The page is the use case.
- Deliverable: any material or immaterial artifact that can be delivered and share with others.
- Source: only use it for components and products.
No resource type can have both, "work" and "deliverable". "work" resource types can only have "work" and "optionally" domain.
Setting up the system
1. Create some Facets
2. Give them some values
Be consistent. Each facet should have values from the same logical domain.
3. Create some Process Patterns
4. Set their facet values to filter resource types for logging methods
6. Make sure your pattern finds the resource types you want
If you have problems, the logic behind the pattern filter goes like this:
- Different Facets use AND logic. In other words, if your pattern has different facets, a resource type to be selected must have all of those facet values. For example, the pattern shown above specifies the facet Department with the value Optical and the facet Source with the value SENSORICA for output resource types. The resource types that pass the filter have both facet values. The fact that Design - Optics - Robot Finger has an extra facet value (Stage: Design) does not matter.
- Within the same Facet, values use OR logic. In other words, if your pattern has more than one value in the same facet, a resource type to be selected may have any of those values, but must also have an acceptable value in all of the other facets in the pattern for that process relationship (output, input, etc.). You can see OR logic in the Input Resource Types for the pattern shown above.
You may have problems with unwanted resource types passing the filter. If so, add another facet value that they don't have.
7. Add facets to your resource types
This table is linked to the Test Patterns page (previous). Follow the instructions at the top.