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,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
class Organisation < DogBiscuits::Agent
|
5
|
+
# Local
|
6
|
+
include DogBiscuits::GenericQualifier
|
7
|
+
include DogBiscuits::CountryCode
|
8
|
+
include DogBiscuits::MaintenanceAgencyCode
|
9
|
+
include DogBiscuits::HubDates
|
10
|
+
include DogBiscuits::Pure
|
11
|
+
include DogBiscuits::PureSpecificBehaviour
|
12
|
+
include DogBiscuits::RdfType
|
13
|
+
|
14
|
+
type [::RDF::Vocab::FOAF.Agent,
|
15
|
+
::RDF::Vocab::FOAF.Organization]
|
16
|
+
|
17
|
+
def concept?
|
18
|
+
false
|
19
|
+
end
|
20
|
+
|
21
|
+
def concept_scheme?
|
22
|
+
false
|
23
|
+
end
|
24
|
+
|
25
|
+
def group?
|
26
|
+
false
|
27
|
+
end
|
28
|
+
|
29
|
+
def organisation?
|
30
|
+
true
|
31
|
+
end
|
32
|
+
|
33
|
+
def person?
|
34
|
+
false
|
35
|
+
end
|
36
|
+
|
37
|
+
def place?
|
38
|
+
false
|
39
|
+
end
|
40
|
+
|
41
|
+
def project?
|
42
|
+
false
|
43
|
+
end
|
44
|
+
|
45
|
+
# Generate a preflabel from the name parts. Overwrite the existing preflabel.
|
46
|
+
def add_label
|
47
|
+
label = ''
|
48
|
+
label += ", #{name}" if name.present?
|
49
|
+
label += ", #{dates}" if dates.present?
|
50
|
+
label += ", #{qualifier}" if qualifier.present?
|
51
|
+
label = label.sub(', ', '') if label.starts_with? ', '
|
52
|
+
self.rdfs_label = label
|
53
|
+
add_preflabel
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
class Person < DogBiscuits::Agent
|
5
|
+
# HyBox
|
6
|
+
include DogBiscuits::AlternateName
|
7
|
+
include DogBiscuits::PersonProperties
|
8
|
+
# Additional
|
9
|
+
include DogBiscuits::HubDates
|
10
|
+
include DogBiscuits::Pure # Metadata from PURE web service
|
11
|
+
include DogBiscuits::PureSpecificBehaviour # Behaviour for dealing with PURE records
|
12
|
+
include DogBiscuits::RdfType
|
13
|
+
include DogBiscuits::Orcid
|
14
|
+
|
15
|
+
type [::RDF::Vocab::FOAF.Agent,
|
16
|
+
::RDF::Vocab::FOAF.Person]
|
17
|
+
|
18
|
+
def concept?
|
19
|
+
false
|
20
|
+
end
|
21
|
+
|
22
|
+
def concept_scheme?
|
23
|
+
false
|
24
|
+
end
|
25
|
+
|
26
|
+
def group?
|
27
|
+
false
|
28
|
+
end
|
29
|
+
|
30
|
+
def organisation?
|
31
|
+
false
|
32
|
+
end
|
33
|
+
|
34
|
+
def person?
|
35
|
+
true
|
36
|
+
end
|
37
|
+
|
38
|
+
def place?
|
39
|
+
false
|
40
|
+
end
|
41
|
+
|
42
|
+
def project?
|
43
|
+
false
|
44
|
+
end
|
45
|
+
|
46
|
+
# Generate dates string from birth/death.
|
47
|
+
def add_dates
|
48
|
+
dt = ''
|
49
|
+
dt += "#{birth_date}-" if birth_date.present?
|
50
|
+
dt += death_date if death_date.present?
|
51
|
+
self.dates = dt if dt.present?
|
52
|
+
end
|
53
|
+
|
54
|
+
# Generate the name from parts.
|
55
|
+
def add_name
|
56
|
+
nm = ''
|
57
|
+
nm += prefix if prefix.present?
|
58
|
+
nm += " #{given_name}" if given_name.present?
|
59
|
+
nm += " #{family_name}" if family_name.present?
|
60
|
+
nm += " #{suffix}" if suffix.present?
|
61
|
+
nm = nm.sub(' ', '') if nm.starts_with? ' '
|
62
|
+
self.name = nm if nm.present?
|
63
|
+
end
|
64
|
+
|
65
|
+
# Generate a rdfs label from the name parts. Overwrite the existing label.
|
66
|
+
def add_label
|
67
|
+
add_name
|
68
|
+
add_dates
|
69
|
+
label = name if name.present?
|
70
|
+
label += ", #{dates}" if name.present? && dates.present?
|
71
|
+
self.rdfs_label = label
|
72
|
+
add_preflabel
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
class Concept < Authority
|
5
|
+
include DogBiscuits::GenericAuthorityTerms
|
6
|
+
include DogBiscuits::OwlSameAs
|
7
|
+
include DogBiscuits::SkosRelated
|
8
|
+
include DogBiscuits::ValidateConceptRelated
|
9
|
+
|
10
|
+
# Use for nested schemes.
|
11
|
+
has_and_belongs_to_many :top_concept_of,
|
12
|
+
class_name: 'DogBiscuits::ConceptScheme',
|
13
|
+
predicate: ::RDF::Vocab::SKOS.topConceptOf,
|
14
|
+
inverse_of: :has_top_concept
|
15
|
+
|
16
|
+
# Use only for Broader. Narrower will be added by default as the inverse.
|
17
|
+
has_and_belongs_to_many :broader,
|
18
|
+
class_name: 'DogBiscuits::Concept',
|
19
|
+
predicate: ::RDF::Vocab::SKOS.broader,
|
20
|
+
inverse_of: :narrower
|
21
|
+
has_and_belongs_to_many :narrower,
|
22
|
+
class_name: 'DogBiscuits::Concept',
|
23
|
+
predicate: ::RDF::Vocab::SKOS.narrower,
|
24
|
+
inverse_of: :broader
|
25
|
+
|
26
|
+
# MUST NOT be the same as broader/narrower; validator in place
|
27
|
+
has_and_belongs_to_many :related,
|
28
|
+
class_name: 'DogBiscuits::Concept',
|
29
|
+
predicate: ::RDF::Vocab::SKOS.related,
|
30
|
+
inverse_of: :related
|
31
|
+
|
32
|
+
type [::RDF::URI.intern('http://www.w3.org/2004/02/skos/core#Concept')]
|
33
|
+
|
34
|
+
property :definition, predicate: ::RDF::Vocab::SKOS.definition,
|
35
|
+
multiple: false do |index|
|
36
|
+
index.as :stored_searchable
|
37
|
+
end
|
38
|
+
|
39
|
+
property :exact_match, predicate: ::RDF::Vocab::SKOS.exactMatch do |index|
|
40
|
+
index.as :stored_searchable
|
41
|
+
end
|
42
|
+
|
43
|
+
property :close_match, predicate: ::RDF::Vocab::SKOS.closeMatch do |index|
|
44
|
+
index.as :stored_searchable
|
45
|
+
end
|
46
|
+
|
47
|
+
def agent?
|
48
|
+
false
|
49
|
+
end
|
50
|
+
|
51
|
+
def concept?
|
52
|
+
true
|
53
|
+
end
|
54
|
+
|
55
|
+
def concept_scheme?
|
56
|
+
false
|
57
|
+
end
|
58
|
+
|
59
|
+
def event?
|
60
|
+
false
|
61
|
+
end
|
62
|
+
|
63
|
+
def group?
|
64
|
+
false
|
65
|
+
end
|
66
|
+
|
67
|
+
def organisation?
|
68
|
+
false
|
69
|
+
end
|
70
|
+
|
71
|
+
def person?
|
72
|
+
false
|
73
|
+
end
|
74
|
+
|
75
|
+
def place?
|
76
|
+
false
|
77
|
+
end
|
78
|
+
|
79
|
+
def project?
|
80
|
+
false
|
81
|
+
end
|
82
|
+
|
83
|
+
def topconcept?
|
84
|
+
if top_concept_of.first.is_a? DogBiscuits::ConceptScheme
|
85
|
+
true
|
86
|
+
else
|
87
|
+
false
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
class ConceptScheme < Authority
|
5
|
+
include DogBiscuits::Description
|
6
|
+
|
7
|
+
has_many :concepts, class_name: 'DogBiscuits::Concept', inverse_of: :concept_scheme
|
8
|
+
has_many :organisations, class_name: 'DogBiscuits::Organisation', inverse_of: :concept_scheme
|
9
|
+
has_many :departments, class_name: 'DogBiscuits::Organisation', inverse_of: :concept_scheme
|
10
|
+
has_many :people, class_name: 'DogBiscuits::Person', inverse_of: :concept_scheme
|
11
|
+
has_many :places, class_name: 'DogBiscuits::Place', inverse_of: :concept_scheme
|
12
|
+
has_many :groups, class_name: 'DogBiscuits::Group', inverse_of: :concept_scheme
|
13
|
+
has_many :projects, class_name: 'DogBiscuits::Project', inverse_of: :concept_scheme
|
14
|
+
|
15
|
+
# Used for nested schemes. Will be added automatically via inverse.
|
16
|
+
has_and_belongs_to_many :has_top_concept,
|
17
|
+
class_name: 'DogBiscuits::Concept',
|
18
|
+
predicate: ::RDF::Vocab::SKOS.hasTopConcept,
|
19
|
+
inverse_of: :top_concept_of
|
20
|
+
|
21
|
+
type [::RDF::URI.new('http://www.w3.org/2004/02/skos/core#ConceptScheme')]
|
22
|
+
|
23
|
+
def agent?
|
24
|
+
false
|
25
|
+
end
|
26
|
+
|
27
|
+
def concept?
|
28
|
+
false
|
29
|
+
end
|
30
|
+
|
31
|
+
def concept_scheme?
|
32
|
+
true
|
33
|
+
end
|
34
|
+
|
35
|
+
def event?
|
36
|
+
false
|
37
|
+
end
|
38
|
+
|
39
|
+
def group?
|
40
|
+
false
|
41
|
+
end
|
42
|
+
|
43
|
+
def organisation?
|
44
|
+
false
|
45
|
+
end
|
46
|
+
|
47
|
+
def person?
|
48
|
+
false
|
49
|
+
end
|
50
|
+
|
51
|
+
def place?
|
52
|
+
false
|
53
|
+
end
|
54
|
+
|
55
|
+
def project?
|
56
|
+
false
|
57
|
+
end
|
58
|
+
|
59
|
+
# Ensure rdfs label and pref label and the same.
|
60
|
+
def add_label
|
61
|
+
self.rdfs_label = preflabel if preflabel.present?
|
62
|
+
self.preflabel = rdfs_label if rdfs_label.present?
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
class Event < Authority
|
5
|
+
include DogBiscuits::FoafName
|
6
|
+
include DogBiscuits::GenericAuthorityTerms
|
7
|
+
include DogBiscuits::Identifier
|
8
|
+
include DogBiscuits::Funder
|
9
|
+
include DogBiscuits::StartDate
|
10
|
+
include DogBiscuits::EndDate
|
11
|
+
include DogBiscuits::Location
|
12
|
+
|
13
|
+
type [::RDF::URI.new('http://schema.org/Event')]
|
14
|
+
|
15
|
+
def agent?
|
16
|
+
false
|
17
|
+
end
|
18
|
+
|
19
|
+
def concept?
|
20
|
+
false
|
21
|
+
end
|
22
|
+
|
23
|
+
def concept_scheme?
|
24
|
+
false
|
25
|
+
end
|
26
|
+
|
27
|
+
def group?
|
28
|
+
false
|
29
|
+
end
|
30
|
+
|
31
|
+
def organisation?
|
32
|
+
false
|
33
|
+
end
|
34
|
+
|
35
|
+
def person?
|
36
|
+
false
|
37
|
+
end
|
38
|
+
|
39
|
+
def place?
|
40
|
+
false
|
41
|
+
end
|
42
|
+
|
43
|
+
def project?
|
44
|
+
false
|
45
|
+
end
|
46
|
+
|
47
|
+
def event?
|
48
|
+
true
|
49
|
+
end
|
50
|
+
|
51
|
+
# Generate a rdfs label from the name parts. Overwrite the existing label.
|
52
|
+
def add_label
|
53
|
+
self.rdfs_label = name if name.present?
|
54
|
+
if start_date.present? && end_date.present?
|
55
|
+
self.rdfs_label += " (#{start_date.first} - #{end_date.first})"
|
56
|
+
elsif start_date.present?
|
57
|
+
self.rdfs_label += " (#{start_date.first})"
|
58
|
+
elsif end_date.present?
|
59
|
+
self.rdfs_label += " (#{end_date.first})"
|
60
|
+
end
|
61
|
+
add_preflabel
|
62
|
+
end
|
63
|
+
|
64
|
+
# Generate a preflabel from rdfs label.
|
65
|
+
def add_preflabel
|
66
|
+
self.preflabel = rdfs_label
|
67
|
+
end
|
68
|
+
|
69
|
+
id_blank = proc { |attributes| attributes[:id].blank? }
|
70
|
+
class_attribute :controlled_properties
|
71
|
+
self.controlled_properties = [:location]
|
72
|
+
accepts_nested_attributes_for :location, reject_if: id_blank, allow_destroy: true
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DogBiscuits
|
4
|
+
class Place < Authority
|
5
|
+
include DogBiscuits::PlaceProperties
|
6
|
+
include DogBiscuits::CountryCode
|
7
|
+
include DogBiscuits::Geo
|
8
|
+
include DogBiscuits::OwlSameAs
|
9
|
+
include DogBiscuits::RelatedAuthority
|
10
|
+
include DogBiscuits::GenericAuthorityTerms
|
11
|
+
|
12
|
+
include DogBiscuits::ValidatePlace
|
13
|
+
|
14
|
+
# Possible alternative approach to parent_ADMx
|
15
|
+
# has_and_belongs_to_many :contained_in_place,
|
16
|
+
# class_name: 'DogBiscuits::Place',
|
17
|
+
# predicate: ::RDF::URI.new('https://schema.org/containedInPlace'),
|
18
|
+
# inverse_of: :contains_place
|
19
|
+
# has_and_belongs_to_many :contains_place,
|
20
|
+
# class_name: 'DogBiscuits::Place',
|
21
|
+
# predicate: ::RDF::URI.new('https://schema.org/containsPlace'),
|
22
|
+
# inverse_of: :contained_in_place
|
23
|
+
|
24
|
+
type [::RDF::Vocab::SCHEMA.Place,
|
25
|
+
::RDF::Vocab::EDM.Place]
|
26
|
+
|
27
|
+
def agent?
|
28
|
+
false
|
29
|
+
end
|
30
|
+
|
31
|
+
def concept?
|
32
|
+
false
|
33
|
+
end
|
34
|
+
|
35
|
+
def concept_scheme?
|
36
|
+
false
|
37
|
+
end
|
38
|
+
|
39
|
+
def event?
|
40
|
+
false
|
41
|
+
end
|
42
|
+
|
43
|
+
def group?
|
44
|
+
false
|
45
|
+
end
|
46
|
+
|
47
|
+
def organisation?
|
48
|
+
false
|
49
|
+
end
|
50
|
+
|
51
|
+
def person?
|
52
|
+
false
|
53
|
+
end
|
54
|
+
|
55
|
+
def place?
|
56
|
+
true
|
57
|
+
end
|
58
|
+
|
59
|
+
def project?
|
60
|
+
false
|
61
|
+
end
|
62
|
+
|
63
|
+
# Generate a rdfs label from the name parts. Overwrite the existing label.
|
64
|
+
def add_label
|
65
|
+
label = place_name
|
66
|
+
label = add_adm_parts(label)
|
67
|
+
label += ", #{parent_country}" if parent_country.present?
|
68
|
+
self.rdfs_label = label
|
69
|
+
add_preflabel
|
70
|
+
end
|
71
|
+
|
72
|
+
# Generate a parent parts.
|
73
|
+
def add_adm_parts(label)
|
74
|
+
label += ", #{parent_ADM4}" if parent_ADM4.present?
|
75
|
+
label += ", #{parent_ADM3}" if parent_ADM3.present?
|
76
|
+
label += ", #{parent_ADM2}" if parent_ADM2.present?
|
77
|
+
label += ", #{parent_ADM1}" if parent_ADM1.present?
|
78
|
+
label
|
79
|
+
end
|
80
|
+
|
81
|
+
# Generate a preflabel from rdfs label.
|
82
|
+
def add_preflabel
|
83
|
+
self.preflabel = rdfs_label
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|