rdf-open_annotation 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/Gemfile +4 -0
- data/LICENSE +13 -0
- data/README.md +31 -0
- data/Rakefile +2 -0
- data/lib/rdf/content.rb +112 -0
- data/lib/rdf/open_annotation/version.rb +5 -0
- data/lib/rdf/open_annotation.rb +530 -0
- data/rdf-open_annotation.gemspec +24 -0
- metadata +95 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6de837aa9853adf1358238695beaf9c0cea8f6c0
|
4
|
+
data.tar.gz: d4d9f4777ab33b56e384900d109cbabc17165833
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 413969c90920a69b62d5689de50bd15c5f11519e320901363c06f9c1d9bdba9cf2b6661f6df7e290049550e1eaab2105354e89fa999c0078ddf6034ff68e58b9
|
7
|
+
data.tar.gz: 881ef024ddbfc4a429b0affc1ae9d8cc8d602d2c3119a6cb0574f991ab3c518ee92b57aae7501bb9fab8511647f21e4d70f61bfe40b2659febdaa1dd2ce2138c
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
Copyright 2014 The Board of Trustees of the Leland Stanford Junior University.
|
2
|
+
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
you may not use this file except in compliance with the License.
|
5
|
+
You may obtain a copy of the License at
|
6
|
+
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
See the License for the specific language governing permissions and
|
13
|
+
limitations under the License.
|
data/README.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# OpenAnnotation
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'open_annotation'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install open_annotation
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
TODO: Write usage instructions here
|
24
|
+
|
25
|
+
## Contributing
|
26
|
+
|
27
|
+
1. Fork it ( https://github.com/[my-github-username]/open_annotation/fork )
|
28
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
29
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
30
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
31
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
data/lib/rdf/content.rb
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# This file generated automatically using vocab-fetch from http://www.w3.org/2011/content#
|
3
|
+
require 'rdf'
|
4
|
+
module RDF
|
5
|
+
class Content < RDF::StrictVocabulary("http://www.w3.org/2011/content#")
|
6
|
+
|
7
|
+
# Class definitions
|
8
|
+
term :Content,
|
9
|
+
comment: %(The content.).freeze,
|
10
|
+
label: "Content".freeze,
|
11
|
+
type: ["rdfs:Class".freeze, "owl:Class".freeze]
|
12
|
+
term :ContentAsBase64,
|
13
|
+
comment: %(The base64 encoded content \(can be used for binary content\).).freeze,
|
14
|
+
label: "Base64 content".freeze,
|
15
|
+
subClassOf: "http://www.w3.org/2011/content#Content".freeze,
|
16
|
+
type: ["rdfs:Class".freeze, "owl:Class".freeze]
|
17
|
+
term :ContentAsText,
|
18
|
+
comment: %(The text content \(can be used for text content\).).freeze,
|
19
|
+
label: "Text content".freeze,
|
20
|
+
subClassOf: "http://www.w3.org/2011/content#Content".freeze,
|
21
|
+
type: ["rdfs:Class".freeze, "owl:Class".freeze]
|
22
|
+
term :ContentAsXML,
|
23
|
+
comment: %(The XML content \(can only be used for XML-wellformed content\).).freeze,
|
24
|
+
label: "XML content".freeze,
|
25
|
+
subClassOf: "http://www.w3.org/2011/content#Content".freeze,
|
26
|
+
type: ["rdfs:Class".freeze, "owl:Class".freeze]
|
27
|
+
term :DoctypeDecl,
|
28
|
+
comment: %(The document type declaration.).freeze,
|
29
|
+
label: "Document type declaration".freeze,
|
30
|
+
type: ["rdfs:Class".freeze, "owl:Class".freeze]
|
31
|
+
|
32
|
+
# Property definitions
|
33
|
+
property :bytes,
|
34
|
+
comment: %(The Base64 encoded byte sequence of the content.).freeze,
|
35
|
+
domain: "http://www.w3.org/2011/content#ContentAsBase64".freeze,
|
36
|
+
label: "Base64 encoded byte sequence".freeze,
|
37
|
+
range: "xsd:base64Binary".freeze,
|
38
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
39
|
+
property :characterEncoding,
|
40
|
+
comment: %(The character encoding used to create a character sequence from a byte sequence or vice versa.).freeze,
|
41
|
+
domain: "http://www.w3.org/2011/content#Content".freeze,
|
42
|
+
label: "Character encoding".freeze,
|
43
|
+
range: "rdfs:Literal".freeze,
|
44
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
45
|
+
property :chars,
|
46
|
+
comment: %(The character sequence of the text content.).freeze,
|
47
|
+
domain: "http://www.w3.org/2011/content#ContentAsText".freeze,
|
48
|
+
label: "Character sequence".freeze,
|
49
|
+
range: "rdfs:Literal".freeze,
|
50
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
51
|
+
property :declaredEncoding,
|
52
|
+
comment: %(The character encoding declared in the XML declaration.).freeze,
|
53
|
+
domain: "http://www.w3.org/2011/content#ContentAsXML".freeze,
|
54
|
+
label: "XML character encoding".freeze,
|
55
|
+
range: "rdfs:Literal".freeze,
|
56
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
57
|
+
property :doctypeName,
|
58
|
+
comment: %(The document type name.).freeze,
|
59
|
+
domain: "http://www.w3.org/2011/content#DoctypeDecl".freeze,
|
60
|
+
label: "Document type name".freeze,
|
61
|
+
range: "rdfs:Literal".freeze,
|
62
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
63
|
+
property :dtDecl,
|
64
|
+
comment: %(The document type declaration.).freeze,
|
65
|
+
domain: "http://www.w3.org/2011/content#ContentAsXML".freeze,
|
66
|
+
label: "Document type declaration".freeze,
|
67
|
+
range: "http://www.w3.org/2011/content#DoctypeDecl".freeze,
|
68
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
69
|
+
property :internalSubset,
|
70
|
+
comment: %(The internal document type definition subset within the document type declarations.).freeze,
|
71
|
+
domain: "http://www.w3.org/2011/content#DoctypeDecl".freeze,
|
72
|
+
label: "Internal DTD subset".freeze,
|
73
|
+
range: "rdfs:Literal".freeze,
|
74
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
75
|
+
property :leadingMisc,
|
76
|
+
comment: %(The XML content preceding the document type declaration.).freeze,
|
77
|
+
domain: "http://www.w3.org/2011/content#ContentAsXML".freeze,
|
78
|
+
label: "XML leading misc".freeze,
|
79
|
+
range: "rdfs:XMLLiteral".freeze,
|
80
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
81
|
+
property :publicId,
|
82
|
+
comment: %(The document type declarations's public identifier.).freeze,
|
83
|
+
domain: "http://www.w3.org/2011/content#DoctypeDecl".freeze,
|
84
|
+
label: "Public ID".freeze,
|
85
|
+
range: "rdfs:Literal".freeze,
|
86
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
87
|
+
property :rest,
|
88
|
+
comment: %(The XML content following the document type declaration.).freeze,
|
89
|
+
domain: "http://www.w3.org/2011/content#ContentAsXML".freeze,
|
90
|
+
label: "XML rest".freeze,
|
91
|
+
range: "rdfs:XMLLiteral".freeze,
|
92
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
93
|
+
property :standalone,
|
94
|
+
comment: %(The standalone declaration in the XML declaration.).freeze,
|
95
|
+
domain: "http://www.w3.org/2011/content#ContentAsXML".freeze,
|
96
|
+
label: "XML standalone document declaration".freeze,
|
97
|
+
range: "rdfs:Literal".freeze,
|
98
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
99
|
+
property :systemId,
|
100
|
+
comment: %(The document type declarations's system identifier \(typed: xsd:anyURI\)).freeze,
|
101
|
+
domain: "http://www.w3.org/2011/content#DoctypeDecl".freeze,
|
102
|
+
label: "System ID".freeze,
|
103
|
+
range: "xsd:anyURI".freeze,
|
104
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
105
|
+
property :version,
|
106
|
+
comment: %(The XML version declared in the XML declaration.).freeze,
|
107
|
+
domain: "http://www.w3.org/2011/content#ContentAsXML".freeze,
|
108
|
+
label: "XML version".freeze,
|
109
|
+
range: "rdfs:Literal".freeze,
|
110
|
+
type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze]
|
111
|
+
end
|
112
|
+
end
|
@@ -0,0 +1,530 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# This file generated automatically using vocab-fetch from http://www.w3.org/ns/oa#
|
3
|
+
require 'rdf'
|
4
|
+
require 'rdf/content'
|
5
|
+
|
6
|
+
module RDF
|
7
|
+
class OpenAnnotation < RDF::StrictVocabulary("http://www.w3.org/ns/oa#")
|
8
|
+
|
9
|
+
# Class definitions
|
10
|
+
term :Annotation,
|
11
|
+
comment: %(Typically an Annotation has a single Body \(oa:hasBody\), which is the comment or other descriptive resource, and a single Target \(oa:hasTarget\) that the Body is somehow "about". The Body provides the information which is annotating the Target.
|
12
|
+
|
13
|
+
This "aboutness" may be further clarified or extended to notions such as classifying or identifying with oa:motivatedBy.).freeze,
|
14
|
+
label: "Annotation".freeze,
|
15
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
16
|
+
type: "owl:Class".freeze
|
17
|
+
term :Choice,
|
18
|
+
comment: %(A multiplicity construct that conveys to a consuming application that it should select one of the constituent resources to display to the user, and not render/use all of them.
|
19
|
+
|
20
|
+
oa:Choice can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships,
|
21
|
+
|
22
|
+
There MUST be 1 or more oa:item relationships for each oa:Choice.
|
23
|
+
|
24
|
+
There SHOULD be exactly 1 default relationship for each Choice.).freeze,
|
25
|
+
label: "Choice".freeze,
|
26
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
27
|
+
subClassOf: "rdf:Alt".freeze,
|
28
|
+
type: "owl:Class".freeze
|
29
|
+
term :Composite,
|
30
|
+
comment: %(A multiplicity construct that conveys to a consuming application that all of the constituent resources are required for the Annotation to be correctly interpreted.
|
31
|
+
|
32
|
+
oa:Composite can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships,
|
33
|
+
|
34
|
+
There MUST be 2 or more oa:item relationships for each oa:Composite.).freeze,
|
35
|
+
label: "Composite".freeze,
|
36
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
37
|
+
subClassOf: "rdf:Bag".freeze,
|
38
|
+
type: "owl:Class".freeze
|
39
|
+
term :CssStyle,
|
40
|
+
comment: %(A resource which describes styles for resources participating in the Annotation using CSS.
|
41
|
+
|
42
|
+
Specific Resources MAY be assigned a CSS style class using oa:styleClass.
|
43
|
+
|
44
|
+
The CSS resource MAY have its own dereferencable URI that provides the information. For example, "Style1" in the diagram below might actually have the URI "http://www.example.com/styles/annotations.css". It MAY be embedded within the Annotation using the inline constructions described in Embedding Resources.).freeze,
|
45
|
+
label: "CssStyle".freeze,
|
46
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
47
|
+
subClassOf: "http://www.w3.org/ns/oa#Style".freeze,
|
48
|
+
type: "owl:Class".freeze
|
49
|
+
term :DataPositionSelector,
|
50
|
+
comment: %(A Selector which describes a range of data based on its start and end positions within the byte stream of the representation.
|
51
|
+
|
52
|
+
Each DataPositionSelector MUST have exactly 1 oa:start property.
|
53
|
+
|
54
|
+
Each TextPositionSelector MUST have exactly 1 oa:end property.
|
55
|
+
|
56
|
+
See oa:TextPositionSelector for selection at normalized character level rather than bytestream level.).freeze,
|
57
|
+
label: "DataPositionSelector".freeze,
|
58
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
59
|
+
subClassOf: "http://www.w3.org/ns/oa#Selector".freeze,
|
60
|
+
type: "owl:Class".freeze
|
61
|
+
term :FragmentSelector,
|
62
|
+
comment: %(A Selector which describes the segment of interest in a representation, through the use of the fragment identifier component of a URI.
|
63
|
+
|
64
|
+
It is RECOMMENDED to use oa:FragmentSelector as the selector on a Specific Resource rather than annotating the fragment URI directly, in order to improve discoverability of annotation on the Source.
|
65
|
+
|
66
|
+
The oa:FragmentSelector MUST have exactly 1 rdf:value property, containing the fragment identifier component of a URI that describes the segment of interest in the resource, excluding the initial "#".
|
67
|
+
|
68
|
+
The Fragment Selector SHOULD have a dcterms:conformsTo relationship with the object being the specification that defines the syntax of the fragment, for instance <http://tools.ietf.org/rfc/rfc3236> for HTML fragments. ).freeze,
|
69
|
+
label: "FragmentSelector".freeze,
|
70
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
71
|
+
subClassOf: "http://www.w3.org/ns/oa#Selector".freeze,
|
72
|
+
type: "owl:Class".freeze
|
73
|
+
term :HttpRequestState,
|
74
|
+
comment: %(A resource which describes how to retrieve an appropriate representation of the Source resource for the Annotation, based on the HTTP Request headers to send to the server.
|
75
|
+
|
76
|
+
There MUST be exactly 1 rdf:value property per HttpRequestState, containing HTTP request headers as a single, complete string, exactly as they would appear in an HTTP request. ).freeze,
|
77
|
+
label: "HttpRequestState".freeze,
|
78
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
79
|
+
subClassOf: "http://www.w3.org/ns/oa#State".freeze,
|
80
|
+
type: "owl:Class".freeze
|
81
|
+
term :List,
|
82
|
+
comment: %(A multiplicity construct that conveys to a consuming application that all of the constituent resources are required for the Annotation to be correctly interpreted, and in a particular order.
|
83
|
+
|
84
|
+
oa:List can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships,
|
85
|
+
|
86
|
+
There MUST be 2 or more oa:item relationships for each oa:List, with their order defined using the rdf:List construct of rdf:first/rdf:rest/rdf:nil.
|
87
|
+
|
88
|
+
All the elements of the list should also be declared using oa:item, and each of the oa:items should appear at least once in the list.).freeze,
|
89
|
+
label: "List".freeze,
|
90
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
91
|
+
subClassOf: "http://www.w3.org/ns/oa#Composite".freeze,
|
92
|
+
type: "owl:Class".freeze
|
93
|
+
term :Motivation,
|
94
|
+
comment: %(The Motivation for creating an Annotation, indicated with oa:motivatedBy, is a reason for its creation, and might include things like oa:replying to another annotation, oa:commenting on a resource, or oa:linking to a related resource.
|
95
|
+
|
96
|
+
Each Annotation SHOULD have at least one oa:motivatedBy relationship to an instance of oa:Motivation, which is a subClass of skos:Concept.).freeze,
|
97
|
+
label: "Motivation".freeze,
|
98
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
99
|
+
subClassOf: "skos:Concept".freeze,
|
100
|
+
type: "owl:Class".freeze
|
101
|
+
term :Selector,
|
102
|
+
comment: %(A resource which describes the segment of interest in a representation of a Source resource, indicated with oa:hasSelector from the Specific Resource.
|
103
|
+
|
104
|
+
This class is not used directly in Annotations, only its subclasses are.
|
105
|
+
|
106
|
+
The nature of the Selector will be dependent on the type of the representation for which the segment is conveyed. The specific type of selector should be indicated using a subclass of oa:Selector.
|
107
|
+
|
108
|
+
The Specifier's description MAY be conveyed as an external or embedded resource \(cnt:Content\), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced.).freeze,
|
109
|
+
label: "Selector".freeze,
|
110
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
111
|
+
type: "owl:Class".freeze
|
112
|
+
term :SemanticTag,
|
113
|
+
comment: %(A class assigned to the Body when it is a semantic tagging resource; a URI that identifies a concept, rather than an embedded string, frequently a term from a controlled vocabulary.
|
114
|
+
|
115
|
+
It is NOT RECOMMENDED to use the URI of a document as a Semantic Tag, as it might also be used as a regular Body in other Annotations which would inherit the oa:SemanticTag class assignment. Instead it is more appropriate to create a new URI and link it to the document, using the foaf:page predicate.).freeze,
|
116
|
+
label: "SemanticTag".freeze,
|
117
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
118
|
+
subClassOf: "http://www.w3.org/ns/oa#Tag".freeze,
|
119
|
+
type: "owl:Class".freeze
|
120
|
+
term :SpecificResource,
|
121
|
+
comment: %(A resource identifies part of another Source resource, a particular representation of a resource, a resource with styling hints for renders, or any combination of these.
|
122
|
+
|
123
|
+
The Specific Resource takes the role of oa:hasBody or oa:hasTarget in an oa:Annotation instead of the Source resource.
|
124
|
+
|
125
|
+
There MUST be exactly 1 oa:hasSource relationship associated with a Specific Resource.
|
126
|
+
|
127
|
+
There MUST be exactly 0 or 1 oa:hasSelector relationship associated with a Specific Resource.
|
128
|
+
|
129
|
+
There MAY be 0 or 1 oa:hasState relationship for each Specific Resource.
|
130
|
+
|
131
|
+
If the Specific Resource has an HTTP URI, then the exact segment of the Source resource that it identifies, and only the segment, MUST be returned when the URI is dereferenced. For example, if the segment of interest is a region of an image and the Specific Resource has an HTTP URI, then dereferencing it MUST return the selected region of the image as it was at the time when the annotation was created. Typically this would be a burden to support, and thus the Specific Resource SHOULD be identified by a globally unique URI, such as a UUID URN. If it is not considered important to allow other Annotations or systems to refer to the Specific Resource, then a blank node MAY be used instead.).freeze,
|
132
|
+
label: "SpecificResource".freeze,
|
133
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
134
|
+
type: "owl:Class".freeze
|
135
|
+
term :State,
|
136
|
+
comment: %(A resource which describes how to retrieve an appropriate representation of the Source resource, indicated with oa:hasState from the Specific Resource.
|
137
|
+
|
138
|
+
This class is not used directly in Annotations, only its subclasses are.
|
139
|
+
|
140
|
+
The Specifier's description MAY be conveyed as an external or embedded resource \(cnt:Content\), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced.).freeze,
|
141
|
+
label: "State".freeze,
|
142
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
143
|
+
type: "owl:Class".freeze
|
144
|
+
term :Style,
|
145
|
+
comment: %(A resource which describes the style in which the selection or resource should be rendered, indicated with oa:styledBy from an oa:Annotation.
|
146
|
+
|
147
|
+
This class is not used directly in Annotations, only its subclasses are.
|
148
|
+
|
149
|
+
The content of the resource provides the rendering hints about the Annotation's constituent resources.
|
150
|
+
|
151
|
+
The Specifier's description MAY be conveyed as an external or embedded resource \(cnt:Content\), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced.).freeze,
|
152
|
+
label: "Style".freeze,
|
153
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
154
|
+
type: "owl:Class".freeze
|
155
|
+
term :SvgSelector,
|
156
|
+
comment: %(A Selector which selects an area specified as an SVG shape.
|
157
|
+
|
158
|
+
The SVG document should either be retrievable by resolving the URI of this resource, or be included as an Embedded Resource using cnt:Content.
|
159
|
+
|
160
|
+
It is RECOMMENDED that the document contain only a single shape element and that element SHOULD be one of: path, rect, circle, ellipse, polyline, polygon or g. The g element SHOULD ONLY be used to construct a multi-element group, for example to define a donut shape requiring an outer circle and a clipped inner circle.
|
161
|
+
|
162
|
+
The dimensions of both the shape and the SVG canvas MUST be relative to the dimensions of the Source resource. For example, given an image which is 600 pixels by 400 pixels, and the desired section is a circle of 100 pixel radius at the center of the image, then the SVG element would be: <circle cx="300" cy="200" r="100"/>
|
163
|
+
|
164
|
+
It is NOT RECOMMENDED to include style information within the SVG element, nor Javascript, animation, text or other non shape oriented information. Clients SHOULD ignore such information if present.).freeze,
|
165
|
+
label: "SvgSelector".freeze,
|
166
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
167
|
+
subClassOf: "http://www.w3.org/ns/oa#Selector".freeze,
|
168
|
+
type: "owl:Class".freeze
|
169
|
+
term :Tag,
|
170
|
+
comment: %(A class assigned to the Body when it is a tag, such as a embedded text string with cnt:chars.
|
171
|
+
|
172
|
+
Tags are typically keywords or labels, and used for organization, description or discovery of the resource being tagged. In the Semantic Web, URIs are used instead of strings to avoid the issue of polysemy where one word has multiple meanings, such usage MUST be indicated using the subclass oa:SemanticTag.
|
173
|
+
|
174
|
+
Annotations that tag resources, either with text or semantic tags, SHOULD also have the oa:tagging motivation to make the reason for the Annotation more clear to applications, and MAY have other motivations as well.).freeze,
|
175
|
+
label: "Tag".freeze,
|
176
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
177
|
+
type: "owl:Class".freeze
|
178
|
+
term :TextPositionSelector,
|
179
|
+
comment: %(An oa:Selector which describes a range of text based on its start and end positions.
|
180
|
+
|
181
|
+
The text MUST be normalized before counting characters. For a Selector that works from the bitstream rather than the rendered characters, see oa:DataPositionSelector.
|
182
|
+
|
183
|
+
Each oa:TextPositionSelector MUST have exactly 1 oa:start property.
|
184
|
+
|
185
|
+
Each oa:TextPositionSelector MUST have exactly 1 oa:end property.).freeze,
|
186
|
+
label: "TextPositionSelector".freeze,
|
187
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
188
|
+
subClassOf: "http://www.w3.org/ns/oa#Selector".freeze,
|
189
|
+
type: "owl:Class".freeze
|
190
|
+
term :TextQuoteSelector,
|
191
|
+
comment: %(A Selector that describes a textual segment by means of quoting it, plus passages before or after it.
|
192
|
+
|
193
|
+
For example, if the document were "abcdefghijklmnopqrstuvwxyz", one could select "efg" by a oa:prefix of "abcd", the quotation of oa:exact "efg" and a oa:suffix of "hijk".
|
194
|
+
|
195
|
+
The text MUST be normalized before recording.
|
196
|
+
|
197
|
+
Each TextQuoteSelector MUST have exactly 1 oa:exact property.
|
198
|
+
|
199
|
+
Each TextQuoteSelector SHOULD have exactly 1 oa:prefix property, and MUST NOT have more than 1.
|
200
|
+
|
201
|
+
Each TextQuoteSelector SHOULD have exactly 1 oa:suffix property, and MUST NOT have more than 1.).freeze,
|
202
|
+
label: "TextQuoteSelector".freeze,
|
203
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
204
|
+
subClassOf: "http://www.w3.org/ns/oa#Selector".freeze,
|
205
|
+
type: "owl:Class".freeze
|
206
|
+
term :TimeState,
|
207
|
+
comment: %(A resource which describes how to retrieve a representation of the Source resource that is temporally appropriate for the Annotation.
|
208
|
+
|
209
|
+
There MUST be at least one of oa:cachedSource or oa:when specified. If there is more than 1, each gives an alternative copy of the representation.).freeze,
|
210
|
+
label: "TimeState".freeze,
|
211
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
212
|
+
subClassOf: "http://www.w3.org/ns/oa#State".freeze,
|
213
|
+
type: "owl:Class".freeze
|
214
|
+
|
215
|
+
# Property definitions
|
216
|
+
property :annotatedAt,
|
217
|
+
comment: %(The time at which the Annotation was created.
|
218
|
+
|
219
|
+
There SHOULD be exactly 1 oa:annotatedAt property per Annotation, and MUST NOT be more than 1. The datetime MUST be expressed in the xsd:dateTime format, and SHOULD have a timezone specified.).freeze,
|
220
|
+
domain: "http://www.w3.org/ns/oa#Annotation".freeze,
|
221
|
+
label: "annotatedAt".freeze,
|
222
|
+
range: "xsd:dateTimeStamp".freeze,
|
223
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
224
|
+
type: "owl:DatatypeProperty".freeze
|
225
|
+
property :annotatedBy,
|
226
|
+
comment: %(The object of the relationship is a resource that identifies the agent responsible for creating the Annotation. This may be either a human or software agent.
|
227
|
+
|
228
|
+
There SHOULD be exactly 1 oa:annotatedBy relationship per Annotation, but MAY be 0 or more than 1, as the Annotation may be anonymous, or multiple agents may have worked together on it.
|
229
|
+
|
230
|
+
It is RECOMMENDED to use these and other FOAF terms to describe agents: foaf:Person, prov:SoftwareAgent, foaf:Organization, foaf:name, foaf:mbox, foaf:openid, foaf:homepage).freeze,
|
231
|
+
domain: "http://www.w3.org/ns/oa#Annotation".freeze,
|
232
|
+
label: "annotatedBy".freeze,
|
233
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
234
|
+
subPropertyOf: "prov:wasAttributedTo".freeze,
|
235
|
+
type: "owl:ObjectProperty".freeze
|
236
|
+
property :cachedSource,
|
237
|
+
comment: %(A link to a copy of the Source resource's representation appropriate for the Annotation, typically a copy of the original at the time that the Annotation was created).freeze,
|
238
|
+
domain: "http://www.w3.org/ns/oa#TimeState".freeze,
|
239
|
+
label: "cachedSource".freeze,
|
240
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
241
|
+
type: "owl:ObjectProperty".freeze
|
242
|
+
property :default,
|
243
|
+
comment: %(The constituent resource of a oa:Choice to use as a default option, if there is no other means to determine which would be most appropriate.
|
244
|
+
|
245
|
+
There SHOULD be exactly 1 default relationship for each Choice.).freeze,
|
246
|
+
domain: "http://www.w3.org/ns/oa#Choice".freeze,
|
247
|
+
label: "default".freeze,
|
248
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
249
|
+
subPropertyOf: "http://www.w3.org/ns/oa#item".freeze,
|
250
|
+
type: "owl:ObjectProperty".freeze
|
251
|
+
property :end,
|
252
|
+
comment: %(The end position of the segment of text or bytes. The first character/byte in the full text/stream is position 0. The character/byte indicated at position oa:end is NOT included within the selected segment.
|
253
|
+
|
254
|
+
See oa:DataPositionSelector and oa:oa:TextPositionSelector.).freeze,
|
255
|
+
domain: "http://www.w3.org/ns/oa#Selector".freeze,
|
256
|
+
label: "end".freeze,
|
257
|
+
range: "xsd:nonNegativeInteger".freeze,
|
258
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
259
|
+
type: "owl:DatatypeProperty".freeze
|
260
|
+
property :equivalentTo,
|
261
|
+
comment: %(The subject and object resources of the oa:equivalentTo relationship represent the same resource, but potentially have different metadata such as oa:serializedBy, oa:serializedAt and serialization format. oa:equivalentTo is a symmetrical and transitive relationship; if A oa:equivalentTo B, then it is also true that B oa:equivalent A; and that if B oa:equivalentTo C, then it is also true that A oa:equivalentTo C.
|
262
|
+
|
263
|
+
The Annotation MAY include 0 or more instances of the oa:equivalentTo relationship between copies of the Annotation or other resources, and SHOULD include as many as are available.
|
264
|
+
|
265
|
+
If a system publishes an embedded resource \(a cnt:Content\) at a new HTTP URI, then it SHOULD express the oa:equivalentTo relationship between the resource's URN and the new URI from which it is available.).freeze,
|
266
|
+
label: "equivalentTo".freeze,
|
267
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
268
|
+
subPropertyOf: "prov:alternateOf".freeze,
|
269
|
+
type: "owl:ObjectProperty".freeze
|
270
|
+
property :exact,
|
271
|
+
comment: %(A copy of the text which is being selected, after normalization.
|
272
|
+
|
273
|
+
See oa:TextQuoteSelector.).freeze,
|
274
|
+
domain: "http://www.w3.org/ns/oa#Selector".freeze,
|
275
|
+
label: "exact".freeze,
|
276
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
277
|
+
type: "owl:DatatypeProperty".freeze
|
278
|
+
property :hasBody,
|
279
|
+
comment: %(The relationship between oa:Annotation and body. The body is somehow "about" the oa:hasTarget of the annotation.
|
280
|
+
|
281
|
+
The Body may be of any media type, and contain any type of content. The Body SHOULD be identified by HTTP URIs unless they are embedded within the Annotation.
|
282
|
+
|
283
|
+
Embedded bodies SHOULD be instances of cnt:ContentAsText and embed their content with cnt:chars. They SHOULD declare their media type with dc:format, and MAY indicate their language using dc:language and a RFC-3066 language tag.
|
284
|
+
|
285
|
+
There is no OA class provided for "Body" as a body might be a target of a different annotation. However, there SHOULD be 1 or more content-based classes associated with the body resources of an Annotation, and the dctypes: vocabulary is recommended for this purpose, for instance dctypes:Text to declare textual content.
|
286
|
+
).freeze,
|
287
|
+
domain: "http://www.w3.org/ns/oa#Annotation".freeze,
|
288
|
+
label: "hasBody".freeze,
|
289
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
290
|
+
type: "owl:ObjectProperty".freeze
|
291
|
+
property :hasScope,
|
292
|
+
comment: %(The relationship between a Specific Resource and the resource that provides the scope or context for it in this Annotation.
|
293
|
+
|
294
|
+
There MAY be 0 or more hasScope relationships for each Specific Resource.).freeze,
|
295
|
+
domain: "http://www.w3.org/ns/oa#SpecificResource".freeze,
|
296
|
+
label: "hasScope".freeze,
|
297
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
298
|
+
type: "owl:ObjectProperty".freeze
|
299
|
+
property :hasSelector,
|
300
|
+
comment: %(The relationship between a oa:SpecificResource and a oa:Selector.
|
301
|
+
|
302
|
+
There MUST be exactly 0 or 1 oa:hasSelector relationship associated with a
|
303
|
+
Specific Resource.
|
304
|
+
|
305
|
+
If multiple Selectors are required, either to express a choice between different optional, equivalent selectors, or a chain of selectors that should all be processed, it is necessary to use oa:Choice, oa:Composite or oa:List as a selector.).freeze,
|
306
|
+
domain: "http://www.w3.org/ns/oa#SpecificResource".freeze,
|
307
|
+
label: "hasSelector".freeze,
|
308
|
+
range: "http://www.w3.org/ns/oa#Selector".freeze,
|
309
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
310
|
+
type: "owl:ObjectProperty".freeze
|
311
|
+
property :hasSource,
|
312
|
+
comment: %(The relationship between a oa:SpecificResource and the resource that it is a more specific representation of.
|
313
|
+
|
314
|
+
There MUST be exactly 1 oa:hasSource relationship associated with a Specific Resource.).freeze,
|
315
|
+
domain: "http://www.w3.org/ns/oa#SpecificResource".freeze,
|
316
|
+
label: "hasSource".freeze,
|
317
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
318
|
+
type: "owl:ObjectProperty".freeze
|
319
|
+
property :hasState,
|
320
|
+
comment: %(The relationship between a oa:SpecificResource and a oa:State resource.
|
321
|
+
|
322
|
+
There MAY be 0 or 1 oa:hasState relationship for each SpecificResource.
|
323
|
+
|
324
|
+
If there are multiple State resources that must be associated with the specific resource, then the use of the Multiplicity Constructs oa:Choice, oa:Composite or oa:List is RECOMMENDED.).freeze,
|
325
|
+
domain: "http://www.w3.org/ns/oa#SpecificResource".freeze,
|
326
|
+
label: "hasState".freeze,
|
327
|
+
range: "http://www.w3.org/ns/oa#State".freeze,
|
328
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
329
|
+
type: "owl:ObjectProperty".freeze
|
330
|
+
property :hasTarget,
|
331
|
+
comment: %(The relationship between oa:Annotation and target. The target resource is what the oa:hasBody is somewhat "about".
|
332
|
+
|
333
|
+
The target may be of any media type, and contain any type of content. The target SHOULD be identified by HTTP URIs unless they are embedded within the Annotation.
|
334
|
+
|
335
|
+
Embedded targets SHOULD be instances of cnt:ContentAsText and embed their content with cnt:chars. They SHOULD declare their media type with dc:format, and MAY indicate their language using dc:language and a RFC-3066 language tag.
|
336
|
+
|
337
|
+
There is no OA class provided for "Target" as a target might be a body in a different annotation. However, there SHOULD be 1 or more content-based classes associated with the target resources of an Annotation, and the dctypes: vocabulary is recommended for this purpose, for instance dctypes:Text to declare textual content.).freeze,
|
338
|
+
domain: "http://www.w3.org/ns/oa#Annotation".freeze,
|
339
|
+
label: "hasTarget".freeze,
|
340
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
341
|
+
type: "owl:ObjectProperty".freeze
|
342
|
+
property :item,
|
343
|
+
comment: %(The relationship between a multiplicity construct node and its constituent resources.
|
344
|
+
|
345
|
+
There MUST be 1 or more item relationships for each multiplicity construct oa:Choice, oa:Composite and oa:List.).freeze,
|
346
|
+
label: "item".freeze,
|
347
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
348
|
+
subPropertyOf: "rdfs:member".freeze,
|
349
|
+
type: "owl:ObjectProperty".freeze
|
350
|
+
property :motivatedBy,
|
351
|
+
comment: %(The relationship between an Annotation and a Motivation, indicating the reasons why the Annotation was created.
|
352
|
+
|
353
|
+
Each Annotation SHOULD have at least one oa:motivatedBy relationship, and MAY be more than 1.).freeze,
|
354
|
+
domain: "http://www.w3.org/ns/oa#Annotation".freeze,
|
355
|
+
label: "motivatedBy".freeze,
|
356
|
+
range: "http://www.w3.org/ns/oa#Motivation".freeze,
|
357
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
358
|
+
type: "owl:ObjectProperty".freeze
|
359
|
+
property :prefix,
|
360
|
+
comment: %(A snippet of text that occurs immediately before the text which is being selected.
|
361
|
+
|
362
|
+
See oa:TextQuoteSelector.).freeze,
|
363
|
+
domain: "http://www.w3.org/ns/oa#Selector".freeze,
|
364
|
+
label: "prefix".freeze,
|
365
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
366
|
+
type: "owl:DatatypeProperty".freeze
|
367
|
+
property :serializedAt,
|
368
|
+
comment: %(The time at which the agent referenced by oa:serializedBy generated the first serialization of the Annotation, and any subsequent substantially different one. The annotation graph MUST have changed for this property to be updated, and as such represents the last modified datestamp for the Annotation. This might be used to determine if it should be re-imported into a triplestore when discovered.
|
369
|
+
|
370
|
+
There MAY be exactly 1 oa:serializedAt property per Annotation, and MUST NOT be more than 1. The datetime MUST be expressed in the xsd:dateTime format, and SHOULD have a timezone specified.
|
371
|
+
).freeze,
|
372
|
+
domain: "http://www.w3.org/ns/oa#Annotation".freeze,
|
373
|
+
label: "serializedAt".freeze,
|
374
|
+
range: "xsd:dateTimeStamp".freeze,
|
375
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
376
|
+
type: "owl:DatatypeProperty".freeze
|
377
|
+
property :serializedBy,
|
378
|
+
comment: %(The object of the relationship is the agent, likely software, responsible for generating the serialization of the Annotation's serialization.
|
379
|
+
|
380
|
+
It is RECOMMENDED to use these and other FOAF terms to describe agents: foaf:Person, prov:SoftwareAgent, foaf:Organization, foaf:name, foaf:mbox, foaf:openid, foaf:homepage
|
381
|
+
|
382
|
+
There MAY be 0 or more oa:serializedBy relationships per Annotation.).freeze,
|
383
|
+
domain: "http://www.w3.org/ns/oa#Annotation".freeze,
|
384
|
+
label: "serializedBy".freeze,
|
385
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
386
|
+
subPropertyOf: "prov:wasAttributedTo".freeze,
|
387
|
+
type: "owl:ObjectProperty".freeze
|
388
|
+
property :start,
|
389
|
+
comment: %(The starting position of the segment of text or bytes. The first character/byte in the full text/stream is position 0. The character/byte indicated at position oa:start is included within the selected segment.
|
390
|
+
|
391
|
+
See oa:DataPositionSelector and oa:TextPositionSelector.).freeze,
|
392
|
+
domain: "http://www.w3.org/ns/oa#Selector".freeze,
|
393
|
+
label: "start".freeze,
|
394
|
+
range: "xsd:nonNegativeInteger".freeze,
|
395
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
396
|
+
type: "owl:DatatypeProperty".freeze
|
397
|
+
property :styleClass,
|
398
|
+
comment: %(The string name of the class used in the CSS description that should be applied to the Specific Resource.
|
399
|
+
|
400
|
+
There MAY be 0 or more styleClass properties on a Specific Resource.
|
401
|
+
|
402
|
+
See oa:CssStyle.).freeze,
|
403
|
+
domain: "http://www.w3.org/ns/oa#SpecificResource".freeze,
|
404
|
+
label: "styleClass".freeze,
|
405
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
406
|
+
type: "owl:DatatypeProperty".freeze
|
407
|
+
property :styledBy,
|
408
|
+
comment: %(The relationship between a oa:Annotation and a oa:Style.
|
409
|
+
|
410
|
+
There MAY be 0 or 1 styledBy relationships for each Annotation.
|
411
|
+
|
412
|
+
If there are multiple Style resources that must be associated with the Annotation, then the use of the Multiplicity Constructs oa:Choice, oa:Composite or oa:List is RECOMMENDED.).freeze,
|
413
|
+
domain: "http://www.w3.org/ns/oa#Annotation".freeze,
|
414
|
+
label: "styledBy".freeze,
|
415
|
+
range: "http://www.w3.org/ns/oa#Style".freeze,
|
416
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
417
|
+
type: "owl:ObjectProperty".freeze
|
418
|
+
property :suffix,
|
419
|
+
comment: %(The snippet of text that occurs immediately after the text which is being selected.
|
420
|
+
|
421
|
+
See oa:TextQuoteSelector.).freeze,
|
422
|
+
domain: "http://www.w3.org/ns/oa#Selector".freeze,
|
423
|
+
label: "suffix".freeze,
|
424
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
425
|
+
type: "owl:DatatypeProperty".freeze
|
426
|
+
property :when,
|
427
|
+
comment: %(The timestamp at which the Source resource should be interpreted for the Annotation, typically the time that the Annotation was created.).freeze,
|
428
|
+
domain: "http://www.w3.org/ns/oa#TimeState".freeze,
|
429
|
+
label: "when".freeze,
|
430
|
+
range: "xsd:dateTimeStamp".freeze,
|
431
|
+
"rdfs:isDefinedBy" => %(http://www.w3.org/ns/oa#).freeze,
|
432
|
+
type: "owl:DatatypeProperty".freeze
|
433
|
+
|
434
|
+
# Extra definitions
|
435
|
+
term :"",
|
436
|
+
comment: %(The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology that conforms to the Architecture of the World Wide Web.
|
437
|
+
|
438
|
+
This ontology is a non-normative OWL formalization of the textual OA specification at http://www.openannotation.org/spec/core/20130208/index.html
|
439
|
+
|
440
|
+
Note that OWL imports are disabled in the published version in order to reduce external implications, improve OWL 2 Profile conformity and increase interoperability. Some OWL tools might thus misleadingly show this ontology as \(re\)defining properties like skos:prefLabel.).freeze,
|
441
|
+
"dc11:contributor" => %(Stian Soiland-Reyes).freeze,
|
442
|
+
"dc11:creator" => %(Robert Sanderson).freeze,
|
443
|
+
"dc11:description" => %(The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology that conforms to the Architecture of the World Wide Web. Open Annotations can easily be shared between platforms, with sufficient richness of expression to satisfy complex requirements while remaining simple enough to also allow for the most common use cases, such as attaching a piece of text to a single web resource.
|
444
|
+
|
445
|
+
An Annotation is considered to be a set of connected resources, typically including a body and target, where the body is somehow about the target. The full model supports additional functionality, enabling semantic annotations, embedding content, selecting segments of resources, choosing the appropriate representation of a resource and providing styling hints for consuming clients.).freeze,
|
446
|
+
"dc11:title" => %(Open Annotation Data Model).freeze,
|
447
|
+
"dc:modified" => %(2013-02-22T21:40:51+01:00).freeze,
|
448
|
+
label: "".freeze,
|
449
|
+
"owl:versionIRI" => %(http://www.openannotation.org/spec/core/20130208/oa.owl).freeze,
|
450
|
+
"owl:versionInfo" => %(0.9.20130208).freeze,
|
451
|
+
"rdfs:seeAlso" => %(http://www.openannotation.org/spec/core/20130208/index.html).freeze,
|
452
|
+
type: "owl:Ontology".freeze
|
453
|
+
term :bookmarking,
|
454
|
+
comment: %(The motivation that represents the creation of a bookmark to the target resources or recorded point or points within one or more resources. For example, an Annotation that bookmarks the point in a text where the reader finished reading. Bookmark Annotations may or may not have a Body resource.).freeze,
|
455
|
+
label: "bookmarking".freeze,
|
456
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
457
|
+
"skos:prefLabel" => %(bookmarking).freeze,
|
458
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
459
|
+
term :classifying,
|
460
|
+
comment: %(The motivation that represents the assignment of a classification type, typically from a controlled vocabulary, to the target resource\(s\). For example to classify an Image resource as a Portrait.).freeze,
|
461
|
+
label: "classifying".freeze,
|
462
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
463
|
+
"skos:prefLabel" => %(classifying).freeze,
|
464
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
465
|
+
term :commenting,
|
466
|
+
comment: %(The motivation that represents a commentary about or review of the target resource\(s\). For example to provide a commentary about a particular PDF.).freeze,
|
467
|
+
label: "commenting".freeze,
|
468
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
469
|
+
"skos:prefLabel" => %(commenting).freeze,
|
470
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
471
|
+
term :describing,
|
472
|
+
comment: %(The motivation that represents a description of the target resource\(s\), as opposed to a comment about them. For example describing the above PDF's contents, rather than commenting on their accuracy.).freeze,
|
473
|
+
label: "describing".freeze,
|
474
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
475
|
+
"skos:prefLabel" => %(describing).freeze,
|
476
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
477
|
+
term :editing,
|
478
|
+
comment: %(The motivation that represents a request for a modification or edit to the target resource. For example, an Annotation that requests a typo to be corrected.).freeze,
|
479
|
+
label: "editing".freeze,
|
480
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
481
|
+
"skos:prefLabel" => %(editing).freeze,
|
482
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
483
|
+
term :highlighting,
|
484
|
+
comment: %(The motivation that represents a highlighted section of the target resource or segment. For example to draw attention to the selected text that the annotator disagrees with. A Highlight may or may not have a Body resource).freeze,
|
485
|
+
label: "highlighting".freeze,
|
486
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
487
|
+
"skos:prefLabel" => %(highlighting).freeze,
|
488
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
489
|
+
term :identifying,
|
490
|
+
comment: %(The motivation that represents the assignment of an identity to the target resource\(s\). For example, annotating the name of a city in a string of text with the URI that identifies it.).freeze,
|
491
|
+
label: "identifying".freeze,
|
492
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
493
|
+
"skos:prefLabel" => %(identifying).freeze,
|
494
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
495
|
+
term :linking,
|
496
|
+
comment: %(The motivation that represents an untyped link to a resource related to the target.).freeze,
|
497
|
+
label: "linking".freeze,
|
498
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
499
|
+
"skos:prefLabel" => %(linking).freeze,
|
500
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
501
|
+
term :moderating,
|
502
|
+
comment: %(The motivation that represents an assignment of value or quality to the target resource\(s\). For example annotating an Annotation to moderate it up in a trust network or threaded discussion.).freeze,
|
503
|
+
label: "moderating".freeze,
|
504
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
505
|
+
"skos:prefLabel" => %(moderating).freeze,
|
506
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
507
|
+
term :motivationScheme,
|
508
|
+
comment: %(The concept scheme for Open Annotation Motivations).freeze,
|
509
|
+
label: "motivationScheme".freeze,
|
510
|
+
type: ["owl:NamedIndividual".freeze, "skos:ConceptScheme".freeze]
|
511
|
+
term :questioning,
|
512
|
+
comment: %(The motivation that represents asking a question about the target resource\(s\). For example to ask for assistance with a particular section of text, or question its veracity.).freeze,
|
513
|
+
label: "questioning".freeze,
|
514
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
515
|
+
"skos:prefLabel" => %(questioning).freeze,
|
516
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
517
|
+
term :replying,
|
518
|
+
comment: %(The motivation that represents a reply to a previous statement, either an Annotation or another resource. For example providing the assistance requested in the above.).freeze,
|
519
|
+
label: "replying".freeze,
|
520
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
521
|
+
"skos:prefLabel" => %(replying).freeze,
|
522
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
523
|
+
term :tagging,
|
524
|
+
comment: %(The motivation that represents adding a Tag on the target resource\(s\). One or more of the bodies of the annotation should be typed as a oa:Tag or oa:SemanticTag.).freeze,
|
525
|
+
label: "tagging".freeze,
|
526
|
+
"skos:inScheme" => %(http://www.w3.org/ns/oa#motivationScheme).freeze,
|
527
|
+
"skos:prefLabel" => %(tagging).freeze,
|
528
|
+
type: ["owl:NamedIndividual".freeze, "http://www.w3.org/ns/oa#Motivation".freeze]
|
529
|
+
end
|
530
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'rdf/open_annotation/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "rdf-open_annotation"
|
8
|
+
spec.version = RDF::OpenAnnotation::VERSION
|
9
|
+
spec.authors = ["Chris Beer"]
|
10
|
+
spec.email = ["cabeer@stanford.edu"]
|
11
|
+
spec.summary = %q{Open Annotation vocabulary for RDF.rb}
|
12
|
+
spec.homepage = ""
|
13
|
+
spec.license = "Apache 2"
|
14
|
+
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_dependency 'rdf'
|
21
|
+
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
23
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rdf-open_annotation
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Chris Beer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-09-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rdf
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.6'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- cabeer@stanford.edu
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".gitignore"
|
63
|
+
- Gemfile
|
64
|
+
- LICENSE
|
65
|
+
- README.md
|
66
|
+
- Rakefile
|
67
|
+
- lib/rdf/content.rb
|
68
|
+
- lib/rdf/open_annotation.rb
|
69
|
+
- lib/rdf/open_annotation/version.rb
|
70
|
+
- rdf-open_annotation.gemspec
|
71
|
+
homepage: ''
|
72
|
+
licenses:
|
73
|
+
- Apache 2
|
74
|
+
metadata: {}
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options: []
|
77
|
+
require_paths:
|
78
|
+
- lib
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
requirements: []
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 2.2.2
|
92
|
+
signing_key:
|
93
|
+
specification_version: 4
|
94
|
+
summary: Open Annotation vocabulary for RDF.rb
|
95
|
+
test_files: []
|