ChAMP is designed to be flexible - the parts can used and reused in many different ways by developers. That is a good thing because it allows development to be defined by the application area. However, developers may have a had time knowing where to start, so what follows is a set of best practices (and guidelines) for implementation of ChAMP or any similar project.
- Look at how ChAMP is organized. Think about your project in a similar way.
- Define the scope of your application. Articulate specifically what areas it will not cover.
- After defining metadata needed for your application evaluate which items can be represented by ontologies that already exist (not just CAO)
- Wherever possible, make the name singular. This may seem strange relative to common usage but makes better sense when multiple terms get separated in, for instance, RDF
- Do not include numeric digits or special characters in metadata names
- Use camel case (e.g. camelCase) for metadata names that would logically have spaces
- For each metadata item
- define its data type (use of the XML data types is recommended)
- decide whether it should be represented by a controlled vocabulary, enum list, or set of terms
- determine if the metadata item should occur multiple times or only once for the thing it is describing
- For those metadata that should be controlled vocabulary based, use published vocabularies from national organizations in the domain OR if none exists consider working with a discipline group to create and publish an open vocabulary
- In cases where a large amount of metadata is needed, consider separating the items into categories to help manage them and think at a higher level about the types of metadata that are important to project. This makes it easier to see gaps in metadata coverage.
- Look at the examples on this website. They show concrete implementations of ChAMP in both XML and JSON-LD