{"id":24546787,"url":"https://github.com/materials-data-science-and-informatics/pida","last_synced_at":"2026-01-03T07:13:36.790Z","repository":{"id":42371467,"uuid":"421443881","full_name":"Materials-Data-Science-and-Informatics/PIDA","owner":"Materials-Data-Science-and-Informatics","description":"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.","archived":false,"fork":false,"pushed_at":"2025-01-22T09:44:11.000Z","size":599,"stargazers_count":3,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-22T22:17:00.495Z","etag":null,"topics":["content-negotiation","findability","linked-data","permanent-identifiers","purls","redirecting-urls","semantic-web"],"latest_commit_sha":null,"homepage":"https://purls.helmholtz-metadaten.de/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Materials-Data-Science-and-Informatics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-26T13:49:12.000Z","updated_at":"2025-01-22T09:44:15.000Z","dependencies_parsed_at":"2024-11-01T13:25:42.193Z","dependency_job_id":"6c470fee-4251-41f8-bfe2-6905889e7e49","html_url":"https://github.com/Materials-Data-Science-and-Informatics/PIDA","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Materials-Data-Science-and-Informatics%2FPIDA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Materials-Data-Science-and-Informatics%2FPIDA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Materials-Data-Science-and-Informatics%2FPIDA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Materials-Data-Science-and-Informatics%2FPIDA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Materials-Data-Science-and-Informatics","download_url":"https://codeload.github.com/Materials-Data-Science-and-Informatics/PIDA/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243852598,"owners_count":20358274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["content-negotiation","findability","linked-data","permanent-identifiers","purls","redirecting-urls","semantic-web"],"created_at":"2025-01-22T22:17:10.479Z","updated_at":"2026-01-03T07:13:36.757Z","avatar_url":"https://github.com/Materials-Data-Science-and-Informatics.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Persistent Identifiers for Semantic Artifacts\n[![status](https://img.shields.io/badge/status-up-green)](https://purls.helmholtz-metadaten.de/diso) \n![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed-raw/saidfathalla/PID-Service) \n![GitHub contributors](https://img.shields.io/github/contributors/saidfathalla/PID-Service) \n![GitHub](https://img.shields.io/github/license/saidfathalla/PID-Service)\n\n\n\n\u003cimg style=\"center-align: middle;\" alt=\"Metador Logo\" src=\"https://github.com/Materials-Data-Science-and-Informatics/Logos/blob/main/Pida/Pida_Logo_Text.png\" width=30% height=30% /\u003e \n\n**P**ersistent **ID**entifiers for Semantic **A**rtifacts\n\nPIDA is a service for providing web resources [Persistent URLs (PURLs)](https://en.wikipedia.org/wiki/Persistent_uniform_resource_locator), to ensure reliable access to them.\nTherefore, they remain available for future access by both humans and machines.\n\n## Table of contents\n\n1. [Why use PIDA?](#motivation)\n2. [Technical details](#Technical)\n    * [Secured Communication](#Communication)\n    * [Content Negotiation](#Negotiation)\n        * [Testing](#Testing)\n3. [Managing PURLs](#AddingUpdating)\n4. [Good practice](#Goodpractice)\n5. [License](#License)\n6. [Acknowledgments](#Acknowledgements)\n\nhttps://user-images.githubusercontent.com/21238109/190993847-e6e52f30-fd50-43d8-964e-b19aeba27c89.mp4\n\n## Why use PIDA? \u003ca name=\"motivation\"\u003e\u003c/a\u003e\n\nMany web addresses can decay over time, for example, if the resource moves to another location or the domain name of an organization changes. \nThis process is often known as [Link rot](https://en.wikipedia.org/wiki/Link_rot). \nWhen users try to access a decayed link, they receive an error \n[`404 not found`](https://en.wikipedia.org/wiki/HTTP_404).\n\nPIDA 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. \nUsing a PURL provided by PIDA:\n- a resource can be reliably referenced for future access by humans and software\n- links to resources do not break\n- resources become more easily discoverable -- for example, researchers, their affiliations, and their contributions\n- resources are findable -- one of the key elements in the [FAIR principles](https://www.go-fair.org/fair-principles/) of data management\n- supports [disambiguation](https://en.wikipedia.org/wiki/Disambiguation_(disambiguation)) of entities, for example, authors with the same name can be distinguished from each other\n\n## Technical details\u003ca name=\"Technical\"\u003e\u003c/a\u003e\n\nThe root URL for all PIDA PURLs is `https://purls.helmholtz-metadaten.de/`.\nEach PURL has the form `https://purls.helmholtz-metadaten.de/[prefix]/[subdirectory]`.\n\nPIDA redirects PURL requests from HTTP clients to their real locations on the Internet using per-directory Apache configuration files ([.htaccess](https://httpd.apache.org/docs/2.4/howto/htaccess.html) files) and [HTTP status codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). \n\n### Secured Communication \u003ca name=\"Communication\"\u003e\u003c/a\u003e (*in progress*)\nPIDA uses [HTTPS](https://en.wikipedia.org/wiki/HTTPS) communication protocol to \nprotect the integrity and confidentiality of data between clients and the service. \nThis is especially important for systems that require high levels of security, such as those in the financial, medical, and public infrastructure sectors.\n\n### Content Negotiation \u003ca name=\"Negotiation\"\u003e\u003c/a\u003e\nIt is important to distinguish between URLs for web documents and URIs for semantic web resources: \n- requests to **URLs for web documents** should be sent to HTML documents. \n- requests to **URIs for semantic web resources** should be sent to RDF documents. \nPIDA supports [content negotiation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation) to deliver different representations of a resource from a single URI. When a user or agent requests a URI, content negotiation allows them to specify which representation they require (e.g. document language, file format, or content encoding). \nHaving a PIDA PURL, clients can request either HTML or RDF (with different [RDF serializations](https://en.wikipedia.org/wiki/Resource_Description_Framework#Serialization_formats)) representations.\n\n#### Testing \u003ca name=\"Testing\"\u003e\u003c/a\u003e\nContent negotiation can be tested using the `curl` command-line utility to specify a particular representation of a resource to the same URI.  For example:\n- to request the HTML document describing the \n[scientific events ontology](https://saidfathalla.github.io/SEOontology/Documentation/SEO.html):\n```bash\ncurl -L -H “Accept: text/html” https://purls.helmholtz-metadaten.de/seo\n```\n- to request the RDF file of the ontology:\n```bash\ncurl -L -H “Accept: text/html”  https://purls.helmholtz-metadaten.de/seo\n```\nYou will get results that look like:\n```console\nHTTP/1.1 303 See Other\nDate: Tue, 22 Feb 2022 14:18:54 GMT\nServer: Apache/2.4.29 (Ubuntu)\nAccess-Control-Allow-Origin: *\nLocation: Location: https://saidfathalla.github.io/SEOontology/Documentation/index.html\nContent-Type: text/html; charset=iso-8859-1\n\n```\n\nWindows users can get cURL binaries from [here](http://curl.haxx.se/download.html#Win32).\n\n\n## Managing your PURLs \u003ca name=\"AddingUpdating\"\u003e\u003c/a\u003e\n\nPlease use one of the following options to add or update your PURLs:\n\n- **Issue tracker**: [Create a new issue](https://github.com/saidfathalla/PID-Service/issues/new?assignees=\u0026labels=\u0026template=request-purl.md\u0026title=%5BNew+PURL%5D) (via *Request PURL* issue template) describing the PURL you want to register.\n\n- **Fork this repository**: please read the section [Good practice when submitting requests via pull requests](link) below before using this method.\n\t1. [Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) PIDA [repository](https://github.com/saidfathalla/PIDA).\n \t2. 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).\n\t3. 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.\n\t4. 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. \n\t5. The maintainers of PIDA will check your pull request \nand merge it into the main branch so that you can see your PURL in our repository.\n\n- **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).  \n\n### Good practice when submitting requests via pull requests \u003ca name=\"Goodpractice\"\u003e\u003c/a\u003e\nPlease help the maintainers of PIDA by ensuring you do the following in your pull requests:\n\n* Provide your contact info (e.g. name, email, affiliation ... etc) in the *htaccess*  as comments (cf. [seo](./seo/.htaccess)).\n* Test your links and .htaccess syntax locally.\n* [Squash](https://docs.gitlab.com/ee/user/project/merge_requests/squash_and_merge.html) multiple commits into one commit before a pull request. \n  This helps to ensure a cleaner merge history. \n* Provide descriptive commit details (e.g. resource name, what changes made,... etc).\n* 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)).\n\n## License \u003ca name=\"License\"\u003e\u003c/a\u003e\nThe code is licensed under the [MIT license](./LICENSE). Copyright © 2022. \n\n## Acknowledgments \u003ca name=\"Acknowledgements\"\u003e\u003c/a\u003e\n\n\u003cdiv\u003e\n\u003cimg 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% /\u003e\n\u0026nbsp;\u0026nbsp;\n\u003cimg 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% /\u003e\n\u003c/div\u003e\n\u003cbr /\u003e\n\nThis project was developed at the Institute for Materials Data Science and Informatics\n(IAS-9) of the Jülich Research Center and funded by the Helmholtz Metadata Collaboration\n(HMC), an incubator-platform of the Helmholtz Association within the framework of the\nInformation and Data Science strategic initiative.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaterials-data-science-and-informatics%2Fpida","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaterials-data-science-and-informatics%2Fpida","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaterials-data-science-and-informatics%2Fpida/lists"}