For User Documentation also checkout the PennSound specific documentation:

MetaTagging is “Tagging Tags”. Whereas a Tag assigns a category (TagClass) to an event in time, MetaTags assign additional information to these Tags.

The first version of this was the PoetryTagging App for the PennSound library. However, this used a fixed format of data fields and lacked any provision for later modifications or extensibility. This new MetaTagging framework allows customization of the interface and data fields.


Field Types

  • Radio Buttons
    • Select a single choice from a set of options
    • May or may not be required
  • Checkbox
    • A True/False choice
    • Never “required”
  • Exclusive Button
    • An ‘exclusive’ option exists too, which overrides all other fields in the form. For example, in the original PoetryTagging interface, Silence or Chatter (among others) can be selected, ignoring all data in the other fields.

Data Storage

All configuration and user data is stored in the database:


This specifies a “Form” for a tagging interface.

  • user
    User who ‘owns’ the Form - not really used for anything
  • name
    Name of the form
  • templateData
    Raw HTML template to use when generating the MetaTagging page


This specifies the fields that are in a ‘form’

  • form
    To what ‘form’ does this field belong
  • required
    Is this field required
  • name
    internal name (used in the template, so no spaces)
  • label
    What is displayed on the form.
  • widget
    Which widget to use
  • initial
    An initial value is selected (points to an Option below)

Widget Types

  • RADIO(1)
    Radio options
  • SELECT(2)
    A True/False checkbox
    See Above


  • Not all data applicable to all widgets.
  • CHECKBOX MUST Have Two Options, “True” and “False”
  • EXCLUSIVE must be manually built into the HTML Template
  • EXCLUSIVE must have exactly one TagMetaFieldOption, named anything


Enumerates each possible option for a field:

  • field
    Points to the TagMetaField
  • label
    Name of the option


These entries are the actual user MetaTags.

  • user
    Who tagged this
  • dateTagged
    When it was tagged
  • tagExample
    What did we tag?
  • option
    Points to a TagMetaFieldOption