Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
openldap
OpenLDAP
Commits
cb4f0fb2
Commit
cb4f0fb2
authored
May 17, 2000
by
Kurt Zeilenga
Browse files
RFC 1274 cosine pilot schema
(pilot.schema is actually closer to newPilot)
parent
bb4ee30a
Changes
1
Hide whitespace changes
Inline
Side-by-side
servers/slapd/schema/cosine.schema
0 → 100644
View file @
cb4f0fb2
# $OpenLDAP$
#
# RFC1274: Cosine and Internet X.500 schema
#
# This file contains LDAPv3 schema derived from X.500 "pilot"
# schema. As this schema was defined for X.500(89), some
# oddities were introduced in the mapping to LDAPv3.
#
# The syntax and matching rules of attribute types listed may be
# incomplete or otherwise incorrect.
#
# It may be best to avoid use this schema.
#
# Note: It seems that the pilot schema evolved beyond what was
# described in RFC1274. However, this document describes RFC1274
# as published. So called "newPilot" objects, such as found on
# U-Mich/OpenLDAP 1.x servers is available in newpilot.schema.
# Network Working Group P. Barker
# Request for Comments: 1274 S. Kille
# University College London
# November 1991
#
# The COSINE and Internet X.500 Schema
#
# [trimmed]
#
# Abstract
#
# This document suggests an X.500 Directory Schema, or Naming
# Architecture, for use in the COSINE and Internet X.500 pilots. The
# schema is independent of any specific implementation. As well as
# indicating support for the standard object classes and attributes, a
# large number of generally useful object classes and attributes are
# also defined. An appendix to this document includes a machine
# processable version of the schema.
#
# [trimmed]
# 7. Object Identifiers
#
# Some additional object identifiers are defined for this schema.
# These are also reproduced in Appendix C.
#
# data OBJECT IDENTIFIER ::= {ccitt 9}
# pss OBJECT IDENTIFIER ::= {data 2342}
# ucl OBJECT IDENTIFIER ::= {pss 19200300}
# pilot OBJECT IDENTIFIER ::= {ucl 100}
#
# pilotAttributeType OBJECT IDENTIFIER ::= {pilot 1}
# pilotAttributeSyntax OBJECT IDENTIFIER ::= {pilot 3}
# pilotObjectClass OBJECT IDENTIFIER ::= {pilot 4}
# pilotGroups OBJECT IDENTIFIER ::= {pilot 10}
#
# iA5StringSyntax OBJECT IDENTIFIER ::= {pilotAttributeSyntax 4}
# caseIgnoreIA5StringSyntax OBJECT IDENTIFIER ::=
# {pilotAttributeSyntax 5}
#
# 8. Object Classes
# [relocated after 9]
#
# 9. Attribute Types
#
# 9.1. X.500 standard attribute types
#
# A number of generally useful attribute types are defined in X.520,
# and these are supported. Refer to that document for descriptions of
# the suggested usage of these attribute types. The ASN.1 for these
# attribute types is reproduced for completeness in Appendix C.
#
# 9.2. X.400 standard attribute types
#
# The standard X.400 attribute types are supported. See X.402 for full
# details. The ASN.1 for these attribute types is reproduced in
# Appendix C.
#
# 9.3. COSINE/Internet attribute types
#
# This section describes all the attribute types defined for use in the
# COSINE and Internet pilots. Descriptions are given as to the
# suggested usage of these attribute types. The ASN.1 for these
# attribute types is reproduced in Appendix C.
#
# 9.3.1. Userid
#
# The Userid attribute type specifies a computer system login name.
#
# userid ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-user-identifier))
# ::= {pilotAttributeType 1}
#
#(in core.schema)
##attributetype ( 0.9.2342.19200300.100.1.1 NAME ( 'userid' $ 'uid' )
## SUP 'name' )
# 9.3.2. Text Encoded O/R Address
#
# The Text Encoded O/R Address attribute type specifies a text encoding
# of an X.400 O/R address, as specified in RFC 987. The use of this
# attribute is deprecated as the attribute is intended for interim use
# only. This attribute will be the first candidate for the attribute
# expiry mechanisms!
#
# textEncodedORAddress ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-text-encoded-or-address))
# ::= {pilotAttributeType 2}
#
attributetype ( 0.9.2342.19200300.100.1.2 NAME 'textEncodedORAddress'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.3. RFC 822 Mailbox
#
# The RFC822 Mailbox attribute type specifies an electronic mailbox
# attribute following the syntax specified in RFC 822. Note that this
# attribute should not be used for greybook or other non-Internet order
# mailboxes.
#
# rfc822Mailbox ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreIA5StringSyntax
# (SIZE (1 .. ub-rfc822-mailbox))
# ::= {pilotAttributeType 3}
#
#(in inetorgperson.schema)
attributetype ( 0.9.2342.19200300.100.1.3 NAME ( 'rfc822Mailbox' 'mail' )
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
# 9.3.4. Information
#
# The Information attribute type specifies any general information
# pertinent to an object. It is recommended that specific usage of
# this attribute type is avoided, and that specific requirements are
# met by other (possibly additional) attribute types.
#
# info ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-information))
# ::= {pilotAttributeType 4}
#
attributetype ( 0.9.2342.19200300.100.1.4 NAME 'info'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.5. Favourite Drink
#
# The Favourite Drink attribute type specifies the favourite drink of
# an object (or person).
#
# favouriteDrink ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-favourite-drink))
# ::= {pilotAttributeType 5}
#
attributetype ( 0.9.2342.19200300.100.1.5 NAME ( 'favouriteDrink' )
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.6. Room Number
#
# The Room Number attribute type specifies the room number of an
# object. Note that the commonName attribute should be used for naming
# room objects.
#
# roomNumber ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-room-number))
# ::= {pilotAttributeType 6}
#
attributetype ( 0.9.2342.19200300.100.1.6 NAME 'roomNumber'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.7. Photo
#
# The Photo attribute type specifies a "photograph" for an object.
# This should be encoded in G3 fax as explained in recommendation T.4,
# with an ASN.1 wrapper to make it compatible with an X.400 BodyPart as
# defined in X.420.
#
# IMPORT G3FacsimileBodyPart FROM { mhs-motis ipms modules
# information-objects }
#
# photo ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# CHOICE {
# g3-facsimile [3] G3FacsimileBodyPart
# }
# (SIZE (1 .. ub-photo))
# ::= {pilotAttributeType 7}
#
attributetype ( 0.9.2342.19200300.100.1.7 NAME 'photo'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 )
# 9.3.8. User Class
#
# The User Class attribute type specifies a category of computer user.
# The semantics placed on this attribute are for local interpretation.
# Examples of current usage od this attribute in academia are
# undergraduate student, researcher, lecturer, etc. Note that the
# organizationalStatus attribute may now often be preferred as it makes
# no distinction between computer users and others.
#
# userClass ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-user-class))
# ::= {pilotAttributeType 8}
#
attributetype ( 0.9.2342.19200300.100.1.8 NAME 'userClass'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.9. Host
#
# The Host attribute type specifies a host computer.
#
# host ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-host))
# ::= {pilotAttributeType 9}
#
attributetype ( 0.9.2342.19200300.100.1.9 NAME 'host'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.10. Manager
#
# The Manager attribute type specifies the manager of an object
# represented by an entry.
#
# manager ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# distinguishedNameSyntax
# ::= {pilotAttributeType 10}
#
attributetype ( 0.9.2342.19200300.100.1.10 NAME 'manager'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
# 9.3.11. Document Identifier
#
# The Document Identifier attribute type specifies a unique identifier
# for a document.
#
# documentIdentifier ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-document-identifier))
# ::= {pilotAttributeType 11}
#
attributetype ( 0.9.2342.19200300.100.1.11 NAME 'documentIdentifier'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.12. Document Title
#
# The Document Title attribute type specifies the title of a document.
#
# documentTitle ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-document-title))
# ::= {pilotAttributeType 12}
#
attributetype ( 0.9.2342.19200300.100.1.12 NAME 'documentTitle'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.13. Document Version
#
# The Document Version attribute type specifies the version number of a
# document.
#
# documentVersion ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-document-version))
# ::= {pilotAttributeType 13}
#
attributetype ( 0.9.2342.19200300.100.1.13 NAME 'documentVersion'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.14. Document Author
#
# The Document Author attribute type specifies the distinguished name
# of the author of a document.
#
# documentAuthor ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# distinguishedNameSyntax
# ::= {pilotAttributeType 14}
#
attributetype ( 0.9.2342.19200300.100.1.14 NAME 'documentAuthor'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
# 9.3.15. Document Location
#
# The Document Location attribute type specifies the location of the
# document original.
#
# documentLocation ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-document-location))
# ::= {pilotAttributeType 15}
#
attributetype ( 0.9.2342.19200300.100.1.15 NAME 'documentLocation'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.16. Home Telephone Number
#
# The Home Telephone Number attribute type specifies a home telephone
# number associated with a person. Attribute values should follow the
# agreed format for international telephone numbers: i.e., "+44 71 123
# 4567".
#
# homeTelephoneNumber ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# telephoneNumberSyntax
# ::= {pilotAttributeType 20}
#
attributetype ( 0.9.2342.19200300.100.1.20 NAME ( 'homeTelephoneNumber' 'homePhone' )
EQUALITY telephoneNumberMatch
SUBSTR telephoneNumberSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )
# 9.3.17. Secretary
#
# The Secretary attribute type specifies the secretary of a person.
# The attribute value for Secretary is a distinguished name.
#
# secretary ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# distinguishedNameSyntax
# ::= {pilotAttributeType 21}
#
attributetype ( 0.9.2342.19200300.100.1.21 NAME 'secretary'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
# 9.3.18. Other Mailbox
#
# The Other Mailbox attribute type specifies values for electronic
# mailbox types other than X.400 and rfc822.
#
# otherMailbox ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# SEQUENCE {
# mailboxType PrintableString, -- e.g. Telemail
# mailbox IA5String -- e.g. X378:Joe
# }
# ::= {pilotAttributeType 22}
#
attributetype ( 0.9.2342.19200300.100.1.22 NAME 'otherMailbox'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.39 )
# 9.3.19. Last Modified Time
#
# The Last Modified Time attribute type specifies the last time, in UTC
# time, that an entry was modified. Ideally, this attribute should be
# maintained by the DSA.
#
# lastModifiedTime ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# uTCTimeSyntax
# ::= {pilotAttributeType 23}
#
attributetype ( 0.9.2342.19200300.100.1.23 NAME 'lastModifiedTime'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.53 )
# 9.3.20. Last Modified By
#
# The Last Modified By attribute specifies the distinguished name of
# the last user to modify the associated entry. Ideally, this
# attribute should be maintained by the DSA.
#
# lastModifiedBy ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# distinguishedNameSyntax
# ::= {pilotAttributeType 24}
#
attributetype ( 0.9.2342.19200300.100.1.24 NAME 'lastModifiedBy'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
# 9.3.21. Domain Component
#
# The Domain Component attribute type specifies a DNS/NRS domain. For
# example, "uk" or "ac".
#
# domainComponent ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreIA5StringSyntax
# SINGLE VALUE
# ::= {pilotAttributeType 25}
#
##(in core.schema)
##attributetype ( 0.9.2342.19200300.100.1.25 NAME 'dc'
## EQUALITY caseIgnoreIA5Match
## SUBSTR caseIgnoreIA5SubstringsMatch
## SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
# 9.3.22. DNS ARecord
#
# The A Record attribute type specifies a type A (Address) DNS resource
# record [6] [7].
#
# aRecord ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# DNSRecordSyntax
# ::= {pilotAttributeType 26}
#
## incorrect syntax!!
attributetype ( 0.9.2342.19200300.100.1.26 NAME 'aRecord'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
## missing from RFC1274
attributetype ( 0.9.2342.19200300.100.1.27 NAME 'mDRecord'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.23. MX Record
#
# The MX Record attribute type specifies a type MX (Mail Exchange) DNS
# resource record [6] [7].
#
# mXRecord ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# DNSRecordSyntax
# ::= {pilotAttributeType 28}
#
## incorrect syntax!!
attributetype ( 0.9.2342.19200300.100.1.28 NAME 'mXRecord'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.24. NS Record
#
# The NS Record attribute type specifies an NS (Name Server) DNS
# resource record [6] [7].
#
# nSRecord ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# DNSRecordSyntax
# ::= {pilotAttributeType 29}
#
## incorrect syntax!!
attributetype ( 0.9.2342.19200300.100.1.29 NAME 'nSRecord'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.25. SOA Record
#
# The SOA Record attribute type specifies a type SOA (Start of
# Authority) DNS resorce record [6] [7].
#
# sOARecord ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# DNSRecordSyntax
# ::= {pilotAttributeType 30}
#
## incorrect syntax!!
attributetype ( 0.9.2342.19200300.100.1.30 NAME 'sOARecord'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.26. CNAME Record
#
# The CNAME Record attribute type specifies a type CNAME (Canonical
# Name) DNS resource record [6] [7].
#
# cNAMERecord ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# iA5StringSyntax
# ::= {pilotAttributeType 31}
#
## incorrect syntax!!
attributetype ( 0.9.2342.19200300.100.1.31 NAME 'cNAMERecord'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.27. Associated Domain
#
# The Associated Domain attribute type specifies a DNS or NRS domain
# which is associated with an object in the DIT. For example, the entry
# in the DIT with a distinguished name "C=GB, O=University College
# London" would have an associated domain of "UCL.AC.UK. Note that all
# domains should be represented in rfc822 order. See [3] for more
# details of usage of this attribute.
#
# associatedDomain ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreIA5StringSyntax
# ::= {pilotAttributeType 37}
#
attributetype ( 0.9.2342.19200300.100.1.37 NAME 'associatedDomain'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.28. Associated Name
#
# The Associated Name attribute type specifies an entry in the
# organisational DIT associated with a DNS/NRS domain. See [3] for
# more details of usage of this attribute.
#
# associatedName ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# distinguishedNameSyntax
# ::= {pilotAttributeType 38}
#
attributetype ( 0.9.2342.19200300.100.1.38 NAME 'associatedName'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
# 9.3.29. Home postal address
#
# The Home postal address attribute type specifies a home postal
# address for an object. This should be limited to up to 6 lines of 30
# characters each.
#
# homePostalAddress ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# postalAddress
# MATCHES FOR EQUALITY
# ::= {pilotAttributeType 39}
#
attributetype ( 0.9.2342.19200300.100.1.39 NAME 'homePostalAddress'
EQUALITY caseIgnoreListMatch
SUBSTR caseIgnoreListSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )
# 9.3.30. Personal Title
#
# The Personal Title attribute type specifies a personal title for a
# person. Examples of personal titles are "Ms", "Dr", "Prof" and "Rev".
#
# personalTitle ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-personal-title))
# ::= {pilotAttributeType 40}
#
attributetype ( 0.9.2342.19200300.100.1.40 NAME 'personalTitle'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.31. Mobile Telephone Number
#
# The Mobile Telephone Number attribute type specifies a mobile
# telephone number associated with a person. Attribute values should
# follow the agreed format for international telephone numbers: i.e.,
# "+44 71 123 4567".
#
# mobileTelephoneNumber ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# telephoneNumberSyntax
# ::= {pilotAttributeType 41}
#
attributetype ( 0.9.2342.19200300.100.1.41
NAME ( 'mobileTelephoneNumber' 'mobile' )
EQUALITY telephoneNumberMatch
SUBSTR telephoneNumberSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )
# 9.3.32. Pager Telephone Number
#
# The Pager Telephone Number attribute type specifies a pager telephone
# number for an object. Attribute values should follow the agreed
# format for international telephone numbers: i.e., "+44 71 123 4567".
#
# pagerTelephoneNumber ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# telephoneNumberSyntax
# ::= {pilotAttributeType 42}
#
attributetype ( 0.9.2342.19200300.100.1.42
NAME ( 'pagerTelephoneNumber' 'pager' )
EQUALITY telephoneNumberMatch
SUBSTR telephoneNumberSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )
# 9.3.33. Friendly Country Name
#
# The Friendly Country Name attribute type specifies names of countries
# in human readable format. The standard attribute country name must
# be one of the two-letter codes defined in ISO 3166.
#
# friendlyCountryName ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# ::= {pilotAttributeType 43}
#
attributetype ( 0.9.2342.19200300.100.1.43 NAME 'friendlyCountryName'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.34. Unique Identifier
#
# The Unique Identifier attribute type specifies a "unique identifier"
# for an object represented in the Directory. The domain within which
# the identifier is unique, and the exact semantics of the identifier,
# are for local definition. For a person, this might be an
# institution-wide payroll number. For an organisational unit, it
# might be a department code.
#
# uniqueIdentifier ATTRIBUTE
# WITH ATTRIBUTE-SYNTAX
# caseIgnoreStringSyntax
# (SIZE (1 .. ub-unique-identifier))
# ::= {pilotAttributeType 44}
#
attributetype ( 0.9.2342.19200300.100.1.44 NAME 'uniqueIdentifier'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
# 9.3.35. Organisational Status
#
# The Organisational Status attribute type specifies a category by
# which a person is often referred to in an organisation. Examples of
# usage in academia might include undergraduate student, researcher,
# lecturer, etc.
#