Annotation Proposal

From Evolutionary Informatics Working Group
Jump to: navigation, search

Overview

Options

RDFa

Pros

  • Easy to express
  • Only requires addition of some attributes to entities in the schema
  • Easy to ignore for applications that are not interested in processing annotations.

Cons

  • Some things are not expressible without the addition of new elements.
  • Overlapping statements or saying more than one thing about an item is very difficult or impossible.

Embedded RDF

Pros

  • Annotations are all contained in one place.
  • Arbitrarily complex annotations are possible.
  • Processors would have to recognize the annotation tag, but are still free to ignore its contents.

Cons

  • Some data might have to be repeated.
  • Global identifiers become an issue.
  • Annotations might be complex, but applications would likely be just extracting and then using an RDF library to do the actual processing.

Proposal

Despite some of its cons embedded RDF adds a great deal of power. Additionally tools and libraries will hide any extra complexity from users. The following sections outline how such a system would look/work in a few cases.

Semantics/Scope

annotation tags could be a child of any element, except another annotation. The subject of an annotation would be its enclosing element. Making this assumption eases some of the global id issues.

Examples

Simple Annotations

Citation

<xml>

   <nexml>
      <annotation>
         <foaf:Document>
             <foaf:maker>
               <foaf:Person rdf:about="http://www.example.org/John_Doe">
                  <foaf:name>John Doe</foaf:name>
               </foaf:Person>
             </foaf:maker>
         </foaf:Document>
      </annotation>
   </nexml>

</xml>

Complex Example

Multiple Statements About an Item

<xml>

  <otu id="foo" label="bar">
     <annotation>
       <cdao:TU>
           <cdao:represented_by_Node rdf:resource="#node_bar"/>
       </cdao:TU>
     </annotation>
     <annotation>
     </annotation>
     <annotation>
        <foaf:Document rdf:about="#foo">
           <dc:title>All about Foo</dc:title>
           <foaf:maker>
              <foaf:Group rdf:resource="http://www.example.org/bar">
                 <foaf:member>
                   <foaf:Person rdf:resource="http://www.example.org/John_Doe">
                     <foaf:name>John Doe</foaf:name>
                   </foaf:Person>
                 </foaf:member>
                 <foaf:member>
                    <foaf:Person rdf:resource="http://www.example.org/Jane_Smith">
                       <foaf:name>Jane Smith</foaf:name>
                    </foaf:Person>
                 </foaf:member>
              </foaf:Group>
           </foaf:maker>
        </foaf:Document>
     </annotation>
  </otu>

</xml>