Skip to content
perma-idPublic

About

Website source code for w3id.org.

Topics

Resources

Stars

376 stars

Watchers

20 watching

Forks

Latest commit

 

History

16,718 Commits

Folders and files

Repository files navigation

Permanent Identifiers for the Web

This repository holds the website source code for https://w3id.org/, a secure, permanent URL redirection service run by the W3C Permanent Identifier Community Group.

Applications that deal with Linked Data need URLs that stay stable for decades. This service operates like a switchboard: it connects a request for an identifier to wherever that information currently lives, and it can be reconfigured when the information moves.

📖 Documentation

https://w3id.org/docs/

That is where everything lives — what the service is and is not for, how to create and maintain an identifier, how to write and test .htaccess rules, and a catalogue of the mistakes that most often send a pull request back.

New here? docs/overview/index.md
Creating an identifier docs/guides/create-an-id.md
Updating an existing one docs/guides/maintain-an-id.md
Writing .htaccess rules docs/guides/htaccess.md
Testing your changes docs/guides/testing.md
Running Apache locally docs/guides/local-server.md
Rules and common mistakes docs/rules/index.md
FAQ docs/faq.md
Announcements https://w3id.org/docs/news/

AI coding agents should start with AGENTS.md.

Creating an identifier, in short

  1. Fork this repository on GitHub.
  2. Create ids/<your-id>/.htaccess containing your redirect rules and your contact details, including a GitHub username.
  3. Test it, then open a pull request.

A minimal identifier is just this:

# # /my-project/
#
# https://w3id.org/my-project/ redirects to https://example.org/
#
# ## Contact
# This space is administered by:
#
# Firstname Lastname
# firstname@example.org
# GitHub username: exampleuser

RewriteEngine on
RewriteRule ^(.*)$ https://example.org/$1 [R=302,L]

Please read Creating an identifier before opening a pull request. In particular:

  • This service redirects; it does not host files. Do not commit ontologies, schemas, contexts, or documentation to this repository.
  • Only change your own directory under ids/.
  • Test your changes. A syntax error in .htaccess returns a 500 for every URL in that directory.

You can also request a redirect by email — see the FAQ.

Checking your changes

Every pull request is checked automatically. Anything that needs fixing appears as a comment on the changed lines under Files changed, with the full report under Checks, and each finding links to the rule explaining what to do.

Run the same checks yourself first. They report only what your own change is responsible for, and they count work you have not committed yet:

(cd tools/check && npm ci)   # once
node tools/check/bin/w3id-check.js

To look at one directory, name it:

node tools/check/bin/w3id-check.js ids/my-project

See tools/check/README.md for the full set of options and how to add a check, and docs/rules/index.md for the rules themselves.

A clean run is not the whole job: nothing can tell whether your redirect points where you meant it to. See Testing your changes, and Running Apache locally for a server that applies your rules the way the service does.

Note

Adding or updating an identifier requires no build step. The checker in tools/check/ is optional — pull requests are checked automatically — and the tooling in docs/ is only for people editing the documentation site.

Repository layout

Path
ids/ The document root. One directory per identifier.
ids/<id>/.htaccess Redirect rules for that identifier.
ids/<id>/README.md Identifier and maintainer information. Optional.
docs/ Source for https://docs.w3id.org/, built with VitePress.
docs/news/ Announcements about the service, with RSS and Atom feeds.
tools/check/ The automated contribution checks.
tools/server/ A local Apache that serves ids/ the way the service does.
AGENTS.md Instructions for AI coding agents.

Management

The service is operated by a consortium of organisations that have pledged responsibility for keeping it running:

See the documentation for how this works and how to join.

Community

Discussion happens on the public-perma-id@w3.org mailing list. For problems with a specific identifier, use the issue tracker.


Disclaimer

The letters 'w3' in the domain name for this site stand for "World Wide Web". Other than hosting the software for the Permanent Identifier Community Group, the "World Wide Web Consortium" (W3C) is not involved in the support or management of this website in any way.

About

Website source code for w3id.org.

Topics

Resources

Stars

376 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages