Hi!
We started implementing image annotations in ResearchSpace, and we’ll use OAC.
<annot> a oac:Annotation;
oac:hasBody <annot/body>;
oac:hasTarget <annot/target>.
<annot/target> a oac:ConstrainedTarget;
oac:constrainedBy <annot/constraint>;
oac:constrains <http://www.researchspace.org/Rembrandt/images/DT219363.jpg>.
<annot/constraint> oac:SvgConstraint, cnt:ContentAsText;
dc:format "SVG";
cnt:chars """<polyline points="10,20 15,25 25,10 10,20"/>"""...
But I have some questions on more specialized topics
The OAC spec says "should be a single SVG element, not an entire SVG canvas" so it seems an implicit <svg> tag is assumed around the SVG data.
Is this the case? It would make “View Configuration” below harder L
Concept of "Currently selected annotation" so that:
There are two alternatives to accomplish the latter:
How can we represent this? Considerations:
|
|
A marker (point, pin) is a point carrying a particular symbol (shape).
OAC does not support markers, since an image annotation target is represented as an oac:SvgConstraint, which consists of an SVG shape: path, rect, circle, ellipse, line, polyline, polygon, g(roup) (eg used to create a region with a hole).
A ResearchSpace requirement is to allow markers as annotation targets
SVG does not have the concept of a standalone point/marker, but there are several alternatives (below).
Do you think such extension is useful, and how would you represent it?
Represent the point as use and the shape as a symbol
|
|
Represent the point as polyline and the shape as marker
|
Use a normal graphics element (shape or image), signify it as a marker using class
|
That's great :)
> But I have some questions on more specialized topics
> <svg> element
> The OAC spec says "should be a single SVG element, not an entire SVG canvas" so it seems an implicit <svg> tag is assumed around the SVG data.
> Is this the case? It would make “View Configuration” below harder
Yes. The reason for this is to avoid the situation where the SVG
canvas size, the viewport and the dimensions of the resource being
annotated don't match up.
It also allows the client to have a single canvas on to which the SVG
elements are drawn, or to more easily convert the SVG into its own
local drawing framework.
> View Configuration
> When the user selects an annotation, the image view is set so that the annotation is fully visible
> Restore the view to what it was when the annotation was created or last edited.
> This is better since the user may want to see more than the annotated region, and if the same view was shared by several annotations then the view won't "jump"
> The screens of two users may be different, so the available image area may be different (including different aspect ratios).
> We have decided to keep fixed: center of image area, aspect ratio, zoom level; while allowing the image fringes to be cropped
> How can we represent this?
We consider this level of UI information to be outside the scope of
OAC. Interoperability at this level would be very difficult given
different platforms, clients, target media types, etc. etc.
However see below...
> Markers
> A marker (point, pin) is a point carrying a particular symbol (shape).
Yes, at the moment we don't support these as they're a function of the
user interface. Even the color of the target segment isn't explicit
in the model as it stands.
We have an agenda item to discuss the use of CSS to provide UI styling
hints during a meeting at the end of this week, which I believe would
cover your use cases.
In this scenario the target is not the marker, the target would be a
point. Then the CSS would associate a marker image (or color, or text
styling, or ...) with the point.
I've not replied to either your or Bernhard's messages about the
machine oriented annotations, as these are the first and most
important topic on the agenda at the meeting. We'll report back next
week, and apologies for the delays :)
Hope that helps!
Rob
> > implicit <svg> tag is assumed around the SVG data.
> > View Configuration
> We consider this level of UI information to be outside the scope
Ok then, so we'll represent this with an Image Fragment as per my prev
email. A better example:
<DT219363.tif/annot/1/target> a oac:ConstrainedTarget;
oac:constrainedBy <DT219363.tif/annot/1/constraint>;
oac:constrains <DT219363.tif#xywh=1000,900,250,250>.
<DT219363.tif#xywh=1000,900,250,250> dcterms:isPartOf <DT219363.tif>.
> In this scenario the target is not the marker, the target would be a
> point
BUT how do you represent a single point (or multi-points) in SVG?
I outlined 3 alternatives in my first email.