Details
-
New Feature
-
Status: Done
-
Major
-
Resolution: Done
-
None
Description
API for getting/setting annotations on beans.
Probably pretty much using the PropertyResource hierarchy.
Should be kept under WorkflowBundle.getAnnotations() (a Set<PropertyResource>) and stored in the bundle under say annotation/workflow/HelloWorld.rdf for annotations of workflow/HelloWorld.rdf.
The API (probably in Scufl2Tools) should have something like:
PropertyResource annotationsFor(WorkflowBean)
which would use URITools to find the matching property resource.
The annotation should have the possibility of annotating relatively, URIs are like {../../../workflow/HelloWorld/processor/hello/}}, or absolutely like http://ns.taverna.org.uk/2010/workflowBundle/ffefefe-fefefefef/workflow/HelloWorld/processor/soup/. The difference is that the last is a historical annotation which is not to be updated - the processor 'soup' might not even exist any more. On the other hand the relative annotations will be updated when workflow beans are renamed, deleted, copied, etc. - on saving of a workflow bundle the objects and subject URIs pointing to relative objects should be updated to reflect the current relative URIs. If the bean is no longer there - the relative annotation can also be scrapped.
Serialisation-wise the annotations can be stored in the same way as PropertyResource (as they will be PropertyResources) which should allow for arbitrary annotations as long as a certain schema is followed.
It should not be needed to have corresponding PropertyDefinition's - but it might be useful to have a class with constants for the most typical Dublin Core attributes like DC.title.
Attachments
Issue Links
- duplicates
-
TAVERNA-967 Improve AnnotationTools
- To Do
- is a clone of
-
TAVERNA-167 Update properties on URI changes
- To Do