On Thu, Sep 8, 2011 at 1:52 AM, Richard Pyle deepreef@bishopmuseum.org wrote:
On a separate but related issue, I don't think I ever received any feedback on my question some months back regarding the scope of function of the ResourceRelationship class in DwC.
I suspect that hardly anyone is using it, and I get the sense that most people assume that it is intended to allow cross-linking instances of DwC classes with objects external to DwC-class items.
However, in my mind it serves as the *perfect* mechanism to cross-link instances of DwC classes to each other (e.g., an Occurrence to an Event; an Identification to a Taxon and Organism; a Location to an Event; etc., etc.). It also seems to me to be the perfect mechanism to represent recursive links within a Class. It's this last bit that John's recent email reminded me of.
To wit:
Term Name: associatedOrganisms Identifier: http://rs.tdwg.org/dwc/terms/associatedOrganisms Namespace: http://rs.tdwg.org/dwc/terms/ Label: associatedOrganisms Definition: A list (concatenated and separated) of identifiers of other Organism records and their associations to this Organism. Comment: Example: "sibling of MXA-231; sibling of MXA-232".
... as well as associatedOccurrences, associatedTaxa, and possibly other "associated[xxxxx]" terms...
Shouldn't these "associations" among instances between and within DwC classes be represented as series of ResourceRelationship instances? Is this not the intended purpose for ResourceRelationship? Or, is it the intended purposes, but the various "associated[xxxx]" terms are there in order to provide a "flattened" or "denormalized" concatenation of identifiers?
It's not that they should be represented one way or another, but rather that they can be represented either way, depending on the application. If you just want to drag the list of associations along with a Simple Darwin Core record, you can do that with the associated[xxx] terms.
If you want to have lists of associations in a Darwin Core Archive representation, you can create an associated[xxx] extension, map the appropriate fields in the extension and include the source_id to match it to the core record the list belongs to.
Instead you might be enamored of XML Schema. You could import the generic Darwin Core reference schema and refine it to have containers for any types of associations you want to make explicit. Or, you could use ResourceRelationship as a container and allow it to be populated with any number and type of relationship.
Or...
You get the picture.
Aloha, Rich