FamilySearch/gedcomx — pull request #188 by stoicflame (2013-05-08 17:40:07+00:00)
Title: Spec lacks details of extensibility and use of vocabularies

This issue arises from the discussions in #185 and #187, and replaces the latter.

[Section 8: Extensibilty](https://github.com/FamilySearch/gedcomx/blob/master/specifications/conceptual-model-specification.md#8-extensibility) describes the term "foreign vocabularies" (any "unrecognized" data type or property) and attempts to describe how they may be used.

It doesn't succeed. It's confusing and too permissive -- the sorry history of GEDCOM shows that vendors will use extension features to make their exported GEDCOM files unintelligible to other programs as a way to lock-in users.

As a starting point:
* Provide a formal definition for "vocabulary"
* Specify (or reference specifications which specify) how a vocabulary must be defined and require that vocabularies must be published and freely licensed under the same terms as GedcomX.
* Clarify the usage. For example, "GEDCOM X allows properties of foreign vocabularies in any data type, except where it is explicitly forbidden." might mean "Any property of any GEDCOMX data type may contain a URI from a foreign vocabulary unless the property is explicitly limited to a particular vocabulary." or it might mean something else.
* The term "controlled vocabulary" is used in #187 without explaining what "controlled" means. Define it in the spec.