From: Nicolas Le N. <n.l...@gm...> - 2013-12-17 23:38:22
|
On 17/12/13 23:19, Neil Swainston wrote: > We can annotate things with strings / integers / whatever. The > following (using ints and strings to encode charge and InChis) is > valid RDF, with not a URL/URN or ontology or registry in sight: > > <species id="H_i” name=“proton” metaid="mi" compartment="i"> > <annotation> <rdf:RDF> <rdf:Description > rdf:about="http://www.sbml.org/#mi"> > <bqbiol:charge>1</bqbiol:charge> > <bqbiol:inchi>1/p+1/fH/q+1</bqbiol:inchi> </rdf:Description> > </rdf:RDF> </annotation> </species> > > This reads charge = 1, inchi = 1/p+1/fH/q+1. And it’s not a massive > leap from how we annotate things already. This is not RDF. This is XML. There is absolutely nothing wrong with that. As I mentioned in my previous e-mail, not all annotations have to be in RDF. Some namespace is probably missing here to define "charge" and "inchi" (why it is prefixed by bqbiol is mysterious, but why not). If we come up with some agreement on terms like those, this is fine. The difference between XML and RDF/XML is that you need an external specification to define the elements, like you have in SBML. If you want to build a triple that is meant to be read without an external specification giving guidance to the person writing the parser, you have to use vocabularies. And that actually addresses Brett concern about controlled vocabularies, which was a good defense of controlled vocabularies. The following structure needs to define three elements in the spec: subject http://object.ontology/car statement http://statement.vocab/has_colour object http://colour.ontology/red While the following requires an element, an attribute and a controlled enumeration. car has_colour="red" Now, what if I want to describe a green truck? > Far more simple than the > previous (non-standard) specification of InChi strings, which Nicolas > suggested re-use of: Hey, I do not suggest anything. We were arm-bent to come up with this, remember? And it is "standard" since it is on sbml.org. It is standard because we agreed upon it. So people can write that, and other people can write parsers that understand it. This is XML. >>>> What is needed is a computer-readable annotation. That means >>>> information stored in the "annotation" element, in an XML >>>> format defined in its own namespace. An example of that is the >>>> system developed for the Yeast jamboree model for adding InChIs >>>> *at the demand of Manchester* people. >>>> http://sbml.org/Community/Wiki/Known_SBML_annotations The same >>>> approach could be used for many more example. > > RDF gives us the power to limit the predicates that are allowed (e.g. > charge and inchi), and limit the objects that can be specified (e.g. > charge must be an int). And all of this can be specified - for free - > using an existing format. How? >Just like limiting XML formats by > specifying XSDs, which we do already > (http://sbml.org/Special/xml-schemas/sbml-l2v4-schema/sbml.xsd). It’s > exactly the same principle. And an existing standard. And quite > easy. Exactly. Because this was XML. Not RDF. It is not because we call an XML element RDF that the piece of XML is representing a triple from the Resource Description Framework. And just to re-iterate: I am not at all taking position for RDF versus XML. We have a whole spectrum of possibilities. We have to decide what we want based on ease of use Vs plasticity. The more XML the easier the less plastic. The more RDF, the more plastic but harder. > > Cheers, > > Neil. > > Neil Swainston, PhD Research Fellow > > Manchester Institute of Biotechnology University of Manchester > Manchester M1 7DN United Kingdom -- Nicolas LE NOVERE, Babraham Institute, Babraham Campus Cambridge, CB22 3AT Tel: +441223496433 Mob:+447833147074 n.l...@gm... orcid.org//0000-0002-6309-7327 http://lenoverelab.org/perso/lenov/ Skype:n.lenovere twitter:@lenovere http://nlenov.wordpress.com/ |