Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
@khazelton
Latest commit 028bd40 Mar 10, 2021 History
2 contributors

Users who have contributed to this file

@khazelton @benno
# TAP Attribute Terminology
## TAP Attribute Dictionary
The [TAP Attribute Dictionary](https://github.internet2.edu/benno/core-schema/blob/draft/attribute-dictionary.adoc) defines a broad collection of
attributes used across one or more components of the TAP portfolio and across higher education more generally. It is best thought of as an *attribute library* that can be drawn from to construct other documents, specifications, and software artifacts. As additional attributes of common utility emerge from ongoing work, they may become new entries in the Attribute Dictionary.
The normative specification of the TAP Attribute Dictionary is an abstract data model -- To be of use in code, it must be mapped to specific formats and protocols.
TAP uses the word "schema" as a rather broad and loose term for data models generally. However, beyond that, TAP adheres to its own rigorous definitions of three specific schema-related terms, "representation", "profile", and "protocol".
**Representations**:
Mappings of the TAP Attribute Dictionary abstract entries to a specific markup form, such as JSON, XML, LDAP, or YAML.
* [TAP Attribute Dictionary: How to Create a JSON Representation](tap-core-person-schema-create-json-representation.adoc) (CS-JSON)
* Example: "eduPerson LDIF" would refer to eduPerson attributes expressed in the LDIF **Representation** defined in _RFC2849 The LDAP Data Interchange Format (LDIF) - Technical Specification_
**Profile**:
An annotated subset of the Attribute Dictionary specifying syntactic, semantic, and representation restrictions, if any, when using the attribute in a specific context.
* Example: "The eduPerson Profile [of the Attribute Dictionary]"
**Protocol**::
A formal specification defining in precise terms the conventions by which two entities interoperate to accomplish a set of actions. Protocols are designed to be implementable in software.
* Example: eduPerson attributes on an LDAP server can be queried by an LDAP client using the LDAP **protocol** defined in _RFC4519 Lightweight Directory Access Protocol (LDAP) Schema for User Applications_