The Scuba Dive Ontology
On this page you find a RDFS ontology for scuba divers. Now it is possible to
describe your dives in a portable, non-proprietary, machine-readable format . see
ChangeLog for recent changes.
The RDF Schema/Namespace
See the
RDFS. To use the ontology use the following line in the <rdf:RDF> tag:
xmlns:dive="http://scubadive.networld.to/dive.rdf#"
Certification Block
Currently I've written the following Certification blocks (PADI) see
padi.rdf:
If you have the Open Water Certification add the following line to your diver block:
<dive:Certification rdf:resource="http://scubadive.networld.to/padi.rdf#OW" />
If you have a certificate from another organisation than PADI or if you grade is missing please contact me.
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="http://scubadive.networld.to/airmix.rdf#Air" />
Equipment (Type) Block
As scuba diver maybe 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 you should use the following code:
<dive:Equipment>
...
<dive:EquipmentType rdf:resource="http://scubadive.networld.to/equipment.rdf#mask" />
...
</dive:Equipment>
Dive Profile (from dive computer)
If you have a dive computer you maybe want to store a detailed dive profile with depth, temperature, time, bookmark for each sample. For this purpose I suggest that you 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"/>
Air Mix Block
There are a few air mix predefined under
airmix.rdf
Diver Block vs. DiverProfile Block
- Diver Block is only valid for a special dive. It describes what certification 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 equiptment 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 gnupg 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 at the same directory as the dive file.
<wot:assurance>
<wot:Endorsement rdf:about="diveX_buddyY.asc" />
<dc:title>Dive Confirmation by BuddyY</dc:title>
<wot:endorser rdf:nodeID="KeyBuddyY"/>
</wot:Endorsement>
</wot:assurance>
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">
<wot:hex_id>1234567</wot:hex_id>
<wot:length>1024</wot:length>
<wot:fingerprint>1234567890123456789012345678901234567890</wot:fingerprint>
</wot:PubKey>
Don't forget to add the namespace definition of
wot and
dc.
Extension
This ontology describes only for scuba diving relevant vocabular and
for sure you would use other RDFS/OWL languages to receive a full description of your dives.
Examples
- 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.
Application and Tools
- Android Dive Viewer (see http://android.networld.to)
- Suunto Dive Manager to Scuba Dive Ontology (with conversion of the profiles)
- [here is space for your tools]
TODO
The following parts are planned. If you think there are missing or not well defined tasks, please feel free to contact me.
- [DONE] Extend the ontology to describe detailed dive profiles (depth, air, time, ...) (gained from a dive computer).
- [DONE] Conversion from Suunto Dive Manager to Scuba Dive Profile.
- Write a specification.
- Write a generator to simplify the creation of structured dive file.
Contact
If you have questions or suggestions please contact me.