A Proposal for a Person Schema

This describes a natural Person as a Thing. Therefore, elementId, @id, coreMetaData, and context will always be present in Things.

PropertyExpected TypeDescription
emailEmailPrimary Electronic Mail address.
elementIdStringA unique and persistent identifier for the record within the system's data set.
@idURLThe full unique link to the item so it's traversable by that property.
coreMetaDataObjectThe object representation of the Thing CoreMetaData.
emailAddressesArrayA collection of Email objects.
socialAddressesArrayThe various Internet locations that help disambiguate a person or organization, such as their FaceBook, LinkedIn, YouTube and Twitter Address.
phoneNumbersArrayA collection of PhoneNumber. Which foreign key is used will be determined by the object the phone number is in.
languagesObjectA collection of Language.
contextContextThe JSON-LD context for the item in question.
postalAddressesArrayAn array of the object Postal Address.
membershipObjectThe object representation of the Thing Membership.
personNameObjectThe object representation of the Thing PersonName.
disambiguatedObjectThe object representation of the Thing Disambiguated.

Common Elements

Person has multiple common elements, such as postalAddresses, socialAddresses, phoneNumbers, and languages. These have all been approved for quite some time and can be found online at their respective URLs.

Many of the elements within Person are Things or Objects unto themselves and are described below.

email and Email addresses

Email is the primary email address for the person, and emails is a a listing of all other email addresses for the person.

Membership

This is the array of the things (as of now) that a person can belong to within the schema.

PropertyExpected TypeDescription
affiliationsArrayA collection of Affiliation.
groupsArrayA collection of Group.
initiativesArrayAn array of Initiative.
OrganizationsArrayAn array of Organization.

Affiliations are very simplistic names, such as CSA, ISACA, etc., basically abbreviations of organization names.

Initiatives has more to do with the various software initiatives a person might be involved in.

Groups and Organizations, however, are different entirely. We cover Groups and Organizations in a different document HERE.

PersonName

PersonName is an object of the Thing PersonName. It is used for names of natural persons, as opposed to a name of an agent, group, organization, etc. The International Federation of Library Associations, as well as a few publishers’ associations, have taken the stance that both name prefixes and suffixes should be standardized. As such, we’ve included that methodology into the Person schema. These two items have their own schemas, which we’ll cover below.

PropertyExpected TypeDescription
firstNameStringThe person's first name.
lastNameStringThe person's last name.
middleNameStringA person's middle name.
nameStringThe name of the item or record.
elementIdStringA unique and persistent identifier for the record within the system's data set.
freeformNameStringA free-form name for a Person
@idURLThe full unique link to the item so it's traversable by that property.
coreMetaDataObjectThe object representation of the Thing CoreMetaData.
contextContextThe JSON-LD context for the item in question.
nickNamesArrayAn array of NickName.
namePrefixObjectThe object representation of the Thing NamePrefix.
nameSuffixObjectThe object representation of the Thing NameSuffix.
akaPersonNamesArrayAn array of person names that the person can be alternately know by.

NamePrefix

Name prefix is the object that defines the abbreviated (Dr.) version of a person’s name as opposed to the long version (Doctor).

PropertyExpected TypeDescription
element idStringA unique and persistent identifier for the record within the system's data set.
abbreviationStringA shortened form of a word or phrase.
@idURLThe full unique link to the item so it's traversable by that property.

NameSuffix

Name prefix is the object that defines the abbreviated (Jr.) version of a person’s name as opposed to the long version (Junior).

PropertyExpected TypeDescription
nameStringThe name of the item or record.
element idStringA unique and persistent identifier for the record within the system's data set.
abbreviationStringA shortened form of a word or phrase.
@idURLThe full unique link to the item so it's traversable by that property.
core meta dataObjectThe object representation of the Thing CoreMetaData.
contextContextThe JSON-LD context for the item in question.

Disambiguated

For a discussion about disambiguation, see the online documentation regarding that topic. Each disambiguation record is treated as a Thing as it can change on its own and therefore is required to have coreMetaData associated with it. The key properties here are liveStatus (1 for disambiguated, 0 or null for not), and authorityRecords.

PropertyExpected TypeDescription
liveStatusStringA Boolean field of "live" (1::boolean) or "deprecated" (0::boolean).
elementIdStringA unique and persistent identifier for the record within the system's data set.
@idURLThe full unique link to the item so it's traversable by that property.
statusDateDatetimeThe status date value.
coreMetaDataObjectThe object representation of the Thing CoreMetaData.
authorityRecordsObjectAn array of Authority Record IDs.
contextContextThe JSON-LD context for the item in question.

Authority Records

Each property in the array of Authority Records contains a Disambiguation Record ID, a pointer to an Authority Source’s record wherein the Person was disambiguated.