This document defines a set of terms for describing people. It defines how to describe people's characteristics such as names or addresses and how to relate people to other things, for example to organizations or projects. For each term, guidance on the usage within a running example is provided. This document also defines mappings to widely used vocabularies to enable interoperability.
This document is work in progress. You might also want to check the accompanying Wiki page of the GLD Working Group for ongoing discussions.
This document is aimed at both publishers and consumers of Linked Data. We assume that the reader has a certain familiarity with RDF and RDF Schema as well as well-known vocabularies, such as FOAF or Dublin Core. The goal of the document is to specify an interoperable way to describe people and their relationships to other entities such as organisations or projects.
@@TODO: point out definition of source data in the BP document for further details.
The key words MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this specification are to be interpreted as described in RFC 2119 [[!RFC2119]].
Examples of RDF serialisations in this document are written in the Turtle [[TURTLE]] syntax; we assume the following namespace prefix bindings unless otherwise stated:
In many cases, source data contains data about people and other, related entities. We will use the following text as an example throughout the document to demonstrate the usage of terms:
Jane Doe is CEO of ColCids Inc., headquartered in 2242 Old Middlefield Way, Mountain View, CA, United States. Recently, ColCids won a contract for providing an Open Data platform, awarded by the Santa Clara County. The project, called OpenData4SantaClara, starts on 1 Feb 2013 and runs initially for three months. Jane's contact point in the County of Santa Clara is Björk Guðmundsdóttir. To ensure a successful project delivery, Jane has invited 東海林賢蔵, a business contact and Open Data guru she recently met at a local event, to brief her and the CoolCids team on the challenges and requirements in the domain.
Note: if you're not familiar with people's names throughout the world, you might want to read the personal names around the world article provided by the W3C Internationalization (I18n) Activity.
@@TODO: describe real world use cases and derive requirements common to all to decide what is and what is not in scope re target entities.
A publisher wants to provide contact details for politicians, responsible for a certain region and/or topic.
Real-world example: WriteToThem.
A publisher wants to provide an overview of how a local authority, such as a County Council, spends its money.
Real-world example: Councillors Allowances and Expenses 2010, Fingal County Council, Ireland.
A publisher wants to provide access to public tenders for transparency or accountability applications.
Real-world example: Tenders Electronic Daily by the European Union and it's Linked Open Data version.
A publisher wants to provide a listing of awarded bids.
Real-world example: Awarded Bids, Alabama Department of Finance, USA.
A publisher wants to inform about the budget positions along with salaries.
Real-world example: Budget - Positions and Salaries in 2011 Appropriation Ordinance, City of Chicago, USA.
A publisher wants to disclose lobbying activities.
Real-world example: Lobbying Activity, State of California, USA.
A publisher wants to provide an archive of online question times for a certain topic and/or politician.
Real-world example: #AskNeelie by Neelie Kroes, Vice President of the European Commission, Europe.
|Area of responsibility||•||•|
|Membership in body||•||•||•|
|Expense or budget type||•||•|
|Object of contract||•||•|
@@TODO: describe how we determine which requirements are common to all UC: for example, we could say that a requirement must at least show up in half of the UC, etc.
The core concept we are dealing with in this document is that of a person. A person in the context of this specification is defined as an entity of type
If only the person's name is known
foaf:name MUST be used.
<http://data.sccgov.org/people/björkg> rdf:type foaf:Person ; foaf:name "Björk Guðmundsdóttir" .
How to provide further details about a person, such as an address, is specified in section relating a person to a contact information.
Deriving domain-specific person types
One sometimes finds specialisations of a person in a domain, for example, in the legal domain there is a distinction made between a natural person and a legal person. In such a case the publisher should, in addition to the domain-specific type (e.g.,
legal:NaturalPerson) explicitly set the type
foaf:Person in order to increase interoperability. This also allow systems that do not perform reasoning, for example, plain SPARQL processors to benefit from it. Read more ...
Beyond stating the basic characteristics of a person one can relate a person to a target entity such as an organisation or project. The following sections normatively specify how to do this. For any target entity type not listed in the below sections the publisher is free to use any appropriate vocabulary. See also the (@@link) vocabulary selection section of the Best Practices for Publishing Linked Data document for guidance on how to find and select such a vocabulary.
In order to relate a person to a contact information, such as typically found on a business card:
@prefix gldp: <http://www.w3.org/ns/people#> . @prefix : <http://colcids.com/person/> . :42 a foaf:Person ; gldp:card :42#bc . :42#bc a v:VCard ; v:fn "Jane Doe" ; ...
In order to relate a person to another person one MUST use the FOAF Vocabulary Specification:
foaf:knowsMUST be used.
<http://colcids.com/person/42> foaf:knows <http://opendataguru.net/me> .
Trusting people's relationships
foaf:knows only establishes an unidirectional claim that someone knows someone else. The relation SHOULD only be considered to be of a mutual nature if the other person sets a
foaf:knows relation as well. Read more ...
In order to relate a person to an organization one MUST use the Organization Ontology.
<http://colcids.com/company> a org:FormalOrganization . <http://colcids.com/person/42> a foaf:Person . _:bn123 a org:Membership ; org:organization <http://colcids.com/company> ; org:member <http://colcids.com/person/42> .
In order to relate a person to a building or room one MUST use the Buildings and Rooms Vocabulary.
To state that a person is located in a building or room
rooms:occupant MUST be used.
@prefix rooms: <http://vocab.deri.ie/rooms#> . @prefix : <>. <http://colcids.com/person/42> a foaf:Person . :CCHQ a rooms:Building ; rooms:contains :r101 . :r101 a rooms:Room ; rooms:occupant <http://colcids.com/person/42> .
In order to relate a person to a project one MUST use the FOAF Vocabulary Specification.
@prefix gldp: <http://www.w3.org/ns/people#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix : <http://data.sccgov.org/project/> . <http://data.sccgov.org/people/björkg> a foaf:Person . :OpenData4SantaClara a foaf:Project ; gldp:title "OpenData4SantaClara" ; rdfs:label "OpenData4SantaClara" ; gldp:lead <http://data.sccgov.org/people/björkg> ; gldp:starts "2013-02-01T00:00:00Z"^^xsd:dateTime ; gldp:ends "2013-05-01T00:00:00Z"^^xsd:dateTime .
Multiple label properties
In order to enable generic Linked Data browsers, such as Tabulator, which typically hard-code well-known label terms to display human readable labels rather than URIs, one SHOULD repeat the content of the
gldp:title's literal object in an
rdfs:label literal object.
In order to relate a person to online posts such as blog posts, mailing list posts, etc, one MUST use the SIOC Core Ontology Specification.
@prefix sioc: <http://rdfs.org/sioc/ns#> . <http://blog.colcids.com/2012/12/01/launching-opendata4santaclara/> a sioc:Post ; dct:title "OpenData4SantaClara will launch in early 2013" ; dct:created "2012-12-01T17:25:30Z" ; sioc:has_creator <http://colcids.com/person/42> . <http://colcids.com/person/42> a sioc:User .
This section defines terms that allow to relate a person to other entities, such as contact information, etc. The terms below are defined in the namespace URI
http://www.w3.org/ns/people# and the preferred namespace prefix for the namespace URI is
An implementer of this spec MUST support the following terms:
|Relates a |
|Specifies the end date of a |
|Relates a |
|Specifies the start date of a |
|Specifies the title of a |
Our concept of a person is based on
foaf:Person, but there are many more conceptualisations in use, for example as defined by the Interoperability Solutions for European Public Administrations (ISA) project, the Schema.org project by the search engine providers Bing, Google, Yahoo! or as found in the Personal Information Model (PIMO) by the Semantic Desktop project.
To enable interoperability and, in general, to make the data more useful, we define mappings of terms, in the following. An implementer of this spec SHOULD support these mappings.
@@TODO: evaluate ISA Core Person Vocabulary and identify how and what to map.
@@TODO: evaluate schema:Person and identify how and what to map.
@@TODO: evaluate pimo:Person and identify how and what to map.
The Editor would like to thank the following people for their input and directions: Phil, Renato, George, Sandro, Richard.