Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hyphens #2276

Merged
merged 11 commits into from
Jan 4, 2024
Merged

Hyphens #2276

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ services/ResourceService/config/settings.dev.yml
services/TransactionService/config/settings.dev.yml
services/config/settings.dev.yml
install/scripts/composer.json
CONTRIBUTING/
docs/contributing/CONTRIBUTING.md
README/
/.idea/
6 changes: 3 additions & 3 deletions docs/concepts/collection.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Collections are groups of related content that can be viewed or managed as a uni

Islandora provides:

- a mechanism for grouping nodes under a "Parent" node through the generic "Member Of" relationship field (`field_member_of`). This mechanism is also used by _[Paged Content](../user-documentation/paged-content.md)_ and _Compound Objects_. Islandora on its own does not prescribe any particular [Content Type](../user-documentation/content_types.md), so this field can be configured for any [node bundle](https://www.drupal.org/docs/drupal-apis/entity-api/bundles) intended to represent Islandora resources.
- a mechanism for grouping nodes under a "Parent" node through the generic "Member Of" relationship field (`field_member_of`). This mechanism is also used by _[Paged Content](../user-documentation/paged-content.md)_ and _Compound Objects_. Islandora on its own does not prescribe any particular [Content Type](../user-documentation/content-types.md), so this field can be configured for any [node bundle](https://www.drupal.org/docs/drupal-apis/entity-api/bundles) intended to represent Islandora resources.
- a "Children" tab on resources, which provides a management interface to access, re-order, add, or delete the members of a resource based on the Member Of field.
- a "Model" field (`field_model`) which can take various values including "Collection".

Expand All @@ -20,8 +20,8 @@ Islandora provides:

Islandora Starter Site provides:

- a [Content Type](../user-documentation/content_types.md) "Repository Item" that uses the `field_member_of` field, so that users may add nodes of this type to a collection (or paged content, or compound resource),
- A [View](../tutorials/create_update_views.md) showing the members of the collection.
- a [Content Type](../user-documentation/content-types.md) "Repository Item" that uses the `field_member_of` field, so that users may add nodes of this type to a collection (or paged content, or compound resource),
- A [View](../tutorials/create-update-views.md) showing the members of the collection.
- logic (a [Context](../user-documentation/context.md)) such that if a resource is tagged as a "Collection" (in the "Model" field, then a view of its members will show on the collection's page.

For more details, see the tutorial on [How to create and add to a collection](../tutorials/how-to-create-collection.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/node-concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ It also enables a repository manager to create children of nodes directly, indiv

Within a single content type (i.e. metadata profile), Islandora provides the ability to designate
some objects as different "types" than others. Key behaviours, such as what [derivatives](derivatives.md) are created
or what [viewer](../user-documentation/file_viewers.md) is used, can be configured
or what [viewer](../user-documentation/file-viewers.md) is used, can be configured
(see [Contexts](../user-documentation/context.md)) based on this value. The available values
are taxonomy terms in the Islandora Models vocabulary, and they are attached to nodes via the special
mandatory field, "Model" (`field_model`), which must be present on all Islandora content types.
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/rdf.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ media, and taxonomy terms to RDF predicates.

Namepspaces in RDF must be registered before they can be used. The
Islandora module registers a number of namespaces and more can be
added using `hook_rdf_namespaces()`. See [RDF Mappings](../user-documentation/linked_data.md)
added using `hook_rdf_namespaces()`. See [RDF Mappings](../user-documentation/linked-data.md)
for more details.

## Exposure as JSON-LD
Expand All @@ -52,4 +52,4 @@ to the appropriate target.
Files can be stored in Fedora directly, using the Flysystem module. Whether
or not a file is in Fedora, information about that file can be synced (from Drupal Media) into Fedora.

Neither Fedora nor Blazegraph are read as part of the standard Islandora configuration.
Neither Fedora nor Blazegraph are read as part of the standard Islandora configuration.
File renamed without changes.
2 changes: 1 addition & 1 deletion docs/contributing/editing-docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ To edit documentation in Islandora, you must:
- This is only needed if you want to commit changes directly to the documentation. Non-members may still make pull requests.
- be willing to learn [Markdown](http://en.wikipedia.org/wiki/Markdown) - a good [Markdown cheat sheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) can help.
- for example, you may use Markdown syntax to create links and section headings.
- follow the [Islandora Documentation Style Guide](docs_style_guide.md).
- follow the [Islandora Documentation Style Guide](docs-style-guide.md).
- have either an individual [Contributor License Agreement](https://github.com/Islandora/islandora/wiki/Contributor-License-Agreements) (CLA) on file with the Islandora Foundation, or work for an organization that has a corporate Contributor License Agreement on file with the Islandora Foundation.
- for information on how to fill out and submit a Contributor License Agreement (CLA) for yourself and/or your organization visit the [License Agreements](https://islandora.github.io/documentation/contributing/CONTRIBUTING/#license-agreements) section of the "How to contribute" documentation page.
- by participating in the Islandora Community, you are agreeing to act according to the [Islandora Code of Conduct](https://www.islandora.ca/code-of-conduct).
Expand Down
2 changes: 1 addition & 1 deletion docs/models/audio.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Islandora Starter Site sets up a context to automatically create this derivative
* The Audio media is tagged with the "Original File" term (a term with External URI `http://pcdm.org/use#OriginalFile`)
* The media's parent node is tagged with the "Audio" model (a term with External URI `http://purl.org/coar/resource_type/c_18cc`)

The mimetype formats allowed by Homarus are configured in Homarus itself - see [Installing Crayfish](../installation/manual/installing_crayfish.md#homarus-audiovideo-derivatives)
The mimetype formats allowed by Homarus are configured in Homarus itself - see [Installing Crayfish](../installation/manual/installing-crayfish.md#homarus-audiovideo-derivatives)

## Display

Expand Down
10 changes: 10 additions & 0 deletions docs/technical-documentation/docs-build.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,16 @@ You will need to have `mkdocs` software installed locally, as well as a required
`pip3 install mkdocs-git-revision-date-localized-plugin`


- Install plugin to enable redirects:

Windows / Linux:

`sudo -H pip install mkdocs-redirects`

macOS:

`pip3 install mkdocs-redirects`


- Install Material theme:

Expand Down
2 changes: 1 addition & 1 deletion docs/tutorials/create-a-resource-node.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

## Overview

This tutorial will walk you through adding a piece of digital content (an image and some metadata) into an Islandora repository, creating an Islandora [Resource Node](../user-documentation/content_models.md).
This tutorial will walk you through adding a piece of digital content (an image and some metadata) into an Islandora repository, creating an Islandora [Resource Node](../user-documentation/content-models.md).
At the end, you will have metadata in a Drupal node, a file stored in Fedora, and derivatives automatically created.

!!! Tip "Video version available"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ another content type for generic repository objects that share a more general se
A resource node's content type is set on its creation and is immutable.
The section on [metadata](metadata.md) describes in more detail how fields on Islandora objects work.

Configuring fields (adding, editing, removing) is usually done through the Manage > Content types interface, as is described in the tutorial, [Create/Update a Content Type](content_types.md).
Configuring fields (adding, editing, removing) is usually done through the Manage > Content types interface, as is described in the tutorial, [Create/Update a Content Type](content-types.md).

Islandora has a notion of a _content model_, which is used to identify what type of content is
being represented by a node (e.g. an image, a video, a collection of other items, etc...). This is done
Expand Down Expand Up @@ -177,7 +177,7 @@ on the **Reorder Children** tab to adjust the order in which they display.
The following pages expand on the concepts discussed above:

- [Media](media.md)
- Content Types: [Metadata](metadata.md#content-types) -- [Create / Update a Content Type](content_types.md)
- Content Types: [Metadata](metadata.md#content-types) -- [Create / Update a Content Type](content-types.md)

### Copyright and Usage

Expand All @@ -201,7 +201,7 @@ The typical elements of a resource node:

- A content type defining metadata fields defined for the node. A content type may include any number of custom fields defined to store descriptive metadata about the object represented by the node. To function as an Islandora resource node, a content type must define two further fields:
- A field denoting the 'type' of thing represented by the node (image, book, newspaper, etc.). The value of this field is used by Islandora to control views, derivative processing, and other behavior.[^1]
- A field in which to record the node's [membership](content_models.md#members) in another node. If populated, this field creates a hierarchical relationship between parent (the node recorded in the field) and child (the node in which the parent is recorded). This may be left empty, but is required for building hierarchies for collections, subcollections, and members of collections, as well as objects (books, "compound objects", etc.) consisting of [paged content](paged-content.md).[^2]
- A field in which to record the node's [membership](content-models.md#members) in another node. If populated, this field creates a hierarchical relationship between parent (the node recorded in the field) and child (the node in which the parent is recorded). This may be left empty, but is required for building hierarchies for collections, subcollections, and members of collections, as well as objects (books, "compound objects", etc.) consisting of [paged content](paged-content.md).[^2]
- Media files (the actual files of JPEGs, MP3s, .zip, etc.) that get loaded through the form
- Derivative files (thumbnails, web-friendly service files, technical metadata, and more)

Expand Down
4 changes: 2 additions & 2 deletions docs/user-documentation/extending.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ We offer this list for discovery, but do not officially provide support for any

## Recipes

- [Amazon Alexa](recipes/alexa_search.md) - This recipe explains how to access Islandora with Amazon Alexa.
- [Amazon Alexa](recipes/alexa-search.md) - This recipe explains how to access Islandora with Amazon Alexa.
- [Collection Searching](https://github.com/Islandora-Labs/Islandora-Cookbook/blob/main/recipes/collection_search.md) -
This recipe provides instructions how to configure a shallow or deep search in a specific collection.
- [Date Range Slider Facet](https://github.com/Islandora-Labs/Islandora-Cookbook/blob/main/recipes/date_range_slider_facet.md) - This recipe explains how to include a facet for date field(s) that presents itself as a range slider.
Expand Down Expand Up @@ -118,4 +118,4 @@ A tool for automatically submitting the contents of your site to Archive.org. Th
## Other resources

- [Drupal Contributed Modules](https://www.drupal.org/docs/8/modules)
- [Drupal Contributed Themes](https://www.drupal.org/docs/8/themes)
- [Drupal Contributed Themes](https://www.drupal.org/docs/8/themes)
6 changes: 3 additions & 3 deletions docs/user-documentation/metadata.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@

<!-- Next revision: check status of changing 'bundles' to 'entity sub-types' (https://www.drupal.org/project/drupal/issues/1380720). -->

As described in the [resource nodes section](content_models.md#resource-nodes), Islandora digital objects are comprised of _Drupal nodes_ for descriptive metadata, _Drupal media_ for technical metadata, and _Drupal files_ for the binary objects. This section describes how Islandora uses and extends Drupal fields to manage descriptive metadata.
As described in the [resource nodes section](content-models.md#resource-nodes), Islandora digital objects are comprised of _Drupal nodes_ for descriptive metadata, _Drupal media_ for technical metadata, and _Drupal files_ for the binary objects. This section describes how Islandora uses and extends Drupal fields to manage descriptive metadata.

## Content Types

In Drupal, Nodes come in different subtypes called [Content Type](../user-documentation/glossary#content-type). These let you define a type of content ("Article" and "Basic Page" are Drupal defaults and "Repository Item" is an Islandora specific example), the set of metadata fields that are attached to that content, and how those fields can be edited and displayed. Each [Content Type](../user-documentation/glossary#content-type) is essentially a metadata profile that can be used for a piece of web content, or to describe a digital resource. You can create your own [Content Types](../user-documentation/glossary#content-type) for your Islandora project or use a pre-defined one like Repository Item from the Islandora Starter Site. We will go over the metadata specific aspects of Content Types below, but for a fuller walk-through of creating a [Content Type](../user-documentation/glossary#content-type) [see here](content_types.md#create-a-content-type).
In Drupal, Nodes come in different subtypes called [Content Type](../user-documentation/glossary#content-type). These let you define a type of content ("Article" and "Basic Page" are Drupal defaults and "Repository Item" is an Islandora specific example), the set of metadata fields that are attached to that content, and how those fields can be edited and displayed. Each [Content Type](../user-documentation/glossary#content-type) is essentially a metadata profile that can be used for a piece of web content, or to describe a digital resource. You can create your own [Content Types](../user-documentation/glossary#content-type) for your Islandora project or use a pre-defined one like Repository Item from the Islandora Starter Site. We will go over the metadata specific aspects of Content Types below, but for a fuller walk-through of creating a [Content Type](../user-documentation/glossary#content-type) [see here](content-types.md#create-a-content-type).

Not all [Content Types](../user-documentation/glossary#content-type) in your Drupal site need be [Islandora Resource Nodes](content_models.md#resource-nodes). Making a [Content Type](../user-documentation/glossary#content-type) a Resource Node will associate Islandora specific behaviours (such as syncing to Fedora or causing derivatives to be generated) with it. The decision to make a content an Islandora resource node is left to the discretion of the site manager. In Islandora, a "resource node" is usually considered a descriptive record for "a thing", and is conceptually similar to an "Islandora Object" in 7.x, i.e. a "Fedora Object" in Fedora 3.x and below. Read more on configuring a [Content Type](../user-documentation/glossary#content-type) to be treated as a [Resource Node](content_types.md#create-a-content-type).
Not all [Content Types](../user-documentation/glossary#content-type) in your Drupal site need be [Islandora Resource Nodes](content-models.md#resource-nodes). Making a [Content Type](../user-documentation/glossary#content-type) a Resource Node will associate Islandora specific behaviours (such as syncing to Fedora or causing derivatives to be generated) with it. The decision to make a content an Islandora resource node is left to the discretion of the site manager. In Islandora, a "resource node" is usually considered a descriptive record for "a thing", and is conceptually similar to an "Islandora Object" in 7.x, i.e. a "Fedora Object" in Fedora 3.x and below. Read more on configuring a [Content Type](../user-documentation/glossary#content-type) to be treated as a [Resource Node](content-types.md#create-a-content-type).

### Fields

Expand Down
2 changes: 1 addition & 1 deletion docs/user-documentation/paged-content.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Paged Content

Paged content, such as books, periodicals, photographs with the front and back, etcetera,
can use the [membership](content_models.md#members) structure provided by Islandora, namely, `field_member_of`.
can use the [membership](content-models.md#members) structure provided by Islandora, namely, `field_member_of`.
This involves creating a resource node for the root record (i.e. the entire book or the photograph)
and child resource nodes for each sub-component (e.g. "Page 1", "Page 2", etc., or "recto" and "verso")
with their corresponding media. Each "child" resource node contains a reference to their "parent" resource node
Expand Down
24 changes: 24 additions & 0 deletions docs/user-documentation/versioning.wiki
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<span id="versioning"></span>
= Versioning =

As a user of an Islandora repository, you may be wondering - Is this content being versioned? Could I restore from a previous version if I needed to? Can I see a list of versions for an object? The answer to these questions is two-fold, and largely yes. The architecture of Islandora provides users with a Drupal implementation and a Fedora implementation which are connected in Islandora.

!!! note “Islandora Software Versioning” Looking for information about versions of Islandora itself? The latest Islandora follows [https://semver.org/ semantic versioning]. Previously, Islandora’s versions were tied to the version of Drupal and numbered in order of release, such as [https://wiki.lyrasis.org/display/ISLANDORA6131/Islandora Islandora 6.x-13.1] or [https://wiki.lyrasis.org/display/ISLANDORA/Start Islandora 7.x-1.13]. [[../technical-documentation/versioning|More information]].

<span id="drupal-revisioning"></span>
== Drupal Revisioning ==

Drupal provides a concept of revisions which allows you to track the differences between multiple versions of your content and revert to older ones. The list of revisions for a node are available at http://localhost:8000/node/1/revisions. There are [https://www.drupal.org/docs/8/administering-a-drupal-8-site/node-revisions Drupal docs] on revisioning. Media objects are also versioned in Drupal but there is not a UI component for this - [https://github.com/Islandora/documentation/issues/1035 see related issue].

<span id="fedora-and-memento"></span>
== Fedora and Memento ==

Fedora implements the [http://mementoweb.org/about/ Memento] specification for versioning resources, which is a time-based HTTP framework. Fedora provides [https://wiki.lyrasis.org/display/FEDORA5x/Versioning documentation] as well as an [https://wiki.lyrasis.org/display/FEDORA5x/RESTful+HTTP+API+-+Versioning API implementation].

<span id="basic-data-flow"></span>
== Basic Data Flow ==

# A node or media object is created or updated in Drupal.
# When an entity is revisionable, and it isn’t the initial creation, it [https://github.com/Islandora/islandora/blob/8.x-1.x/src/EventGenerator/EventGenerator.php#L109 adds a flag] to the event object that gets passed to Alpaca.
# The [https://github.com/Islandora/Alpaca/tree/dev/islandora-indexing-fcrepo islandora-indexing-fcrepo module] of Alpaca looks for that flag and fires a call to the [https://github.com/Islandora/Crayfish/blob/dev/Milliner/src/app.php#L52 versioning endpoint] of [https://github.com/Islandora/Crayfish/tree/dev/Milliner Milliner].
# Milliner uses the [https://github.com/Islandora/chullo/blob/dev/src/FedoraApi.php#L320 Chullo library] to [https://github.com/Islandora/Crayfish/blob/dev/Milliner/src/Service/MillinerService.php#L551 create a version] in Fedora.
Loading