![]() |
Open Annotation Beta Example: Hubble Deep Field Image10 August 2011 |
A series of examples using the Hubble Deep Field Image as the target of Annotations described using the OAC Data Model.
1. Introduction
1.2 Namespaces Used
2. Data Model Examples
2.1 Baseline Model
2.2 Serialization of Model
2.3 Additional Properties and Relationships
2.4 Additional Types of Annotation
2.5 Inline Information
2.6 Multiple Targets
2.7 Segments of a Resource and Constrained Resources
2.7.1 Fragment Identifiers
2.7.2 Media Fragment Identifiers
2.7.3 Constraints
2.7.4 Inline Constraint Data
2.7.5 RDF Constraint Data
2.7.6 Constrained Body
2.8 Time Dependent Annotations
A. Acknowledgements
B. Change Log
This example focuses on an image as the Target of the Annotations, the Hubble Deep Field Image as taken by the Hubble space telescope. Many of the Body resources are tweets using the Twitter service to assign a URI to a short piece of text.
This example uses the following namespaces and prefixes to indicate those namespaces:
| Prefix | Namespace URI | Description |
|---|---|---|
cnt |
http://www.w3.org/2008/content# |
Content in RDF [Content] |
dc |
http://purl.org/dc/elements/1.1/ |
Dublin Core elements [DC Elements] |
dcterms |
http://purl.org/dc/terms/ |
Dublin Core terms [DC Terms] |
foaf |
http://xmlns.com/foaf/0.1/ |
Friend of a Friend vocabulary terms [FOAF] |
oac |
http://www.openannotation.org/ns/ |
OAC vocabulary terms [OAC] |
ore |
http://www.openarchives.org/ore/terms/ |
ORE vocabulary terms |
rdf |
http://www.w3.org/1999/02/22-rdf-syntax-ns# |
RDF vocabulary terms [RDF Vocabulary] |
rdfs |
http://www.w3.org/2001/01/rdf-schema# |
RDF Schema vocabulary [RDF Vocabulary] |
A user creates a video that discusses the Hubble Deep Field Image. The video is therefore the Body of the Annotation, and the image is the Target, as the video is about the image.
| Example 1: Baseline Model | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Model Instance
|
||||||||||||||||
|
URI Table
|
||||||||||||||||
|
RDF
ex:Anno a oac:Annotation ,
oac:hasTarget ex:HDFI-1 ,
oac:hasBody ex:HDFV .
ex:HDFI-1 a oac:Target .
ex:HDFV a oac:Body .
|
The model is serialized as per these examples.
We can add extra properties and relationships to the resources involved in the Annotation.
| Example 3: Additional Properties and Relationships | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Model Instance
|
||||||||||||||||||||||||||||
|
URI Table
|
||||||||||||||||||||||||||||
|
RDF
ex:Anno a oac:Annotation ,
oac:hasTarget ex:HDFI-1 ,
oac:hasBody ex:HDFV ,
dc:title "Annotation of Hubble Deep Field Image" ,
dcterms:creator ex:User ,
dcterms:created "2010-02-01 12:34:56" .
ex:User a foaf:Agent ,
foaf:name "J. Bloggs" ,
foaf:mbox "jbloggs@example.org" .
ex:HDFI-1 a oac:Target .
ex:HDFV a oac:Body .
|
There can be different types of Annotation, as subClasses of oac:Annotation.
| Example 4: Additional Types of Annotation | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Model Instance
|
||||||||||||||||||||||
|
URI Table
|
||||||||||||||||||||||
|
RDF
ex:Ann2 a oac:Reply ,
oac:hasBody ex:12665505503 ,
oac:hasTarget ex:Anno .
ex:Anno a oac:Annotation ,
oac:hasBody ex:12665463062 ,
oac:hasTarget ex:HDFI-1 .
ex:HDFI-1 a oac:Target .
tw:12665505503 a oac:Body .
tw:12665463062 a oac:Body .
|
The Body can be included in the Annotation Document.
| Example 5.1: Inline Body | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Model Instance
|
||||||||||||||||||||||
|
URI Table
|
||||||||||||||||||||||
|
RDF
ex:Anno a oac:Annotation ,
oac:hasTarget ex:HDFI-1 ,
oac:hasBody ex:uuid .
ex:uuid a oac:Body ,
a cnt:ContentAsText ,
cnt:chars "This image is very impressive!" ,
cnt:characterEncoding "utf-8" .
ex:HDFI-1 a oac:Target .
|
There can be multiple targets for a single Annotation.
| Example 6: Multiple Targets | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Model Instance
|
||||||||||||||||||
|
URI Table
|
||||||||||||||||||
|
RDF
ex:Anno a oac:Annotation ,
oac:hasTarget ex:HDFI-1 ,
oac:hasTarget ex:HDFI-2 ,
oac:hasBody tw:10994605527 .
ex:HDFI-1 a oac:Target .
ex:HDFI-2 a oac:Target .
tw:10994605527 a oac:Body .
|
As this example's target is an image, please see the Media Fragment URI example.
An Annotation concerning a rectangular section of the image.
| Example 7.2: Media Fragments | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Model Instance
|
||||||||||||||||||
|
URI Table
|
||||||||||||||||||
|
RDF
ex:Anno a oac:Annotation ,
oac:hasBody tw:6312261983 ,
oac:hasTarget ex:HDFI-1#xywh=50,100,640,480 .
tw:6312261983 a oac:Body .
ex:HDFI-1#xywh=50,100,640,480 a oac:Target ,
dcterms:isPartOf ex:HDFI-1 .
|
The target of the Annotation is a ConstrainedTarget, which is a non-rectangular section of the image.
| Example 7.2: Constraintsth> | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Model Instance
|
||||||||||||||||||||||||||||
|
URI Table
|
||||||||||||||||||||||||||||
|
RDF
ex:Anno a oac:Annotation ,
oac:hasBody tw:6312261983 ,
oac:hasTarget uu1 .
uu1 a oac:ConstrainedTarget ,
oac:constrains ex:HDFI-1 ,
oac:constrainedBy ex:svgc .
ex:svgc a oac:SvgConstraint ,
dc:format "image/svg+xml" .
tw:6312261983 a oac:Body .
|
It is possible to include the Constraint data within the Annotation document.
| Example 7.4: Inline Constraint Data | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Model Instance
|
||||||||||||||||||||||||||||||||||
|
URI Table
|
||||||||||||||||||||||||||||||||||
|
RDF
ex:Anno a oac:Annotation ,
oac:hasTarget uu1 ,
oac:hasBody tw:6312261983 .
uu1 a oac:ConstrainedTarget ,
oac:constrains ex:HDFI-1 ,
oac:constrainedBy uu2 .
uu2 a oac:SvgConstraint ,
a cnt:ContentAsText ,
dc:format "image/svg+xml" ,
cnt:chars " |
Although there are better ways to do this with either a Media Fragment URI, or an SVG Constraint, for the purposes of this example only, it is possible to model the image segment using information within the RDF graph. Here we use a hypothetical BoxConstraint to encode the same information as would be found in a Media Fragment URI.
| Example 7.5: RDF Constraint Data | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Model Instance
|
||||||||||||||||||||||||||||||||||
|
URI Table
|
||||||||||||||||||||||||||||||||||
|
RDF
ex:Anno a oac:Annotation ,
oac:hasTarget uu1 ,
oac:hasBody tw:6312261983 .
uu1 a oac:ConstrainedTarget ,
oac:constrains ex:HDFI-1 ,
oac:constrainedBy uu2 .
uu2 a oac:SvgConstraint ,
img:x 100 ,
img:y 500 ,
img:w 250 ,
img:h 150 .
tw:6312261983 a oac:Body .
|
One part of the Video is about a particular segment of the image. As with the previous example, this model is for educational purposes only, and Media Fragments should be used.
| Example 7.6: Constrained Body | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Model Instance
|
||||||||||||||||||||||||||||||||
|
URI Table
|
||||||||||||||||||||||||||||||||
|
RDF
ex:Anno a oac:Annotation ,
oac:hasBody uu1 ,
oac:hasTarget uu2 .
uu1 a oac:ConstrainedBody ,
oac:constrains ex:HDFV ,
oac:constrainedBy ex:nptc .
uu2 a oac:ConstrainedTarget ,
oac:constrains ex:HDFI-1 ,
oac:constrainedBy ex:svgc .
ex:svgc a oac:SvgConstraint .
ex:nptc a oac:NptConstraint .
|
As the Hubble image has not changed over time, this document does not contain examples of this part of the data model.
| Date | Editor | Description |
|---|---|---|
| 2010-10-01 | rsanderson | External alpha3 release |
| 2011-08-10 | rsanderson | Beta re-release |
This work by the Open Annotation Collaboration is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.