Extended Vocabularies

STEMMA uses a number of partially controlled vocabularies
for its types, sub-types, and other taxonomies — collectively referred to here as
“tag values” as they are specified within element content or attribute values.
With the exception of source-type, these all belong to default implicit
namespaces. Those namespaces are implicitly rooted on the versioned default
namespace specified in the standard xmlns attribute, e.g. http://stemma.parallaxview.co/2017-04.
The following namespaces are currently defined by STEMMA. The ones highlighted
in blue constitute fully controlled vocabularies that cannot be extended.

Namespace

Examples

http://stemma.parallaxview.co/animal-name-mode

Title

http://stemma.parallaxview.co/animal-property

Name, Age, Role

http://stemma.parallaxview.co/animal-relationship

Sibling, Parent

http://stemma.parallaxview.co/animal-role

Deceased, Offspring

http://stemma.parallaxview.co/animal-status

Deceased, Implied

http://stemma.parallaxview.co/animal-subtype

Pet, Mascot

http://stemma.parallaxview.co/animal-type

Cat, Dog

http://stemma.parallaxview.co/anomaly-mode

Footnote, Marginalia

http://stemma.parallaxview.co/citation-format-mode

RefNote, ShortRefNote

http://stemma.parallaxview.co/citation-layer-type/

ImageCopy, Repository

http://stemma.parallaxview.co/citation-mode

Footnote, Inline

http://stemma.parallaxview.co/data-type

Text, Date, Integer

http://stemma.parallaxview.co/date-mode

Short, Long

http://stemma.parallaxview.co/event-mode

Title

http://stemma.parallaxview.co/event-property

When, Where

http://stemma.parallaxview.co/event-subtype

Marriage

http://stemma.parallaxview.co/event-type

Union, Travel, Birth

http://stemma.parallaxview.co/group-name-mode

Title

http://stemma.parallaxview.co/group-subtype

Nuclear, Blended

http://stemma.parallaxview.co/group-type

Military, Family

http://stemma.parallaxview.co/group-op

Union, Exclude

http://stemma.parallaxview.co/info-credibility

Trusted, Questionable

http://stemma.parallaxview.co/info-reliability

Primary, Secondary

http://stemma.parallaxview.co/name-mode

Formal, SemiFormal

http://stemma.parallaxview.co/note-mode

Link, Inline, Footnote

http://stemma.parallaxview.co/person-name-mode

Title

http://stemma.parallaxview.co/person-name-type

Alias, Nickname

http://stemma.parallaxview.co/person-property

Role, Age, Occupation

http://stemma.parallaxview.co/person-relationship

Wife, Brother, Mother

http://stemma.parallaxview.co/person-role

Head, Bride

http://stemma.parallaxview.co/person-status

Married, Widow

http://stemma.parallaxview.co/place-category

School, Cemetery, Ship

http://stemma.parallaxview.co/place-name-mode

Title, Hierarchy

http://stemma.parallaxview.co/place-property

Parish

http://stemma.parallaxview.co/place-role

Destination

http://stemma.parallaxview.co/place-type

Street, District, Country

http://stemma.parallaxview.co/resource-mode

Title, Large

http://stemma.parallaxview.co/resource-type

Artefact, Letter

http://stemma.parallaxview.co/sensitivity

Public, Family

http://stemma.parallaxview.co/source-link-type

Source, Inference

http://stemma.parallaxview.co/source-quality

Original, Derivative

http://stemma.parallaxview.co/source-type

Testimony-1

http://stemma.parallaxview.co/text-class

Caption, H1, Tablenote

Custom tag values may be defined by declaring a new
namespace using an xmlns attribute in the <Dataset> header element. The
prefix associated with that namespace can then be used to introduce custom tag
values without any fear of clashing. For instance:

<Dataset Name=’Example’

xmlns:MyEvents=’http://mydomain.com/myevents’>

...etc...

<Event>

<Type> MyEvents:xyz </Type>

