Taxonomy in Elvis 4 Server
Taxonomies are predefined (hierarchical) lists of terms that can be used to apply metadata on selected items or can be used to search and filter on. Some metadata standard groups, like the IPTC, supply complex taxonomies to be used in certain default fields — like subject or subjectCode, which we've included as example files.
Figure: The Taxonomy panel in the Elvis DAM Client.
Supported taxonomy formats
You can add taxonomies of various widely used formats. Elvis supports the following formats:
- Plain text (tab spaced)
Samples for every format are included in the server to show you examples on setting up taxonomies to use with the Elvis server.
Drop taxonomy files into Config/taxonomies to make them available to the server, along with a settings file (only for RDF taxonomies). Add them to a field by editing the field information in the custom-assetinfo.xml file.
Note: Remove unused taxonomy files or add a "-" as prefix. This makes sure that these taxonomies are not loaded in the index on startup
Changes to the custom-assetinfo.xml require a restart of the server, changes to a taxonomy file or it's settings are automatically applied after one minute.
Tip: A taxonomy manager can perform live edits on taxonomy files because the server does not require a restart to reflect these changes.
The following field specific taxonomy settings are available in the custom_assetinfo.xml:
- source (required). The source file of the taxonomy terms.
- ancestorsSelectable (default **false**). Allow the user to set parent values as metadata value, child elements can always be added.
- ancestorsSearchable (default **true**). Make parent values searchable when child values are selected. Example: Galaxy > Planet > Earth, when "Earth" is selected as value, the asset can also be found by searching for Planet or Galaxy.
- onlyFromList (default **true**). Only allow selection of metadata values from the taxonomy.
- sort - default (**true**). Sort the taxonomy terms on alphabetical order when true.
The following example shows a taxonomy added for the tags field that allows the user to add custom values and is sorted on the order of the taxonomy:
<fieldExt name="tags"> <data> <taxonomy source="keyword-list.txt" ancestorsSelectable="true" onlyFromList="false" sort="false"/> </data> </fieldExt>
Taxonomies in RDF format need additional configuration compared to the CSV and plain text taxonomies, this is done with a settings file containing taxonomy-specific properties. For example, a taxonomy subject-code.rdf will need settings file subject-code.properties.txt to be configured properly.
Following are a few samples for the various settings that need to be defined for RDF taxonomies.
# # This config file defines XPaths used to load a taxonomy from an IPTC SKOS based RDF file. # namespace.skos=http://www.w3.org/2004/02/skos/core# namespace.rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
# # XPath to lookup root nodes for taxonomy. # xpath.rootNodes=/rdf:RDF/rdf:Description[rdf:type/@rdf:resource = 'http://www.w3.org/TR/skos-reference/skos.html#Concept' and not(skos:broaderTransitive)] # # XPath to lookup child nodes for any taxonomy node. # # Evaluated with taxonomy term node as context. # xpath.childNodes=following-sibling::rdf:Description[skos:broaderTransitive/rdf:Description[@rdf:about = $termNode/@rdf:about]]
# # Evaluated with taxonomy term node as context. # xpath.name=skos:prefLabel xpath.uri=@rdf:about xpath.definition=skos:definition