dog_biscuits 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.circleci/config.yml +115 -0
- data/.codeclimate.yml +52 -0
- data/.gitignore +24 -0
- data/.rspec +3 -0
- data/.rubocop.yml +45 -0
- data/.rubocop_todo.yml +92 -0
- data/.travis.yml +18 -0
- data/CODE_OF_CONDUCT.md +36 -0
- data/CONTRIBUTING.md +161 -0
- data/Gemfile +40 -0
- data/LICENSE +14 -0
- data/README.md +98 -0
- data/Rakefile +35 -0
- data/SUPPORT.md +5 -0
- data/bin/console +15 -0
- data/bin/setup +7 -0
- data/dog_biscuits.gemspec +38 -0
- data/lib/dog_biscuits.rb +352 -0
- data/lib/dog_biscuits/actors/apply_authorities.rb +32 -0
- data/lib/dog_biscuits/actors/singular_attributes.rb +17 -0
- data/lib/dog_biscuits/blacklight/commands.rb +118 -0
- data/lib/dog_biscuits/configuration.rb +506 -0
- data/lib/dog_biscuits/importers/authority.rb +65 -0
- data/lib/dog_biscuits/indexers/collection_indexer.rb +10 -0
- data/lib/dog_biscuits/indexers/concerns/indexes_common.rb +58 -0
- data/lib/dog_biscuits/indexers/conference_item_indexer.rb +17 -0
- data/lib/dog_biscuits/indexers/dataset_indexer.rb +25 -0
- data/lib/dog_biscuits/indexers/digital_archival_object_indexer.rb +19 -0
- data/lib/dog_biscuits/indexers/exam_paper_indexer.rb +10 -0
- data/lib/dog_biscuits/indexers/journal_article_indexer.rb +15 -0
- data/lib/dog_biscuits/indexers/package_indexer.rb +19 -0
- data/lib/dog_biscuits/indexers/published_work_indexer.rb +16 -0
- data/lib/dog_biscuits/indexers/thesis_indexer.rb +16 -0
- data/lib/dog_biscuits/models/authorities/agent.rb +78 -0
- data/lib/dog_biscuits/models/authorities/agents/group.rb +59 -0
- data/lib/dog_biscuits/models/authorities/agents/historic_person.rb +55 -0
- data/lib/dog_biscuits/models/authorities/agents/organisation.rb +56 -0
- data/lib/dog_biscuits/models/authorities/agents/person.rb +75 -0
- data/lib/dog_biscuits/models/authorities/concept.rb +91 -0
- data/lib/dog_biscuits/models/authorities/concept_scheme.rb +65 -0
- data/lib/dog_biscuits/models/authorities/event.rb +74 -0
- data/lib/dog_biscuits/models/authorities/place.rb +86 -0
- data/lib/dog_biscuits/models/authorities/project.rb +60 -0
- data/lib/dog_biscuits/models/authority.rb +42 -0
- data/lib/dog_biscuits/models/collections/collection.rb +32 -0
- data/lib/dog_biscuits/models/concerns/behaviours/pure_specific_behaviour.rb +17 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_concept_related.rb +12 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_concept_scheme.rb +16 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_label.rb +12 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_place.rb +12 -0
- data/lib/dog_biscuits/models/concerns/behaviours/work_behaviour.rb +21 -0
- data/lib/dog_biscuits/models/concerns/extended_solr_document.rb +147 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archivematica/archivematica.rb +73 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/access_provided_by.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/country_code.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/hub_dates.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/maintenance_agency_code.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/awarding_institution.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/edition.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/identified_by.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/part.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/part_of.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/series.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/subtitle.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibo/presented_at.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibo/publication_status.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/datacite/resource_type_general.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/abstract.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/access_rights.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/bibliographic_citation.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/contributor.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/creator.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_accepted.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_available.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_copyrighted.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_created.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_issued.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/description.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/extent.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/format.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/identifier.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/language.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/publisher.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/resource_type.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/rights.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/rights_holder.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/simple_versions.rb +18 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/source.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/subject.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dwc/event_date.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/edm/edm_rights.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/fabio/date_collected.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/foaf/based_near.rb +12 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/foaf/foaf_name.rb +16 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/frapo/output_of.rb +18 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/geo/geo.rb +27 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/geonames/country_code.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/geonames/place_properties.rb +66 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/doi.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/isbn.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/official_url.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/orcid.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/for_indexing.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/former_identifier.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/generic_authority_terms.rb +22 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/generic_qualifier.rb +16 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/last_access.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/main_file.rb +24 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/module_code.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/number_of_downloads.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/packaged_by.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/readme_file.rb +26 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/requestor_email.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/mads/related_authority.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/advisor.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/editor.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/funder.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/place_of_publication.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/mods/date_valid.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/owl/owl_same_as.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/premis/has_restriction.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/property_sets/person_properties.rb +92 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/pure/managing_organisation.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/pure/pure.rb +28 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/rdf_type.rb +12 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/rdfs_label.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/related_url.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/alternate_name.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/content_version.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/date_published.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/date_updated.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/department.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/end_date.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/issue_number.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/keyword.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/location.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/pagination.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/start_date.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/volume_number.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_labels.rb +18 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_note.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_related.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/uketd/date_of_award.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/uketd/qualification.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/date_submitted.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/official_url.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/refereed.rb +13 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_labels.rb +9 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_metadata.rb +64 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_rights.rb +10 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/conference_item_metadata.rb +24 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/dataset_metadata.rb +36 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/digital_archival_object_metadata.rb +13 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/exam_paper_metadata.rb +14 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/journal_article_metadata.rb +24 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/package_metadata.rb +13 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/published_work_metadata.rb +26 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/thesis_metadata.rb +17 -0
- data/lib/dog_biscuits/models/filesets/file_set.rb +30 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/canvas.rb +15 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/contained_file.rb +13 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_date_certainty.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_editorial_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry.rb +19 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry_date.rb +10 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry_type.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_is_referenced_by.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_language.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_marginalium.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_as_written.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_descriptor.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_descriptor_as_written.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_related_person.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_related_place.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_role.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_as_written.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_role.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_type.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_related_agent.rb +20 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_related_place.rb +13 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_section_type.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_single_date.rb +10 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_subject.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry.rb +59 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/entry_date.rb +17 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/related_agent.rb +62 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/related_place.rb +28 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/single_date.rb +19 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/folio.rb +42 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/image.rb +25 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/manifest.rb +15 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/register.rb +21 -0
- data/lib/dog_biscuits/models/work.rb +37 -0
- data/lib/dog_biscuits/models/works/conference_item.rb +37 -0
- data/lib/dog_biscuits/models/works/dataset.rb +42 -0
- data/lib/dog_biscuits/models/works/digital_archival_object.rb +28 -0
- data/lib/dog_biscuits/models/works/exam_paper.rb +33 -0
- data/lib/dog_biscuits/models/works/journal_article.rb +37 -0
- data/lib/dog_biscuits/models/works/package.rb +47 -0
- data/lib/dog_biscuits/models/works/published_work.rb +38 -0
- data/lib/dog_biscuits/models/works/thesis.rb +34 -0
- data/lib/dog_biscuits/property_mappings/property_mappings.rb +585 -0
- data/lib/dog_biscuits/railtie.rb +13 -0
- data/lib/dog_biscuits/services/table_based_authority_extended.rb +10 -0
- data/lib/dog_biscuits/services/terms.rb +57 -0
- data/lib/dog_biscuits/services/terms_service.rb +162 -0
- data/lib/dog_biscuits/solr/index_types.rb +33 -0
- data/lib/dog_biscuits/validators/concept_related_validator.rb +13 -0
- data/lib/dog_biscuits/validators/concept_scheme_member_validator.rb +10 -0
- data/lib/dog_biscuits/validators/label_validator.rb +55 -0
- data/lib/dog_biscuits/validators/place_validator.rb +10 -0
- data/lib/dog_biscuits/version.rb +5 -0
- data/lib/dog_biscuits/vocab/borthwick_registers.rb +321 -0
- data/lib/dog_biscuits/vocab/generic.rb +204 -0
- data/lib/dog_biscuits/vocab/oais_archivematica.rb +116 -0
- data/lib/dog_biscuits/vocab/pure_terms.rb +65 -0
- data/lib/dog_biscuits/vocab/uketd.rb +45 -0
- data/lib/dog_biscuits/vocab/ulcc_terms.rb +55 -0
- data/lib/generators/dog_biscuits/USAGE +50 -0
- data/lib/generators/dog_biscuits/authority_generator.rb +55 -0
- data/lib/generators/dog_biscuits/catalog_generator.rb +18 -0
- data/lib/generators/dog_biscuits/dates_generator.rb +98 -0
- data/lib/generators/dog_biscuits/generate_all_generator.rb +29 -0
- data/lib/generators/dog_biscuits/imagify_generator.rb +67 -0
- data/lib/generators/dog_biscuits/install_generator.rb +82 -0
- data/lib/generators/dog_biscuits/locales_generator.rb +20 -0
- data/lib/generators/dog_biscuits/schema_org_generator.rb +20 -0
- data/lib/generators/dog_biscuits/templates/_date_template.html.erb +7 -0
- data/lib/generators/dog_biscuits/templates/app/controllers/catalog_controller.rb +133 -0
- data/lib/generators/dog_biscuits/templates/app/helpers/dog_biscuits_helper.rb +43 -0
- data/lib/generators/dog_biscuits/templates/app/renderers/package_ids_renderer.rb +13 -0
- data/lib/generators/dog_biscuits/templates/app/renderers/packaged_by_ids_renderer.rb +11 -0
- data/lib/generators/dog_biscuits/templates/app/renderers/publication_status_renderer.rb +16 -0
- data/lib/generators/dog_biscuits/templates/app/services/concerns/file_authority_concern.rb +14 -0
- data/lib/generators/dog_biscuits/templates/app/services/concerns/local_authority_concern.rb +18 -0
- data/lib/generators/dog_biscuits/templates/app/services/local_form_metadata_service.rb +15 -0
- data/lib/generators/dog_biscuits/templates/app/views/hyrax/base/_form_metadata.html.erb +23 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_abstract.html.erb +5 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_default.html.erb +6 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_funder.html.erb +8 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_note.html.erb +5 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_part_of.html.erb +17 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_publication_status.html.erb +6 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_refereed.html.erb +5 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_resource_type_general.html.erb +2 -0
- data/lib/generators/dog_biscuits/templates/authority_service.rb.erb +25 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/content_versions.yml +25 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/publication_statuses.yml +19 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/qualification_levels.yml +13 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/qualification_names.yml +31 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/resource_type_generals.yml +47 -0
- data/lib/generators/dog_biscuits/templates/config/dog_biscuits.yml +3 -0
- data/lib/generators/dog_biscuits/templates/config/initializers/catalog_search_builder_overrides.rb +18 -0
- data/lib/generators/dog_biscuits/templates/config/initializers/dog_biscuits.rb +144 -0
- data/lib/generators/dog_biscuits/templates/dog_biscuits.en.yml.erb +11 -0
- data/lib/generators/dog_biscuits/templates/schema_org.yml.erb +4 -0
- data/lib/generators/dog_biscuits/work/USAGE +35 -0
- data/lib/generators/dog_biscuits/work/templates/README +31 -0
- data/lib/generators/dog_biscuits/work/templates/_attribute_rows.html.erb +22 -0
- data/lib/generators/dog_biscuits/work/templates/actor.rb.erb +25 -0
- data/lib/generators/dog_biscuits/work/templates/form.rb.erb +18 -0
- data/lib/generators/dog_biscuits/work/templates/indexer.rb.erb +23 -0
- data/lib/generators/dog_biscuits/work/templates/model.rb.erb +16 -0
- data/lib/generators/dog_biscuits/work/templates/presenter.rb.erb +20 -0
- data/lib/generators/dog_biscuits/work/work_generator.rb +102 -0
- data/lib/tasks/authorities.rake +22 -0
- metadata +476 -0
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
class TableBasedAuthorityExtended < Qa::Authorities::Local::TableBasedAuthority
|
5
|
+
def search(q)
|
6
|
+
return [] if q.blank?
|
7
|
+
output_set(base_relation.where('lower(label) like ?', "%#{q.downcase}%").limit(25))
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
module Terms
|
5
|
+
include Qa::Authorities::WebServiceBase
|
6
|
+
|
7
|
+
class DepartmentsTerms < TermsService
|
8
|
+
def terms_list
|
9
|
+
'departments'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class EventsTerms < TermsService
|
14
|
+
def terms_list
|
15
|
+
'events'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class GroupsTerms < TermsService
|
20
|
+
def terms_list
|
21
|
+
'groups'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class PeopleTerms < TermsService
|
26
|
+
def terms_list
|
27
|
+
'people'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class PlacesTerms < TermsService
|
32
|
+
def terms_list
|
33
|
+
'places'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class OrganisationsTerms < TermsService
|
38
|
+
def terms_list
|
39
|
+
'organisations'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class ProjectsTerms < TermsService
|
44
|
+
def terms_list
|
45
|
+
'projects'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# Conflicts with table-based auth registered by hyrax
|
50
|
+
# Use concepts instead
|
51
|
+
class ConceptsTerms < TermsService
|
52
|
+
def terms_list
|
53
|
+
'concepts'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,162 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
class TermsService < Hyrax::QaSelectService
|
5
|
+
def initialize(_authority = nil)
|
6
|
+
@authority = self
|
7
|
+
end
|
8
|
+
|
9
|
+
# Returns the ConceptScheme id for a given Scheme name
|
10
|
+
#
|
11
|
+
# @return id of the ConceptScheme object
|
12
|
+
def terms_id
|
13
|
+
parse_terms_id_response(
|
14
|
+
ActiveFedora::SolrService.get(
|
15
|
+
"has_model_ssim:\"DogBiscuits::ConceptScheme\" AND preflabel_tesim:\"#{terms_list} \"",
|
16
|
+
{}
|
17
|
+
)
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Returns all items in the authority using preflabel_si to get exact match (string instead of token)
|
22
|
+
def all
|
23
|
+
sort_order = 'preflabel_si asc'
|
24
|
+
parse_authority_response(
|
25
|
+
ActiveFedora::SolrService.get(
|
26
|
+
"inScheme_ssim:\"#{terms_id}\"",
|
27
|
+
fl: 'id,preflabel_tesim,definition_tesim,broader_ssim',
|
28
|
+
rows: 1000,
|
29
|
+
sort: sort_order
|
30
|
+
)
|
31
|
+
)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Find an authority term by id
|
35
|
+
#
|
36
|
+
# @param id [String] for the requested authority term
|
37
|
+
# @return [Hash] all info about the authority
|
38
|
+
def find(id)
|
39
|
+
parse_authority_response(
|
40
|
+
ActiveFedora::SolrService.get(
|
41
|
+
"id:\"#{id}\"",
|
42
|
+
fq: "inScheme_ssim:\"#{terms_id}\"",
|
43
|
+
fl: 'id,preflabel_tesim,definition_tesim,broader_ssim',
|
44
|
+
rows: 1
|
45
|
+
)
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Query an authority for a given word or phrase
|
50
|
+
#
|
51
|
+
# @param q [String] search query
|
52
|
+
# @return [Hash] search results
|
53
|
+
def search(q)
|
54
|
+
parse_authority_response(
|
55
|
+
ActiveFedora::SolrService.get(
|
56
|
+
"preflabel_tesim:*#{CGI.escape(q)}*",
|
57
|
+
fq: "inScheme_ssim:\"#{terms_id}\"",
|
58
|
+
fl: 'id,preflabel_tesim,definition_tesim,broader_ssim',
|
59
|
+
rows: 1000
|
60
|
+
)
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Find the id for an authority term using preflabel_si to get exact match (string instead of token)
|
65
|
+
#
|
66
|
+
# @param term [String] the authority term preflabel
|
67
|
+
# @return the term id
|
68
|
+
def find_id(term)
|
69
|
+
parse_terms_id_response(
|
70
|
+
ActiveFedora::SolrService.get(
|
71
|
+
"preflabel_si:\"#{term}\"",
|
72
|
+
fq: "inScheme_ssim:\"#{terms_id}\"",
|
73
|
+
fl: 'id',
|
74
|
+
rows: 1
|
75
|
+
)
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
# Find the id for an authority term using preflabel and alt_label (use preflabel_si to get exact match (string instead of token))
|
80
|
+
#
|
81
|
+
# @param term [String] the authority term preflabel or alt_label
|
82
|
+
# @return the term id
|
83
|
+
def find_id_with_alts(term)
|
84
|
+
parse_terms_id_response(
|
85
|
+
ActiveFedora::SolrService.get(
|
86
|
+
"preflabel_si:\"#{term}\" OR altlabel_tesim:\"#{term}\")",
|
87
|
+
fq: "inScheme_ssim:\"#{terms_id}\"",
|
88
|
+
fl: 'id',
|
89
|
+
rows: 1
|
90
|
+
)
|
91
|
+
)
|
92
|
+
end
|
93
|
+
|
94
|
+
# Find an authority term by id
|
95
|
+
#
|
96
|
+
# @param id [String] for the requested authority term
|
97
|
+
# @return [String] the preflabel
|
98
|
+
def find_label_string(id)
|
99
|
+
parse_string(
|
100
|
+
ActiveFedora::SolrService.get(
|
101
|
+
"id:\"#{id}\"",
|
102
|
+
fq: "inScheme_ssim:\"#{terms_id}\"",
|
103
|
+
fl: 'preflabel_tesim',
|
104
|
+
rows: 1
|
105
|
+
)
|
106
|
+
)
|
107
|
+
end
|
108
|
+
|
109
|
+
def select_all_options
|
110
|
+
all.map { |e| [e[:label], e[:id]] }
|
111
|
+
end
|
112
|
+
|
113
|
+
private
|
114
|
+
|
115
|
+
# Reformats the data received from the service
|
116
|
+
#
|
117
|
+
# @param response [SolrResponse] for the Solr query
|
118
|
+
# @return [Hash] authority data
|
119
|
+
def parse_authority_response(response)
|
120
|
+
response['response']['docs'].map do |result|
|
121
|
+
hash = {
|
122
|
+
id: result['id']
|
123
|
+
}
|
124
|
+
|
125
|
+
hash[:label] = result['preflabel_tesim'].join if result['preflabel_tesim']
|
126
|
+
hash[:definition] = result['definition_tesim'].join if result['definition_tesim']
|
127
|
+
|
128
|
+
# Only add broader where it exists (ie. subjects)
|
129
|
+
# Assumes only one broader
|
130
|
+
if result['broader_ssim']
|
131
|
+
hash[:broader_id] = result['broader_ssim'].join
|
132
|
+
hash[:broader_label] = find_label_string(result['broader_ssim'].join).join
|
133
|
+
end
|
134
|
+
hash
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
# Parse the id from the solr response
|
139
|
+
#
|
140
|
+
# @param response [SolrResponse] for the Solr query
|
141
|
+
# @return [String] id
|
142
|
+
def parse_terms_id_response(response)
|
143
|
+
id = ''
|
144
|
+
response['response']['docs'].map do |result|
|
145
|
+
id = result['id']
|
146
|
+
end
|
147
|
+
id
|
148
|
+
end
|
149
|
+
|
150
|
+
# Parse the preflabel from the solr response
|
151
|
+
#
|
152
|
+
# @param response [SolrResponse] for the Solr query
|
153
|
+
# @return [String] preflabel
|
154
|
+
def parse_string(response)
|
155
|
+
str = ''
|
156
|
+
response['response']['docs'].map do |result|
|
157
|
+
str = result['preflabel_tesim']
|
158
|
+
end
|
159
|
+
str
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# From JiscRDSS/rdss-samvera
|
3
|
+
# https://github.com/JiscRDSS/rdss-samvera/blob/master/willow/lib/solr/concerns/index_types.rb
|
4
|
+
# Copyright Jisc
|
5
|
+
module DogBiscuits
|
6
|
+
module Solr
|
7
|
+
module IndexTypes
|
8
|
+
extend ActiveSupport::Concern
|
9
|
+
|
10
|
+
included do
|
11
|
+
[:stored_searchable, :stored_sortable, :displayable, :facetable, :symbol].each do |index_type|
|
12
|
+
define_singleton_method(index_type) do |*names|
|
13
|
+
names.each do |name|
|
14
|
+
# use the instance solr_name definition defined in this file unless overridden
|
15
|
+
define_method name do |*options|
|
16
|
+
solr_value(name, index_type, *options)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# Uses the class solr_name definition as defined in Hydra::Controller::ControllerBehaviour and possibly others
|
22
|
+
define_singleton_method(index_type.to_s + '_name') do |name, *options|
|
23
|
+
ActiveFedora.index_field_mapper.solr_name(name, index_type, *options)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def solr_value(name, *options)
|
29
|
+
self[solr_name(name.to_s, *options)]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
class ConceptRelatedValidator < ActiveModel::Validator
|
5
|
+
def validate(record)
|
6
|
+
# related MUST NOT be the same as broader or narrower.
|
7
|
+
record.related.each do |s|
|
8
|
+
record.broader.collect { |b| record.errors[:related] << "related cannot be the same as broader" if b == s }
|
9
|
+
record.narrower.collect { |n| record.errors[:related] << "related cannot be the same as narrower" if n == s }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
class ConceptSchemeMemberValidator
|
5
|
+
def self.validate!(_association, record)
|
6
|
+
# Only authorities can be members of a concept scheme.
|
7
|
+
raise ActiveFedora::AssociationTypeMismatch, "#{record} may not be a member of a concept scheme" unless record.try(:authority?)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
# Validates that there is a rdfs label/preflabel (authorities) or title (works etc.)
|
5
|
+
# FileSet is not validated - title and/or label are optional
|
6
|
+
class LabelValidator < ActiveModel::Validator
|
7
|
+
def validate(record)
|
8
|
+
if record.work?
|
9
|
+
validate_title(record)
|
10
|
+
elsif record.collection?
|
11
|
+
validate_title(record)
|
12
|
+
elsif record.authority?
|
13
|
+
validate_authority(record)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def validate_authority(record)
|
18
|
+
if record.concept?
|
19
|
+
validate_label(record)
|
20
|
+
elsif record.concept_scheme?
|
21
|
+
validate_label(record)
|
22
|
+
elsif record.project?
|
23
|
+
validate_label(record)
|
24
|
+
elsif record.agent?
|
25
|
+
validate_agent(record)
|
26
|
+
elsif record.place?
|
27
|
+
validate_place(record)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def validate_agent(record)
|
32
|
+
if record.person?
|
33
|
+
validate_person(record)
|
34
|
+
elsif record.rdfs_label.blank? && record.name.blank?
|
35
|
+
record.errors[:rdfs_label] << 'You must provide a rdfs label or name for agents'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def validate_person(record)
|
40
|
+
record.errors[:rdfs_label] << 'You must provide a rdfs label or name for people' if record.rdfs_label.blank? && record.given_name.blank? && record.family_name.blank? && record.name.blank?
|
41
|
+
end
|
42
|
+
|
43
|
+
def validate_place(record)
|
44
|
+
record.errors[:rdfs_label] << 'You must provide a rdfs label or name for places' if record.rdfs_label.blank? && record.place_name.blank?
|
45
|
+
end
|
46
|
+
|
47
|
+
def validate_title(record)
|
48
|
+
record.errors[:title] << 'You must provide a title' if record.title.blank?
|
49
|
+
end
|
50
|
+
|
51
|
+
def validate_label(record)
|
52
|
+
record.errors[:rdfs_label] << 'You must provide a preflabel or rdfs label' if record.preflabel.blank? && record.rdfs_label.blank?
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
# Validates that there is a place name
|
5
|
+
class PlaceValidator < ActiveModel::Validator
|
6
|
+
def validate(record)
|
7
|
+
record.errors[:place_name] << 'You must provide a place name' if record.place_name.blank?
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,321 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rdf'
|
4
|
+
module DogBiscuits
|
5
|
+
module Vocab
|
6
|
+
class BorthwickRegisters < RDF::Vocabulary('http://dlib.york.ac.uk/ontologies/borthwick-registers#')
|
7
|
+
# Class definitions
|
8
|
+
term :SingleDate,
|
9
|
+
label: 'Single Date',
|
10
|
+
comment: 'A single date, not a range.',
|
11
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
12
|
+
|
13
|
+
term :EntryDate,
|
14
|
+
label: 'Entry Date',
|
15
|
+
comment: '',
|
16
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
17
|
+
|
18
|
+
term :Entry,
|
19
|
+
label: 'Entry',
|
20
|
+
comment:
|
21
|
+
%(A discreet textual entry on a document. This class has been
|
22
|
+
devised specifically to describe the entries within an
|
23
|
+
Archbishops' Register, but the same concept could apply to
|
24
|
+
entries within a diary or calendar.),
|
25
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
26
|
+
|
27
|
+
term :Folio,
|
28
|
+
label: 'Folio',
|
29
|
+
comment: 'A single folio face, or page.',
|
30
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
31
|
+
|
32
|
+
term :Register,
|
33
|
+
label: 'Register',
|
34
|
+
comment:
|
35
|
+
'A Register, broadly conceived as a document containing
|
36
|
+
entries.',
|
37
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
38
|
+
|
39
|
+
term :HistoricPerson,
|
40
|
+
label: 'Historic Person',
|
41
|
+
subClassOf: 'http://xmlns.com/foaf/0.1/Person',
|
42
|
+
comment:
|
43
|
+
'A person of historical significance, living or dead. Likely to be described with specialist
|
44
|
+
metadata, eg. National Archives Council (NCA) Rules.',
|
45
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
46
|
+
|
47
|
+
term :RelatedPlace,
|
48
|
+
label: 'Related Place',
|
49
|
+
comment:
|
50
|
+
'A place in the context of its relationship to another Object
|
51
|
+
Class. This class is not intended to describe Places
|
52
|
+
independently.',
|
53
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
54
|
+
|
55
|
+
term :RelatedPersonGroup,
|
56
|
+
label: 'Related Person or Group',
|
57
|
+
comment:
|
58
|
+
'A person or group in the context of its relationship to another Object
|
59
|
+
Class. This class is not intended to describe Person or Group
|
60
|
+
independently.',
|
61
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
62
|
+
|
63
|
+
# Property definitions
|
64
|
+
property :asWritten,
|
65
|
+
label: 'As Written',
|
66
|
+
comment:
|
67
|
+
'This property is used to capture the name of an entity as
|
68
|
+
it was expressed in the original resource.',
|
69
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
70
|
+
# doesn't like multiple ranges
|
71
|
+
# range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#EntryDate'.freeze,
|
72
|
+
# range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#RelatedPlace'.freeze,
|
73
|
+
# range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#RelatedPersonGroup'.freeze,
|
74
|
+
domain: 'rdf:Literal'
|
75
|
+
|
76
|
+
property :descriptorAsWritten,
|
77
|
+
label: 'As Written',
|
78
|
+
comment:
|
79
|
+
'This property is a sub property of As Written and is used
|
80
|
+
to capture a descriptor for an Agent as expressed in the
|
81
|
+
original resource.',
|
82
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
83
|
+
subPropertyOf: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#descriptorAsWritten',
|
84
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#RelatedPersonGroup',
|
85
|
+
domain: 'rdf:Literal'
|
86
|
+
|
87
|
+
property :certainty,
|
88
|
+
label: 'Certainty',
|
89
|
+
comment:
|
90
|
+
'This property is used for the certainty of a date.
|
91
|
+
It is recommended that this property is used with a
|
92
|
+
controlled list of values.',
|
93
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
94
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Date'
|
95
|
+
|
96
|
+
property :dateType,
|
97
|
+
label: 'Date Type',
|
98
|
+
comment:
|
99
|
+
'This property is used for the type of date, eg. birth date
|
100
|
+
or document date. It is recommended that this property is
|
101
|
+
used with a controlled list of values.',
|
102
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
103
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#SingleDate'
|
104
|
+
|
105
|
+
property :reference,
|
106
|
+
label: 'Reference',
|
107
|
+
comment:
|
108
|
+
'This property is used for an archival reference.',
|
109
|
+
subPropertyOf: 'dcterms:identifier',
|
110
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
111
|
+
|
112
|
+
property :entryNo,
|
113
|
+
label: 'Entry Number',
|
114
|
+
comment:
|
115
|
+
'This property is used for the entry number of a
|
116
|
+
given Entry.',
|
117
|
+
subPropertyOf: 'dcterms:identifier',
|
118
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
119
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry'
|
120
|
+
|
121
|
+
property :folioNo,
|
122
|
+
label: 'Folio Number',
|
123
|
+
comment:
|
124
|
+
'This property is used for the folio or page number.
|
125
|
+
It should be used in conjunction with Folio Type where
|
126
|
+
anything other than Folios numbers are being captured,
|
127
|
+
eg. for a membrane or page.',
|
128
|
+
subPropertyOf: 'dcterms:identifier',
|
129
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
130
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Folio'
|
131
|
+
|
132
|
+
property :folioFace,
|
133
|
+
label: 'Folio Face',
|
134
|
+
comment:
|
135
|
+
'This property is used for the folio face. Commonly recto
|
136
|
+
or verso. It is recommended that this property is used with
|
137
|
+
a controlled list of values.',
|
138
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
139
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Folio'
|
140
|
+
|
141
|
+
property :folio,
|
142
|
+
label: 'Folio',
|
143
|
+
comment:
|
144
|
+
%(This property is used to associate an entry with the
|
145
|
+
folio(s) on which it appears. It's value should be a URI
|
146
|
+
for the Folio.),
|
147
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
148
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry',
|
149
|
+
domain: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Folio'
|
150
|
+
|
151
|
+
property :continuesOn,
|
152
|
+
label: 'Continues On',
|
153
|
+
comment:
|
154
|
+
'This property is used to indicate that the described Entry
|
155
|
+
continues on the given Folio. Another Entry would be created
|
156
|
+
to capture the continued information, related to the given
|
157
|
+
Folio with
|
158
|
+
http://dlib.york.ac.uk/ontologies/borthwick-registers#folio',
|
159
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
160
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry',
|
161
|
+
domain: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Folio'
|
162
|
+
|
163
|
+
property :marginalia,
|
164
|
+
label: 'Marginalia',
|
165
|
+
comment: 'This property is used for marginal notes.',
|
166
|
+
subPropertyOf: 'dcterms:description',
|
167
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
168
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry',
|
169
|
+
domain: 'rdf:Literal'
|
170
|
+
|
171
|
+
property :summary,
|
172
|
+
label: 'Summary',
|
173
|
+
comment:
|
174
|
+
'This property is used for a brief summary of the
|
175
|
+
entry.',
|
176
|
+
subPropertyOf: 'dcterms:description',
|
177
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
178
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry',
|
179
|
+
domain: 'rdf:Literal'
|
180
|
+
|
181
|
+
property :editorialNote,
|
182
|
+
label: 'Editorial Note',
|
183
|
+
comment:
|
184
|
+
'This property is used for editorial notes, for example
|
185
|
+
notes intended to inform those editing and indexing the
|
186
|
+
records, rather than information for the
|
187
|
+
general user.',
|
188
|
+
subPropertyOf: 'dcterms:description',
|
189
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
190
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry',
|
191
|
+
domain: 'rdf:Literal'
|
192
|
+
|
193
|
+
property :entryType,
|
194
|
+
label: 'Entry Type',
|
195
|
+
comment:
|
196
|
+
'This property is used for the type of Entry. .
|
197
|
+
It is recommended that this property is used with a
|
198
|
+
controlled list of values.',
|
199
|
+
subPropertyOf: 'dcterms:description',
|
200
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
201
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry',
|
202
|
+
domain: 'rdf:Literal'
|
203
|
+
|
204
|
+
property :sectionType,
|
205
|
+
label: 'Section Type',
|
206
|
+
comment:
|
207
|
+
'This property is used for the section type for an Entry.
|
208
|
+
It is recommended that this property is used with a
|
209
|
+
controlled list of values.',
|
210
|
+
subPropertyOf: 'dcterms:description',
|
211
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
212
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry',
|
213
|
+
domain: 'rdf:Literal'
|
214
|
+
|
215
|
+
property :placeType,
|
216
|
+
label: 'Place Type',
|
217
|
+
comment:
|
218
|
+
'This property is used for the type of Place. .
|
219
|
+
It is recommended that this property is used with a
|
220
|
+
controlled list of values.',
|
221
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
222
|
+
|
223
|
+
property :role,
|
224
|
+
label: 'Role',
|
225
|
+
comment:
|
226
|
+
'This property is used for the role played by the
|
227
|
+
described Object Class.
|
228
|
+
It is recommended that this property is used with a
|
229
|
+
controlled list of values.',
|
230
|
+
subPropertyOf: 'http://schema.org/Role',
|
231
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#'
|
232
|
+
# doesn't like multple ranges
|
233
|
+
# range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#EntryDate'.freeze,
|
234
|
+
# range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#RelatedPersonGroup'.freeze,
|
235
|
+
# range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#RelatedPlace'.freeze
|
236
|
+
|
237
|
+
property :descriptor,
|
238
|
+
label: 'Descriptor',
|
239
|
+
comment:
|
240
|
+
'This property is used for the descriptor of the described
|
241
|
+
Agent. A descriptor might be the occupation, status or
|
242
|
+
other significant qualification.
|
243
|
+
It is recommended that this property is used with a
|
244
|
+
controlled list of values.',
|
245
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
246
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#RelatedPersonGroup'
|
247
|
+
|
248
|
+
property :isBlank,
|
249
|
+
label: 'Is Blank',
|
250
|
+
comment:
|
251
|
+
'This property is used to capture if the described Folio
|
252
|
+
is blank.
|
253
|
+
A true or false value is recommended.',
|
254
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
255
|
+
domain: 'rdf:Literal',
|
256
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Folio'
|
257
|
+
|
258
|
+
property :isMissing,
|
259
|
+
label: 'Is Missing',
|
260
|
+
comment:
|
261
|
+
'This property is used to capture if a Folio should exist,
|
262
|
+
but is missing from the sequence.
|
263
|
+
A true or false value is recommended.',
|
264
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
265
|
+
domain: 'rdf:Literal',
|
266
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Folio'
|
267
|
+
|
268
|
+
property :relatedAgentFor,
|
269
|
+
label: 'Related Agent For',
|
270
|
+
comment:
|
271
|
+
'This property creates a link from the described Agent to
|
272
|
+
the Object Class it is related to, for example
|
273
|
+
a Person related to an Entry.',
|
274
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
275
|
+
domain: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry',
|
276
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#RelatedPersonGroup'
|
277
|
+
|
278
|
+
property :relatedPlaceFor,
|
279
|
+
label: 'Related Place For',
|
280
|
+
comment:
|
281
|
+
'This property creates a link from the described Place
|
282
|
+
to the Object Class it is related to, for example
|
283
|
+
a Place related to a Person.',
|
284
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
285
|
+
# doesn't like multiples
|
286
|
+
# domain: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry'.freeze,
|
287
|
+
# domain: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#RelatedPersonGroup'.freeze,
|
288
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#RelatedPlace'
|
289
|
+
|
290
|
+
property :entryDateFor,
|
291
|
+
label: 'Entry Date For',
|
292
|
+
comment:
|
293
|
+
'This property creates a link from the described Date to the
|
294
|
+
Object Class it is related to, for example
|
295
|
+
a Date related to an Entry.',
|
296
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
297
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#EntryDate',
|
298
|
+
domain: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#Entry'
|
299
|
+
|
300
|
+
property :dateFor,
|
301
|
+
label: 'Date For',
|
302
|
+
comment:
|
303
|
+
'This property creates a link from the described Single Date
|
304
|
+
to the Entry Date it is related to.',
|
305
|
+
'rdf:isDefinedBy' => 'http://dlib.york.ac.uk/ontologies/borthwick-registers#',
|
306
|
+
range: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#SingleDate',
|
307
|
+
domain: 'http://dlib.york.ac.uk/ontologies/borthwick-registers#EntryDate'
|
308
|
+
|
309
|
+
# Extra definitions
|
310
|
+
term :'',
|
311
|
+
comment:
|
312
|
+
'Borthwick Institute for Archives
|
313
|
+
ontology for Registers.',
|
314
|
+
'dc:modified' => '2017',
|
315
|
+
'dc:publisher' => '',
|
316
|
+
'dc:title' => 'Borthwick Registers Ontology',
|
317
|
+
label: 'Borthwick Registers',
|
318
|
+
'owl:versionInfo' => ''
|
319
|
+
end
|
320
|
+
end
|
321
|
+
end
|