active-fedora 8.7.0 → 9.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +8 -15
- data/Gemfile +5 -5
- data/History.txt +0 -80
- data/README.md +1 -0
- data/Rakefile +0 -3
- data/active-fedora.gemspec +8 -7
- data/config/fedora.yml +5 -4
- data/config/predicate_mappings.yml +5 -5
- data/gemfiles/rails4.1.gemfile +10 -0
- data/gemfiles/rails4.2.beta.gemfile +10 -0
- data/lib/active_fedora.rb +151 -117
- data/lib/active_fedora/associations.rb +47 -15
- data/lib/active_fedora/associations/association.rb +29 -8
- data/lib/active_fedora/associations/association_scope.rb +5 -5
- data/lib/active_fedora/associations/belongs_to_association.rb +20 -63
- data/lib/active_fedora/associations/builder/association.rb +61 -25
- data/lib/active_fedora/associations/builder/belongs_to.rb +7 -94
- data/lib/active_fedora/associations/builder/collection_association.rb +11 -43
- data/lib/active_fedora/associations/builder/contains.rb +28 -0
- data/lib/active_fedora/associations/builder/has_and_belongs_to_many.rb +13 -3
- data/lib/active_fedora/associations/builder/has_many.rb +16 -10
- data/lib/active_fedora/associations/builder/property.rb +14 -0
- data/lib/active_fedora/associations/builder/singular_association.rb +14 -18
- data/lib/active_fedora/associations/builder/singular_property.rb +12 -0
- data/lib/active_fedora/associations/collection_association.rb +57 -80
- data/lib/active_fedora/associations/contains_association.rb +50 -0
- data/lib/active_fedora/associations/has_and_belongs_to_many_association.rb +44 -24
- data/lib/active_fedora/associations/has_many_association.rb +46 -14
- data/lib/active_fedora/associations/rdf.rb +86 -0
- data/lib/active_fedora/associations/singular_association.rb +4 -8
- data/lib/active_fedora/associations/singular_rdf.rb +15 -0
- data/lib/active_fedora/attached_files.rb +195 -0
- data/lib/active_fedora/attribute_methods.rb +122 -0
- data/lib/active_fedora/attribute_methods/dirty.rb +16 -0
- data/lib/active_fedora/attribute_methods/read.rb +61 -0
- data/lib/active_fedora/attribute_methods/write.rb +47 -0
- data/lib/active_fedora/attributes.rb +93 -44
- data/lib/active_fedora/attributes/primary_key.rb +12 -0
- data/lib/active_fedora/autosave_association.rb +2 -2
- data/lib/active_fedora/base.rb +16 -15
- data/lib/active_fedora/callbacks.rb +7 -7
- data/lib/active_fedora/change_set.rb +34 -0
- data/lib/active_fedora/cleaner.rb +62 -0
- data/lib/active_fedora/config.rb +4 -22
- data/lib/active_fedora/core.rb +173 -99
- data/lib/active_fedora/datastream.rb +4 -117
- data/lib/active_fedora/datastreams.rb +2 -263
- data/lib/active_fedora/datastreams/nokogiri_datastreams.rb +28 -51
- data/lib/active_fedora/{datastream_attribute.rb → delegated_attribute.rb} +57 -26
- data/lib/active_fedora/errors.rb +61 -0
- data/lib/active_fedora/fedora.rb +19 -0
- data/lib/active_fedora/fedora_attributes.rb +58 -26
- data/lib/active_fedora/file.rb +318 -0
- data/lib/active_fedora/file_configurator.rb +32 -32
- data/lib/active_fedora/file_path_builder.rb +24 -0
- data/lib/active_fedora/files_hash.rb +82 -0
- data/lib/active_fedora/fixity_service.rb +40 -0
- data/lib/active_fedora/indexing.rb +55 -82
- data/lib/active_fedora/indexing_service.rb +70 -0
- data/lib/active_fedora/ldp_resource.rb +26 -0
- data/lib/active_fedora/loadable_from_json.rb +112 -0
- data/lib/active_fedora/model.rb +5 -19
- data/lib/active_fedora/nested_attributes.rb +5 -6
- data/lib/active_fedora/nom_datastream.rb +15 -25
- data/lib/active_fedora/om_datastream.rb +26 -197
- data/lib/active_fedora/persistence.rb +95 -71
- data/lib/active_fedora/predicates.rb +4 -4
- data/lib/active_fedora/qualified_dublin_core_datastream.rb +17 -18
- data/lib/active_fedora/querying.rb +3 -4
- data/lib/active_fedora/railtie.rb +3 -6
- data/lib/active_fedora/rdf.rb +3 -1
- data/lib/active_fedora/rdf/datastream_indexing.rb +11 -0
- data/lib/active_fedora/rdf/fcrepo.rb +10 -324
- data/lib/active_fedora/rdf/indexing.rb +20 -16
- data/lib/active_fedora/rdf/ldp.rb +6 -0
- data/lib/active_fedora/rdf/ntriples_rdf_datastream.rb +1 -1
- data/lib/active_fedora/rdf/persistence.rb +5 -6
- data/lib/active_fedora/rdf/rdf_datastream.rb +44 -37
- data/lib/active_fedora/rdf/rdfxml_datastream.rb +13 -0
- data/lib/active_fedora/rdf/rels_ext.rb +26 -0
- data/lib/active_fedora/reflection.rb +256 -199
- data/lib/active_fedora/relation.rb +18 -6
- data/lib/active_fedora/relation/finder_methods.rb +69 -38
- data/lib/active_fedora/relation/query_methods.rb +7 -3
- data/lib/active_fedora/rspec_matchers/belong_to_associated_active_fedora_object_matcher.rb +7 -7
- data/lib/active_fedora/rspec_matchers/have_many_associated_active_fedora_objects_matcher.rb +8 -8
- data/lib/active_fedora/rspec_matchers/have_predicate_matcher.rb +9 -11
- data/lib/active_fedora/simple_datastream.rb +18 -13
- data/lib/active_fedora/solr_instance_loader.rb +18 -38
- data/lib/active_fedora/solr_service.rb +37 -20
- data/lib/active_fedora/sparql_insert.rb +45 -0
- data/lib/active_fedora/test_support.rb +1 -22
- data/lib/active_fedora/version.rb +1 -1
- data/lib/active_fedora/versionable.rb +90 -0
- data/lib/active_fedora/with_metadata.rb +37 -0
- data/lib/active_fedora/with_metadata/metadata_node.rb +70 -0
- data/lib/generators/active_fedora/config/config_generator.rb +0 -1
- data/lib/generators/active_fedora/config/solr/solr_generator.rb +1 -1
- data/lib/generators/active_fedora/model/model_generator.rb +5 -5
- data/lib/generators/active_fedora/model/templates/datastream_spec.rb.erb +1 -1
- data/lib/generators/active_fedora/model/templates/model_spec.rb.erb +2 -2
- data/lib/tasks/active_fedora_dev.rake +21 -27
- data/spec/config_helper.rb +1 -1
- data/spec/fixtures/mixed_rdf_descMetadata.nt +6 -6
- data/spec/fixtures/rails_root/config/predicate_mappings.yml +3 -19
- data/spec/fixtures/solr_rdf_descMetadata.nt +6 -6
- data/spec/integration/associations_spec.rb +133 -153
- data/spec/integration/attached_files_spec.rb +164 -0
- data/spec/integration/attributes_spec.rb +73 -12
- data/spec/integration/autosave_association_spec.rb +3 -3
- data/spec/integration/base_spec.rb +57 -351
- data/spec/integration/belongs_to_association_spec.rb +86 -76
- data/spec/integration/bug_spec.rb +3 -3
- data/spec/integration/collection_association_spec.rb +4 -4
- data/spec/integration/complex_rdf_datastream_spec.rb +54 -56
- data/spec/integration/delete_all_spec.rb +18 -15
- data/spec/integration/eradicate_spec.rb +54 -0
- data/spec/integration/fedora_solr_sync_spec.rb +7 -5
- data/spec/integration/field_to_solr_name_spec.rb +5 -5
- data/spec/integration/file_fixity_spec.rb +40 -0
- data/spec/integration/file_spec.rb +122 -0
- data/spec/integration/full_featured_model_spec.rb +53 -63
- data/spec/integration/has_and_belongs_to_many_associations_spec.rb +141 -114
- data/spec/integration/has_many_associations_spec.rb +142 -64
- data/spec/integration/json_serialization_spec.rb +50 -8
- data/spec/integration/model_spec.rb +12 -29
- data/spec/integration/nested_attribute_spec.rb +28 -20
- data/spec/integration/ntriples_datastream_spec.rb +60 -57
- data/spec/integration/om_datastream_spec.rb +51 -140
- data/spec/integration/rdf_nested_attributes_spec.rb +16 -14
- data/spec/integration/relation_delegation_spec.rb +7 -9
- data/spec/integration/relation_spec.rb +9 -7
- data/spec/integration/scoped_query_spec.rb +26 -26
- data/spec/integration/solr_instance_loader_spec.rb +69 -53
- data/spec/integration/solr_service_spec.rb +12 -73
- data/spec/integration/versionable_spec.rb +477 -0
- data/spec/integration/with_metadata_spec.rb +52 -0
- data/spec/samples/hydra-mods_article_datastream.rb +10 -6
- data/spec/samples/models/mods_article.rb +6 -2
- data/spec/samples/oral_history_sample.xml +1 -1
- data/spec/samples/oral_history_xml.xml +1 -1
- data/spec/samples/special_thing.rb +3 -3
- data/spec/spec_helper.rb +22 -12
- data/spec/support/an_active_model.rb +3 -7
- data/spec/unit/active_fedora_spec.rb +20 -17
- data/spec/unit/attached_files_spec.rb +203 -0
- data/spec/unit/attributes_spec.rb +286 -207
- data/spec/unit/base_active_model_spec.rb +8 -8
- data/spec/unit/base_datastream_management_spec.rb +11 -24
- data/spec/unit/base_extra_spec.rb +17 -67
- data/spec/unit/base_spec.rb +163 -428
- data/spec/unit/builder/has_and_belongs_to_many_spec.rb +2 -2
- data/spec/unit/callback_spec.rb +38 -23
- data/spec/unit/change_set_spec.rb +46 -0
- data/spec/unit/code_configurator_spec.rb +5 -5
- data/spec/unit/config_spec.rb +9 -14
- data/spec/unit/core_spec.rb +59 -8
- data/spec/unit/file_configurator_spec.rb +55 -53
- data/spec/unit/file_path_builder_spec.rb +18 -0
- data/spec/unit/file_spec.rb +221 -0
- data/spec/unit/files_hash_spec.rb +53 -0
- data/spec/unit/fixity_service_spec.rb +34 -0
- data/spec/unit/has_and_belongs_to_many_association_spec.rb +134 -0
- data/spec/unit/has_many_association_spec.rb +51 -0
- data/spec/unit/indexing_service_spec.rb +23 -0
- data/spec/unit/indexing_spec.rb +26 -0
- data/spec/unit/inheritance_spec.rb +9 -10
- data/spec/unit/model_spec.rb +15 -33
- data/spec/unit/nom_datastream_spec.rb +13 -10
- data/spec/unit/ntriples_datastream_spec.rb +81 -96
- data/spec/unit/om_datastream_spec.rb +137 -227
- data/spec/unit/persistence_spec.rb +28 -34
- data/spec/unit/predicates_spec.rb +29 -29
- data/spec/unit/property_spec.rb +1 -3
- data/spec/unit/qualified_dublin_core_datastream_spec.rb +27 -32
- data/spec/unit/query_spec.rb +116 -149
- data/spec/unit/rdf_datastream_spec.rb +25 -43
- data/spec/unit/rdf_resource_datastream_spec.rb +24 -123
- data/spec/unit/{rdfxml_rdf_datastream_spec.rb → rdfxml_datastream_spec.rb} +21 -25
- data/spec/unit/readonly_spec.rb +23 -0
- data/spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb +6 -6
- data/spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb +6 -6
- data/spec/unit/rspec_matchers/have_predicate_matcher_spec.rb +6 -6
- data/spec/unit/serializers_spec.rb +1 -1
- data/spec/unit/simple_datastream_spec.rb +12 -23
- data/spec/unit/solr_config_options_spec.rb +14 -17
- data/spec/unit/solr_service_spec.rb +38 -77
- data/spec/unit/sparql_insert_spec.rb +32 -0
- data/spec/unit/validations_spec.rb +8 -11
- metadata +96 -121
- data/lib/active_fedora/auditable.rb +0 -9
- data/lib/active_fedora/content_model.rb +0 -70
- data/lib/active_fedora/datastream_collections.rb +0 -302
- data/lib/active_fedora/datastream_hash.rb +0 -35
- data/lib/active_fedora/digital_object.rb +0 -55
- data/lib/active_fedora/fixture_exporter.rb +0 -33
- data/lib/active_fedora/fixture_loader.rb +0 -48
- data/lib/active_fedora/rdf/identifiable.rb +0 -66
- data/lib/active_fedora/rdf/project_hydra.rb +0 -12
- data/lib/active_fedora/rdf/rdfxml_rdf_datastream.rb +0 -13
- data/lib/active_fedora/rdf_xml_writer.rb +0 -49
- data/lib/active_fedora/relationship_graph.rb +0 -101
- data/lib/active_fedora/reload_on_save.rb +0 -16
- data/lib/active_fedora/rels_ext_datastream.rb +0 -100
- data/lib/active_fedora/rspec_matchers/match_fedora_datastream_matcher.rb +0 -41
- data/lib/active_fedora/rubydora_connection.rb +0 -35
- data/lib/active_fedora/semantic_node.rb +0 -164
- data/lib/active_fedora/service_definitions.rb +0 -88
- data/lib/active_fedora/sharding.rb +0 -58
- data/lib/active_fedora/solr_digital_object.rb +0 -68
- data/lib/active_fedora/unsaved_digital_object.rb +0 -58
- data/lib/generators/active_fedora/config/fedora/fedora_generator.rb +0 -12
- data/lib/generators/active_fedora/config/fedora/templates/fedora.yml +0 -38
- data/lib/generators/active_fedora/config/fedora/templates/fedora_conf/conf/development/fedora.fcfg +0 -953
- data/lib/generators/active_fedora/config/fedora/templates/fedora_conf/conf/test/fedora.fcfg +0 -953
- data/lib/tasks/active_fedora.rake +0 -83
- data/spec/fixtures/sharded_fedora.yml +0 -11
- data/spec/integration/auditable_spec.rb +0 -29
- data/spec/integration/datastream_collections_spec.rb +0 -127
- data/spec/integration/datastream_spec.rb +0 -90
- data/spec/integration/datastreams_spec.rb +0 -173
- data/spec/integration/load_from_solr_spec.rb +0 -66
- data/spec/integration/rels_ext_datastream_spec.rb +0 -82
- data/spec/support/mock_fedora.rb +0 -44
- data/spec/unit/content_model_spec.rb +0 -86
- data/spec/unit/datastream_collections_spec.rb +0 -420
- data/spec/unit/datastream_spec.rb +0 -83
- data/spec/unit/datastreams_spec.rb +0 -243
- data/spec/unit/has_and_belongs_to_many_collection_spec.rb +0 -96
- data/spec/unit/has_many_collection_spec.rb +0 -35
- data/spec/unit/rdf_vocab_spec.rb +0 -30
- data/spec/unit/rdf_xml_writer_spec.rb +0 -63
- data/spec/unit/relationship_graph_spec.rb +0 -115
- data/spec/unit/reload_on_save_spec.rb +0 -24
- data/spec/unit/rels_ext_datastream_spec.rb +0 -170
- data/spec/unit/rspec_matchers/match_fedora_datastream_matcher_spec.rb +0 -44
- data/spec/unit/rubydora_connection_spec.rb +0 -12
- data/spec/unit/semantic_node_spec.rb +0 -112
- data/spec/unit/service_definitions_spec.rb +0 -63
- data/spec/unit/solr_digital_object_spec.rb +0 -97
- data/spec/unit/unsaved_digital_object_spec.rb +0 -48
@@ -3,13 +3,12 @@ module ActiveFedora
|
|
3
3
|
module Persistence
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
|
-
## Required by associations
|
7
6
|
def new_record?
|
8
|
-
|
7
|
+
@ldp_source.new?
|
9
8
|
end
|
10
9
|
|
11
10
|
def persisted?
|
12
|
-
!(
|
11
|
+
!(destroyed? || new_record?)
|
13
12
|
end
|
14
13
|
|
15
14
|
# Returns true if this object has been destroyed, otherwise returns false.
|
@@ -17,7 +16,7 @@ module ActiveFedora
|
|
17
16
|
@destroyed
|
18
17
|
end
|
19
18
|
|
20
|
-
# Saves a Base object, and any dirty
|
19
|
+
# Saves a Base object, and any dirty attached files, then updates
|
21
20
|
# the Solr index for this object, unless option :update_index=>false is present.
|
22
21
|
# Indexing is also controlled by the `create_needs_index?' and `update_needs_index?' methods.
|
23
22
|
#
|
@@ -25,61 +24,57 @@ module ActiveFedora
|
|
25
24
|
# @option options [Boolean] :update_index (true) set false to skip indexing
|
26
25
|
# @return [Boolean] true if save was successful, otherwise false
|
27
26
|
def save(options={})
|
28
|
-
|
27
|
+
raise ReadOnlyRecord if readonly?
|
28
|
+
new_record? ? create_record(options) : update_record(options)
|
29
29
|
end
|
30
30
|
|
31
31
|
def save!(options={})
|
32
32
|
save(options)
|
33
33
|
end
|
34
34
|
|
35
|
-
#
|
36
|
-
# It's normally called once in the lifecycle, by #create#
|
37
|
-
def assert_content_model
|
38
|
-
add_relationship(:has_model, self.class.to_class_uri)
|
39
|
-
end
|
40
|
-
|
41
|
-
# Pushes the object and all of its new or dirty datastreams into Fedora
|
35
|
+
# Pushes the object and all of its new or dirty attached files into Fedora
|
42
36
|
def update(attributes)
|
43
37
|
self.attributes=attributes
|
44
38
|
save
|
45
39
|
end
|
46
40
|
|
47
41
|
alias update_attributes update
|
48
|
-
|
49
|
-
# Refreshes the object's info from Fedora
|
50
|
-
# Note: Currently just registers any new datastreams that have appeared in fedora
|
51
|
-
def refresh
|
52
|
-
# inner_object.load_attributes_from_fedora
|
53
|
-
end
|
54
42
|
|
55
|
-
#Deletes a Base object, also deletes the info indexed in Solr, and
|
43
|
+
#Deletes a Base object, also deletes the info indexed in Solr, and
|
56
44
|
#the underlying inner_object. If this object is held in any relationships (ie inbound relationships
|
57
45
|
#outside of this object it will remove it from those items rels-ext as well
|
58
46
|
def delete
|
47
|
+
return self if new_record?
|
48
|
+
|
49
|
+
@destroyed = true
|
59
50
|
reflections.each_pair do |name, reflection|
|
60
51
|
if reflection.macro == :has_many
|
61
|
-
association(name).delete_all
|
52
|
+
association(name.to_sym).delete_all
|
62
53
|
end
|
63
54
|
end
|
64
55
|
|
65
|
-
|
56
|
+
id = self.id ## cache so it's still available after delete
|
57
|
+
# Clear out the ETag
|
58
|
+
@ldp_source = LdpResource.new(conn, uri)
|
66
59
|
begin
|
67
|
-
@
|
68
|
-
rescue
|
69
|
-
raise ObjectNotFoundError, "Unable to find #{
|
70
|
-
end
|
71
|
-
if ENABLE_SOLR_UPDATES
|
72
|
-
solr = ActiveFedora::SolrService.instance.conn
|
73
|
-
solr.delete_by_id(pid, params: {'softCommit' => true})
|
60
|
+
@ldp_source.delete
|
61
|
+
rescue Ldp::NotFound
|
62
|
+
raise ObjectNotFoundError, "Unable to find #{id} in the repository"
|
74
63
|
end
|
75
|
-
|
64
|
+
|
65
|
+
ActiveFedora::SolrService.delete(id) if ENABLE_SOLR_UPDATES
|
76
66
|
freeze
|
77
67
|
end
|
78
68
|
|
79
69
|
def destroy
|
70
|
+
raise ReadOnlyRecord if readonly?
|
80
71
|
delete
|
81
72
|
end
|
82
73
|
|
74
|
+
def eradicate
|
75
|
+
self.class.eradicate(self.id)
|
76
|
+
end
|
77
|
+
|
83
78
|
module ClassMethods
|
84
79
|
# Creates an object (or multiple objects) and saves it to the repository, if validations pass.
|
85
80
|
# The resulting object is returned whether the object was saved successfully to the repository or not.
|
@@ -107,59 +102,88 @@ module ActiveFedora
|
|
107
102
|
if attributes.is_a?(Array)
|
108
103
|
attributes.collect { |attr| create(attr, &block) }
|
109
104
|
else
|
110
|
-
object = new(attributes)
|
111
|
-
yield(object) if block_given?
|
105
|
+
object = new(attributes, &block)
|
112
106
|
object.save
|
113
107
|
object
|
114
108
|
end
|
115
109
|
end
|
116
|
-
end
|
117
110
|
|
118
|
-
|
111
|
+
# Removes an object's tombstone so another object with the same uri may be created.
|
112
|
+
# NOTE: this is in violation of the linked data platform and is only here as a convience
|
113
|
+
# method. It shouldn't be used in the general course of repository operations.
|
114
|
+
def eradicate(uri)
|
115
|
+
gone?(uri) ? delete_tombstone(uri) : false
|
116
|
+
end
|
119
117
|
|
120
|
-
|
121
|
-
# Override this if you need different behavior.
|
122
|
-
def create_needs_index?
|
123
|
-
ENABLE_SOLR_UPDATES
|
124
|
-
end
|
118
|
+
private
|
125
119
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
120
|
+
def gone? uri
|
121
|
+
ActiveFedora::Base.find(uri)
|
122
|
+
false
|
123
|
+
rescue Ldp::Gone
|
124
|
+
true
|
125
|
+
end
|
126
|
+
|
127
|
+
def delete_tombstone uri
|
128
|
+
tombstone = ActiveFedora::Base.id_to_uri(uri) + "/fcr:tombstone"
|
129
|
+
ActiveFedora.fedora.connection.delete(tombstone)
|
130
|
+
true
|
131
|
+
end
|
130
132
|
end
|
131
133
|
|
132
134
|
private
|
133
|
-
|
134
|
-
# Deals with preparing new object to be saved to Fedora, then pushes it and its
|
135
|
-
def
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
@inner_object = @inner_object.save
|
150
|
-
end
|
151
|
-
|
152
|
-
def persist(should_update_index)
|
153
|
-
serialize_datastreams
|
154
|
-
result = @inner_object.save
|
155
|
-
### Rubydora re-inits the datastreams after a save, so ensure our copy stays in synch
|
156
|
-
@inner_object.datastreams.each do |dsid, ds|
|
157
|
-
datastreams[dsid] = ds
|
158
|
-
ds.model = self if ds.kind_of? RelsExtDatastream
|
159
|
-
end
|
135
|
+
|
136
|
+
# Deals with preparing new object to be saved to Fedora, then pushes it and its attached files into Fedora.
|
137
|
+
def create_record(options = {})
|
138
|
+
assign_rdf_subject
|
139
|
+
serialize_attached_files
|
140
|
+
@ldp_source = @ldp_source.create
|
141
|
+
@resource = nil
|
142
|
+
assign_uri_to_attached_files
|
143
|
+
save_attached_files
|
144
|
+
refresh
|
145
|
+
end
|
146
|
+
|
147
|
+
def update_record(options = {})
|
148
|
+
serialize_attached_files
|
149
|
+
execute_sparql_update
|
150
|
+
save_attached_files
|
160
151
|
refresh
|
161
|
-
|
162
|
-
|
152
|
+
end
|
153
|
+
|
154
|
+
def refresh
|
155
|
+
@ldp_source = LdpResource.new(conn, uri)
|
156
|
+
@resource = nil
|
157
|
+
end
|
158
|
+
|
159
|
+
def execute_sparql_update
|
160
|
+
change_set = ChangeSet.new(self, self.resource, self.changed_attributes.keys)
|
161
|
+
return true if change_set.empty?
|
162
|
+
SparqlInsert.new(change_set.changes).execute(uri)
|
163
|
+
end
|
164
|
+
|
165
|
+
|
166
|
+
def assign_id
|
167
|
+
end
|
168
|
+
|
169
|
+
def assign_rdf_subject
|
170
|
+
@ldp_source = if !id && new_id = assign_id
|
171
|
+
LdpResource.new(ActiveFedora.fedora.connection, self.class.id_to_uri(new_id), @resource)
|
172
|
+
else
|
173
|
+
LdpResource.new(ActiveFedora.fedora.connection, @ldp_source.subject, @resource, ActiveFedora.fedora.host + ActiveFedora.fedora.base_path)
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
def assign_uri_to_attached_files
|
178
|
+
attached_files.each do |name, ds|
|
179
|
+
ds.uri= "#{uri}/#{name}"
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
def save_attached_files
|
184
|
+
attached_files.select { |_, file| file.changed? }.each do |_, file|
|
185
|
+
file.save # Don't call save! because if the content_changed? returns false, it'll raise an error.
|
186
|
+
end
|
163
187
|
end
|
164
188
|
end
|
165
189
|
end
|
@@ -17,7 +17,7 @@ module ActiveFedora
|
|
17
17
|
#TODO, these could be cached
|
18
18
|
case predicate
|
19
19
|
when :has_model, "hasModel", :hasModel
|
20
|
-
xmlns="info
|
20
|
+
xmlns="http://fedora.info/definitions/v4/model#"
|
21
21
|
begin
|
22
22
|
rel_predicate = predicate_lookup(predicate,xmlns)
|
23
23
|
rescue UnregisteredPredicateError
|
@@ -25,7 +25,7 @@ module ActiveFedora
|
|
25
25
|
rel_predicate = nil
|
26
26
|
end
|
27
27
|
else
|
28
|
-
xmlns="info
|
28
|
+
xmlns="http://fedora.info/definitions/v4/rels-ext#"
|
29
29
|
begin
|
30
30
|
rel_predicate = predicate_lookup(predicate,xmlns)
|
31
31
|
rescue UnregisteredPredicateError
|
@@ -52,7 +52,7 @@ module ActiveFedora
|
|
52
52
|
# If predicate is a symbol, looks up the predicate in the predicate_mappings
|
53
53
|
# If predicate is not a Symbol, returns the predicate untouched
|
54
54
|
# @raise UnregisteredPredicateError if the predicate is a symbol but is not found in the predicate_mappings
|
55
|
-
def self.predicate_lookup(predicate,namespace="info
|
55
|
+
def self.predicate_lookup(predicate,namespace="http://fedora.info/definitions/v4/rels-ext#")
|
56
56
|
if predicate.class == Symbol
|
57
57
|
if predicate_mappings[namespace].has_key?(predicate)
|
58
58
|
return predicate_mappings[namespace][predicate]
|
@@ -100,7 +100,7 @@ module ActiveFedora
|
|
100
100
|
# @example
|
101
101
|
# ActiveFedora::Predicates.set_predicates({
|
102
102
|
# "http://projecthydra.org/ns/relations#"=>{has_profile:"hasProfile"},
|
103
|
-
# "info
|
103
|
+
# "http://fedora.info/definitions/v4/rels-ext#"=>{
|
104
104
|
# references:"references",
|
105
105
|
# has_derivation: "cameFrom"
|
106
106
|
# },
|
@@ -1,27 +1,26 @@
|
|
1
1
|
module ActiveFedora
|
2
|
-
#This class represents a Qualified Dublin Core Datastream. A special case of ActiveFedora::
|
2
|
+
#This class represents a Qualified Dublin Core Datastream. A special case of ActiveFedora::OmDatastream
|
3
3
|
#The implementation of this class defines the terms from the Qualified Dublin Core specification.
|
4
|
-
#This implementation features customized xml generators and deserialization routines to handle the
|
4
|
+
#This implementation features customized xml generators and deserialization routines to handle the
|
5
5
|
#Fedora Dublin Core XML datastreams structure.
|
6
6
|
#
|
7
|
-
#Fields can still be overridden if more specificity is desired (see ActiveFedora::
|
7
|
+
#Fields can still be overridden if more specificity is desired (see ActiveFedora::File#fields method).
|
8
8
|
class QualifiedDublinCoreDatastream < OmDatastream
|
9
9
|
|
10
10
|
attr_accessor :fields
|
11
11
|
class_attribute :class_fields
|
12
12
|
self.class_fields = []
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end
|
13
|
+
|
14
|
+
set_terminology do |t|
|
15
|
+
t.root(:path=>"dc", :xmlns=>"http://purl.org/dc/terms/")
|
16
|
+
end
|
18
17
|
|
19
18
|
define_template :creator do |xml,name|
|
20
19
|
xml.creator() do
|
21
20
|
xml.text(name)
|
22
21
|
end
|
23
22
|
end
|
24
|
-
|
23
|
+
|
25
24
|
#A frozen array of Dublincore Terms.
|
26
25
|
DCTERMS = [
|
27
26
|
:abstract,
|
@@ -113,8 +112,8 @@ module ActiveFedora
|
|
113
112
|
#
|
114
113
|
#There is quite a good example of this class in use in spec/examples/oral_history.rb
|
115
114
|
#
|
116
|
-
#!! Careful: If you declare two fields that correspond to the same xml node without any qualifiers to differentiate them,
|
117
|
-
#you will end up replicating the values in the underlying datastream, resulting in mysterious dubling, quadrupling, etc.
|
115
|
+
#!! Careful: If you declare two fields that correspond to the same xml node without any qualifiers to differentiate them,
|
116
|
+
#you will end up replicating the values in the underlying datastream, resulting in mysterious dubling, quadrupling, etc.
|
118
117
|
#whenever you edit the field's values.
|
119
118
|
def field(name, tupe=nil, opts={})
|
120
119
|
fields ||= {}
|
@@ -128,9 +127,9 @@ module ActiveFedora
|
|
128
127
|
self.class.terminology.add_term(term)
|
129
128
|
term.generate_xpath_queries!
|
130
129
|
end
|
131
|
-
|
130
|
+
|
132
131
|
end
|
133
|
-
|
132
|
+
|
134
133
|
def update_indexed_attributes(params={}, opts={})
|
135
134
|
# if the params are just keys, not an array, make then into an array.
|
136
135
|
new_params = {}
|
@@ -143,19 +142,19 @@ module ActiveFedora
|
|
143
142
|
end
|
144
143
|
super(new_params, opts)
|
145
144
|
end
|
146
|
-
|
145
|
+
|
147
146
|
|
148
147
|
def self.xml_template
|
149
148
|
Nokogiri::XML::Document.parse("<dc xmlns:dcterms='http://purl.org/dc/terms/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'/>")
|
150
149
|
end
|
151
150
|
|
152
|
-
def to_solr(solr_doc = Hash.new) # :nodoc:
|
151
|
+
def to_solr(solr_doc = Hash.new, opts = {}) # :nodoc:
|
153
152
|
@fields.each do |field_key, field_info|
|
154
153
|
things = send(field_key)
|
155
|
-
if things
|
154
|
+
if things
|
156
155
|
field_symbol = ActiveFedora::SolrService.solr_name(field_key, type: field_info[:type])
|
157
|
-
things.val.each do |val|
|
158
|
-
::Solrizer::Extractor.insert_solr_field_value(solr_doc, field_symbol, val )
|
156
|
+
things.val.each do |val|
|
157
|
+
::Solrizer::Extractor.insert_solr_field_value(solr_doc, field_symbol, val )
|
159
158
|
end
|
160
159
|
end
|
161
160
|
end
|
@@ -1,8 +1,7 @@
|
|
1
1
|
module ActiveFedora
|
2
2
|
module Querying
|
3
|
-
|
4
|
-
|
5
|
-
:destroy_all, :count, :last, :find_with_conditions, :find_in_batches, :find_each, :to=>:all
|
3
|
+
delegate :find, :first, :exists?, :where, :limit, :offset, :order, :delete_all,
|
4
|
+
:destroy_all, :count, :last, :find_with_conditions, :find_in_batches, :find_each, to: :all
|
6
5
|
|
7
6
|
def self.extended(base)
|
8
7
|
base.class_attribute :solr_query_handler
|
@@ -10,7 +9,7 @@ module ActiveFedora
|
|
10
9
|
end
|
11
10
|
|
12
11
|
def default_sort_params
|
13
|
-
[ActiveFedora::SolrService.solr_name(:system_create, :stored_sortable, type: :date)+' asc']
|
12
|
+
[ActiveFedora::SolrService.solr_name(:system_create, :stored_sortable, type: :date)+' asc']
|
14
13
|
end
|
15
14
|
|
16
15
|
end
|
@@ -1,14 +1,11 @@
|
|
1
1
|
module ActiveFedora
|
2
2
|
class Railtie < Rails::Railtie
|
3
|
-
rake_tasks do
|
4
|
-
load "tasks/active_fedora.rake"
|
5
|
-
end
|
6
3
|
|
7
|
-
|
8
|
-
|
4
|
+
initializer 'active_fedora.autoload', before: :set_autoload_paths do |app|
|
5
|
+
app.config.autoload_paths << 'app/models/datastreams'
|
9
6
|
end
|
10
7
|
|
11
|
-
|
8
|
+
initializer "active_fedora.logger" do
|
12
9
|
ActiveSupport.on_load(:active_fedora) { self.logger ||= ::Rails.logger }
|
13
10
|
end
|
14
11
|
|
data/lib/active_fedora/rdf.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
module ActiveFedora
|
2
2
|
module RDF
|
3
3
|
extend ActiveSupport::Autoload
|
4
|
+
autoload :DatastreamIndexing
|
4
5
|
autoload :Fcrepo
|
6
|
+
autoload :Ldp
|
5
7
|
autoload :Indexing
|
6
8
|
autoload :Identifiable
|
7
9
|
autoload :ObjectResource
|
8
10
|
autoload :Persistence
|
9
|
-
autoload :
|
11
|
+
autoload :RelsExt
|
10
12
|
end
|
11
13
|
end
|
@@ -1,326 +1,12 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
# This file generated automatically using vocab-fetch from github.com:fcrepo3/fcrepo/master/fcrepo-server/src/main/resources/rdfs/fedora_relsext_ontology.rdfs
|
3
|
-
# and edited for clarity and additional terms published in different serializations of the voabularies
|
4
1
|
require 'rdf'
|
5
|
-
|
6
|
-
module Fcrepo
|
7
|
-
class System < ::RDF::StrictVocabulary("info:fedora/fedora-system:")
|
8
|
-
term :"ContentModel-3.0",
|
9
|
-
comment: %(Base Fedora 3 CModel cModel).freeze,
|
10
|
-
label: "Fedora 3 Content Model".freeze,
|
11
|
-
subClassOf: "info:fedora/fedora-system:def/model#FedoraObject".freeze,
|
12
|
-
type: "info:fedora/fedora-system:def/model#FedoraObject".freeze
|
13
|
-
term :"FedoraObject-3.0",
|
14
|
-
comment: %(Base Fedora 3 Object cModel).freeze,
|
15
|
-
label: "Fedora 3 Object".freeze,
|
16
|
-
subClassOf: "info:fedora/fedora-system:def/model#FedoraObject".freeze,
|
17
|
-
type: "info:fedora/fedora-system:def/model#FedoraObject".freeze
|
18
|
-
term :"ServiceDefinition-3.0",
|
19
|
-
comment: %(Fedora 3 Service Definition/BDef cModel).freeze,
|
20
|
-
label: "Fedora 3 Service Definition".freeze,
|
21
|
-
subClassOf: "info:fedora/fedora-system:def/model#FedoraObject".freeze,
|
22
|
-
type: "info:fedora/fedora-system:def/model#FedoraObject".freeze
|
23
|
-
term :"ServiceDeployment-3.0",
|
24
|
-
comment: %(Fedora 3 Service Deployment/BMech cModel).freeze,
|
25
|
-
label: "Fedora 3 Service Deployment".freeze,
|
26
|
-
subClassOf: "info:fedora/fedora-system:def/model#FedoraObject".freeze,
|
27
|
-
type: "info:fedora/fedora-system:def/model#FedoraObject".freeze
|
28
|
-
end
|
29
|
-
class Model < ::RDF::StrictVocabulary("info:fedora/fedora-system:def/model#")
|
30
|
-
# Class definitions
|
31
|
-
term :FedoraObject,
|
32
|
-
comment: %(The base type of all objects in Fedora).freeze,
|
33
|
-
label: "FedoraObject".freeze,
|
34
|
-
subClassOf: "rdfs:Resource".freeze,
|
35
|
-
type: "rdfs:Class".freeze
|
36
|
-
term :Datastream,
|
37
|
-
comment: %(Binary data associated with a Fedora object).freeze,
|
38
|
-
label: "Datastream".freeze,
|
39
|
-
subClassOf: "rdfs:Resource".freeze,
|
40
|
-
type: "rdfs:Class".freeze
|
41
|
-
term :ExtProperty,
|
42
|
-
comment: %(Reification of an extension property of a Fedora object used in messaging).freeze,
|
43
|
-
label: "ExtProperty".freeze,
|
44
|
-
subClassOf: "rdf:Property".freeze,
|
45
|
-
type: "rdfs:Class".freeze
|
46
|
-
term :State,
|
47
|
-
comment: %(The state of a Fedora object or datastream).freeze,
|
48
|
-
label: "State".freeze,
|
49
|
-
subClassOf: "rdfs:Resource".freeze,
|
50
|
-
type: "rdfs:Class".freeze
|
51
|
-
term :Active,
|
52
|
-
comment: %(State of an object available in the repository).freeze,
|
53
|
-
label: "Active".freeze,
|
54
|
-
subClassOf: "rdfs:Resource".freeze,
|
55
|
-
type: "info:fedora/fedora-system:def/model#State".freeze
|
56
|
-
term :Deleted,
|
57
|
-
comment: %(State of an object that should be considered deleted, but is not purged).freeze,
|
58
|
-
label: "Deleted".freeze,
|
59
|
-
subClassOf: "rdfs:Resource".freeze,
|
60
|
-
type: "info:fedora/fedora-system:def/model#State".freeze
|
61
|
-
term :Inactive,
|
62
|
-
comment: %(State of an object that should be considered temporarily unavailable).freeze,
|
63
|
-
label: "Inactive".freeze,
|
64
|
-
subClassOf: "rdfs:Resource".freeze,
|
65
|
-
type: "info:fedora/fedora-system:def/model#State".freeze
|
66
|
-
# Property definitions
|
67
|
-
property :altIds,
|
68
|
-
comment: %(The alternate IDs for a datastream).freeze,
|
69
|
-
label: "Alternate IDs".freeze,
|
70
|
-
domain: "info:fedora/fedora-system:def/model#Datastream",
|
71
|
-
range: "xsd:string".freeze,
|
72
|
-
type: "rdf:Property".freeze
|
73
|
-
property :controlGroup,
|
74
|
-
comment: %(indicates whether a Datastream's content is inline XML (X), Managed (M), Referenced (R) or External (E)).freeze,
|
75
|
-
label: "controlGroup".freeze,
|
76
|
-
domain: "info:fedora/fedora-system:def/model#Datastream",
|
77
|
-
range: "xsd:string".freeze,
|
78
|
-
type: "rdf:Property".freeze
|
79
|
-
property :createdDate,
|
80
|
-
comment: %(The UTC datetime an object was created).freeze,
|
81
|
-
label: "createdDate".freeze,
|
82
|
-
domain: "info:fedora/fedora-system:def/model#FedoraObject",
|
83
|
-
range: "xsd:dateTimeStamp".freeze,
|
84
|
-
type: "rdf:Property".freeze
|
85
|
-
property :definesMethod,
|
86
|
-
comment: %(indicates the name of a service method defined in this interface).freeze,
|
87
|
-
label: "definesMethod".freeze,
|
88
|
-
domain: "info:fedora/fedora-system:ServiceDefinition-3.0".freeze,
|
89
|
-
range: "xsd:NCName".freeze,
|
90
|
-
type: "rdf:Property".freeze
|
91
|
-
property :digest,
|
92
|
-
comment: %(indicates the checksum digest of a datastream's contents or the keyword 'none').freeze,
|
93
|
-
label: "digest".freeze,
|
94
|
-
domain: "info:fedora/fedora-system:def/model#Datastream",
|
95
|
-
range: "xsd:string".freeze,
|
96
|
-
type: "rdf:Property".freeze
|
97
|
-
property :digestType,
|
98
|
-
comment: %(indicates either the checksum algorithm or the keyword DISABLED).freeze,
|
99
|
-
label: "digestType".freeze,
|
100
|
-
domain: "info:fedora/fedora-system:def/model#Datastream",
|
101
|
-
range: "xsd:string".freeze,
|
102
|
-
type: "rdf:Property".freeze
|
103
|
-
property :downloadFilename,
|
104
|
-
comment: %(indicates the name to be used when downloading a datastream's contents).freeze,
|
105
|
-
label: "downloadFilename".freeze,
|
106
|
-
domain: "info:fedora/fedora-system:def/model#Datastream",
|
107
|
-
range: "xsd:string".freeze,
|
108
|
-
type: "rdf:Property".freeze
|
109
|
-
property :extProperty,
|
110
|
-
comment: %(indicates an extension property of an object in Fedora in messaging).freeze,
|
111
|
-
label: "extProperty".freeze,
|
112
|
-
domain: "info:fedora/fedora-system:def/model#FedoraObject".freeze,
|
113
|
-
range: "info:fedora/fedora-system:def/model#ExtProperty".freeze,
|
114
|
-
type: "rdf:Property".freeze
|
115
|
-
property :formatURI,
|
116
|
-
comment: %(A URI indicating the format of a datastream's content).freeze,
|
117
|
-
label: "formatURI".freeze,
|
118
|
-
type: "rdf:Property".freeze
|
119
|
-
property :hasModel,
|
120
|
-
comment: %(Indicates the Fedora 3 CModels for this object).freeze,
|
121
|
-
label: "hasModel".freeze,
|
122
|
-
subPropertyOf: "rdf:type".freeze,
|
123
|
-
domain: "info:fedora/fedora-system:FedoraObject-3.0".freeze,
|
124
|
-
range: "info:fedora/fedora-system:ContentModel-3.0".freeze,
|
125
|
-
type: "rdf:Property".freeze
|
126
|
-
property :hasService,
|
127
|
-
comment: %(indicates the Fedora 3 Service Definitions applicable to this CModel).freeze,
|
128
|
-
label: "hasService".freeze,
|
129
|
-
domain: "info:fedora/fedora-system:ContentModel-3.0".freeze,
|
130
|
-
range: "info:fedora/fedora-system:ServiceDefinition-3.0".freeze,
|
131
|
-
type: "rdf:Property".freeze
|
132
|
-
property :isContractorOf,
|
133
|
-
comment: %(indicates the Fedora 3 Content Models this deployment applies to).freeze,
|
134
|
-
label: "".freeze,
|
135
|
-
domain: "info:fedora/fedora-system:ServiceDeployment-3.0".freeze,
|
136
|
-
range: "info:fedora/fedora-system:ContentModel-3.0".freeze,
|
137
|
-
type: "rdf:Property".freeze
|
138
|
-
property :isDeploymentOf,
|
139
|
-
comment: %(indicates the Fedora 3 Service Definitions this deployment implements).freeze,
|
140
|
-
label: "isDeploymentOf".freeze,
|
141
|
-
domain: "info:fedora/fedora-system:ServiceDeployment-3.0".freeze,
|
142
|
-
range: "info:fedora/fedora-system:ServiceDefinition-3.0".freeze,
|
143
|
-
type: "rdf:Property".freeze
|
144
|
-
property :label,
|
145
|
-
comment: %(The label applied to a Fedora object).freeze,
|
146
|
-
label: "label".freeze,
|
147
|
-
domain: "info:fedora/fedora-system:def/model#FedoraObject".freeze,
|
148
|
-
range: "xsd:string".freeze,
|
149
|
-
type: "rdf:Property".freeze
|
150
|
-
property :length,
|
151
|
-
comment: %(indicates the length of a datastream's contents).freeze,
|
152
|
-
label: "length".freeze,
|
153
|
-
domain: "info:fedora/fedora-system:def/model#Datastream".freeze,
|
154
|
-
range: "xsd:nonNegativeInteger".freeze,
|
155
|
-
type: "rdf:Property".freeze
|
156
|
-
property :ownerId,
|
157
|
-
comment: %(indicates the owner of an object).freeze,
|
158
|
-
label: "ownerId".freeze,
|
159
|
-
type: "rdf:Property".freeze
|
160
|
-
property :state,
|
161
|
-
comment: %(indicates the state of the object or datastream).freeze,
|
162
|
-
label: "state".freeze,
|
163
|
-
domain: ["info:fedora/fedora-system:def/model#FedoraObject".freeze,"info:fedora/fedora-system:def/model#Datastream".freeze],
|
164
|
-
range: "info:fedora/fedora-system:def/model#State".freeze,
|
165
|
-
type: "rdf:Property".freeze
|
166
|
-
property :versionable,
|
167
|
-
comment: %(indicates whether a datastream's property and contents changes are being tracked as versions).freeze,
|
168
|
-
label: "versionable".freeze,
|
169
|
-
domain: "info:fedora/fedora-system:def/model#Datastream".freeze,
|
170
|
-
range: "xsd:boolean".freeze,
|
171
|
-
type: "rdf:Property".freeze
|
172
|
-
end
|
173
|
-
class RelsExt < ::RDF::StrictVocabulary("info:fedora/fedora-system:def/relations-external#")
|
2
|
+
class ActiveFedora::RDF::Fcrepo < RDF::StrictVocabulary("http://fedora.info/definitions/v4/repository#")
|
174
3
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#isAnnotationOf).freeze,
|
185
|
-
type: "rdf:Property".freeze
|
186
|
-
property :hasCollectionMember,
|
187
|
-
label: "Has Collection Member".freeze,
|
188
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#hasMember".freeze,
|
189
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#isMemberOfCollection).freeze,
|
190
|
-
type: "rdf:Property".freeze
|
191
|
-
property :hasConstituent,
|
192
|
-
label: "Has Constituent".freeze,
|
193
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#hasPart".freeze,
|
194
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#isConstituentOf).freeze,
|
195
|
-
type: "rdf:Property".freeze
|
196
|
-
property :hasDependent,
|
197
|
-
label: "Has Dependent".freeze,
|
198
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#fedoraRelationship".freeze,
|
199
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#isDependentOf).freeze,
|
200
|
-
type: "rdf:Property".freeze
|
201
|
-
property :hasDerivation,
|
202
|
-
label: "Has Derivation".freeze,
|
203
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#fedoraRelationship".freeze,
|
204
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#isDerivationOf).freeze,
|
205
|
-
type: "rdf:Property".freeze
|
206
|
-
property :hasDescription,
|
207
|
-
comment: %(A generic descriptive relationship between fedora objects. The subject is a fedora object that is being described in some manner and the predicate is a fedora object that represents a descriptive entity that is about the subject. ).freeze,
|
208
|
-
label: "Has Description".freeze,
|
209
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#fedoraRelationship".freeze,
|
210
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#isDescriptionOf).freeze,
|
211
|
-
type: "rdf:Property".freeze
|
212
|
-
property :hasEquivalent,
|
213
|
-
label: "Has Equivalent".freeze,
|
214
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#fedoraRelationship".freeze,
|
215
|
-
type: "rdf:Property".freeze
|
216
|
-
property :hasMember,
|
217
|
-
label: "Has Member".freeze,
|
218
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#hasPart/".freeze,
|
219
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#isMemberOf).freeze,
|
220
|
-
type: "rdf:Property".freeze
|
221
|
-
property :hasMetadata,
|
222
|
-
comment: %(A refinement of the generic descriptive relationship indicating a metadata relationship between fedora objects. The subject is a fedora object and the predicate is a fedora object that represents metadata about the subject. ).freeze,
|
223
|
-
label: "Has Metadata".freeze,
|
224
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#hasDescription".freeze,
|
225
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#isMetadataFor).freeze,
|
226
|
-
type: "rdf:Property".freeze
|
227
|
-
property :hasPart,
|
228
|
-
label: "Has Part".freeze,
|
229
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#fedoraRelationship".freeze,
|
230
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#isPartOf).freeze,
|
231
|
-
type: "rdf:Property".freeze
|
232
|
-
property :hasSubset,
|
233
|
-
label: "Has Subset".freeze,
|
234
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#hasMember".freeze,
|
235
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#isSubsetOf).freeze,
|
236
|
-
type: "rdf:Property".freeze
|
237
|
-
property :isAnnotationOf,
|
238
|
-
comment: %(A refinement of the generic descriptive relationship indicating a commentary relationship between fedora objects. The subject is a fedora object that represents an annotation or comment and the predicate is a fedora object that is being commented upon by the subject.).freeze,
|
239
|
-
label: "Is Annotation Of".freeze,
|
240
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#isDescriptionOf".freeze,
|
241
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#hasAnnotation).freeze,
|
242
|
-
type: "rdf:Property".freeze
|
243
|
-
property :isConstituentOf,
|
244
|
-
label: "Is Constituent Of".freeze,
|
245
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#isPartOf".freeze,
|
246
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#hasConstituent).freeze,
|
247
|
-
type: "rdf:Property".freeze
|
248
|
-
property :isDependentOf,
|
249
|
-
label: "Is Dependent Of".freeze,
|
250
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#fedoraRelationship".freeze,
|
251
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#hasDependent).freeze,
|
252
|
-
type: "rdf:Property".freeze
|
253
|
-
property :isDerivationOf,
|
254
|
-
label: "Is Derivation Of".freeze,
|
255
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#fedoraRelationship".freeze,
|
256
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#hasDerivation).freeze,
|
257
|
-
type: "rdf:Property".freeze
|
258
|
-
property :isDescriptionOf,
|
259
|
-
comment: %(A generic descriptive relationship between fedora objects. The subject is a fedora object that represents a descriptive entity and the predicate is a fedora object that is being described in some manner by the subject.).freeze,
|
260
|
-
label: "Is Description Of".freeze,
|
261
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#fedoraRelationship".freeze,
|
262
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#hasDescription).freeze,
|
263
|
-
type: "rdf:Property".freeze
|
264
|
-
property :isMemberOf,
|
265
|
-
label: "Is Member Of".freeze,
|
266
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#isPartOf".freeze,
|
267
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#hasMember).freeze,
|
268
|
-
type: "rdf:Property".freeze
|
269
|
-
property :isMemberOfCollection,
|
270
|
-
label: "Is Member Of Collection".freeze,
|
271
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#isMemberOf".freeze,
|
272
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#hasCollectionMember).freeze,
|
273
|
-
type: "rdf:Property".freeze
|
274
|
-
property :isMetadataFor,
|
275
|
-
comment: %(A refinement of the generic descriptive relationship indicating a metadata relationship between fedora objects. The subject is a fedora object that represents metadata and the predicate is a fedora object for which the subject serves as metadata.).freeze,
|
276
|
-
label: "Is Metadata For".freeze,
|
277
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#isDescriptionOf".freeze,
|
278
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#hasMetadata).freeze,
|
279
|
-
type: "rdf:Property".freeze
|
280
|
-
property :isPartOf,
|
281
|
-
label: "Is Part Of".freeze,
|
282
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#fedoraRelationship".freeze,
|
283
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#hasPart).freeze,
|
284
|
-
type: "rdf:Property".freeze
|
285
|
-
property :isSubsetOf,
|
286
|
-
label: "Is Subset Of".freeze,
|
287
|
-
subPropertyOf: "info:fedora/fedora-system:def/relations-external#isMemberOf".freeze,
|
288
|
-
"owl:inverseOf" => %(info:fedora/fedora-system:def/relations-external#hasSubset).freeze,
|
289
|
-
type: "rdf:Property".freeze
|
290
|
-
end
|
291
|
-
class View < ::RDF::StrictVocabulary("info:fedora/fedora-system:def/view#")
|
292
|
-
property :disseminates,
|
293
|
-
comment: %(A property used to indicate that an object contains a datastream).freeze,
|
294
|
-
label: "disseminates".freeze,
|
295
|
-
domain: "info:fedora/fedora-system:FedoraObject-3.0".freeze,
|
296
|
-
range: "info:fedora/fedora-system:def/model#Datastream".freeze,
|
297
|
-
type: "rdf:Property".freeze
|
298
|
-
property :disseminationType,
|
299
|
-
comment: %(A property whose object is common to all Datastreams of a given DSID).freeze,
|
300
|
-
label: "dissemination type".freeze,
|
301
|
-
type: "rdf:Property".freeze
|
302
|
-
property :isVolatile,
|
303
|
-
comment: %(A property indicating that a datastream's content is a reference to content external to the repository).freeze,
|
304
|
-
label: "isVolatile".freeze,
|
305
|
-
domain: "info:fedora/fedora-system:def/model#Datastream".freeze,
|
306
|
-
range: "xsd:boolean".freeze,
|
307
|
-
type: "rdf:Property".freeze
|
308
|
-
property :lastModifiedDate,
|
309
|
-
comment: %(UTC datetime of the last change to an object or most recent version of this datastream).freeze,
|
310
|
-
label: "lastModifiedDate".freeze,
|
311
|
-
domain: ["info:fedora/fedora-system:def/model#FedoraObject".freeze,"info:fedora/fedora-system:def/model#Datastream".freeze],
|
312
|
-
range: "xsd:dateTimeStamp".freeze,
|
313
|
-
type: "rdf:Property".freeze
|
314
|
-
property :mimeType,
|
315
|
-
comment: %(The MIME type of this datastream's content).freeze,
|
316
|
-
label: "mimeType".freeze,
|
317
|
-
domain: "info:fedora/fedora-system:def/model#Datastream".freeze,
|
318
|
-
range: "xsd:string".freeze,
|
319
|
-
type: "rdf:Property".freeze
|
320
|
-
property :version,
|
321
|
-
comment: %(indicates Fedora server version in messaging).freeze,
|
322
|
-
label: "Server version".freeze,
|
323
|
-
type: "rdf:Property".freeze
|
324
|
-
end
|
325
|
-
end
|
326
|
-
end
|
4
|
+
# Property definitions
|
5
|
+
property :hasContent, comment: %(Defining where the fedora object has content.)
|
6
|
+
property :mimeType
|
7
|
+
|
8
|
+
property :created
|
9
|
+
property :lastModified
|
10
|
+
property :hasChild
|
11
|
+
|
12
|
+
end
|