innovation in metadata design, implementation & best practice

Blog posts

DC Tabular Application Profiles Many communities today create application profiles (APs) for their data. Application profiles provide the rules that govern the creation and reuse of metadata instances. Their function is both to explain the metadata but also to potentially constrain the metadata so that correct usage can be determined. A single profile can serve a variety of needs: metadata creation support, metadata validation, metadata exchange, metadata selection, and mapping between metadata from different sources.

Note: This piece, posted to a DCMI wiki in 2011, was reformatted and lightly edited for the DCMI blog in 2019.

The notion of an "application profile" was introduced to the Dublin Core™ community by Rachel Heery at the 8th Dublin Core™ workshop of October 2000. The idea distinguished sharply between "namespace schemas" (sets of data elements as defined by their maintainers) and "application profile schemas" (sets of data elements drawn from one or more namespace schemas and optimized for local needs by implementors), introducing the notion of "mixing-and-matching Dublin Core™ elements with elements from related vocabularies.

Note: This short piece, posted to a DCMI wiki in 2011, was reformatted and lightly edited for the DCMI blog in 2019.

The DCMI Abstract Model (DCAM) specifies an abstract syntax for metadata records independent of particular concrete encoding syntaxes. The components of DCAM's abstract syntax map unambiguously to components of the RDF abstract syntax. In addition, DCAM's abstract syntax provides several grouping constructs not present in RDF -- notably "description sets" (mappable in principle to a named graph instantiated as a "metadata record"), "descriptions" (mappable in principle to a sub-graph of RDF triples about a single subject), "DCAM statements" (mappable to a sub-graph composed of an RDF statement plus contextual information about the value of that statement), and "value surrogates" (mappable to the different sets of statements used to describe values directly encoded as literal string values as opposed to values identified by URIs or blank nodes).