In some cases, it is relevant to represent the organizational structure independently of the people within that structure; for example, it is relevant to represent the position of the Member of Parliament for Avalon even when no one holds that position. A post is such a position that exists independently of the person holding it.

A post should not be confused with a role, which describes a function that a person can fulfill. For example, many people fulfill the role of “CEO” in different organizations, but only one person holds the post of “CEO at Apple Inc.” Indeed, the post of the MP for Avalon could be described as having the role of MP.

According to this data specification, a person holds a post in an organization through their membership in that organization, as illustrated by the class diagram below.

UML diagram

1. Use cases & requirements

The Post class should have properties for:

  1. label

    Member of Parliament for Avalon

  2. alternate labels

    "CEO" is an abbreviation of "Chief Executive Officer".

  3. the function that the holder of the post fulfills

    Member of Parliament

  4. the organization in which the post is held

    House of Commons

  5. the geographic area to which the post is related

    Avalon

  6. date of creation

    The Canadian federal electoral district of Westmount—Ville Marie was established in 1996, thereby creating the post of Member of Parliament for Westmount—Ville Marie.

  7. date of elimination

    The Canadian federal electoral district of Annapolis was abolished in 1914, thereby eliminating the post of Member of Parliament for Annapolis.

  8. the means of contacting the holder of the post

    1 Main Street
    Anytown, USA
    555-555-0100
    treasurer@example.com

  9. external links

    http://pm.gc.ca/

2. Standard reuse

Briefly, the survey of existing specifications concludes that:

  • Only the Organization ontology offers a sufficiently rich model for describing organizational structure.
  • schema:validFrom, schema:validUntil and dct:valid are the only properties for creation dates and elimination dates.

2.1. Changes to data model

The Organization ontology's data model is unsuitable for representing:

  • a previously held post

    Michael Ignatieff was Member of Parliament for Etobicoke—Lakeshore until 2011.

  • the date on which the person currently holding a post started holding it

    Barack Obama assumed office January 20, 2009.

Within the Organization ontology, there is also significant overlap in responsibility between the Membership and Post classes, leading to confusion as to when one, the other, or both is required or recommended for a particular use case.

According to the Organization ontology, people hold posts directly; in order to resolve the above issues, in this data specification, people hold posts indirectly through memberships. Therefore, the properties org:heldBy and org:holds should not be used.

2.2. Range restrictions

According to the Organization ontology, either a person or an organization can hold a post in an organization; in this data specification, only a person can hold a post in an organization.

3. Classes and properties

Term Mapping Definition
Post org:Post A position that exists independent of the person holding it
label skos:prefLabel A label describing the post
alternate label skos:altLabel An alternate label, such as an abbreviation
role1 org:role The function that the holder of the post fulfills
organization org:postIn2 The organization in which the post is held
geographic area opengov:area The geographic area to which the post is related
date of creation schema:validFrom A date of creation
date of elimination schema:validUntil A date of elimination
contact detail opengov:contactDetail A means of contacting the holder of the post
external links rdfs:seeAlso A URL to a document about the post

1. The role property appears on both the Post and Membership classes, as there are uses cases where you will have no posts (e.g. describing club membership) and others where you will have no memberships (e.g. describing organizational structure).

2. The Organization ontology defines the inverse property org:hasPost.

4. Serialization

A post cannot exist outside an organization. All posts must assign a value to either organization_id or organization.

JSON differences from other RDF serializations:

  • The term label is used instead of prefLabel, to be consistent with the ContactDetail class.
  • The term other_label is used instead of altLabel to be consistent with other classes using other_names.
  • The value of the role property is a string, instead of an org:Role.
  • The term organization is used instead of postIn to be consistent with the Membership class.
  • The terms start_date and end_date are used instead of validFrom and validUntil, to be consistent with the Membership class.
  • The term links is used instead of seeAlso and is serialized as an array of link objects.

5. Code lists

None.