Hi Sally,
No problem. The task was to create a prototype LSID resolver, not to solve all the KR issues surrounding taxon concepts. However, I do think it's time we start talking about these issues. I worry that the prototype resolvers we set up will become de facto reference implementations, that other people will start to construct services modeled on the prototypes without us ever having gone back to talk about what worked and what didn't.
I know there are several versions of TCS-in-RDF floating around. I think Roger's is an RDFS document. Rob Gales created an OWL-DL version for the GBIF demonstration project that Jessie and he worked on this summer. Early this year I created a partial implementation in OWL-Lite (that I've since discarded). While each one is "TCS", they're all substantially different in the way they represent TCS classes and properties, in part because the different representation languages (RDFS, OWL-Lite, OWL-DL) have different language features and expressive powers.
It would be nice if we could devise one standard RDF implementation of TCS. I don't care which one we use, but I would like to narrow the field to one so we can get the details sorted out. I'm talking about details like resolvable namespaces, typed versus non-typed literals, the use of anonymous resources, and serialization issues like the references-to-resources problem that cropped up in the IPNI example Peter Hollas is working from. These details are quite important because certain decisions taken here can effect the larger network of linked data providers.
Take the anonymous resources issues: If you look at the example Peter cites, the typifiedBy property refers to an anonymous NomenclaturalType that has a dc:title. Within a single data provider, this is no big deal because many different data objects can refer to this NomenclaturalType. However the use of anonymous resources can cause big problems when you try to harvest and index the data from multiple providers. It also causes problems for the caching use case.
It would be nice to discuss some of these things, perhaps within TAG.
-Steve
Sally Hinchcliffe wrote:
Hi Steve /all
We took that syntax straight from Roger's RDF/TCS examples. I think Roger was going to do more work on tidying up those sorts of loose ends. I have to admit that my knowledge of RDF and particularly RDFS is pretty superficial
We can switch to either the shorter format or the safer fully qualified URI - what do people think would be better?
Sally
By the way, the IPNI example you cite has an error:
<tn:nomenclaturalCode rdf:resource="&tn;#botanical" />
Many RDF/XML parsers will see &tn; as an entity which cannot be resolved. Since I don't have a copy of the ontology (and http://tdwg.org/2006/03/12/TaxonNames does not resolve), I can only take a guess that it should look something like:
<tn:nomenclaturalCode rdf:resource="tn:botanical" />
However, using XML namespace prefixes in resource references inside RDF/XML documents tends to cause problems because not all RDF/XML parsers are smart enough to dereference the namespace prefix and build a fully-qualified resource URI. A safer form of the above would be the fully qualified resource URI which looks like:
<tn:nomenclaturalCode rdf:resource="http://tdwg.org/2006/03/12/TaxonNames/botanical" />
-Steve
*** Sally Hinchcliffe *** Computer section, Royal Botanic Gardens, Kew *** tel: +44 (0)20 8332 5708 *** S.Hinchcliffe@rbgkew.org.uk