This mechanism uses the same XML namespace feature that
prevents clashes between element names and attribute names from different
origins. XML tag names (elements and attributes) are deemed to belong to a
given namespace and must be qualified using a namespace prefix if this is not
the default one, e.g. <xs:annotation>. The qualified form is referred to
as a QName. When the mechanism
is employed within attribute values or element content then it is more
correctly called a CURIE (“Compact
URI”), and the qualified value may not even be a valid identifier — in the STEMMA case then this occurs
with Place coordinates.

Although the namespace prefix is bound to a namespace URI,
the XML standard does not define how to map a QName to an equivalent URI
specification. The XML Schema language (XSD) concatenates the
local tag name and the namespace URI using a ‘#’ separator to create a Fragment identifier
(e.g. http://stemma.parallaxview.co#Dataset) but it is not clear what happens
if the namespace URI already ends with a ‘#’. The RDF model, on the other hand,
simply concatenates the namespace URI and the local tag name with no separator
(e.g. http://stemma.parallaxview.coDataset). Most RDF namespace URIs already
end with a ‘#’ (or even a ‘/’) but not always. This is a well-known problem and
a possible solution has been proposed at QNameQuagmire.

This does not directly impact the STEMMA use of namespaces
though. The above custom Event-type is defined by the pair (http://mydomain.com/myevents,
xyz) and the predefined Event-type ‘Union’ is defined by the pair (http://stemma.parallaxview.co/event-type,
Union). The main differences here are that these namespaces apply to tag
values, and the non-default namespaces are local to the associated Dataset.

An XML parser normally discards any such prefixes once the
XML has been loaded since they usually just connect names to their respective
namespace declarations. The exception to this is when they have been employed
in attribute values or element content, as is the case in STEMMA and SOAP. The prefix-to-namespace
mapping then has to be retained and made available to the program loading the
XML. This is why the tag-value namespaces are expected to be associated with
the enveloping Dataset element rather than any of elements below it.

Note that tag values should not be displayed directly in the
UI of a genealogical product. See Locale-independence.

The namespace prefix DC=’http://purl.org/dc/terms/’ is
required for the Dublin Core semantic types mentioned in this documentation.
The use of a namespace prefix, rather than simply “DC.”, accommodates other
semantic-type systems if necessary.

On a technical note,
this usage of a URI is sometimes referred to as a URN although, strictly
speaking, a URN is a particular form of URI that uses a "urn:" scheme
prefix and is designed to support hierarchical naming of objects. A much-quoted
example of it is ISBN book references. The syntax is therefore more rigid (e.g.
urn:xx:yy:zz) and the allowable characters more restricted. The associated
namespace also has to be officially registered and that administrative burden
tends to lessen its usage.
What we’ve used here is still a URI but employed for naming purposes, and is
hence not the same as a URL. W3C don't really have a separate category for this
although the historical use of the term URN in this context is accepted. Some
material describes it as a "namespace name" but that's not universal.
The most familiar example is the "namespace URI" in XML bodies.

Essentially, this form of URI names an object, or a type, and is guaranteed to
be unique by virtue of the ownership of the domain used. For instance, a URI of
http://stemma.parallaxview.co is
unique to STEMMA because the author owns the parallaxview.co domain. It is also
possible to derive URIs from a private email address, e.g. mailto:name@emaildomain?subject=types.
Such namespace URIs are not designed to be dereferencable and so the scheme
prefix isn't implying any access protocol.

In summary, this style
of URI can be created in a decentralised manner (unlike real URNs), it is
extensible (supporting derivative names and types), and it can be versioned.
This contrasts with the use of raw UUIDs, or even ones wrapped as URNs (e.g.
urn:uuid:d8e6a531-5dee-47a1-a0e2-ca5dbffd87c0), since they are amorphous and
isolatedSee URNs,
Namespaces, and Registries for more details, and Uniform
Resource identifier for a mention of URC.