rdf-sak 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,248 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+ # This file generated automatically using rdf vocabulary format from https://privatealpha.com/ontology/ibis/1#
4
+ require 'rdf'
5
+ module RDF::SAK
6
+ # @!parse
7
+ # # Vocabulary for <https://privatealpha.com/ontology/ibis/1#>
8
+ # class IBIS < RDF::StrictVocabulary
9
+ # end
10
+ class IBIS < RDF::StrictVocabulary("https://privatealpha.com/ontology/ibis/1#")
11
+
12
+ # Ontology definition
13
+ ontology :"https://privatealpha.com/ontology/ibis/1#",
14
+ "bibo:uri": "ibis:".freeze,
15
+ comment: %(This document specifies a vocabulary for describing an IBIS \(issue-based information system\).).freeze,
16
+ "dc:created": "2012-12-11T22:22:53-08:00".freeze,
17
+ "dc:creator": "http://doriantaylor.com/person/dorian-taylor#me".freeze,
18
+ "dc:modified": ["2012-12-12T16:04:50-08:00".freeze, "2014-02-24T21:14:13Z".freeze, "2018-02-22T03:39:14Z".freeze],
19
+ "dc:title": "IBIS (bis) Vocabulary".freeze,
20
+ "http://purl.org/vocab/vann/preferredNamespacePrefix": "ibis".freeze,
21
+ isDefinedBy: "ibis:".freeze,
22
+ label: "IBIS".freeze,
23
+ "owl:imports": "skos:".freeze,
24
+ "owl:versionInfo": "0.3".freeze,
25
+ "rdfs:seeAlso": ["http://dublincore.org/documents/dcmi-terms/".freeze, "http://en.wikipedia.org/wiki/Issue-Based_Information_System".freeze, "http://hyperdata.org/xmlns/ibis/".freeze, "http://www.cc.gatech.edu/~ellendo/rittel/rittel-issues.pdf".freeze, "http://www.cs.hut.fi/Opinnot/T-93.850/2005/Papers/gIBIS1988-conklin.pdf".freeze, "http://www.w3.org/TR/prov-o/".freeze, "https://privatealpha.com/ontology/ibis/1.n3".freeze, "https://privatealpha.com/ontology/ibis/1.rdf".freeze, "https://privatealpha.com/ontology/process-model/1#".freeze],
26
+ type: ["bibo:Webpage".freeze, "owl:Ontology".freeze]
27
+
28
+ # Class definitions
29
+ term :Argument,
30
+ comment: %(An Argument is a type of Issue that explicitly supports or refutes a Position.).freeze,
31
+ isDefinedBy: "ibis:".freeze,
32
+ label: "Argument".freeze,
33
+ "owl:disjointWith": "ibis:Position".freeze,
34
+ "skos:usageNote": "An Argument need not only relate in scope to another Argument, but it must only be replaced by another argument.".freeze,
35
+ subClassOf: ["ibis:Issue".freeze, term(
36
+ allValuesFrom: "ibis:Argument".freeze,
37
+ onProperty: "ibis:replaced-by".freeze,
38
+ type: "owl:Restriction".freeze
39
+ ), term(
40
+ allValuesFrom: "ibis:Argument".freeze,
41
+ onProperty: "ibis:replaces".freeze,
42
+ type: "owl:Restriction".freeze
43
+ )],
44
+ type: "owl:Class".freeze
45
+ term :Invariant,
46
+ comment: %(An Issue or Position can be marked Invariant to denote that it has been deemed outside of the influence of the Agents in the system, i.e., something to be steered around.).freeze,
47
+ isDefinedBy: "ibis:".freeze,
48
+ label: "Invariant".freeze,
49
+ subClassOf: "skos:Concept".freeze,
50
+ type: "owl:Class".freeze
51
+ term :Issue,
52
+ comment: %(An Issue is a state of affairs, claimed by one or more Agents to either be a misfit itself, or affecting some other Issue or Position.).freeze,
53
+ isDefinedBy: "ibis:".freeze,
54
+ label: "Issue".freeze,
55
+ "owl:disjointWith": "ibis:Position".freeze,
56
+ subClassOf: ["skos:Concept".freeze, term(
57
+ allValuesFrom: "ibis:Issue".freeze,
58
+ onProperty: "ibis:replaced-by".freeze,
59
+ type: "owl:Restriction".freeze
60
+ ), term(
61
+ allValuesFrom: "ibis:Issue".freeze,
62
+ onProperty: "ibis:replaces".freeze,
63
+ type: "owl:Restriction".freeze
64
+ ), term(
65
+ allValuesFrom: "ibis:Issue".freeze,
66
+ onProperty: "skos:broaderTransitive".freeze,
67
+ type: "owl:Restriction".freeze
68
+ ), term(
69
+ allValuesFrom: "ibis:Issue".freeze,
70
+ onProperty: "skos:narrowerTransitive".freeze,
71
+ type: "owl:Restriction".freeze
72
+ )],
73
+ type: "owl:Class".freeze
74
+ term :Network,
75
+ comment: %(A network of issues, positions, and arguments.).freeze,
76
+ isDefinedBy: "ibis:".freeze,
77
+ label: "Network".freeze,
78
+ subClassOf: "skos:ConceptScheme".freeze,
79
+ type: "owl:Class".freeze
80
+ term :Position,
81
+ comment: %(A Position asserts a moral, ethical, pragmatic, or similar kind of assertion, typically identifying what, if anything, should be done about an Issue.).freeze,
82
+ isDefinedBy: "ibis:".freeze,
83
+ label: "Position".freeze,
84
+ "owl:disjointWith": ["ibis:Argument".freeze, "ibis:Issue".freeze],
85
+ subClassOf: ["skos:Concept".freeze, term(
86
+ allValuesFrom: "ibis:Position".freeze,
87
+ onProperty: "ibis:replaced-by".freeze,
88
+ type: "owl:Restriction".freeze
89
+ ), term(
90
+ allValuesFrom: "ibis:Position".freeze,
91
+ onProperty: "ibis:replaces".freeze,
92
+ type: "owl:Restriction".freeze
93
+ ), term(
94
+ allValuesFrom: "ibis:Position".freeze,
95
+ onProperty: "skos:broaderTransitive".freeze,
96
+ type: "owl:Restriction".freeze
97
+ ), term(
98
+ allValuesFrom: "ibis:Position".freeze,
99
+ onProperty: "skos:narrowerTransitive".freeze,
100
+ type: "owl:Restriction".freeze
101
+ )],
102
+ type: "owl:Class".freeze
103
+
104
+ # Property definitions
105
+ property :concerns,
106
+ comment: %(The subject is an issue concerning the object, which can be any resource.).freeze,
107
+ domain: "ibis:Issue".freeze,
108
+ isDefinedBy: "ibis:".freeze,
109
+ label: "concerns".freeze,
110
+ range: "owl:Thing".freeze,
111
+ type: "owl:ObjectProperty".freeze
112
+ property :"endorsed-by",
113
+ comment: %(A concept can be endorsed by an Agent without said Agent having mentioned or advanced it initially, and without any additional comment.).freeze,
114
+ domain: "skos:Concept".freeze,
115
+ inverseOf: "ibis:endorses".freeze,
116
+ isDefinedBy: "ibis:".freeze,
117
+ label: "endorsed by".freeze,
118
+ note: %(This term, along with ibis:endorses, enables an Agent to signal its agreement with a concept. To signal disagreement, explain why with an ibis:Argument that ibis:opposes the concept.).freeze,
119
+ range: "foaf:Agent".freeze,
120
+ type: "owl:ObjectProperty".freeze
121
+ property :endorses,
122
+ comment: %(An Agent can endorse a concept without having initially mentioned or advanced it, and without any additional comment.).freeze,
123
+ domain: "foaf:Agent".freeze,
124
+ inverseOf: "ibis:endorsed-by".freeze,
125
+ isDefinedBy: "ibis:".freeze,
126
+ label: "endorses".freeze,
127
+ note: %(This term, along with ibis:endorsed-by, enables an Agent to signal its agreement with a concept. To signal disagreement, explain why with an ibis:Argument that ibis:opposes the concept.).freeze,
128
+ range: "skos:Concept".freeze,
129
+ type: "owl:ObjectProperty".freeze
130
+ property :generalizes,
131
+ comment: %(The subject is a more generic form of the object.).freeze,
132
+ equivalentProperty: "skos:narrower".freeze,
133
+ inverseOf: "ibis:specializes".freeze,
134
+ isDefinedBy: "ibis:".freeze,
135
+ label: "generalizes".freeze,
136
+ note: %(The equivalent property skos:narrower asserts that the object is narrower than the subject, while the subject of ibis:generalizes is more general than the object.).freeze,
137
+ type: "owl:ObjectProperty".freeze
138
+ property :"opposed-by",
139
+ comment: %(Indicates a subject position opposed by an object argument.).freeze,
140
+ domain: "ibis:Position".freeze,
141
+ inverseOf: "ibis:opposes".freeze,
142
+ isDefinedBy: "ibis:".freeze,
143
+ label: "opposed by".freeze,
144
+ range: "ibis:Argument".freeze,
145
+ type: "owl:ObjectProperty".freeze
146
+ property :opposes,
147
+ comment: %(Indicates a subject argument that opposes an object position.).freeze,
148
+ domain: "ibis:Argument".freeze,
149
+ inverseOf: "ibis:opposed-by".freeze,
150
+ isDefinedBy: "ibis:".freeze,
151
+ label: "opposes".freeze,
152
+ range: "ibis:Position".freeze,
153
+ type: "owl:ObjectProperty".freeze
154
+ property :"questioned-by",
155
+ comment: %(Indicates a belief called into question by an issue.).freeze,
156
+ domain: "skos:Concept".freeze,
157
+ inverseOf: "ibis:questions".freeze,
158
+ isDefinedBy: "ibis:".freeze,
159
+ label: "questioned by".freeze,
160
+ range: "ibis:Issue".freeze,
161
+ type: "owl:ObjectProperty".freeze
162
+ property :questions,
163
+ comment: %(Indicates an issue that raises doubt on a belief.).freeze,
164
+ domain: "ibis:Issue".freeze,
165
+ inverseOf: "ibis:questioned-by".freeze,
166
+ isDefinedBy: "ibis:".freeze,
167
+ label: "questions".freeze,
168
+ range: "skos:Concept".freeze,
169
+ type: "owl:ObjectProperty".freeze
170
+ property :"replaced-by",
171
+ comment: %(Indicates when a concept is replaced by another concept of the same type.).freeze,
172
+ domain: "skos:Concept".freeze,
173
+ inverseOf: "ibis:replaces".freeze,
174
+ isDefinedBy: "ibis:".freeze,
175
+ label: "replaced by".freeze,
176
+ range: "skos:Concept".freeze,
177
+ subPropertyOf: "dc:isReplacedBy".freeze,
178
+ type: "owl:ObjectProperty".freeze
179
+ property :replaces,
180
+ comment: %(Indicates when a concept replaces another concept of the same type.).freeze,
181
+ domain: "skos:Concept".freeze,
182
+ inverseOf: "ibis:replaced-by".freeze,
183
+ isDefinedBy: "ibis:".freeze,
184
+ label: "replaces".freeze,
185
+ range: "skos:Concept".freeze,
186
+ subPropertyOf: "dc:replaces".freeze,
187
+ type: "owl:ObjectProperty".freeze
188
+ property :"responds-to",
189
+ comment: %(Indicates an issue to which the subject position responds.).freeze,
190
+ domain: "ibis:Position".freeze,
191
+ inverseOf: "ibis:response".freeze,
192
+ isDefinedBy: "ibis:".freeze,
193
+ label: "responds to".freeze,
194
+ range: "ibis:Issue".freeze,
195
+ type: "owl:ObjectProperty".freeze
196
+ property :response,
197
+ comment: %(Indicates a position that responds to the subject issue.).freeze,
198
+ domain: "ibis:Issue".freeze,
199
+ inverseOf: "ibis:responds-to".freeze,
200
+ isDefinedBy: "ibis:".freeze,
201
+ label: "response".freeze,
202
+ range: "ibis:Position".freeze,
203
+ type: "owl:ObjectProperty".freeze
204
+ property :specializes,
205
+ comment: %(The subject is a more specific form of the object.).freeze,
206
+ equivalentProperty: "skos:broader".freeze,
207
+ inverseOf: "ibis:generalizes".freeze,
208
+ isDefinedBy: "ibis:".freeze,
209
+ label: "specializes".freeze,
210
+ note: %(The equivalent property skos:broader asserts that the object is broader than the subject, while the subject of ibis:specializes is more specific than the object.).freeze,
211
+ type: "owl:ObjectProperty".freeze
212
+ property :"suggested-by",
213
+ comment: %(Indicates when the subject issue is suggested by the object belief.).freeze,
214
+ domain: "ibis:Issue".freeze,
215
+ inverseOf: "ibis:suggests".freeze,
216
+ isDefinedBy: "ibis:".freeze,
217
+ label: "suggested by".freeze,
218
+ range: "skos:Concept".freeze,
219
+ type: "owl:ObjectProperty".freeze
220
+ property :suggests,
221
+ comment: %(Indicates when the subject belief suggests the object issue.).freeze,
222
+ domain: "skos:Concept".freeze,
223
+ inverseOf: "ibis:suggested-by".freeze,
224
+ isDefinedBy: "ibis:".freeze,
225
+ label: "suggests".freeze,
226
+ range: "ibis:Issue".freeze,
227
+ type: "owl:ObjectProperty".freeze
228
+ property :"supported-by",
229
+ comment: %(Indicates a subject position supported by an object argument.).freeze,
230
+ domain: "ibis:Position".freeze,
231
+ inverseOf: "ibis:supports".freeze,
232
+ isDefinedBy: "ibis:".freeze,
233
+ label: "supported by".freeze,
234
+ range: "ibis:Argument".freeze,
235
+ type: "owl:ObjectProperty".freeze
236
+ property :supports,
237
+ comment: %(Indicates a subject argument that supports an object position.).freeze,
238
+ domain: "ibis:Argument".freeze,
239
+ inverseOf: "ibis:supported-by".freeze,
240
+ isDefinedBy: "ibis:".freeze,
241
+ label: "supports".freeze,
242
+ range: "ibis:Position".freeze,
243
+ type: "owl:ObjectProperty".freeze
244
+
245
+ RDF::Vocabulary.register :ibis, self if
246
+ RDF::Vocabulary.respond_to? :register
247
+ end
248
+ end
@@ -0,0 +1,73 @@
1
+ require 'rdf/sak/version'
2
+ require 'mimemagic'
3
+
4
+ # janky bolt-on MimeMagic
5
+ class RDF::SAK::MimeMagic < ::MimeMagic
6
+
7
+ # XXX this is not strictly correct but good enough for now
8
+ [
9
+ ['text/n3', %w(n3 ttl nt), %w(text/plain), [[0..256, '@prefix']]],
10
+ ['application/x-vnd.sass', %w(sass), %w(text/plain), []],
11
+ ['application/x-vnd.sass.scss', %w(scss), %w(text/css), []],
12
+ ].each do |magic|
13
+ self.add magic[0], extensions: magic[1], parents: magic[2],
14
+ magic: magic[3]
15
+ end
16
+
17
+ def self.binary? thing
18
+ sample = nil
19
+
20
+ # get some stuff out of the IO or get a substring
21
+ if thing.is_a? IO
22
+ pos = thing.tell
23
+ thing.seek 0, 0
24
+ sample = thing.read 100
25
+ thing.seek pos
26
+ else
27
+ sample = thing.to_s[0,100]
28
+ end
29
+
30
+ # consider this to be 'binary' if empty
31
+ return true if sample.length == 0
32
+ # control codes minus ordinary whitespace
33
+ sample.b =~ /[\x0-\x8\xe-\x1f\x7f]/ ? true : false
34
+ end
35
+
36
+ def self.default_type thing
37
+ new(self.binary?(thing) ? 'application/octet-stream' : 'text/plain')
38
+ end
39
+
40
+ def self.by_extension io
41
+ super(io) || default_type(io)
42
+ end
43
+
44
+ def self.by_path io
45
+ super(io) || default_type(io)
46
+ end
47
+
48
+ def self.by_magic io
49
+ super(io) || default_type(io)
50
+ end
51
+
52
+ def self.all_by_magic io
53
+ out = super(io)
54
+ out.empty? ? [default_type(io)] : out
55
+ end
56
+
57
+ # fetches immediate parent types
58
+ def parents
59
+ ::MimeMagic::TYPES.fetch(@type, [nil, []])[1].map { |x| self.class.new x }
60
+ end
61
+
62
+ # fetches all supertypes
63
+ def lineage
64
+ ([self] + parents.map { |t| t.lineage }.flatten).uniq
65
+ end
66
+
67
+ private
68
+
69
+ def method_missing id
70
+ @type.send id
71
+ end
72
+
73
+ end
@@ -0,0 +1,479 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+ # This file generated automatically using rdf vocabulary format from http://purl.org/pav/
4
+ require 'rdf'
5
+ module RDF::SAK
6
+ # @!parse
7
+ # # Vocabulary for <http://purl.org/pav/>
8
+ # class PAV < RDF::StrictVocabulary
9
+ # end
10
+ class PAV < RDF::StrictVocabulary("http://purl.org/pav/")
11
+
12
+ # Ontology definition
13
+ ontology :"http://purl.org/pav/",
14
+ comment: %(PAV is a lightweight ontology for tracking Provenance, Authoring and Versioning. PAV specializes the W3C provenance ontology PROV-O in order to describe authorship, curation and digital creation of online resources.
15
+
16
+ This ontology describes the defined PAV properties and their usage. Note that PAV does not define any explicit classes or domain/ranges, as every property is meant to be used directly on the described online resource.
17
+
18
+ Cite as: Paolo Ciccarese, Stian Soiland-Reyes, Khalid Belhajjame, Alasdair JG Gray, Carole Goble, Tim Clark \(2013\): PAV ontology: provenance, authoring and versioning. Journal of biomedical semantics 4 \(1\), 37. doi:10.1186/2041-1480-4-37
19
+ ).freeze,
20
+ "dc11:contributor": ["Alasdair J G Gray".freeze, "Khalid Belhajjame".freeze, "Marco Ocana".freeze, "Simon Jupp".freeze],
21
+ "dc11:creator": ["Paolo Ciccarese".freeze, "Stian Soiland-Reyes".freeze],
22
+ "dc11:description": ["PAV supplies terms for distinguishing between the different roles of the agents contributing content in current web based systems: contributors, authors, curators and digital artifact creators. The ontology also provides terms for tracking provenance of digital entities that are published on the web and then accessed, transformed and consumed. In order to support broader interoperability, PAV specializes the general purpose W3C PROV provenance model (PROV-O).\n\nPAV distinguishes between the data related to the digital artifact - named Provenance - and those related to the actual knowledge creation and therefore to the intellectual property aspects – named Authoring. The Versioning axis describes the evolution of digital entities in time.\n\nUsing PAV, descriptions can define the authors that originate or gave existence to the work that is expressed in the digital resource (pav:authoredBy); curators (pav:curatedBy) who are content specialists responsible for shaping the expression in an appropriate format, and contributors (super-property pav:contributedBy) that provided some help in conceiving the resource or in the expressed knowledge creation/extraction.\n\nThese provenance aspects can be detailed with dates using pav:curatedOn, pav:authoredOn, etc. Further details about the creation activities, such as different authors contributing specific parts of the resource at different dates are out of scope for PAV and should be defined using vocabularies like PROV-O and additional intermediate entities to describe the different states.\n\nFor resources based on other resources, PAV allows specification of direct retrieval (pav:retrievedFrom), import through transformations (pav:importedFrom) and sources that were merely consulted (pav:sourceAccessedAt). These aspects can also define the agents responsible using pav:retrievedBy, pav:importedBy and pav:sourceAccessedBy.\n\nVersion number of a resource can be given with pav:version, the previous version of the resource with pav:previousVersion, and any other earlier versions with pav:hasEarlierVersion. Unversioned, 'mutable' resources can specify their current version as a snapshot resource using pav:hasCurrentVersion and list the earlier versions using pav:hasVersion.\n\nThe creation of the digital representation (e.g. an RDF graph or a .docx file) can in many cases be different from the authorship of the content/knowledge, and in PAV this digital creation is specified using pav:createdBy, pav:createdWith and pav:createdOn.\n\nPAV specializes terms from W3C PROV-O (prov:) and DC Terms (dcterms:), however these ontologies are not OWL imported as PAV can be used independently. The \"is defined by\" links indicate where those terms are included from. See http://www.w3.org/TR/prov-o and http://dublincore.org/documents/2012/06/14/dcmi-terms/ for more details. See http://purl.org/pav/mapping/dcterms For a comprehensive SKOS mapping to DC Terms.\n\nPAV 2 is based on PAV 1.2 but in a different namespace ( http://purl.org/pav/ ). Terms compatible with 1.2 are indicated in this ontology using owl:equivalentProperty.\n\nThe ontology IRI http://purl.org/pav/ always resolve to the latest version of PAV 2. Particular versionIRIs such as http://purl.org/pav/2.1 can be used by clients to force imports of a particular version - note however that all terms are defined directly in the http://purl.org/pav/ namespace.\n\nThe goal of PAV is to provide a lightweight, straight forward way to give the essential information about authorship, provenance and versioning, and therefore these properties are described directly on the published resource. As such, PAV does not define any classes or restrict domain/ranges, as all properties are applicable to any online resource.\n\n--\n\nCopyright 2008-2014 Massachusetts General Hospital; Harvard Medical School; Balboa Systems; University of Manchester\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n".freeze, "http://pav-ontology.googlecode.com/svn/branches/2.3/images/pav-overview.svg".freeze],
23
+ "dc:contributor": ["http://orcid.org/0000-0001-6938-0820".freeze, "http://orcid.org/0000-0002-0643-3144".freeze, "http://orcid.org/0000-0002-5711-4872".freeze, "http://www.paolociccarese.info/foaf.rdf#marco-ocana".freeze],
24
+ "dc:creator": ["http://orcid.org/0000-0001-9842-9718".freeze, "http://orcid.org/0000-0002-5156-2703".freeze],
25
+ "dc:format": "application/rdf+xml".freeze,
26
+ "dc:issued": "2014-08-28T15:00:00Z".freeze,
27
+ "dc:language": "en".freeze,
28
+ "dc:license": "http://www.apache.org/licenses/LICENSE-2.0".freeze,
29
+ "dc:modified": "2014-08-28T14:41:00Z".freeze,
30
+ "dc:publisher": "http://www.mindinformatics.org/".freeze,
31
+ "dc:title": "PAV - Provenance, Authoring and Versioning".freeze,
32
+ "foaf:homepage": "pav:home".freeze,
33
+ "foaf:isPrimaryTopicOf": ["http://arxiv.org/abs/1304.7224".freeze, "http://dx.doi.org/10.1186/2041-1480-4-37".freeze],
34
+ label: "Provenance, Authoring and Versioning (PAV)".freeze,
35
+ "owl:backwardCompatibleWith": ["http://purl.org/pav/2.0/".freeze, "http://purl.org/pav/authoring/2.0/".freeze, "http://purl.org/pav/provenance/2.0/".freeze, "http://purl.org/pav/versioning/2.0/".freeze, "pav:2.1".freeze, "pav:2.2".freeze],
36
+ "owl:incompatibleWith": "http://swan.mindinformatics.org/ontologies/1.2/pav.owl".freeze,
37
+ "owl:priorVersion": "pav:2.2".freeze,
38
+ "owl:versionIRI": "pav:2.3".freeze,
39
+ "owl:versionInfo": "2.3.1".freeze,
40
+ "prov:has_provenance": "pav:provenance.ttl".freeze,
41
+ "rdfs:seeAlso": ["http://code.google.com/p/pav-ontology/".freeze, "http://pav-ontology.googlecode.com/svn/trunk/1.2/pav.owl".freeze, "https://code.google.com/p/pav-ontology/wiki/Versions".freeze, "pav:doc".freeze, "prov:".freeze],
42
+ type: "owl:Ontology".freeze
43
+
44
+ # Property definitions
45
+ property :authoredBy,
46
+ comment: %(An agent that originated or gave existence to the work that is expressed by the digital resource.
47
+
48
+ The author of the content of a resource may be different from the creator of the resource representation \(although they are often the same\). See pav:createdBy for a discussion.
49
+
50
+ pav:authoredBy is more specific than its superproperty dct:creator - which might or might not be interpreted to also cover the creation of the representation of the artifact.
51
+
52
+ The author is usually not a software agent \(which would be indicated with pav:createdWith, pav:createdBy or pav:importedBy\), unless the software actually authored the content itself; for instance an artificial intelligence algorithm which authored a piece of music or a machine learning algorithm that authored a classification of a tumor sample.
53
+
54
+ The date of authoring can be expressed using pav:authoredOn - note however in the case of multiple authors that there is no relationship in PAV identifying which agent contributed when or what. If capturing such lineage is desired, it should be additionally expressed using PROV relationships like prov:qualifiedAttribution or prov:wasGeneratedBy.).freeze,
55
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/authoredBy".freeze,
56
+ isDefinedBy: "pav:".freeze,
57
+ label: "Authored by".freeze,
58
+ "rdfs:seeAlso": ["pav:authoredOn".freeze, "pav:createdBy".freeze],
59
+ subPropertyOf: ["dc:creator".freeze, "pav:contributedBy".freeze],
60
+ type: "owl:ObjectProperty".freeze
61
+ property :authoredOn,
62
+ comment: %(The date this resource was authored.
63
+
64
+ pav:authoredBy gives the authoring agent.
65
+
66
+ Note that pav:authoredOn is different from pav:createdOn, although they are often the same. See pav:createdBy for a discussion.
67
+
68
+ This property is normally used in a functional way, indicating the last time of authoring, although PAV does not formally restrict this.
69
+
70
+ The value is of type xsd:dateTime, for instance "2013-03-26T14:49:00+01:00"^^xsd:dateTime. The timezone information \(Z for UTC, +01:00 for UTC+1, etc\) SHOULD be included unless unknown. If the time \(or parts of time\) is unknown, use 00:00:00Z. If the day/month is unknown, use 01-01, for instance, if we only know September 1983, then use "1983-09-01T00:00:00Z"^^xsd:dateTime.).freeze,
71
+ isDefinedBy: "pav:".freeze,
72
+ label: "Authored on".freeze,
73
+ "rdfs:seeAlso": ["pav:authoredBy".freeze, "pav:createdBy".freeze, "pav:createdOn".freeze],
74
+ subPropertyOf: "pav:contributedOn".freeze,
75
+ type: "owl:DatatypeProperty".freeze
76
+ property :contributedBy,
77
+ comment: %(The resource was contributed to by the given agent.
78
+
79
+ Specifies an agent that provided any sort of help in conceiving the work that is expressed by the digital artifact.
80
+
81
+ Contributions can take many forms, of which PAV define the subproperties pav:authoredBy and pav:curatedBy; however other specific roles could also be specified by pav:contributedBy or custom subproperties, such as illustrating, investigating or managing the underlying data source. Contributions can additionally be expressed in detail using prov:qualifiedAttribution and prov:hadRole.
82
+
83
+ Note that pav:contributedBy identifies only agents that contributed to the work, knowledge or intellectual property, and not agents that made the digital artifact or representation \(pav:createdBy\), thus the considerations for software agents is similar to for pav:authoredBy and pav:curatedBy.
84
+
85
+ pav:contributedBy is more specific than its superproperty dct:contributor - which might or might not be interpreted to also cover contributions to making the representation of the artifact.
86
+
87
+
88
+ The date of contribution can be expressed using pav:contributedOn - note however in the case of multiple contributors that there is no relationship in PAV identifying which agent contributed when or what. If capturing such lineage is desired, it should be additionally expressed using PROV relationships like prov:qualifiedAttribution or prov:wasGeneratedBy.).freeze,
89
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/contributedBy".freeze,
90
+ isDefinedBy: "pav:".freeze,
91
+ label: "Contributed by".freeze,
92
+ "rdfs:seeAlso": ["pav:contributedOn".freeze, "pav:createdBy".freeze],
93
+ subPropertyOf: ["dc:contributor".freeze, "prov:wasAttributedTo".freeze],
94
+ type: "owl:ObjectProperty".freeze
95
+ property :contributedOn,
96
+ comment: %(The date this resource was contributed to.
97
+
98
+ pav:contributedBy provides the agent\(s\) that contributed.
99
+
100
+ The value is of type xsd:dateTime, for instance "2013-03-26T14:49:00+01:00"^^xsd:dateTime. The timezone information \(Z for UTC, +01:00 for UTC+1, etc\) SHOULD be included unless unknown. If the time \(or parts of time\) is unknown, use 00:00:00Z. If the day/month is unknown, use 01-01, for instance, if we only know September 1983, then use "1983-09-01T00:00:00Z"^^xsd:dateTime.).freeze,
101
+ isDefinedBy: "pav:".freeze,
102
+ label: "Contributed on".freeze,
103
+ range: "xsd:dateTime".freeze,
104
+ "rdfs:seeAlso": "pav:contributedBy".freeze,
105
+ type: "owl:DatatypeProperty".freeze
106
+ property :createdAt,
107
+ comment: %(The geo-location of the agents when creating the resource \(pav:createdBy\). For instance a photographer takes a picture of the Eiffel Tower while standing in front of it.).freeze,
108
+ isDefinedBy: "pav:".freeze,
109
+ label: "Created at".freeze,
110
+ "rdfs:seeAlso": "pav:createdBy".freeze,
111
+ type: "owl:ObjectProperty".freeze
112
+ property :createdBy,
113
+ comment: %(An agent primary responsible for making the digital artifact or resource representation.
114
+
115
+ This property is distinct from forming the content, which is indicated with pav:contributedBy or its subproperties; pav:authoredBy, which identifies who authored the knowledge expressed by this resource; and pav:curatedBy, which identifies who curated the knowledge into its current form.
116
+
117
+ pav:createdBy is more specific than its superproperty dct:creator - which might or might not be interpreted to cover this creator.
118
+
119
+ For instance, the author wrote 'this species has bigger wings than normal' in his log book. The curator, going through the log book and identifying important knowledge, formalizes this as 'locus perculus has wingspan > 0.5m'. The creator enters this knowledge as a digital resource in the knowledge system, thus creating the digital artifact \(say as JSON, RDF, XML or HTML\).
120
+
121
+ A different example is a news article. pav:authoredBy indicates the journalist who wrote the article. pav:contributedBy can indicate the artist who added an illustration. pav:curatedBy can indicate the editor who made the article conform to the news paper's style. pav:createdBy can indicate who put the article on the web site.
122
+
123
+ The software tool used by the creator to make the digital resource \(say Protege, Wordpress or OpenOffice\) can be indicated with pav:createdWith.
124
+
125
+ The date the digital resource was created can be indicated with pav:createdOn.
126
+
127
+ The location the agent was at when creating the digital resource can be made using pav:createdAt.).freeze,
128
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/createdBy".freeze,
129
+ isDefinedBy: "pav:".freeze,
130
+ label: "Created by".freeze,
131
+ "rdfs:seeAlso": ["pav:authoredBy".freeze, "pav:createdAt".freeze, "pav:createdOn".freeze, "pav:curatedBy".freeze],
132
+ subPropertyOf: ["dc:creator".freeze, "prov:wasAttributedTo".freeze],
133
+ type: "owl:ObjectProperty".freeze
134
+ property :createdOn,
135
+ comment: %(The date of creation of the resource representation.
136
+
137
+ The agents responsible can be indicated with pav:createdBy.
138
+
139
+ This property is normally used in a functional way, indicating the time of creation, although PAV does not formally restrict this. pav:lastUpdateOn can be used to indicate minor updates that did not affect the creating date.
140
+
141
+ The value is of type xsd:dateTime, for instance "2013-03-26T14:49:00+01:00"^^xsd:dateTime. The timezone information \(Z for UTC, +01:00 for UTC+1, etc\) SHOULD be included unless unknown. If the time \(or parts of time\) is unknown, use 00:00:00Z. If the day/month is unknown, use 01-01, for instance, if we only know September 1983, then use "1983-09-01T00:00:00Z"^^xsd:dateTime.).freeze,
142
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/createdOn".freeze,
143
+ isDefinedBy: "pav:".freeze,
144
+ label: "Created on".freeze,
145
+ range: "xsd:dateTime".freeze,
146
+ "rdfs:seeAlso": "pav:createdBy".freeze,
147
+ type: "owl:DatatypeProperty".freeze
148
+ property :createdWith,
149
+ comment: %(The software/tool used by the creator \(pav:createdBy\) when making the digital resource, for instance a word processor or an annotation tool. A more independent software agent that creates the resource without direct interaction by a human creator should instead should instead by indicated using pav:createdBy.
150
+ ).freeze,
151
+ isDefinedBy: "pav:".freeze,
152
+ label: "Created with".freeze,
153
+ "rdfs:seeAlso": "pav:createdBy".freeze,
154
+ subPropertyOf: "prov:wasAttributedTo".freeze,
155
+ type: "owl:ObjectProperty".freeze
156
+ property :curatedBy,
157
+ comment: %(Specifies an agent specialist responsible for shaping the expression in an appropriate format. Often the primary agent responsible for ensuring the quality of the representation.
158
+
159
+ The curator may be different from the author \(pav:authoredBy\) and creator of the digital resource \(pav:createdBy\).
160
+
161
+ The curator may in some cases be a software agent, for instance text mining software which adds hyperlinks for recognized genome names.
162
+
163
+ The date of curating can be expressed using pav:curatedOn - note however in the case of multiple curators that there is no relationship in PAV identifying which agent contributed when or what. If capturing such lineage is desired, it should be additionally expressed using PROV relationships like prov:qualifiedAttribution or prov:wasGeneratedBy.).freeze,
164
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/curatedBy".freeze,
165
+ isDefinedBy: "pav:".freeze,
166
+ label: "Curated by".freeze,
167
+ "rdfs:seeAlso": ["pav:createdBy".freeze, "pav:curatedOn".freeze],
168
+ subPropertyOf: "pav:contributedBy".freeze,
169
+ type: "owl:ObjectProperty".freeze
170
+ property :curatedOn,
171
+ comment: %(The date this resource was curated.
172
+
173
+ pav:curatedBy gives the agent\(s\) that performed the curation.
174
+
175
+ This property is normally used in a functional way, indicating the last curation date, although PAV does not formally restrict this.
176
+
177
+ The value is of type xsd:dateTime, for instance "2013-03-26T14:49:00+01:00"^^xsd:dateTime. The timezone information \(Z for UTC, +01:00 for UTC+1, etc\) SHOULD be included unless unknown. If the time \(or parts of time\) is unknown, use 00:00:00Z. If the day/month is unknown, use 01-01, for instance, if we only know September 1983, then use "1983-09-01T00:00:00Z"^^xsd:dateTime.).freeze,
178
+ isDefinedBy: "pav:".freeze,
179
+ label: "Curated on".freeze,
180
+ "rdfs:seeAlso": "pav:curatedBy".freeze,
181
+ subPropertyOf: "pav:contributedOn".freeze,
182
+ type: "owl:DatatypeProperty".freeze
183
+ property :curates,
184
+ comment: %(Provided for backwards compatibility. Use instead the inverse pav:curatedBy.).freeze,
185
+ inverseOf: "pav:curatedBy".freeze,
186
+ isDefinedBy: "pav:".freeze,
187
+ label: "Curates".freeze,
188
+ "owl:deprecated": "true".freeze,
189
+ type: "owl:ObjectProperty".freeze
190
+ property :derivedFrom,
191
+ comment: %(Derived from a different resource.
192
+
193
+ Derivation conserns itself with derived knowledge. If this resource has the same content as the other resource, but has simply been transcribed to fit a different model \(like XML -> RDF or SQL -> CVS\), use pav:importedFrom. If a resource was simply retrieved, use pav:retrievedFrom. If the content has however been further refined or modified, pav:derivedFrom should be used.
194
+
195
+ Details about who performed the derivation \(e.g. who did the refining or modifications\) may be indicated with pav:contributedBy and its subproperties.
196
+ ).freeze,
197
+ isDefinedBy: "pav:".freeze,
198
+ label: "Derived from".freeze,
199
+ "rdfs:seeAlso": ["pav:importedFrom".freeze, "pav:previousVersion".freeze],
200
+ subPropertyOf: "prov:wasDerivedFrom".freeze,
201
+ type: "owl:ObjectProperty".freeze
202
+ property :hasCurrentVersion,
203
+ comment: %(This resource has a more specific, versioned resource with equivalent content.
204
+
205
+ This property is intended for relating a non-versioned or abstract resource to a single snapshot that can be used as a permalink to indicate the current version of the content.
206
+
207
+ For instance, if today is 2013-12-25, then a News page can indicate a corresponding snapshot resource which will refer to the news as they were of 2013-12-25.
208
+
209
+ <http://news.example.com/> pav:hasCurrentVersion <http://news.example.com/2013-12-25/> .
210
+
211
+ "Equivalent content" is a loose definition, for instance the snapshot resource might include additional information to indicate it is a snapshot, and is not required to be immutable.
212
+
213
+ Other versioned resources indicating the content at earlier times MAY be indicated with the superproperty pav:hasVersion, one of which MAY be related to the current version using pav:hasCurrentVersion:
214
+
215
+ <http://news.example.com/2013-12-25/> pav:previousVersion <http://news.example.com/2013-12-24/> .
216
+ <http://news.example.com/> pav:hasVersion <http://news.example.com/2013-12-23/> .
217
+
218
+ Note that it might be confusing to also indicate pav:previousVersion from a resource that has hasCurrentVersion relations, as such a resource is intended to be a long-living "unversioned" resource. The PAV ontology does however not formally restrict this, to cater for more complex scenarios with multiple abstraction levels.
219
+
220
+ Similarly, it would normally be incorrect to indicate a pav:hasCurrentVersion from an older version; instead the current version would be found by finding the non-versioned resource that the particular resource is a version of, and then its current version.
221
+
222
+ This property is normally used in a functional way, although PAV does not formally restrict this.).freeze,
223
+ isDefinedBy: "pav:".freeze,
224
+ label: "Has current version".freeze,
225
+ subPropertyOf: "pav:hasVersion".freeze,
226
+ type: "owl:ObjectProperty".freeze
227
+ property :hasEarlierVersion,
228
+ comment: %(This versioned resource has an earlier version.
229
+
230
+ Any earlier version of this resource can be indicated with pav:hasEarlierVersion, e.g.:
231
+
232
+ <http://example.com/v4> pav:hasEarlierVersion <http://example.com/v2> ;
233
+ pav:hasEarlierVersion <http://example.com/v1> .
234
+
235
+
236
+ The subproperty pav:previousVersion SHOULD be used if the earlier version is the direct ancestor of this version.
237
+
238
+ <http://example.com/v4> pav:previousVersion <http://example.com/v3> .
239
+
240
+
241
+ This property is transitive, so it should not be necessary to repeat the earlier versions of an earlier version. A chain of previous versions can be declared using the subproperty pav:previousVersion, implying that the previous previous version is also an earlier version. It might however still be useful to declare an earlier version explicitly, for instance because it is an earlier version of high relevance or because the complete chain of pav:previousVersion is not available.
242
+
243
+
244
+ To indicate that this version is a snapshot of a more general, non-versioned resource, e.g. "Weather Today" vs. "Weather Today on 2013-12-07", see pav:hasVersion.).freeze,
245
+ isDefinedBy: "pav:".freeze,
246
+ label: "Has earlier version".freeze,
247
+ subPropertyOf: "prov:alternateOf".freeze,
248
+ type: ["owl:AsymmetricProperty".freeze, "owl:ObjectProperty".freeze, "owl:TransitiveProperty".freeze]
249
+ property :hasVersion,
250
+ comment: %(This resource has a more specific, versioned resource.
251
+
252
+ This property is intended for relating a non-versioned or abstract resource to several versioned resources, e.g. snapshots. For instance, if there are two snapshots of the News page, made on 23rd and 24th of December, then:
253
+
254
+ <http://news.example.com/> pav:hasVersion <http://news.example.com/2013-12-23/> ;
255
+ pav:hasVersion <http://news.example.com/2013-12-24/> .
256
+
257
+ If one of the versions has somewhat the equivalent content to this resource \(e.g. can be used as a permalink for this resource\), then it should instead be indicated with the subproperty pav:hasCurrentVersion:
258
+
259
+ <http://news.example.com/> pav:hasCurrentVersion <http://news.example.com/2013-12-25/> .
260
+
261
+ To order the versions, use pav:previousVersion:
262
+
263
+ <http://news.example.com/2013-12-25/> pav:previousVersion <http://news.example.com/2013-12-24/> .
264
+ <http://news.example.com/2013-12-24/> pav:previousVersion <http://news.example.com/2013-12-23/> .
265
+
266
+ Note that it might be confusing to also indicate pav:previousVersion from a resource that has pav:hasVersion relations, as such a resource is intended to be a long-living "unversioned" resource. The PAV ontology does however not formally restrict this, to cater for more complex scenarios with multiple abstraction levels.
267
+
268
+ pav:hasVersion is a subproperty of dcterms:hasVersion to more strongly define this hierarchical pattern. It is therefore also a subproperty of pav:generalizationOf \(inverse of prov:specializationOf\).
269
+
270
+ To indicate the existence of other, non-hierarchical kind of editions and adaptations of this resource that are not versioned snapshots \(e.g. Powerpoint slides has a video recording version\), use instead dcterms:hasVersion or prov:alternateOf.).freeze,
271
+ isDefinedBy: "pav:".freeze,
272
+ label: "Has version".freeze,
273
+ "rdfs:seeAlso": ["pav:hasCurrentVersion".freeze, "pav:previousVersion".freeze],
274
+ subPropertyOf: ["dc:hasVersion".freeze, "prov:generalizationOf".freeze],
275
+ type: "owl:ObjectProperty".freeze
276
+ property :importedBy,
277
+ comment: %(An entity responsible for importing the data.
278
+
279
+ The importer is usually a software entity which has done the transcription from the original source.
280
+
281
+ Note that pav:importedBy may overlap with pav:createdWith.
282
+
283
+ The source for the import should be given with pav:importedFrom. The time of the import should be given with pav:importedOn.
284
+
285
+ See pav:importedFrom for a discussion of import vs. retrieve vs. derived.).freeze,
286
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/importedBy".freeze,
287
+ isDefinedBy: "pav:".freeze,
288
+ label: "Imported by".freeze,
289
+ "rdfs:seeAlso": "pav:importedFrom".freeze,
290
+ subPropertyOf: "prov:wasAttributedTo".freeze,
291
+ type: "owl:ObjectProperty".freeze
292
+ property :importedFrom,
293
+ comment: %(The original source of imported information.
294
+
295
+ Import means that the content has been preserved, but transcribed somehow, for instance to fit a different representation model by converting formats. Examples of import are when the original was JSON and the current resource is RDF, or where the original was an document scan, and this resource is the plain text found through OCR.
296
+
297
+ The imported resource does not have to be complete, but should be consistent with the knowledge conveyed by the original resource.
298
+
299
+ If additional knowledge has been contributed, pav:derivedFrom would be more appropriate.
300
+
301
+ If the resource has been copied verbatim from the original representation \(e.g. downloaded\), use pav:retrievedFrom.
302
+
303
+ To indicate which agent\(s\) performed the import, use pav:importedBy. Use pav:importedOn to indicate when it happened. ).freeze,
304
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/importedFromSource".freeze,
305
+ isDefinedBy: "pav:".freeze,
306
+ label: "Imported from".freeze,
307
+ "rdfs:seeAlso": ["pav:derivedFrom".freeze, "pav:importedBy".freeze, "pav:importedOn".freeze, "pav:retrievedFrom".freeze],
308
+ subPropertyOf: "prov:wasDerivedFrom".freeze,
309
+ type: "owl:ObjectProperty".freeze
310
+ property :importedOn,
311
+ comment: %(The date this resource was imported from a source \(pav:importedFrom\).
312
+
313
+ Note that pav:importedOn may overlap with pav:createdOn, but in cases where they differ, the import time indicates the time of the retrieval and transcription of the original source, while the creation time indicates when the final resource was made, for instance after user approval.
314
+
315
+ This property is normally used in a functional way, indicating the first import date, although PAV does not formally restrict this. If the resource is later reimported, this should instead be indicated with pav:lastRefreshedOn.
316
+
317
+ The source of the import should be given with pav:importedFrom. The agent that performed the import should be given with pav:importedBy.
318
+
319
+ See pav:importedFrom for a discussion about import vs. retrieval.
320
+
321
+ The value is of type xsd:dateTime, for instance "2013-03-26T14:49:00+01:00"^^xsd:dateTime. The timezone information \(Z for UTC, +01:00 for UTC+1, etc\) SHOULD be included unless unknown. If the time \(or parts of time\) is unknown, use 00:00:00Z. If the day/month is unknown, use 01-01, for instance, if we only know September 1983, then use "1983-09-01T00:00:00Z"^^xsd:dateTime.).freeze,
322
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/importedOn".freeze,
323
+ isDefinedBy: "pav:".freeze,
324
+ label: "Imported on".freeze,
325
+ range: "xsd:dateTime".freeze,
326
+ "rdfs:seeAlso": ["pav:importedBy".freeze, "pav:importedFrom".freeze],
327
+ type: "owl:DatatypeProperty".freeze
328
+ property :lastRefreshedOn,
329
+ comment: %(The date of the last re-import of the resource. This property is used in addition to pav:importedOn if this version has been updated due to a re-import. If the re-import created a new resource rather than refreshing an existing resource, then instead use pav:importedOn together with pav:previousVersion.
330
+
331
+ This property is normally used in a functional way, although PAV does not formally restrict this.
332
+
333
+ The value is of type xsd:dateTime, for instance "2013-03-26T14:49:00+01:00"^^xsd:dateTime. The timezone information \(Z for UTC, +01:00 for UTC+1, etc\) SHOULD be included unless unknown. If the time \(or parts of time\) is unknown, use 00:00:00Z. If the day/month is unknown, use 01-01, for instance, if we only know September 1983, then use "1983-09-01T00:00:00Z"^^xsd:dateTime.).freeze,
334
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/importedLastOn".freeze,
335
+ isDefinedBy: "pav:".freeze,
336
+ label: "Last refreshed on".freeze,
337
+ range: "xsd:dateTime".freeze,
338
+ "rdfs:seeAlso": ["pav:importedBy".freeze, "pav:importedFrom".freeze, "pav:importedOn".freeze, "pav:previousVersion".freeze],
339
+ type: "owl:DatatypeProperty".freeze
340
+ property :lastUpdateOn,
341
+ comment: %(The date of the last update of the resource. An update is a change which did not warrant making a new resource related using pav:previousVersion, for instance correcting a spelling mistake.
342
+
343
+ This property is normally used in a functional way, although PAV does not formally restrict this.
344
+
345
+ The value is of type xsd:dateTime, for instance "2013-03-26T14:49:00+01:00"^^xsd:dateTime. The timezone information \(Z for UTC, +01:00 for UTC+1, etc\) SHOULD be included unless unknown. If the time \(or parts of time\) is unknown, use 00:00:00Z. If the day/month is unknown, use 01-01, for instance, if we only know September 1983, then use "1983-09-01T00:00:00Z"^^xsd:dateTime.).freeze,
346
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/lastUpdateOn".freeze,
347
+ isDefinedBy: "pav:".freeze,
348
+ label: "Last updated on".freeze,
349
+ range: "xsd:dateTime".freeze,
350
+ "rdfs:seeAlso": ["pav:createdOn".freeze, "pav:previousVersion".freeze],
351
+ type: "owl:DatatypeProperty".freeze
352
+ property :previousVersion,
353
+ comment: %(The previous version of a resource in a lineage. For instance a news article updated to correct factual information would point to the previous version of the article with pav:previousVersion. If however the content has significantly changed so that the two resources no longer share lineage \(say a new article that talks about the same facts\), they can instead be related using pav:derivedFrom.
354
+
355
+ This property is normally used in a functional way, although PAV does not formally restrict this. Earlier versions which are not direct ancestors of this resource may instead be provided using the superproperty pav:hasEarlierVersion.
356
+
357
+ A version number of this resource can be provided using the data property pav:version.
358
+
359
+ To indicate that this version is a snapshot of a more general, non-versioned resource, e.g. "Weather Today" vs. "Weather Today on 2013-12-07", see pav:hasVersion.
360
+
361
+ Note that it might be confusing to indicate pav:previousVersion from a resource that also has pav:hasVersion or pav:hasCurrentVersion relations, as such resources are intended to be a long-living and "unversioned", while pav:previousVersion is intended for use between permalink-like "snapshots" arranged in a linear history. ).freeze,
362
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/previousVersion".freeze,
363
+ isDefinedBy: "pav:".freeze,
364
+ label: "Previous version".freeze,
365
+ "rdfs:seeAlso": ["pav:derivedFrom".freeze, "pav:hasVersion".freeze, "pav:version".freeze],
366
+ subPropertyOf: ["pav:hasEarlierVersion".freeze, "prov:wasRevisionOf".freeze],
367
+ type: "owl:ObjectProperty".freeze
368
+ property :providedBy,
369
+ comment: %(The original provider of the encoded information \(e.g. PubMed, UniProt, Science Commons\).
370
+
371
+ The provider might not coincide with the dct:publisher, which would describe the current publisher of the resource. For instance if the resource was retrieved, imported or derived from a source, that source was published by the original provider. pav:providedBy provides a shortcut to indicate that original provider on the new resource. ).freeze,
372
+ isDefinedBy: "pav:".freeze,
373
+ label: "Provided by".freeze,
374
+ "rdfs:seeAlso": "dc:publisher".freeze,
375
+ type: "owl:ObjectProperty".freeze
376
+ property :retrievedBy,
377
+ comment: %(An entity responsible for retrieving the data from an external source.
378
+
379
+ The retrieving agent is usually a software entity, which has done the retrieval from the original source without performing any transcription.
380
+
381
+ The source that was retrieved should be given with pav:retrievedFrom. The time of the retrieval should be indicated using pav:retrievedOn.
382
+
383
+ See pav:importedFrom for a discussion of import vs. retrieve vs. derived.).freeze,
384
+ isDefinedBy: "pav:".freeze,
385
+ label: "Retrieved by".freeze,
386
+ "rdfs:seeAlso": "pav:importedFrom".freeze,
387
+ subPropertyOf: "prov:wasAttributedTo".freeze,
388
+ type: "owl:ObjectProperty".freeze
389
+ property :retrievedFrom,
390
+ comment: %(The URI where a resource has been retrieved from.
391
+
392
+ The retrieving agent is usually a software entity, which has done the retrieval from the original source without performing any transcription.
393
+
394
+ Retrieval indicates that this resource has the same representation as the original resource. If the resource has been somewhat transformed, use pav:importedFrom instead.
395
+
396
+ The time of the retrieval should be indicated using pav:retrievedOn. The agent may be indicated with pav:retrievedBy.).freeze,
397
+ isDefinedBy: "pav:".freeze,
398
+ label: "Retrieved from".freeze,
399
+ "rdfs:seeAlso": ["pav:retrievedBy".freeze, "pav:retrievedOn".freeze],
400
+ subPropertyOf: "prov:wasDerivedFrom".freeze,
401
+ type: "owl:ObjectProperty".freeze
402
+ property :retrievedOn,
403
+ comment: %(The date the source for this resource was retrieved.
404
+
405
+ The source that was retrieved should be indicated with pav:retrievedFrom. The agent that performed the retrieval may be specified with pav:retrievedBy.
406
+
407
+ This property is normally used in a functional way, although PAV does not formally restrict this.
408
+
409
+ The value is of type xsd:dateTime, for instance "2013-03-26T14:49:00+01:00"^^xsd:dateTime. The timezone information \(Z for UTC, +01:00 for UTC+1, etc\) SHOULD be included unless unknown. If the time \(or parts of time\) is unknown, use 00:00:00Z. If the day/month is unknown, use 01-01, for instance, if we only know September 1983, then use "1983-09-01T00:00:00Z"^^xsd:dateTime.).freeze,
410
+ isDefinedBy: "pav:".freeze,
411
+ label: "Retrieved on".freeze,
412
+ range: "xsd:dateTime".freeze,
413
+ "rdfs:seeAlso": ["pav:retrievedBy".freeze, "pav:retrievedFrom".freeze],
414
+ type: "owl:DatatypeProperty".freeze
415
+ property :sourceAccessedAt,
416
+ comment: %(The resource is related to a given source which was accessed or consulted \(but not retrieved, imported or derived from\). This access can be detailed with pav:sourceAccessedBy and pav:sourceAccessedOn.
417
+
418
+ For instance, a curator \(pav:curatedBy\) might have consulted figures in a published paper to confirm that a dataset was correctly pav:importedFrom the paper's supplementary CSV file.
419
+
420
+ Another example: I can access the page for tomorrow weather in Boston \(http://www.weather.com/weather/tomorrow/Boston+MA+02143\) and I can blog ‘tomorrow is going to be nice’. The source does not make any claims about the nice weather, that is my interpretation; therefore the blog post has pav:sourceAccessedAt the weather page. ).freeze,
421
+ isDefinedBy: "pav:".freeze,
422
+ label: "Source accessed at".freeze,
423
+ "rdfs:seeAlso": ["pav:importedFrom".freeze, "pav:retrievedFrom".freeze, "pav:sourceAccessedBy".freeze, "pav:sourceAccessedOn".freeze, "pav:sourceLastAccessedOn".freeze],
424
+ subPropertyOf: "prov:wasInfluencedBy".freeze,
425
+ type: "owl:ObjectProperty".freeze
426
+ property :sourceAccessedBy,
427
+ comment: %(The resource is related to a source which was accessed or consulted
428
+ by the given agent. The source\(s\) should be specified using pav:sourceAccessedAt, and the time with pav:sourceAccessedOn.
429
+
430
+ For instance, the given agent could be a curator \(also pav:curatedBy\) which consulted figures in a published paper to confirm that a dataset was correctly pav:importedFrom the paper's supplementary CSV file.).freeze,
431
+ isDefinedBy: "pav:".freeze,
432
+ label: "Source accessed by".freeze,
433
+ "rdfs:seeAlso": "pav:sourceAccessedAt".freeze,
434
+ type: "owl:ObjectProperty".freeze
435
+ property :sourceAccessedOn,
436
+ comment: %(The resource is related to a source which was originally accessed or consulted on the given date as part of creating or authoring the resource. The source\(s\) should be specified using pav:sourceAccessedAt.
437
+
438
+ For instance, if the source accessed described the weather forecast for the next day, the time of source access can be crucial information.
439
+
440
+ This property is normally used in a functional way, although PAV does not formally restrict this. If the source is subsequently checked again \(say to verify validity\), this should be indicated with pav:sourceLastAccessedOn.
441
+
442
+ In the case multiple sources being accessed at different times or by different agents, PAV does not distinguish who accessed when what. If such details are required, they may be provided by additionally using prov:qualifiedInfluence.
443
+
444
+ The value is of type xsd:dateTime, for instance "2013-03-26T14:49:00+01:00"^^xsd:dateTime. The timezone information \(Z for UTC, +01:00 for UTC+1, etc\) SHOULD be included unless unknown. If the time \(or parts of time\) is unknown, use 00:00:00Z. If the day/month is unknown, use 01-01, for instance, if we only know September 1983, then use "1983-09-01T00:00:00Z"^^xsd:dateTime.).freeze,
445
+ equivalentProperty: ["http://swan.mindinformatics.org/ontologies/1.2/pav/sourceAccessedOn".freeze, "http://swan.mindinformatics.org/ontologies/1.2/pav/sourceFirstAccessedOn".freeze],
446
+ isDefinedBy: "pav:".freeze,
447
+ label: "Source accessed on".freeze,
448
+ range: "xsd:dateTime".freeze,
449
+ "rdfs:seeAlso": ["pav:createdAt".freeze, "pav:sourceAccessedAt".freeze, "pav:sourceAccessedBy".freeze, "pav:sourceLastAccessedOn".freeze],
450
+ type: "owl:DatatypeProperty".freeze
451
+ property :sourceLastAccessedOn,
452
+ comment: %(The resource is related to a source which was last accessed or consulted on the given date. The source\(s\) should be specified using pav:sourceAccessedAt. Usage of this property indicates that the source has been checked previously, which the initial time should be indicated with pav:sourceAccessedOn.
453
+
454
+ This property can be useful together with pav:lastRefreshedOn or pav:lastUpdateOn in order to indicate a re-import or update, but could also be used alone, for instance when a source was simply verified and no further action was taken for the resource.
455
+
456
+ This property is normally used in a functional way, although PAV does not formally restrict this.
457
+
458
+ The value is of type xsd:dateTime, for instance "2013-03-26T14:49:00+01:00"^^xsd:dateTime. The timezone information \(Z for UTC, +01:00 for UTC+1, etc\) SHOULD be included unless unknown. If the time \(or parts of time\) is unknown, use 00:00:00Z. If the day/month is unknown, use 01-01, for instance, if we only know September 1983, then use "1983-09-01T00:00:00Z"^^xsd:dateTime.).freeze,
459
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/sourceLastAccessedOn".freeze,
460
+ isDefinedBy: "pav:".freeze,
461
+ label: "Source last accessed on".freeze,
462
+ range: "xsd:dateTime".freeze,
463
+ "rdfs:seeAlso": ["pav:createdAt".freeze, "pav:sourceAccessedAt".freeze, "pav:sourceAccessedBy".freeze],
464
+ type: "owl:DatatypeProperty".freeze
465
+ property :version,
466
+ comment: %(The version number of a resource. This is a freetext string, typical values are "1.5" or "21". The URI identifying the previous version can be provided using prov:previousVersion.
467
+
468
+ This property is normally used in a functional way, although PAV does not formally restrict this.).freeze,
469
+ equivalentProperty: "http://swan.mindinformatics.org/ontologies/1.2/pav/versionNumber".freeze,
470
+ isDefinedBy: "pav:".freeze,
471
+ label: "Version".freeze,
472
+ range: "xsd:string".freeze,
473
+ "rdfs:seeAlso": "pav:previousVersion".freeze,
474
+ type: "owl:DatatypeProperty".freeze
475
+
476
+ RDF::Vocabulary.register :pav, self if
477
+ RDF::Vocabulary.respond_to? :register
478
+ end
479
+ end