Organisational Structure

From OpenOrg
Jump to: navigation, search

Organisational structure should primarily be modelled using the org ontology, with types from the AIISO as appropriate.

Namespaces

org aiiso rdfs xtypes

Types

Your main organisation should be of type org:FormalOrganization, other parts should be either org:FormalOrganization or org:OrganizationalUnit.

URIs

It is recommended that you put no structural information in the URI. Example of a bad chocie:

http://id.example.org/org/divisions/my-div/my-sub-div/team-3

Good examples:

http://id.example.org/orgunit/team-2342
http://id.example.org/org/badger-trust

or

http://www.example.org/id/orgunit/team-2342
http://www.example.org/id/org/the-badger-trust

or (if using just Flat RDF Documents)

http://www.example.org/orgstructure.rdf#team-2342
http://www.example.org/orgstructure.rdf#org-the-badger-trust

It is better to assign a team a unique ID and use that. This will avoid pain and confusion when the organisation restructures, which always eventually happen.

Sub-units and organisations

Organisation should have a org:hasSubOrganization relationship with units and sub-organisations.

Sub-units may be included to any degree of detail, but it is strongly recommended that the minimum should be that all units referenced in other parts of the open linked data for the organisation should be listed in the organogram document

Generally sub parts will have type org:OrganizationalUnit. However they may be org:FormalOrganization instead, if that sub-organisation is recognised as a (legal?) organisation in its own right.

Example

<syntaxhighlight lang="xml"> <rdf:RDF …>

 ... license etc ...
 <rdf:Description rdf:about="....main org URI...">
   <rdf:type rdf:resource="http://www.w3.org/ns/org#FormalOrganization"/>
   <rdfs:label>Example Org</rdfs:label>
   <org:hasSubOrganization rdf:resource='..../orgpart-001'>
   <org:hasSubOrganization rdf:resource='..../orgpart-002'>
   <org:hasSubOrganization rdf:resource='..../orgpart-003'>
 </rdf:Description>
 <rdf:Description rdf:about="..../orgpart-001">
   <rdf:type rdf:resource="http://www.w3.org/ns/org#OrganizationalUnit"/>
   <rdfs:label>Sales Division</rdfs:label>
 </rdf:Description>

</rdf:RDF> </syntaxhighlight>

Sub-Organisations who manage their own org data

Collegiate institutions, or other organisations which are part of the main organisations may devolve URI definition and org description to their respective sub parts.

In this case a source of additional information about the college may be indicated using an rdfs:seeAlso to link the URI of the sub-org to the location of the RDF describing it. To indicate that this resource contains RDF data, indicate that is is of type xtypes:Document-RDFSerialisation.

<syntaxhighlight lang="xml">

 <rdf:Description rdf:about="..../school-023">
   <rdf:type rdf:resource="http://www.w3.org/ns/org#OrganizationalUnit" />
   <rdfs:label>School which does their own darn RDF</rdfs:label>
   <rdfs:seeAlso rdf:resource="http://data.ecs.example.edu/orgchart.rdf" />
 </rdf:Description>
 <rdf:Description rdf:about="http://data.ecs.example.edu/orgchart.rdf">
   <rdf:type rdf:resource="http://purl.org/xtypes/Document-RDFSerialisation" />
 </rdf:Description>

</syntaxhighlight>

Universities

The top level of a university should be type aiiso:Institution in addition to org:FormalOrganization.

For other parts of a university structure add the following types, as appropriate:

aiiso:Center, aiiso:College, aiiso:Department, aiiso:Divison, aiiso:Faculty, aiiso:Institute, aiiso:ResearchGroup, aiiso:School.

For more details see http://vocab.org/aiiso/schema but the rule of thumb is that if it's called a faculty by your university then it's type aiiso:Faculty.

If your institution is collegiate, then each college should be of both type org:FormalOrganization and aiiso:College.


Example

<syntaxhighlight lang="xml"> <rdf:RDF …>

 ... license etc ...
 <rdf:Description rdf:about="....main org URI...">
   <rdf:type rdf:resource="http://www.w3.org/ns/org#FormalOrganization" />
   <rdf:type rdf:resource="http://purl.org/vocab/aiiso/schema#Institution" />
   <rdfs:label>Example University</rdfs:label>
   <foaf:homepage rdf:resource="http://www.example.ac.uk/"/>
   <org:hasSubOrganization rdf:resource='..../dept-001'>
   <org:hasSubOrganization rdf:resource='..../unit-001'>
 </rdf:Description>
 <rdf:Description rdf:about="..../dept-001">
   <rdf:type rdf:resource="http://purl.org/vocab/aiiso/schema#Department" />
   <rdfs:label>Physics Department</rdfs:label>
   <foaf:homepage rdf:resource="http://www.physics.example.ac.uk/"/>
 </rdf:Description>
 <rdf:Description rdf:about="..../unit-001">
   <rdf:type rdf:resource="http://www.w3.org/ns/org#OrganizationalUnit" />
   <rdfs:label>Waste Services</rdfs:label>
 </rdf:Description>

</rdf:RDF> </syntaxhighlight>

nb. It may be that not all Organizational Units of an academic institution require an aiiso: type.

Inference

From the above schema other predicates and classes from FOAF, AIISO and ORG should be possible to infer. Keeping the above list to a minimum makes basic consumption easier. There's nothing to stop you adding additional predicates and classes but they should be in addition, not as alternatives.