Data Hierarchy

Jump to: navigation, search

This is a brief overview of how Projects, Libraries, TagSets, etc. are laid out.

Hierarchical Members

Project Layout.png


A Library is the container in which MediaFiles and associated data are stored.


Every MediaFile is in exactly one Library. While in the past we grouped MediaFiles by user, the Library aims to be an abstraction away from user-centric file ownership to facilitate later sharing.


The custom MediaFile UserMetaData is stored within the Library. While the MetaData entries themselves are of course unique to a file, the Fields used to define these values (e.g., "Author", "Date") are common to a Library. See MediaFileUserMetaData


This is the fundamental block that users work with. A Project contains links a set of MediaFiles that are tagged or otherwise processed.

Tag Classes

Each Project contains a collection of TagClasses. These classes are common among all of the TagSets in a Project, but are not shared outside of the Project.


See Also TagSets

A collection of Tags. TagSets can be used to group Tags in many ways. For example:

  • A set for each user that hand tags
  • A set for an automatic tag discovery process (Machine Tags)
  • A set for each category of tag, e.g.,
    • Spoken Words
    • Individual Syllables
    • Background Noise
    • Bird Species

Note: Each Tag is in exactly one TagSet.


Currently, sharing is accomplished by giving read or write access to a Project. The user then has full access to all parts of the Project.

See Sharing Access for details on the Sharing model we are migrating towards.