![]() |
Open Annotation Beta Example: Collaborative Scholarly Editions28 July 2011 |
Examples of annotations described using the OAC Data Model Beta, using texts from the collaborative scholarly editions case study as targets.
1. Introduction
1.2 Namespaces Used
2. Data Model Examples
2.1 Types of Annotation
2.1.1 Custom Annotation Types
2.1.2 Reply
2.2 Segments of a Target Resource and Constrained Targets
2.2.1 Fragment Identifiers
2.2.2 Constrained Target
2.3 Additional Properties for Body
2.4 Multiple Targets
2.5 Structured Data Annotations
These examples of OAC Annotations target digitized texts represented as HTML rendered from TEI/XML, plain text files and scanned images. We do not address the issue of identifying works at different FRBR levels in this document. For the purposes of these examples, we assume that each expression can be identified by a unique URI.
This example uses the following namespaces and prefixes to indicate those namespaces:
Prefix | Namespace URI | Description |
---|---|---|
dc |
http://purl.org/dc/elements/1.1/ |
Dublin Core elements |
dcterms |
http://purl.org/dc/terms/ |
Dublin Core terms |
foaf |
http://xmlns.com/foaf/0.1/ |
Friend of a Friend vocabulary terms |
oac |
http://www.openannotation.org/ns/ |
OAC vocabulary terms |
ore |
http://www.openarchives.org/ore/terms/ |
ORE vocabulary terms |
rdf |
http://www.w3.org/1999/02/22-rdf-syntax-ns# |
RDF vocabulary terms |
rdfs |
http://www.w3.org/2001/01/rdf-schema# |
RDF Schema vocabulary |
aos |
http://purl.org/ao/selectors/ |
Annotation Ontology Selectors |
Additional types of Annotations are modeled as as subClasses of oac:Annotation. See OAC Data Model Beta Section 3.4 (Annotation Types).
To support searching and filtering of different types of annotations created within our collaborative scholarly editions case study, we have defined custom subclasses of oac:Annotation:
Example 1: Explanatory Note | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model Instance
![]() |
||||||||||||||||||||||||
URI Table
|
||||||||||||||||||||||||
RDF
ex:Anno a lit:ExplanatoryNote , oac:hasBody ex:note1 , oac:hasTarget ex:text1 , dc:title "Young Ladies Journal" , dcterms:created "2010-09-15T18:25:12Z" , dcterms:creator ex:User . ex:User a foaf:Agent , foaf:name "Roger Osborne" , foaf:mbox "rosborne@example.edu" . |
Example 2 illustrates how an instance of a custom annotation class can be the target of an oac:Reply. This is a reply to the lit:ExplanatoryNote from Example 1.
Example 2: Reply to Explanatory Note | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model Instance
![]() |
||||||||||||||||||||||
URI Table
|
||||||||||||||||||||||
RDF
ex:Ann2 a oac:Reply , oac:hasBody ex:note2 , oac:hasTarget ex:Anno , dcterms:creator ex:Usr2 , dcterms:created "2010-09-16T13:43:27Z" . ex:Usr2 a foaf:Agent , foaf:name "Anna Gerber" , foaf:mbox "agerber@example.edu" . |
This section provides examples of different ways to identify segments within a text.
Example 3: Explanatory Note targeting XPointer fragment | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model Instance
![]() |
||||||||||||||||||||||||||||
URI Table
|
||||||||||||||||||||||||||||
RDF
ex:Anno a lit:ExplanatoryNote , oac:hasBody ex:note1 , oac:hasTarget ex:selection1 , dc:title "Young Ladies Journal" , dcterms:created "2010-09-15T18:25:12Z" , dcterms:creator ex:User . ex:selection1 dcterms:isPartOf ex:text1 . ex:User a foaf:Agent , foaf:name "Roger Osborne" , foaf:mbox "rosborne@example.edu" . |
Using XPointers to identify of segments of a text rendered as XHTML can be a fragile approach if the presentation structure may change, for example, if the text is rendered from TEI/XML with alternate stylesheets to support different display devices and web browsers. Example 4 uses an oac:PrefixPostfixConstraint to identify the segment of the text without reference to the structure of the presentation markup.
Example 4: Explanatory Note with Constrained Target | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model Instance
![]() |
||||||||||||||||||||||||||||||||||||||||||
URI Table
|
||||||||||||||||||||||||||||||||||||||||||
RDF
ex:Anno a lit:ExplanatoryNote , oac:hasBody ex:note1 , oac:hasTarget uu1 , dc:title "Young Ladies Journal" , dcterms:created "2010-09-15T18:25:12Z" , dcterms:creator ex:User . uu1 a oac:ConstrainedTarget , oac:constrains ex:text1 , oac:constrainedBy uu2 . uu2 a oac:PrefixSuffixConstraint , aos:prefix "needs in the " , aos:exact "Young Ladies Journal," , aos:suffix " and— Heaven" . ex:User a foaf:Agent , foaf:name "Roger Osborne" , foaf:mbox "rosborne@example.edu" . |
The OAC data model allows additional properties to be specified for the annotation, body or target resources. An annotation from a digital scholarly edition published in 2005 has been represented using the OAC data model, so that it may be viewed or discussed using an OAC-compliant annotation client. Properties are specified for both the body and the annotation to differentiate the creator and creation date of the body content from the creator and creation date of the new annotation. This distinction is useful when representing historical and non-digital annotations. In these cases, the annotation creator is likely to be a person transcribing the original material or a tool used to import annotation content from another system, rather than the person who authored the body content. See OAC Data Model Beta Section 3.3 (Additional Properties and Relationships)
In Example 5, both the target and the body are segments of larger documents, identified by fragment identifiers.
The content for this example is sourced from Eggert, Paul. (2005) Ned Kelly's Jerilderie Letter (1879) An Electronic Edition and Collaborative Study.
Example 5: Textual Note where body and annotation creators differ | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model Instance
![]() |
||||||||||||||||||||||||||||||||||||
URI Table
|
||||||||||||||||||||||||||||||||||||
RDF
ex:Anno a lit:TextualNote , oac:hasTarget ex:selection1 , oac:hasBody ex:note13 , dcterms:created "2010-05-24T19:12.33Z" , dc:title "thi trooper" , dcterms: creator ex:Usr2 . ex:selection1 a oac:Target , dcterms:isPartOf ex:text1 . ex:note13 a oac:Body . dcterms:isPartOf ex:notes , dcterms:creator ex:Usr1 , dcterms:created "2005" . ex:Usr1 foaf:name "Paul Eggert" . ex:Usr2 foaf:name "Damien Ayers", foaf:mbox "dayers@example.edu" . |
Sections of a transcript of a text and its facsimile are targets of a single annotation in Example 6. A media fragment identifier is used to identify the segment of the image targeted by the annotation, while a plain text fragment is used to identify the segment of the targeted text. Additional properties of the annotation have been omitted for the sake of brevity.
See OAC Data Model Beta Section 3.6 (Multiple Targets), Section 3.7.1 (Fragment URIs), and Section 3.7.2 (Media Fragment URIs).
Example 6: Multiple targets | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model Instance
![]() |
||||||||||||||||||||
URI Table
|
||||||||||||||||||||
RDF
ex:Anno a lit:TextualNote , oac:hasTarget ex:selection1 , oac:hasTarget ex:imgregion1 , oac:hasBody ex:note1 . ex:imgregion1 dcterms:isPartOf ex:img1 . ex:selection1 dcterms:isPartOf ex:text1 . |
Example 7 is an oac:DataAnnotation that annotates variations between different versions of a poem, to attach metadata such as the agent responsible for the variation, the date when the variation occurred, or a description of the significance or reason for the variation. The Targets are text segments from two expressions of The Creek of the Four Graves by Charles Harpur. The Body is an ore:ResourceMap that captures structured metadata about the variation, and which also describes a relationship between the annotation targets (lit:isVariantOf). The properties shown in the Model Instance diagram in blue are from the Body, which is a separate resource to the annotation, in this case an RDF/XML serialization of the ore:ResourceMap. The properties shown in black are from the oac:DataAnnotation. Only the RDF for the annotation is shown below, the content of the body is provided here.
Example 7: Structured Body | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model Instance
![]() |
||||||||||||||||||||
URI Table
|
||||||||||||||||||||
RDF
ex:Anno a oac:DataAnnotation , oac:hasTarget ex:selection1 , oac:hasTarget ex:selection2 , oac:hasBody ex:rem1 . ex:selection1 a oac:Target , dcterms:isPartOf ex:text1 . ex:selection2 a oac:Target , dcterms:isPartOf ex:text2 . ex:rem1 a oac:Body , dc:format "application/rdf+xml" . |