Facilities and Equipment

From OpenOrg
Jump to: navigation, search

This pattern is to describe how to communication Facilities, Equipment and Services available from one or more organisation. It's being developed to support a project between the Universities of Oxford, Cambridge, Imperial, UCL & Southampton to make each other aware of our facilities. There's nothing to restrict it to research facilities, or universities.

It's primarily intended to describe the existence of these things, to describe a formally offered service catalogue, consider using Good Relations, either instead or in addition to this pattern. The goal is to allow easy aggregation from multiple organisations in a sector and/or geographic region.

A full description will include Facilities, Equipment, Services, Contacts, Manufacturers (of equipment), Places and part of the Organisation. However the minimum is a single description of a facilility, item of equipment or service with a label and a contact. Without listing at least one form of contact, this isn't valid!

You can use this pattern any way you choose, but if describing it as a single document then minimum data should be included for places (label, type, lat/long), org-units (label, parent org), contacts (name & contact details). That allows it to be aggregated from a single URL, like an RSS feed.

Namespaces

The following common namespaces are used in this pattern: org, foaf, oo, rdfs, spacerel, dcterms, gr

Organisation or Organization?

I'm afraid we're using the en-us spelling of Organization. This is because it's the spelling used in the "org" vocabulary. It's very likely using a mixture of spellings in different terms will introduce errors needlessly.

Contacts

Contacts are vital. Without these, nobody can actually find out more about the things described. Contacts can either be embedded in facilities, equipment, services or assigned URIs. If it's a generic contact for a facility, service or bit of equipment, just make the URI a #contact on the end of the URI for that thing.

<syntaxhighlight lang="xml"> <oo:Facility rdf:about="http://id.example.org/facility/alien-lab">

 <rdfs:label>Alien Technology Lab</rdfs:label>
 <oo:contact rdf:resource="http://id.example.org/facility/alien-lab#contact" />

</oo:Facility>

<rdf:Description rdf:about="http://id.example.org/facility/alien-lab#contact">

 <foaf:mbox rdf:resource="mailto:alien-lab@example.org" />

</rdf:Description> </syntaxhighlight>

Other recommended properties for contacts: foaf:name, foaf:homepage, foaf:phone. Addresses should use vcard.

If a facility has multiple contacts you can indicate the main one using oo:primaryContact IN ADDITION to oo:contact. It may be useful to provide backup contacts.

<syntaxhighlight lang="xml"> <oo:Facility rdf:about="http://id.example.org/facility/alien-lab">

 <rdfs:label>Alien Technology Lab</rdfs:label>
 <oo:contact rdf:resource="http://id.example.org/facility/alien-lab#contact" />
 <oo:primaryContact rdf:resource="http://id.example.org/facility/alien-lab#contact" />
 <oo:contact rdf:resource="http://id.example.org/person/professor-x" />

</oo:Facility>

<rdf:Description rdf:about="http://id.example.org/facility/alien-lab#contact">

 <foaf:mbox rdf:resource="mailto:alien-lab@example.org" />

</rdf:Description>

<rdf:Description rdf:about="http://id.example.org/person/professor-x">

 <foaf:name>Professor X</foaf:name>
 <foaf:phone rdf:resource="tel:+44123456789" />
 <foaf:mbox rdf:resource="mailto:professor-x@example.org" />
 <foaf:homepage rdf:resource="http://example.org/professor-x/" />

</rdf:Description> </syntaxhighlight>

Facility

A facility is a deliberately vague term. It may have associated equipment & services. It will generally be associated with a formal organisation and a physical location. It is deliberately not described in to fine a detail or else we will end up excluding many relevant things! A rule of thumb is that a lab or workshop is a single facility, but this is a guide, not a semantic restriction.

<syntaxhighlight lang="xml"> <oo:Facility rdf:about="...uri...">

 <rdfs:label>Alien Technology Lab</rdfs:label>

 <dcterms:description rdf:datatype="xtypes:Fragment-PlainText">......</dcterms:description>
 <dcterms:description rdf:datatype="xtypes:Fragment-HTML">......</dcterms:description>

 <oo:contact rdf:resource="...contact-uri... />


 <oo:formalOrganization rdf:resource="...org-uri..." />
 <oo:organizationPart rdf:resource="...org-part-uri..." />

 <spatialrelations:within rdf:resource="...site-uri..." />

