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.
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:
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.
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.
It is important to distinguish between URLs for web documents and URIs for semantic web resources:
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:
curl -L -H “Accept: text/html” https://purls.helmholtz-metadaten.de/seo
curl -L -H “Accept: text/html” https://purls.helmholtz-metadaten.de/seo
You will get results that look like:
HTTP/1.1 303 See Other
Date: Tue, 22 Feb 2022 14:18:54 GMT
Server: Apache/2.4.29 (Ubuntu)
Access-Control-Allow-Origin: *
Location: Location: https://saidfathalla.github.io/SEOontology/Documentation/index.html
Content-Type: text/html; charset=iso-8859-1
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% />
<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.