dog_biscuits 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|