</oo:Facility> </syntaxhighlight>

Equipment

A bit of equipment (an 1000Mv electron microscope), the availability of a class of equipment (Oscilloscopes) or a collection of equipment which is generally regarded as a single item (spanner set).

The point of listing an item of equipment in this data model is to advertise its existence. You may only wish to include unusual items, or above a price threshold, or only those available for hire.

You can list an item being within any or all of room, building, site and city. For the first 3 see the Places description in this wiki. You should at least include type, label & lat/long if available in the same document as the equipment. For cities (population centers) please use the geonames URI for that place, failing that the DBPedia one.

<syntaxhighlight lang="xml"> <oo:Equipment rdf:about="...uri...">

 <rdfs:label>Xondrite Array</rdfs:label>
 <dcterms:description rdf:datatype="http://purl.org/xtypes/Fragment-PlainText">......<dcterms:description>
 <dcterms:description rdf:datatype="http://purl.org/xtypes/Fragment-HTML">......<dcterms:description>
 <oo:contact rdf:resource="...contact-uri... />


 <oo:relatedFacility rdf:resource="...facility-uri.." /> 
 <oo:formalOrganization rdf:resource="...org-uri..." />
 <oo:organizationPart rdf:resource="...org-part-uri..." />
 <spatialrelations:within rdf:resource="...site-uri..." />

</oo:Equipment> </syntaxhighlight>

Relating Equipment to Make and Model

<syntaxhighlight lang="xml"> <oo:Equipment rdf:about="...uri...">

 ...
 <gr:hasMakeAndModel rdf:resource="http://id.example.org/equipment/E0001#model" />

</oo:Equipment> <gr:ProductOrServiceModel rdf:about="http://id.example.org/equipment/E0001#model">

 <rdfs:label>Vorlon Systems Xondrite Array X1722A</rdfs:label>
 <foaf:homepage rdf:resource="http://www.vorlon-industrial.com/products/xondrite/x1722a.html" />

</gr:ProductOrServiceModel> </syntaxhighlight>

Adding a foaf:homepage to the model helps automatically discover other equipment which is the same or a very similar model.

If you have several items of the same model it would be userful (but not essential) to give this model a single URI rather than one per equipment item.

Relating Equipment to Manufacturer

If you don't want to make any effort minting URIs for manufacturers, just add #manufacturer to the equipment URI. If you have many items of equipment, many from the same manufacturer, it may be useful to actually assign them more formal URIs, but this could just be created from the MD5 Hash of their homepage URL, or by finding a URI for them in OpenCorporates.

A link to a manufacturer is made through the gr:ProductOrServiceModel:

<syntaxhighlight lang="xml"> <gr:ProductOrServiceModel rdf:about="http://id.example.org/equipment/E0001#model">

 ...
 <gr:hasManufacturer rdf:resource="http://id.example.org/equipment/E0001#manufacturer" />

</gr:ProductOrServiceModel> <gr:BusinessEntity rdf:about="http://id.example.org/equipment/E0001#manufacturer">

 <rdfs:label>Vorlon Heavy Industrial Systems</rdfs:label>
 <foaf:homepage rdf:resource="http://www.vorlon-industrial.com/" />

</gr:BusinessEntity> </syntaxhighlight>

Service

A service, may be associated with a facility, organisation and/or organisation sub-part. It's not intended that every equipment listed has an associated service of "hire of microscope", but rather these are services offered by the facility or organisation. The services may use the equipment of the organisation, or be entirely human-centric such as a proof-reading or translation service.

<syntaxhighlight lang="xml"> <oo:Service rdf:about="...uri...">

 <rdfs:label>Exposure to Alien Rays</rdfs:label>
 <oo:contact rdf:about="...contact-uri... />

</oo:Service> </syntaxhighlight>