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.
The Post class should have properties for:
label
Member of Parliament for Avalon
alternate labels
“CEO” is an abbreviation of “Chief Executive Officer”.
the function that the holder of the post fulfills
Member of Parliament
the organization in which the post is held
House of Commons
the geographic area to which the post is related
Avalon
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.
date of elimination
The Canadian federal electoral district of Annapolis was abolished in 1914, thereby eliminating the post of Member of Parliament for Annapolis.
the means of contacting the holder of the post
1 Main Street
Anytown, USA
555-555-0100
[email protected]
external links
http://pm.gc.ca/
Briefly, the survey of existing specifications concludes that:
schema:validFrom
, schema:validUntil
and dct:valid
are the only properties for creation dates and elimination dates.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.
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.
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:postIn 2 |
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
.
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:
label
is used instead of prefLabel
, to be consistent with the ContactDetail class.other_label
is used instead of altLabel
to be consistent with other classes using other_names
.role
property is a string, instead of an org:Role
.organization
is used instead of postIn
to be consistent with the Membership class.start_date
and end_date
are used instead of validFrom
and validUntil
, to be consistent with the Membership class.links
is used instead of seeAlso
and is serialized as an array of link objects.None.