Materials-Data-Science-and-Informatics / PIDA

PIDA is a service for providing web resources with Permanent URLs (PURLs), to ensure they remain available and can be accessed reliably remain available for future access by both humans and machines.
https://purls.helmholtz-metadaten.de/
MIT License
3 stars 5 forks source link
content-negotiation findability linked-data permanent-identifiers purls redirecting-urls semantic-web

Persistent Identifiers for Digital Assets

status GitHub closed pull requests GitHub contributors GitHub

Metador Logo

Persistent Identifiers for Digital Assets

PIDA is a service for providing web resources Persistent URLs (PURLs), to ensure reliable access to them. Therefore, they remain available for future access by both humans and machines.

Table of contents

  1. Why use PIDA?
  2. Technical details
  3. Managing PURLs
  4. Good practice
  5. License
  6. Acknowledgments

https://user-images.githubusercontent.com/21238109/190993847-e6e52f30-fd50-43d8-964e-b19aeba27c89.mp4

Why use PIDA?

Many web addresses can decay over time, for example, if the resource moves to another location or the domain name of an organization changes. This process is often known as Link rot. When users try to access a decayed link, they receive an error 404 not found.

PIDA provides a long-lasting reference to a digital object -- such as an article, dataset, video, person, or organization -- which consistently identifies that object regardless of the object’s location on the Internet. Using a PURL provided by PIDA:

Technical details

The root URL for all PIDA PURLs is https://purls.helmholtz-metadaten.de/. Each PURL has the form https://purls.helmholtz-metadaten.de/[prefix]/[subdirectory].

PIDA redirects PURL requests from HTTP clients to their real locations on the Internet using per-directory Apache configuration files (.htaccess files) and HTTP status codes.

Secured Communication (in progress)

PIDA uses HTTPS communication protocol to protect the integrity and confidentiality of data between clients and the service. This is especially important for systems that require high levels of security, such as those in the financial, medical, and public infrastructure sectors.

Content Negotiation

It is important to distinguish between URLs for web documents and URIs for semantic web resources:

Testing

Content negotiation can be tested using the curl command-line utility to specify a particular representation of a resource to the same URI. For example:



Windows users can get cURL binaries from [here](http://curl.haxx.se/download.html#Win32).

## Managing your PURLs <a name="AddingUpdating"></a>

Please use one of the following options to add or update your PURLs:

- **Issue tracker**: [Create a new issue](https://github.com/saidfathalla/PID-Service/issues/new?assignees=&labels=&template=request-purl.md&title=%5BNew+PURL%5D) (via *Request PURL* issue template) describing the PURL you want to register.

- **Fork this repository**: please read the section [Good practice when submitting requests via pull requests](link) below before using this method.
    1. [Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) PIDA [repository](https://github.com/saidfathalla/PIDA).
    2. Prepare your [.htaccess](https://httpd.apache.org/docs/2.4/howto/htaccess.html) file. We recommend using [HTAGen tool](https://github.com/saidfathalla/HTAGen-tool).
    3. Add or update your entries and [commit](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project) your changes.
    4. Submit a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) for your changes. 
    5. The maintainers of PIDA will check your pull request 
and merge it into the main branch so that you can see your PURL in our repository.

- **E-mail**: To register a new PURL, you can send an email to [PIDA maintainers](https://purls.helmholtz-metadaten.de/index.html#contact-grid-48245) with the [Request-a-new-PURL](./assets/Request-a-new-PURL-sheet.xlsx) spreadsheet attached. Please ensure you include all necessary information in the spreadsheet (e.g. prefix, resource URL, resource versions... etc).  

### Good practice when submitting requests via pull requests <a name="Goodpractice"></a>
Please help the maintainers of PIDA by ensuring you do the following in your pull requests:

* Provide your contact info (e.g. name, email, affiliation ... etc) in the *htaccess*  as comments (cf. [seo](./seo/.htaccess)).
* Test your links and .htaccess syntax locally.
* [Squash](https://docs.gitlab.com/ee/user/project/merge_requests/squash_and_merge.html) multiple commits into one commit before a pull request. 
  This helps to ensure a cleaner merge history. 
* Provide descriptive commit details (e.g. resource name, what changes made,... etc).
* Add a README.md file to your directory that gives a brief overview of what this PID redirects to (see [prima/README.md](/prima/README.md)).

## License <a name="License"></a>
The code is licensed under the [MIT license](./LICENSE). Copyright © 2022. 

## Acknowledgments <a name="Acknowledgements"></a>

<div>
<img style="vertical-align: middle;" alt="HMC Logo" src="https://github.com/Materials-Data-Science-and-Informatics/Logos/raw/main/HMC/HMC_Logo_M.png" width=50% height=50% />
&nbsp;&nbsp;
<img style="vertical-align: middle;" alt="FZJ Logo" src="https://github.com/Materials-Data-Science-and-Informatics/Logos/raw/main/FZJ/FZJ.png" width=30% height=30% />
</div>
<br />

This project was developed at the Institute for Materials Data Science and Informatics
(IAS-9) of the Jülich Research Center and funded by the Helmholtz Metadata Collaboration
(HMC), an incubator-platform of the Helmholtz Association within the framework of the
Information and Data Science strategic initiative.