Fork me on GitHub

Networld - Research and Development Logo

What is the ScubaDive Ontology?

The ScubaDive Ontology is written in RDFS and provides a basic vocabulary to describes scuba dives. It unifies the data representation and allows the extension with inferencing and reasoning capabilities.


The RDF Schema/Namespace

See the RDFS. To use the ontology use the following line in the <rdf:RDF> tag:


Predefined Instances

Certification Block

Currently the following certification blocks from PADI are supported, see padi.rdf:

If you have the Open Water Certification add the following line to your diver block:

<dive:Certification rdf:resource="" />
If you have a certificate from another organisation than PADI or if you grade is missing please contact us.

Air Mix Block

There are a few air mix predefined under airmix.rdf

If you dive with normal air add the following line to your dive:Diver block.

<dive:airMix rdf:resource="" />

Equipment (Type) Block

As scuba diver you have the same equipment types as others. For this reason there are predefined types under equipment.rdf. See the following example how such a resource URL look like.

To add a mask to your profile use the following code:
    <dive:EquipmentType rdf:resource="" />

Dive Profile (from dive computer)

If you have a dive computer you want to store a detailed dive profile with depth, temperature, time, bookmark for each sample. For this purpose it is recommended to store the profile in an external RDF file and link it from the related dive. See the example file how such a profile should look like. To link the dive profile with the related dive you should use the following line in the Dive block (or a subclass of it):

  <dive:seeDiveProfile rdf:resource="detailed_profile.rdf#diveProfile1"/>

Diver Block vs. DiverProfile Block

Diver Block
is only valid for a special dive. It describes what certificate the diver had during this dive, what equipment he/she had and so one. One of such block should be stored in the dive file. Not necessary to update this block.
DiverProfile Block
describes a diver and should be always up-to-date. Here the total dives, the current certification and what equipment the diver owns could be stored. It don't depends on any dive. This profile should be updated after each dive (at least the totalDives should raise) .

Could I use this file as logbook?

Normally your dive partners have to sign the dive in the logbook. You could reach the same effect if you are lucky and dive with partners who have a gpg/pgp key. Add for each of your partners the following block and beg your partners to sign your dive file with there key (the resulting signature file is named "diveX_buddyY.asc" and located in the same directory as the dive file.

    <wot:Endorsement rdf:about="diveX_buddyY.asc" />
      <dc:title>Dive Confirmation by BuddyY</dc:title>
      <wot:endorser rdf:nodeID="KeyBuddyY"/>
The code above comes in the same block as the dive data and in the partner section (in the block of the partner that owns the key) comes the information about the key.
  <wot:PubKey rdf:nodeID="KeyBuddyY">
Don't forget to add the namespace definition of wot and dc.


This ontology describes only scuba diving relevant vocabulary and for sure you would use other RDFS/OWL languages to receive a full description of your dives.


Useful Links

Ontology and Instances

ScubaDive Ontology
The main RDFS ontology with all needed concepts.
PADI Certificates (Instances)
Predefined scuba dive certificates issued by PADI.
Air mix (Instances)
Predefined air mix types, e.g. air or nitrox.
Equipment (Instances)
Different types of equipment that can be reused.


Example Dive Detailed
This example links to the DiverProfiles and includes the most of the property and blocks to explain how it works.
Dive Profile Example:
This file includes a example profile how a DiveProfile could be stored.
Diver Profiles
The profiles of the diver. In practical use each diver should receive his own file for the profile.
Dive Collection
A collection of dives. Useful to collect logical matching dives into one file.