RDF data as in annotations, proposed. Please discuss in Discussion page.
- At most one annotation subject, but multiple topics (Lei recalls it is the other way around)
- use a fixed predicate, e.g. fp:has taxon to associate a dwc:Identification with a dwc:taxon
- an Identification has only one associated Taxon
- identifiedBy should be an object property, taking a foaf:Person as its range. Discuss at Talk:DwCSWRL#identifiedBy.
- sanity checks:
- lat, long interval constraints
- what uniqueness conditions? or allow unions?
- sanity checks:
First cut at formal rules for Taxonomic IDs based on Example_4_DWC. dwcFPModel.owl is a lightweight owl representation of Darwin Core, modeling mostly Occurrence data, especially identifications and geolocations. It is a stripped-down, seriously remodeled, version of Webb and Baskauf's http://code.google.com/p/darwin-sw/, but the details of it don't matter as long as we have a reasonable mapping into a DwC XML schema of our choice (or we could map backends directly from the dwcFPModel perhaps with Jena). Darwin-sw has quite a bit of OWL cruft that adds nothing except to remind people of the intention of the designers, something that could have been done with better OWL2 annotation, and at less cost of closing the world as much as they do. I have not yet looked at the SWRL advice on tractability. Below represents actual ontologies, but it's just a start.
The first rule below is an OWL constraint, and guarantees there is at most one subject of the annotation. Probably we need to add more to guarantee that only this kind of annotation has that restriction (or did we agree to do it across the board?). Possibly SWRL can make a rule that says that at most one of annotatesData and hasTopic appears multiply.
The second rule associates the Identification with the Occurrence in the domain, i.e. in DwC. That's needed to generate the corresponding relation in DwC (which, recall, is basically positional in Simple DwC).
Below is some simple DwC that maps the consequent of Rule 2 to simple Darwin Core in the case that the data comes from http://etaxonomy.org/ontologies/ao/aod_example_4DwC.owl as illustrated on Example_4_DWC
<?xml version="1.0" encoding="UTF-8"?> <!-- Simple DwC following the recommendation of http://rs.tdwg.org/dwc/terms/guides/xml/index.htm#classes to represent the association in http://etaxonomy.org/ontologies/ao/aod_example_4DwC.owl (see first http://filteredpush.org/mw/Example_4_DWC) of the given AO Topic as an Identification of the Occurrence PPI_no_52 given as the subject of the annotation one_specimen_annotation_example --> <dwr:DarwinRecordSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://rs.tdwg.org/dwc/dwcrecord/ http://rs.tdwg.org/dwc/xsd/tdwg_dwc_classes.xsd" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dwc="http://rs.tdwg.org/dwc/terms/" xmlns:dwr="http://rs.tdwg.org/dwc/dwcrecord/" > <dwc:Occurrence> <dwc:occurrenceID>PPI_no_52</dwc:occurrenceID> <dwc:recordNumber>PPI 52</dwc:recordNumber> </dwc:Occurrence> <dwc:Identification> <dwc:identificationID>http://rs.tdwg.org/dwc/terms/ID_as_Parameria_laevigata_(Juss)_Mold.</dwc:identificationID> <dwc:identifiedBy>David Middleton [A]</dwc:identifiedBy> <dwc:dateIdentified>2000</dwc:dateIdentified> <dwc:occurrenceID>PPI_no_52</dwc:occurrenceID> <dwc:taxonID>TaxonForPPI52</dwc:taxonID> </dwc:Identification> <dwc:Taxon> <dwc:taxonID>TaxonForPPI52</dwc:taxonID> <dwc:scientificName>Parameria laevigata(Juss) Mold.</dwc:scientificName> </dwc:Taxon> </dwr:DarwinRecordSet>