From 16a2eae2941d22552da45478f4524cd8760ee7ae Mon Sep 17 00:00:00 2001 From: tettoni Date: Mon, 12 May 2025 11:12:25 +0200 Subject: [PATCH 001/111] Doc: clarification of SDOs involved, contact at CEN/CENELEC, and invitation to other SDOs to liaise with us. --- standards/README.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/standards/README.md b/standards/README.md index 0c209e5083..422c459a93 100644 --- a/standards/README.md +++ b/standards/README.md @@ -2,18 +2,25 @@ Permanent URLs jointly defined and managed by 4 International Standards Organizations: -- [CEN/CENELEC](https://www.cencenelec.eu/) - European Committee for Standardization & European Electrotechnical Committee for Standardization. -- [IEC](https://www.iec.ch/) - International Electrotechnical Commission -- [ISO](https://www.iso.org/home.html) - International Organization for Standardization +- [CEN/CENELEC](https://www.cencenelec.eu/) - The European Committee for Standardization & European Committee for Electrotechnical Standardization. +- [IEC](https://www.iec.ch/) - The International Electrotechnical Commission +- [ISO](https://www.iso.org/home.html) - The International Organization for Standardization URL redirections defined in this directory and subdirectories are used by IT solutions specified and implemented by joint projects of the above organizations. +> [!NOTE] +> Administrators of Standards Development Organizations (with global scope), +> please contact the IEC and ISO maintainers below if you wish to register redirections +> for your projects. + The first project to rely on ```w3id``` instead of ```purl``` URLs is [IEC/ISO SMART](https://www.iso.org/smart). -Allowed maintainers of these redirects are: -- Laurent Tettoni, tettoni@iso.org, github: [ltettoni](https://github.com/ltettoni) -- Stéphane da Costa Silva, sco@iec.ch, github: [stephanecosta](https://github.com/stephanecosta) -- Mikalai Zubok, Mikalai_Zubok@epam.com, github: [mzubok](https://github.com/mzubok) +Allowed maintainers of the "/standards" identifier are: + +- For ISO: Laurent Tettoni, tettoni@iso.org, github: [ltettoni](https://github.com/ltettoni) +- For IEC: Stéphane da Costa Silva, sco@iec.ch, github: [stephanecosta](https://github.com/stephanecosta) +- On behalf of IEC: Mikalai Zubok, Mikalai_Zubok@epam.com, github: [mzubok](https://github.com/mzubok) +- For CCMC (the [CEN-CENELEC Management Centre](https://www.cencenelec.eu/management-centre/)): Eric Cornez, ecornez@cencenelec.eu From 9baced3c840e89f7ff3d6fd4f9726c856723ec18 Mon Sep 17 00:00:00 2001 From: tettoni Date: Mon, 12 May 2025 13:54:01 +0200 Subject: [PATCH 002/111] Improve invitation message --- standards/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/standards/README.md b/standards/README.md index 422c459a93..ce189862c0 100644 --- a/standards/README.md +++ b/standards/README.md @@ -11,9 +11,9 @@ used by IT solutions specified and implemented by joint projects of the above organizations. > [!NOTE] -> Administrators of Standards Development Organizations (with global scope), -> please contact the IEC and ISO maintainers below if you wish to register redirections -> for your projects. +> Administrators of other globally-scoped Standards Development Organizations, +> if you wish to register redirections for your projects +> please contact the IEC and ISO maintainers mentioned below. The first project to rely on ```w3id``` instead of ```purl``` URLs is [IEC/ISO SMART](https://www.iso.org/smart). From 7a24ad0688c4c6e34d8479d6695cc2387fa23944 Mon Sep 17 00:00:00 2001 From: Thorvaldur Jochumsson Date: Thu, 19 Mar 2026 07:53:52 +0100 Subject: [PATCH 003/111] Add h2hoa and nyhkb w3id namespace --- jochumsson/h2hoa/.htaccess | 3 +++ jochumsson/h2hoa/README.md | 11 +++++++++++ jochumsson/nyhkb/.htaccess | 3 +++ jochumsson/nyhkb/README.md | 11 +++++++++++ 4 files changed, 28 insertions(+) create mode 100644 jochumsson/h2hoa/.htaccess create mode 100644 jochumsson/h2hoa/README.md create mode 100644 jochumsson/nyhkb/.htaccess create mode 100644 jochumsson/nyhkb/README.md diff --git a/jochumsson/h2hoa/.htaccess b/jochumsson/h2hoa/.htaccess new file mode 100644 index 0000000000..19483f8aec --- /dev/null +++ b/jochumsson/h2hoa/.htaccess @@ -0,0 +1,3 @@ +RewriteEngine On +RewriteRule ^$ https://jochumsson.github.io/h2hoa/h2hoa.ttl [R=302,L] +RewriteRule ^(.*)$ https://jochumsson.github.io/h2hoa/$1 [R=302,L] diff --git a/jochumsson/h2hoa/README.md b/jochumsson/h2hoa/README.md new file mode 100644 index 0000000000..392d3b15b1 --- /dev/null +++ b/jochumsson/h2hoa/README.md @@ -0,0 +1,11 @@ +# w3id for H2HOA Ontology + +Persistent identifier for the H2HOA ontology by Thorvaldur Jochumsson, github id jochumsson + +Namespace: https://w3id.org/jochumsson/h2hoa + +Maintainer: Thorvaldur Jochumsson +GitHub ID: jochumsson +GitHub profile: https://github.com/jochumsson + +Repository: https://github.com/jochumsson/h2hoa diff --git a/jochumsson/nyhkb/.htaccess b/jochumsson/nyhkb/.htaccess new file mode 100644 index 0000000000..b4b1c3febe --- /dev/null +++ b/jochumsson/nyhkb/.htaccess @@ -0,0 +1,3 @@ +RewriteEngine On +RewriteRule ^$ https://jochumsson.github.io/h2hoa/nyhkb.ttl [R=302,L] +RewriteRule ^(.*)$ https://jochumsson.github.io/h2hoa/$1 [R=302,L] diff --git a/jochumsson/nyhkb/README.md b/jochumsson/nyhkb/README.md new file mode 100644 index 0000000000..2f425f28cf --- /dev/null +++ b/jochumsson/nyhkb/README.md @@ -0,0 +1,11 @@ +# w3id for NYHKB Knowledge Base + +Persistent identifier for the NYHKB knowledge base by Thorvaldur Jochumsson, github id jochumsson + +Namespace: https://w3id.org/jochumsson/nyhkb + +Maintainer: Thorvaldur Jochumsson +GitHub ID: jochumsson +GitHub profile: https://github.com/jochumsson + +Repository: https://github.com/jochumsson/h2hoa From 9d0070eb435418deed16e93953b2f20a0fa8c6d7 Mon Sep 17 00:00:00 2001 From: Katerina Gkirtzou Date: Thu, 19 Mar 2026 10:47:22 +0100 Subject: [PATCH 004/111] lang-dcat-ap - update redirections to Release 0.9.2 --- lang-dcat-ap/.htaccess | 4 ++-- lang-dcat-ap/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lang-dcat-ap/.htaccess b/lang-dcat-ap/.htaccess index 7035b8b3d1..487e86c8f6 100644 --- a/lang-dcat-ap/.htaccess +++ b/lang-dcat-ap/.htaccess @@ -16,14 +16,14 @@ RewriteEngine On RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) RewriteCond %{HTTP_ACCEPT} text/html [OR] RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] -RewriteRule ^$ https://languagedcat-ap.github.io/LanguageDCAT-AP/releases/0.9.1/ [R=303,NE,L] +RewriteRule ^$ https://languagedcat-ap.github.io/LanguageDCAT-AP/releases/0.9.2/ [R=303,NE,L] # # Rewrite rule to serve HTML content if requested a term URI is requested RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) RewriteCond %{HTTP_ACCEPT} text/html [OR] RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] -RewriteRule "^(.+)" "https://languagedcat-ap.github.io/LanguageDCAT-AP/releases/0.9.1/#$1" [R=303,NE,L] +RewriteRule "^(.+)" "https://languagedcat-ap.github.io/LanguageDCAT-AP/releases/0.9.2/#$1" [R=303,NE,L] # Default response diff --git a/lang-dcat-ap/README.md b/lang-dcat-ap/README.md index 33fdab4499..ef71656051 100644 --- a/lang-dcat-ap/README.md +++ b/lang-dcat-ap/README.md @@ -1,4 +1,4 @@ -# meta-share Ontology +# Language DCAT-AP Ontology URI: https://w3id.org/lang-dcat-ap/ (@prefix `ldsdcat`) From c6975158cb40df483ca8a0c1efd7c7ceb14c0032 Mon Sep 17 00:00:00 2001 From: Daniel Garijo Date: Thu, 19 Mar 2026 16:26:22 +0100 Subject: [PATCH 005/111] Apply suggestion from @TallTed Co-authored-by: Ted Thibodeau Jr --- jochumsson/h2hoa/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jochumsson/h2hoa/README.md b/jochumsson/h2hoa/README.md index 392d3b15b1..3716fa6ca8 100644 --- a/jochumsson/h2hoa/README.md +++ b/jochumsson/h2hoa/README.md @@ -4,8 +4,8 @@ Persistent identifier for the H2HOA ontology by Thorvaldur Jochumsson, github id Namespace: https://w3id.org/jochumsson/h2hoa -Maintainer: Thorvaldur Jochumsson -GitHub ID: jochumsson +Maintainer: Thorvaldur Jochumsson
+GitHub ID: jochumsson
GitHub profile: https://github.com/jochumsson Repository: https://github.com/jochumsson/h2hoa From d3c898d23963d8db7f29a1edaa6b543ca18a9bf8 Mon Sep 17 00:00:00 2001 From: Daniel Garijo Date: Thu, 19 Mar 2026 16:26:30 +0100 Subject: [PATCH 006/111] Apply suggestion from @TallTed Co-authored-by: Ted Thibodeau Jr --- jochumsson/nyhkb/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jochumsson/nyhkb/README.md b/jochumsson/nyhkb/README.md index 2f425f28cf..dfd6270cda 100644 --- a/jochumsson/nyhkb/README.md +++ b/jochumsson/nyhkb/README.md @@ -4,8 +4,8 @@ Persistent identifier for the NYHKB knowledge base by Thorvaldur Jochumsson, git Namespace: https://w3id.org/jochumsson/nyhkb -Maintainer: Thorvaldur Jochumsson -GitHub ID: jochumsson +Maintainer: Thorvaldur Jochumsson
+GitHub ID: jochumsson
GitHub profile: https://github.com/jochumsson Repository: https://github.com/jochumsson/h2hoa From fe2ede289fb42a7c050c2e9060d280b9723164ba Mon Sep 17 00:00:00 2001 From: Marcel Otto Date: Thu, 19 Mar 2026 18:52:43 +0100 Subject: [PATCH 007/111] Add dcatr namespace --- dcatr/.htaccess | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ dcatr/README.md | 11 +++++++++++ 2 files changed, 59 insertions(+) create mode 100644 dcatr/.htaccess create mode 100644 dcatr/README.md diff --git a/dcatr/.htaccess b/dcatr/.htaccess new file mode 100644 index 0000000000..b388be0752 --- /dev/null +++ b/dcatr/.htaccess @@ -0,0 +1,48 @@ +# /dcatr/ +# +# DCAT-R (Data Catalog Vocabulary for RDF Repositories) +# https://w3id.org/dcatr redirects to https://dcat-r.github.io/spec/ +# +# ## Contact +# This space is administered by: +# +# Marcel Otto +# marcelotto@gmx.de +# GitHub username: marcelotto + +Options +FollowSymLinks +RewriteEngine on + +# --- Content negotiation for https://w3id.org/dcatr --- + +# Turtle +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^$ https://dcat-r.github.io/spec/dcatr.ttl [R=303,NE,L] + +# JSON-LD +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^$ https://dcat-r.github.io/spec/dcatr.jsonld [R=303,NE,L] + +# RDF/XML +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^$ https://dcat-r.github.io/spec/dcatr.rdf [R=303,NE,L] + +# N-Triples +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^$ https://dcat-r.github.io/spec/dcatr.nt [R=303,NE,L] + +# HTML (explicit) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml +RewriteRule ^$ https://dcat-r.github.io/spec/ [R=303,NE,L] + +# Default: HTML +RewriteRule ^$ https://dcat-r.github.io/spec/ [R=303,NE,L] + +# --- Direct file access --- +RewriteRule ^dcatr\.ttl$ https://dcat-r.github.io/spec/dcatr.ttl [R=303,NE,L] +RewriteRule ^dcatr\.nt$ https://dcat-r.github.io/spec/dcatr.nt [R=303,NE,L] +RewriteRule ^dcatr\.rdf$ https://dcat-r.github.io/spec/dcatr.rdf [R=303,NE,L] +RewriteRule ^dcatr\.jsonld$ https://dcat-r.github.io/spec/dcatr.jsonld [R=303,NE,L] +RewriteRule ^context\.jsonld$ https://dcat-r.github.io/spec/context.jsonld [R=303,NE,L] diff --git a/dcatr/README.md b/dcatr/README.md new file mode 100644 index 0000000000..c28c3212d2 --- /dev/null +++ b/dcatr/README.md @@ -0,0 +1,11 @@ +# DCAT-R + +GitHub: + +Spec: + +Vocabulary: + +Contacts: + +- Marcel Otto (GitHub: [@marcelotto](https://github.com/marcelotto)) From a4c867ae082225a3384d25c0d72611b459e35ccd Mon Sep 17 00:00:00 2001 From: Stephen Richard Date: Thu, 19 Mar 2026 15:07:56 -0700 Subject: [PATCH 008/111] Add CDIF building block identifier redirects with content negotiation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Persistent URIs under https://w3id.org/cdif/ for CDIF metadata building blocks, conformance URIs, and domain-specific repos (DDE, ECRR, geochem). Features: - Content negotiation on BB URIs (HTML, JSON Schema, YAML, SHACL, JSON-LD) - Explicit sub-path resources (/schema, /resolved, /shacl, /context) - Conformance URIs (core/1.0, discovery/1.0, etc.) with same negotiation - Domain-specific BB routing to ddeBuildingBlocks, ecrrBuildingBlocks, geochemBuildingBlocks repos - Legacy aliases for renamed BBs (cdifMandatory→cdifCore, xasRequired→xasCore, adaProperties→geochemProperties, ddeMandatory→ddeCore, ecrrBase→ecrrCore, etc.) Co-Authored-By: Claude Opus 4.6 (1M context) --- cdif/.htaccess | 332 ++++++++++++++++++++++++++++++++++++++++++++++++- cdif/README.md | 50 +++++++- 2 files changed, 377 insertions(+), 5 deletions(-) diff --git a/cdif/.htaccess b/cdif/.htaccess index 94fb944877..72716cb73e 100644 --- a/cdif/.htaccess +++ b/cdif/.htaccess @@ -13,6 +13,11 @@ # which maps to the OGC Building Blocks identifier: # cdif.bbr.metadata.{category}.{name} # +# Profile identifiers add a third path segment: +# https://w3id.org/cdif/bbr/metadata/profiles/{family}/{name} +# which maps to: +# cdif.bbr.metadata.profiles.{family}.{name} +# # Content negotiation on the BB URI (Accept header): # text/html → landing page (HTML viewer) # application/schema+json → JSON Schema (JSON) @@ -35,11 +40,332 @@ Header set Access-Control-Allow-Origin * Options -MultiViews +FollowSymLinks RewriteEngine on -# Base target for GitHub Pages -SetEnvIf Request_URI ^.*$ BB_BASE=https://usgin.github.io/metadataBuildingBlocks +# Base targets for GitHub Pages (per-repo) +SetEnvIf Request_URI ^.*$ BB_BASE=https://cross-domain-interoperability-framework.github.io/metadataBuildingBlocks +SetEnvIf Request_URI ^.*$ ADA_BASE=https://usgin.github.io/geochemBuildingBlocks +SetEnvIf Request_URI ^.*$ DDE_BASE=https://usgin.github.io/ddeBuildingBlocks +SetEnvIf Request_URI ^.*$ ECRR_BASE=https://usgin.github.io/ecrrBuildingBlocks + +# ============================================================ +# Conformance URIs: /cdif/{component}/{version}/ +# These identify CDIF specification components. Each maps to +# the corresponding building block and supports the same +# content negotiation as building block identifiers. +# +# Mapping: +# core/1.0 → cdifProperties/cdifCore +# discovery/1.0 → cdifProperties/cdifOptional +# data_description/1.0 → cdifProperties/cdifDataDescription +# manifest/1.0 → cdifProperties/cdifArchiveDistribution +# provenance/1.0 → cdifProperties/cdifProvenance +# xasDiscovery/1.0 → xasProperties/xasOptional +# xasCore/1.0 → xasProperties/xasCore +# ============================================================ + +# ---- Conformance URI sub-paths ---- +# These MUST come before the bare conformance URI rules so that +# {component}/{version}/{resource} is matched before {component}/{version} + +# --- core/1.0 sub-paths → cdifCore --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^core/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifCore/schema.json [R=303,L] +RewriteRule ^core/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifCore/schema.yaml [R=303,L] +RewriteRule ^core/1\.0/resolved/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifCore/resolvedSchema.json [R=303,L] +RewriteRule ^core/1\.0/shacl/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifCore/rules.shacl [R=303,L] +RewriteRule ^core/1\.0/context/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifCore/context.jsonld [R=303,L] + +# --- discovery/1.0 sub-paths → cdifOptional --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^discovery/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifOptional/schema.json [R=303,L] +RewriteRule ^discovery/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifOptional/schema.yaml [R=303,L] +RewriteRule ^discovery/1\.0/resolved/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifOptional/resolvedSchema.json [R=303,L] +RewriteRule ^discovery/1\.0/shacl/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifOptional/rules.shacl [R=303,L] +RewriteRule ^discovery/1\.0/context/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifOptional/context.jsonld [R=303,L] + +# --- data_description/1.0 sub-paths → cdifDataDescription --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^data_description/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifDataDescription/schema.json [R=303,L] +RewriteRule ^data_description/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifDataDescription/schema.yaml [R=303,L] +RewriteRule ^data_description/1\.0/resolved/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifDataDescription/resolvedSchema.json [R=303,L] +RewriteRule ^data_description/1\.0/shacl/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifDataDescription/rules.shacl [R=303,L] +RewriteRule ^data_description/1\.0/context/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifDataDescription/context.jsonld [R=303,L] + +# --- manifest/1.0 sub-paths → cdifArchiveDistribution --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^manifest/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifArchiveDistribution/schema.json [R=303,L] +RewriteRule ^manifest/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifArchiveDistribution/schema.yaml [R=303,L] +RewriteRule ^manifest/1\.0/resolved/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifArchiveDistribution/resolvedSchema.json [R=303,L] +RewriteRule ^manifest/1\.0/shacl/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifArchiveDistribution/rules.shacl [R=303,L] +RewriteRule ^manifest/1\.0/context/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifArchiveDistribution/context.jsonld [R=303,L] + +# --- provenance/1.0 sub-paths → cdifProvenance --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^provenance/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifProvenance/schema.json [R=303,L] +RewriteRule ^provenance/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifProvenance/schema.yaml [R=303,L] +RewriteRule ^provenance/1\.0/resolved/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifProvenance/resolvedSchema.json [R=303,L] +RewriteRule ^provenance/1\.0/shacl/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifProvenance/rules.shacl [R=303,L] +RewriteRule ^provenance/1\.0/context/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifProvenance/context.jsonld [R=303,L] + +# --- xasDiscovery/1.0 sub-paths → xasOptional --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^xasDiscovery/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasOptional/schema.json [R=303,L] +RewriteRule ^xasDiscovery/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasOptional/schema.yaml [R=303,L] +RewriteRule ^xasDiscovery/1\.0/resolved/?$ %{ENV:BB_BASE}/_sources/xasProperties/xasOptional/resolvedSchema.json [R=303,L] +RewriteRule ^xasDiscovery/1\.0/shacl/?$ %{ENV:BB_BASE}/_sources/xasProperties/xasOptional/rules.shacl [R=303,L] +RewriteRule ^xasDiscovery/1\.0/context/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasOptional/context.jsonld [R=303,L] + +# --- xasCore/1.0 sub-paths → xasCore --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^xasCore/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasCore/schema.json [R=303,L] +RewriteRule ^xasCore/1\.0/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasCore/schema.yaml [R=303,L] +RewriteRule ^xasCore/1\.0/resolved/?$ %{ENV:BB_BASE}/_sources/xasProperties/xasCore/resolvedSchema.json [R=303,L] +RewriteRule ^xasCore/1\.0/shacl/?$ %{ENV:BB_BASE}/_sources/xasProperties/xasCore/rules.shacl [R=303,L] +RewriteRule ^xasCore/1\.0/context/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasCore/context.jsonld [R=303,L] + +# ---- Conformance URI bare paths (content negotiation) ---- + +# --- core/1.0 → cdifCore --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json +RewriteRule ^core/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifCore/schema.json [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/yaml +RewriteRule ^core/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifCore/schema.yaml [R=303,L] +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^core/1\.0/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifCore/rules.shacl [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^core/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifCore/context.jsonld [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^core/1\.0/?$ %{ENV:BB_BASE}/build/generateddocs/json-full/bbr/metadata/cdifProperties/cdifCore/index.json [R=303,L] +RewriteRule ^core/1\.0/?$ %{ENV:BB_BASE}/bblock/cdif.bbr.metadata.cdifProperties.cdifCore [R=303,L] + +# --- discovery/1.0 → cdifOptional --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json +RewriteRule ^discovery/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifOptional/schema.json [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/yaml +RewriteRule ^discovery/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifOptional/schema.yaml [R=303,L] +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^discovery/1\.0/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifOptional/rules.shacl [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^discovery/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifOptional/context.jsonld [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^discovery/1\.0/?$ %{ENV:BB_BASE}/build/generateddocs/json-full/bbr/metadata/cdifProperties/cdifOptional/index.json [R=303,L] +RewriteRule ^discovery/1\.0/?$ %{ENV:BB_BASE}/bblock/cdif.bbr.metadata.cdifProperties.cdifOptional [R=303,L] + +# --- data_description/1.0 → cdifDataDescription --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json +RewriteRule ^data_description/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifDataDescription/schema.json [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/yaml +RewriteRule ^data_description/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifDataDescription/schema.yaml [R=303,L] +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^data_description/1\.0/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifDataDescription/rules.shacl [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^data_description/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifDataDescription/context.jsonld [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^data_description/1\.0/?$ %{ENV:BB_BASE}/build/generateddocs/json-full/bbr/metadata/cdifProperties/cdifDataDescription/index.json [R=303,L] +RewriteRule ^data_description/1\.0/?$ %{ENV:BB_BASE}/bblock/cdif.bbr.metadata.cdifProperties.cdifDataDescription [R=303,L] + +# --- manifest/1.0 → cdifArchiveDistribution --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json +RewriteRule ^manifest/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifArchiveDistribution/schema.json [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/yaml +RewriteRule ^manifest/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifArchiveDistribution/schema.yaml [R=303,L] +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^manifest/1\.0/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifArchiveDistribution/rules.shacl [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^manifest/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifArchiveDistribution/context.jsonld [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^manifest/1\.0/?$ %{ENV:BB_BASE}/build/generateddocs/json-full/bbr/metadata/cdifProperties/cdifArchiveDistribution/index.json [R=303,L] +RewriteRule ^manifest/1\.0/?$ %{ENV:BB_BASE}/bblock/cdif.bbr.metadata.cdifProperties.cdifArchiveDistribution [R=303,L] + +# --- provenance/1.0 → cdifProvenance --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json +RewriteRule ^provenance/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifProvenance/schema.json [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/yaml +RewriteRule ^provenance/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifProvenance/schema.yaml [R=303,L] +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^provenance/1\.0/?$ %{ENV:BB_BASE}/_sources/cdifProperties/cdifProvenance/rules.shacl [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^provenance/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/cdifProperties/cdifProvenance/context.jsonld [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^provenance/1\.0/?$ %{ENV:BB_BASE}/build/generateddocs/json-full/bbr/metadata/cdifProperties/cdifProvenance/index.json [R=303,L] +RewriteRule ^provenance/1\.0/?$ %{ENV:BB_BASE}/bblock/cdif.bbr.metadata.cdifProperties.cdifProvenance [R=303,L] + +# --- xasDiscovery/1.0 → xasOptional --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json +RewriteRule ^xasDiscovery/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasOptional/schema.json [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/yaml +RewriteRule ^xasDiscovery/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasOptional/schema.yaml [R=303,L] +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^xasDiscovery/1\.0/?$ %{ENV:BB_BASE}/_sources/xasProperties/xasOptional/rules.shacl [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^xasDiscovery/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasOptional/context.jsonld [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^xasDiscovery/1\.0/?$ %{ENV:BB_BASE}/build/generateddocs/json-full/bbr/metadata/xasProperties/xasOptional/index.json [R=303,L] +RewriteRule ^xasDiscovery/1\.0/?$ %{ENV:BB_BASE}/bblock/cdif.bbr.metadata.xasProperties.xasOptional [R=303,L] + +# --- xasCore/1.0 → xasCore --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json +RewriteRule ^xasCore/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasCore/schema.json [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/yaml +RewriteRule ^xasCore/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasCore/schema.yaml [R=303,L] +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^xasCore/1\.0/?$ %{ENV:BB_BASE}/_sources/xasProperties/xasCore/rules.shacl [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^xasCore/1\.0/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/xasProperties/xasCore/context.jsonld [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^xasCore/1\.0/?$ %{ENV:BB_BASE}/build/generateddocs/json-full/bbr/metadata/xasProperties/xasCore/index.json [R=303,L] +RewriteRule ^xasCore/1\.0/?$ %{ENV:BB_BASE}/bblock/cdif.bbr.metadata.xasProperties.xasCore [R=303,L] + +# ============================================================ +# Domain-specific building blocks (separate repos) +# These MUST come before the generic two-segment rules. +# geochemProperties/adaProfiles → geochemBuildingBlocks (formerly adaProperties) +# DDEproperties/DDEProfiles → ddeBuildingBlocks +# ecrrProperties/ecrrProfiles → ecrrBuildingBlocks +# ============================================================ + +# --- ADA (geochemistry) profiles --- +RewriteRule ^bbr/metadata/profiles/adaProfiles/([^/]+)/schema/?$ %{ENV:ADA_BASE}/build/annotated/bbr/metadata/profiles/adaProfiles/$1/schema.yaml [R=303,L] +RewriteRule ^bbr/metadata/profiles/adaProfiles/([^/]+)/resolved/?$ %{ENV:ADA_BASE}/_sources/profiles/adaProfiles/$1/resolvedSchema.json [R=303,L] +RewriteRule ^bbr/metadata/profiles/adaProfiles/([^/]+)/shacl/?$ %{ENV:ADA_BASE}/_sources/profiles/adaProfiles/$1/rules.shacl [R=303,L] +RewriteRule ^bbr/metadata/profiles/adaProfiles/([^/]+)/context/?$ %{ENV:ADA_BASE}/build/annotated/bbr/metadata/profiles/adaProfiles/$1/context.jsonld [R=303,L] +RewriteRule ^bbr/metadata/profiles/adaProfiles/([^/]+)/?$ %{ENV:ADA_BASE}/bblock/ada.bbr.metadata.profiles.adaProfiles.$1 [R=303,L] + +# --- DDE profiles --- +RewriteRule ^bbr/metadata/profiles/DDEProfiles/([^/]+)/schema/?$ %{ENV:DDE_BASE}/build/annotated/bbr/metadata/profiles/DDEProfiles/$1/schema.yaml [R=303,L] +RewriteRule ^bbr/metadata/profiles/DDEProfiles/([^/]+)/resolved/?$ %{ENV:DDE_BASE}/_sources/profiles/DDEProfiles/$1/resolvedSchema.json [R=303,L] +RewriteRule ^bbr/metadata/profiles/DDEProfiles/([^/]+)/shacl/?$ %{ENV:DDE_BASE}/_sources/profiles/DDEProfiles/$1/rules.shacl [R=303,L] +RewriteRule ^bbr/metadata/profiles/DDEProfiles/([^/]+)/context/?$ %{ENV:DDE_BASE}/build/annotated/bbr/metadata/profiles/DDEProfiles/$1/context.jsonld [R=303,L] +RewriteRule ^bbr/metadata/profiles/DDEProfiles/([^/]+)/?$ %{ENV:DDE_BASE}/bblock/dde.bbr.metadata.profiles.DDEProfiles.$1 [R=303,L] + +# --- ECRR profiles --- +RewriteRule ^bbr/metadata/profiles/ecrrProfiles/([^/]+)/schema/?$ %{ENV:ECRR_BASE}/build/annotated/bbr/metadata/profiles/ecrrProfiles/$1/schema.yaml [R=303,L] +RewriteRule ^bbr/metadata/profiles/ecrrProfiles/([^/]+)/resolved/?$ %{ENV:ECRR_BASE}/_sources/profiles/ecrrProfiles/$1/resolvedSchema.json [R=303,L] +RewriteRule ^bbr/metadata/profiles/ecrrProfiles/([^/]+)/shacl/?$ %{ENV:ECRR_BASE}/_sources/profiles/ecrrProfiles/$1/rules.shacl [R=303,L] +RewriteRule ^bbr/metadata/profiles/ecrrProfiles/([^/]+)/context/?$ %{ENV:ECRR_BASE}/build/annotated/bbr/metadata/profiles/ecrrProfiles/$1/context.jsonld [R=303,L] +RewriteRule ^bbr/metadata/profiles/ecrrProfiles/([^/]+)/?$ %{ENV:ECRR_BASE}/bblock/ecrr.bbr.metadata.profiles.ecrrProfiles.$1 [R=303,L] + +# --- Geochem properties (renamed from adaProperties) --- +RewriteRule ^bbr/metadata/geochemProperties/([^/]+)/schema/?$ %{ENV:ADA_BASE}/build/annotated/bbr/metadata/geochemProperties/$1/schema.yaml [R=303,L] +RewriteRule ^bbr/metadata/geochemProperties/([^/]+)/resolved/?$ %{ENV:ADA_BASE}/_sources/geochemProperties/$1/resolvedSchema.json [R=303,L] +RewriteRule ^bbr/metadata/geochemProperties/([^/]+)/shacl/?$ %{ENV:ADA_BASE}/_sources/geochemProperties/$1/rules.shacl [R=303,L] +RewriteRule ^bbr/metadata/geochemProperties/([^/]+)/context/?$ %{ENV:ADA_BASE}/build/annotated/bbr/metadata/geochemProperties/$1/context.jsonld [R=303,L] +RewriteRule ^bbr/metadata/geochemProperties/([^/]+)/?$ %{ENV:ADA_BASE}/bblock/ada.bbr.metadata.geochemProperties.$1 [R=303,L] + +# --- ADA properties (legacy alias → geochemProperties) --- +RewriteRule ^bbr/metadata/adaProperties/([^/]+)/schema/?$ %{ENV:ADA_BASE}/build/annotated/bbr/metadata/geochemProperties/$1/schema.yaml [R=303,L] +RewriteRule ^bbr/metadata/adaProperties/([^/]+)/resolved/?$ %{ENV:ADA_BASE}/_sources/geochemProperties/$1/resolvedSchema.json [R=303,L] +RewriteRule ^bbr/metadata/adaProperties/([^/]+)/shacl/?$ %{ENV:ADA_BASE}/_sources/geochemProperties/$1/rules.shacl [R=303,L] +RewriteRule ^bbr/metadata/adaProperties/([^/]+)/context/?$ %{ENV:ADA_BASE}/build/annotated/bbr/metadata/geochemProperties/$1/context.jsonld [R=303,L] +RewriteRule ^bbr/metadata/adaProperties/([^/]+)/?$ %{ENV:ADA_BASE}/bblock/ada.bbr.metadata.geochemProperties.$1 [R=303,L] + +# --- DDE legacy aliases for renamed BBs --- +RewriteRule ^bbr/metadata/DDEproperties/ddeMandatory(/.*)?$ /cdif/bbr/metadata/DDEproperties/ddeCore$1 [R=303,L] +RewriteRule ^bbr/metadata/DDEproperties/ddeSubject(/.*)?$ /cdif/bbr/metadata/DDEproperties/ddeCatalogRecord$1 [R=303,L] + +# --- DDE properties --- +RewriteRule ^bbr/metadata/DDEproperties/([^/]+)/schema/?$ %{ENV:DDE_BASE}/build/annotated/bbr/metadata/DDEproperties/$1/schema.yaml [R=303,L] +RewriteRule ^bbr/metadata/DDEproperties/([^/]+)/resolved/?$ %{ENV:DDE_BASE}/_sources/DDEproperties/$1/resolvedSchema.json [R=303,L] +RewriteRule ^bbr/metadata/DDEproperties/([^/]+)/shacl/?$ %{ENV:DDE_BASE}/_sources/DDEproperties/$1/rules.shacl [R=303,L] +RewriteRule ^bbr/metadata/DDEproperties/([^/]+)/context/?$ %{ENV:DDE_BASE}/build/annotated/bbr/metadata/DDEproperties/$1/context.jsonld [R=303,L] +RewriteRule ^bbr/metadata/DDEproperties/([^/]+)/?$ %{ENV:DDE_BASE}/bblock/dde.bbr.metadata.DDEproperties.$1 [R=303,L] + +# --- ECRR legacy alias for renamed BB --- +RewriteRule ^bbr/metadata/ecrrProperties/ecrrBase(/.*)?$ /cdif/bbr/metadata/ecrrProperties/ecrrCore$1 [R=303,L] + +# --- ECRR properties --- +RewriteRule ^bbr/metadata/ecrrProperties/([^/]+)/schema/?$ %{ENV:ECRR_BASE}/build/annotated/bbr/metadata/ecrrProperties/$1/schema.yaml [R=303,L] +RewriteRule ^bbr/metadata/ecrrProperties/([^/]+)/resolved/?$ %{ENV:ECRR_BASE}/_sources/ecrrProperties/$1/resolvedSchema.json [R=303,L] +RewriteRule ^bbr/metadata/ecrrProperties/([^/]+)/shacl/?$ %{ENV:ECRR_BASE}/_sources/ecrrProperties/$1/rules.shacl [R=303,L] +RewriteRule ^bbr/metadata/ecrrProperties/([^/]+)/context/?$ %{ENV:ECRR_BASE}/build/annotated/bbr/metadata/ecrrProperties/$1/context.jsonld [R=303,L] +RewriteRule ^bbr/metadata/ecrrProperties/([^/]+)/?$ %{ENV:ECRR_BASE}/bblock/ecrr.bbr.metadata.ecrrProperties.$1 [R=303,L] + +# ============================================================ +# Profile resources (three-segment): /cdif/bbr/metadata/profiles/{family}/{name}/{resource} +# These MUST come before the two-segment rules so that +# bbr/metadata/profiles/{family}/{name} is not consumed as +# bbr/metadata/{profiles}/{family} +# ============================================================ + +# --- /schema with content negotiation --- + +# Accept: application/schema+json or application/json → annotated JSON schema +RewriteCond %{HTTP_ACCEPT} application/schema\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/profiles/$1/$2/schema.json [R=303,L] + +# Accept: application/yaml (with or without profile param) → annotated YAML schema +RewriteCond %{HTTP_ACCEPT} application/yaml [OR] +RewriteCond %{HTTP_ACCEPT} text/yaml [OR] +RewriteCond %{HTTP_ACCEPT} application/x-yaml +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/profiles/$1/$2/schema.yaml [R=303,L] + +# Default for /schema → YAML (the source format) +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/schema/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/profiles/$1/$2/schema.yaml [R=303,L] + +# --- /resolved → resolvedSchema.json (all $ref inlined) --- +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/resolved/?$ %{ENV:BB_BASE}/_sources/profiles/$1/$2/resolvedSchema.json [R=303,L] + +# --- /shacl → SHACL validation rules --- +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/shacl/?$ %{ENV:BB_BASE}/_sources/profiles/$1/$2/rules.shacl [R=303,L] + +# --- /context → JSON-LD context --- +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/context/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/profiles/$1/$2/context.jsonld [R=303,L] + +# ============================================================ +# Profile landing page with content negotiation: +# /cdif/bbr/metadata/profiles/{family}/{name} +# ============================================================ + +# --- text/html → bblocks-viewer landing page --- +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/?$ %{ENV:BB_BASE}/bblock/cdif.bbr.metadata.profiles.$1.$2 [R=303,L] + +# --- application/schema+json → JSON Schema (JSON) --- +RewriteCond %{HTTP_ACCEPT} application/schema\+json +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/profiles/$1/$2/schema.json [R=303,L] + +# --- application/yaml → JSON Schema (YAML) --- +RewriteCond %{HTTP_ACCEPT} application/yaml +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/profiles/$1/$2/schema.yaml [R=303,L] + +# --- text/turtle → SHACL validation rules --- +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/?$ %{ENV:BB_BASE}/_sources/profiles/$1/$2/rules.shacl [R=303,L] + +# --- application/ld+json → JSON-LD context --- +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/?$ %{ENV:BB_BASE}/build/annotated/bbr/metadata/profiles/$1/$2/context.jsonld [R=303,L] + +# --- application/json (generic) → full JSON documentation --- +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/?$ %{ENV:BB_BASE}/build/generateddocs/json-full/bbr/metadata/profiles/$1/$2/index.json [R=303,L] + +# --- Default (browser user-agent or unknown Accept) → viewer page --- +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* [OR] +RewriteCond %{HTTP_ACCEPT} \*/\* +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/?$ %{ENV:BB_BASE}/bblock/cdif.bbr.metadata.profiles.$1.$2 [R=303,L] + +# Fallback → viewer page +RewriteRule ^bbr/metadata/profiles/([^/]+)/([^/]+)/?$ %{ENV:BB_BASE}/bblock/cdif.bbr.metadata.profiles.$1.$2 [R=303,L] + +# ============================================================ +# Legacy aliases for renamed CDIF core BBs +# These MUST come before the generic two-segment rules +# ============================================================ +RewriteRule ^bbr/metadata/cdifProperties/cdifMandatory(/.*)?$ /cdif/bbr/metadata/cdifProperties/cdifCore$1 [R=303,L] +RewriteRule ^bbr/metadata/xasProperties/xasRequired(/.*)?$ /cdif/bbr/metadata/xasProperties/xasCore$1 [R=303,L] +RewriteRule ^bbr/metadata/xasProperties/xasSubject(/.*)?$ /cdif/bbr/metadata/cdifProperties/cdifCatalogRecord$1 [R=303,L] # ============================================================ -# Building Block resources: /cdif/bbr/metadata/{category}/{name}/{resource} +# Building Block resources (two-segment): /cdif/bbr/metadata/{category}/{name}/{resource} # Explicit sub-paths — these always resolve to the named resource # ============================================================ diff --git a/cdif/README.md b/cdif/README.md index 4a0b4363d0..d35539c8ec 100644 --- a/cdif/README.md +++ b/cdif/README.md @@ -4,9 +4,51 @@ Redirect home for Cross-Domain Interoperability Framework identifier redirects. [`https://w3id.org/cdif`](https://w3id.org/cdif/) redirects to [`https://cdif.codata.org/`](https://cdif.codata.org/). +## Conformance URIs + +CDIF specification components have persistent conformance URIs that metadata records declare in `dcterms:conformsTo`: + +| URI | Specification Component | +|-----|------------------------| +| `https://w3id.org/cdif/core/1.0/` | CDIF Core (mandatory properties) | +| `https://w3id.org/cdif/discovery/1.0/` | CDIF Discovery (optional properties) | +| `https://w3id.org/cdif/data_description/1.0/` | CDIF Data Description | +| `https://w3id.org/cdif/manifest/1.0/` | CDIF Manifest (archive distribution) | +| `https://w3id.org/cdif/provenance/1.0/` | CDIF Provenance | +| `https://w3id.org/cdif/xasDiscovery/1.0/` | CDIF XAS Discovery | +| `https://w3id.org/cdif/xasCore/1.0/` | CDIF XAS Core | + +Each conformance URI supports the same content negotiation as building block identifiers (see below). The default (browser) redirect goes to the corresponding building block landing page. + +```bash +# Landing page (browser default) +curl -L https://w3id.org/cdif/core/1.0/ + +# JSON Schema +curl -L -H "Accept: application/schema+json" https://w3id.org/cdif/core/1.0/ + +# YAML Schema +curl -L -H "Accept: application/yaml" https://w3id.org/cdif/core/1.0/ + +# SHACL rules +curl -L -H "Accept: text/turtle" https://w3id.org/cdif/core/1.0/ + +# JSON-LD context +curl -L -H "Accept: application/ld+json" https://w3id.org/cdif/core/1.0/ +``` + ## Building Block Identifiers -CDIF metadata building blocks have persistent identifiers under `https://w3id.org/cdif/bbr/metadata/`. Each building block maps to the OGC Building Blocks identifier `cdif.bbr.metadata.{category}.{name}`. +CDIF metadata building blocks have persistent identifiers under `https://w3id.org/cdif/bbr/metadata/`. Building blocks are hosted across multiple repositories: + +| Category | Repository | Identifier Prefix | +|----------|-----------|-------------------| +| `schemaorgProperties`, `cdifProperties`, `provProperties`, `qualityProperties`, `ddiProperties`, `xasProperties` | [metadataBuildingBlocks](https://github.com/Cross-Domain-Interoperability-Framework/metadataBuildingBlocks) | `cdif.bbr.metadata.` | +| `adaProperties`, `adaProfiles` | [geochemBuildingBlocks](https://github.com/usgin/geochemBuildingBlocks) | `ada.bbr.metadata.` | +| `DDEproperties`, `DDEProfiles` | [ddeBuildingBlocks](https://github.com/usgin/ddeBuildingBlocks) | `dde.bbr.metadata.` | +| `ecrrProperties`, `ecrrProfiles` | [ecrrBuildingBlocks](https://github.com/usgin/ecrrBuildingBlocks) | `ecrr.bbr.metadata.` | + +All share the same URI pattern `https://w3id.org/cdif/bbr/metadata/{category}/{name}` but redirect to different GitHub Pages hosts based on the category. ### Content negotiation on the BB URI @@ -39,7 +81,11 @@ These always resolve to the named resource regardless of `Accept` header: ### Categories -`schemaorgProperties`, `cdifProperties`, `adaProperties`, `provProperties`, `qualityProperties`, `ddiProperties`, `xasProperties`, `DDEproperties`, `ecrrProperties` +Core: `schemaorgProperties`, `cdifProperties`, `provProperties`, `qualityProperties`, `ddiProperties`, `xasProperties` + +Domain-specific (separate repos): `adaProperties`, `DDEproperties`, `ecrrProperties` + +Profiles: `cdifProfiles`, `adaProfiles`, `DDEProfiles`, `ecrrProfiles` ### Examples From d03d565389c29316fa8808114228f2262113ecaf Mon Sep 17 00:00:00 2001 From: Marcel Otto Date: Thu, 19 Mar 2026 23:31:11 +0100 Subject: [PATCH 009/111] Add gno namespace --- gno/.htaccess | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++ gno/README.md | 12 ++++++++ 2 files changed, 95 insertions(+) create mode 100644 gno/.htaccess create mode 100644 gno/README.md diff --git a/gno/.htaccess b/gno/.htaccess new file mode 100644 index 0000000000..d83a3ce287 --- /dev/null +++ b/gno/.htaccess @@ -0,0 +1,83 @@ +# /gno/ +# +# Gno vocabulary and sub-vocabularies +# https://w3id.org/gno redirects to https://rdf-elixir.dev/gno/ +# +# ## Contact +# This space is administered by: +# +# Marcel Otto +# marcelotto@gmx.de +# GitHub username: marcelotto + +Options +FollowSymLinks +RewriteEngine on + +# --- Content negotiation for https://w3id.org/gno --- + +# Turtle +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^$ https://rdf-elixir.dev/gno/gno.ttl [R=303,NE,L] + +# JSON-LD +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^$ https://rdf-elixir.dev/gno/gno.jsonld [R=303,NE,L] + +# RDF/XML +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^$ https://rdf-elixir.dev/gno/gno.rdf [R=303,NE,L] + +# N-Triples +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^$ https://rdf-elixir.dev/gno/gno.nt [R=303,NE,L] + +# HTML (explicit) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml +RewriteRule ^$ https://rdf-elixir.dev/gno/ [R=303,NE,L] + +# Default: HTML +RewriteRule ^$ https://rdf-elixir.dev/gno/ [R=303,NE,L] + +# Direct file access +RewriteRule ^gno\.ttl$ https://rdf-elixir.dev/gno/gno.ttl [R=303,NE,L] +RewriteRule ^gno\.nt$ https://rdf-elixir.dev/gno/gno.nt [R=303,NE,L] +RewriteRule ^gno\.rdf$ https://rdf-elixir.dev/gno/gno.rdf [R=303,NE,L] +RewriteRule ^gno\.jsonld$ https://rdf-elixir.dev/gno/gno.jsonld [R=303,NE,L] + +# --- Content negotiation for https://w3id.org/gno/store/adapter/ --- + +# Turtle +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^store/adapter/?$ https://rdf-elixir.dev/gno/store/adapter/gnoa.ttl [R=303,NE,L] + +# JSON-LD +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^store/adapter/?$ https://rdf-elixir.dev/gno/store/adapter/gnoa.jsonld [R=303,NE,L] + +# RDF/XML +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^store/adapter/?$ https://rdf-elixir.dev/gno/store/adapter/gnoa.rdf [R=303,NE,L] + +# N-Triples +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^store/adapter/?$ https://rdf-elixir.dev/gno/store/adapter/gnoa.nt [R=303,NE,L] + +# HTML (explicit) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml +RewriteRule ^store/adapter/?$ https://rdf-elixir.dev/gno/store/adapter/ [R=303,NE,L] + +# Default: HTML +RewriteRule ^store/adapter/?$ https://rdf-elixir.dev/gno/store/adapter/ [R=303,NE,L] + +# Direct file access for gnoa +RewriteRule ^store/adapter/gnoa\.ttl$ https://rdf-elixir.dev/gno/store/adapter/gnoa.ttl [R=303,NE,L] +RewriteRule ^store/adapter/gnoa\.nt$ https://rdf-elixir.dev/gno/store/adapter/gnoa.nt [R=303,NE,L] +RewriteRule ^store/adapter/gnoa\.rdf$ https://rdf-elixir.dev/gno/store/adapter/gnoa.rdf [R=303,NE,L] +RewriteRule ^store/adapter/gnoa\.jsonld$ https://rdf-elixir.dev/gno/store/adapter/gnoa.jsonld [R=303,NE,L] + +# Individual gnoa term redirects (slash namespace) +RewriteRule ^store/adapter/(.+)$ https://rdf-elixir.dev/gno/store/adapter/#$1 [R=303,NE,L] \ No newline at end of file diff --git a/gno/README.md b/gno/README.md new file mode 100644 index 0000000000..e1a8bc67d0 --- /dev/null +++ b/gno/README.md @@ -0,0 +1,12 @@ +# Gno + +Gno is an RDF vocabulary for managing RDF data in SPARQL triple stores. It extends [DCAT-R](https://w3id.org/dcatr) with classes and properties for services, stores, changesets, and commits. + + +GitHub: + +Vocabulary: + +Contacts: + +- Marcel Otto (GitHub: [@marcelotto](https://github.com/marcelotto)) From 58fe3205a46a3c15a6e7acdeee87cddac2bbf681 Mon Sep 17 00:00:00 2001 From: Tanmay2028 Date: Fri, 20 Mar 2026 10:53:21 +0100 Subject: [PATCH 010/111] Add ID directory for NeXus ontology within PaN --- PaN/NeXus/.htaccess | 9 +++++++++ PaN/NeXus/README.md | 18 ++++++++++++++++++ PaN/README.md | 2 ++ 3 files changed, 29 insertions(+) create mode 100644 PaN/NeXus/.htaccess create mode 100644 PaN/NeXus/README.md diff --git a/PaN/NeXus/.htaccess b/PaN/NeXus/.htaccess new file mode 100644 index 0000000000..eab8a31a41 --- /dev/null +++ b/PaN/NeXus/.htaccess @@ -0,0 +1,9 @@ +Header set Access-Control-Allow-Origin * +Options +FollowSymLinks +RewriteEngine On + +# Root: Redirect to github repository +RewriteRule ^$ https://github.com/nexusformat/NeXusOntology [R=303,L] + +# Redirect definitions path to the raw OWL file +RewriteRule ^nexusformat/definitions$ https://raw.githubusercontent.com/nexusformat/NeXusOntology/refs/heads/main/ontology/NeXusOntology.owl [R=303,L] \ No newline at end of file diff --git a/PaN/NeXus/README.md b/PaN/NeXus/README.md new file mode 100644 index 0000000000..423c0178c9 --- /dev/null +++ b/PaN/NeXus/README.md @@ -0,0 +1,18 @@ +# NeXus Ontology + +This folder uses .htaccess rules to provide stable, resolvable URI for NeXus Ontology. + +## Description +Github repository: +- /PaN/NeXus/ → https://github.com/nexusformat/NeXusOntology + +NeXus Ontology: +- /PaN/NeXus/nexusformat/definitions → https://raw.githubusercontent.com/nexusformat/NeXusOntology/refs/heads/main/ontology/NeXusOntology.owl + +## Contact + +* Heike Görzig (heike.goerzig@helmholtz-berlin.de), +[Helmholtz Zentrum Berlin](https://www.helmholtz-berlin.de/), Germany, [@hgoerzig](https://github.com/hgoerzig) + +* Aaron Brewster (NIAC Chair) (nexus-committee@nexusformat.org), +[Lawrence Berkeley National Laboratory](https://www.lbl.gov/), USA \ No newline at end of file diff --git a/PaN/README.md b/PaN/README.md index bf043fbd21..a87c8a9d29 100644 --- a/PaN/README.md +++ b/PaN/README.md @@ -12,3 +12,5 @@ This repository manages persistent HTTP identifiers (PIDs) under `w3id.org/PaN/` * Marjolaine Bodin (marjolaine.bodin@esrf.fr), ESRF, France, [@bodinm](https://github.com/bodinm) * Wout De Nolf (wout.de_nolf@esrf.fr), ESRF, France, [@woutdenolf](https://github.com/woutdenolf) * Nadine Fischer (nadine.fischer@esrf.fr), ESRF, France +* Heike Görzig (heike.goerzig@helmholtz-berlin.de), [Helmholtz Zentrum Berlin](https://www.helmholtz-berlin.de/), Germany, [@hgoerzig](https://github.com/hgoerzig) +* Aaron Brewster (NIAC Chair) (nexus-committee@nexusformat.org), [Lawrence Berkeley National Laboratory](https://www.lbl.gov/), USA \ No newline at end of file From 4ac1b00ec371020430e070a3babf08e295cf0a97 Mon Sep 17 00:00:00 2001 From: jdsika Date: Fri, 20 Mar 2026 11:07:51 +0100 Subject: [PATCH 011/111] feat: add reachhaven/ namespace with harbour credentials ontology - Create reachhaven/ top-level namespace with .htaccess and README - Create reachhaven/harbour/ with content-negotiation rules for core, gx, and delegate domains (turtle/jsonld/html) - Redirects resolve to reachhaven.github.io/harbour-credentials/ Signed-off-by: jdsika --- reachhaven/.htaccess | 15 ++++++++ reachhaven/README.md | 17 +++++++++ reachhaven/harbour/.htaccess | 68 ++++++++++++++++++++++++++++++++++++ reachhaven/harbour/README.md | 34 ++++++++++++++++++ 4 files changed, 134 insertions(+) create mode 100644 reachhaven/.htaccess create mode 100644 reachhaven/README.md create mode 100644 reachhaven/harbour/.htaccess create mode 100644 reachhaven/harbour/README.md diff --git a/reachhaven/.htaccess b/reachhaven/.htaccess new file mode 100644 index 0000000000..3b590097a5 --- /dev/null +++ b/reachhaven/.htaccess @@ -0,0 +1,15 @@ +Header set Access-Control-Allow-Origin * + +# MIME types for RDF serializations +AddType application/rdf+xml .rdf +AddType application/rdf+xml .owl +AddType text/turtle .ttl +AddType application/n-triples .nt +AddType application/ld+json .json +AddType application/ld+json .jsonld + +Options +FollowSymLinks +RewriteEngine on + +# Default redirect to Reachhaven website +RewriteRule ^$ https://reachhaven.com/ [R=303,L] diff --git a/reachhaven/README.md b/reachhaven/README.md new file mode 100644 index 0000000000..e8ec37f2b4 --- /dev/null +++ b/reachhaven/README.md @@ -0,0 +1,17 @@ +# Reachhaven GmbH + +Homepage: + +- + +## Subfolders + +- `harbour/` - Harbour Credentials Ontology + +## GitHub Repository + +- + +## Contacts + +- Carlo van Driesten (GitHub: [@jdsika](https://github.com/jdsika)) diff --git a/reachhaven/harbour/.htaccess b/reachhaven/harbour/.htaccess new file mode 100644 index 0000000000..62c04edb37 --- /dev/null +++ b/reachhaven/harbour/.htaccess @@ -0,0 +1,68 @@ +Header set Access-Control-Allow-Origin * + +# MIME types for RDF serializations +AddType application/rdf+xml .rdf +AddType application/rdf+xml .owl +AddType text/turtle .ttl +AddType application/n-triples .nt +AddType application/ld+json .json +AddType application/ld+json .jsonld + +Options +FollowSymLinks +RewriteEngine on + +# ============================================================================= +# Harbour Credentials Ontology - Static GitHub Pages resolution +# Pattern: /reachhaven/harbour/{domain}/v{version}[/][shapes|context] +# Target: reachhaven.github.io/harbour-credentials/w3id/reachhaven/harbour/... +# ============================================================================= + +# --- Turtle / RDF-XML --- + +# Ontology (versioned, domain-scoped) +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^(core|gx|delegate)/(v[0-9]+)/?$ https://reachhaven.github.io/harbour-credentials/w3id/reachhaven/harbour/$1/$2/ontology.ttl [R=303,L] + +# SHACL shapes (versioned) +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^(core|gx|delegate)/(v[0-9]+)/shapes/?$ https://reachhaven.github.io/harbour-credentials/w3id/reachhaven/harbour/$1/$2/shapes.ttl [R=303,L] + +# --- JSON-LD --- + +# JSON-LD context (versioned) +RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^(core|gx|delegate)/(v[0-9]+)/?$ https://reachhaven.github.io/harbour-credentials/w3id/reachhaven/harbour/$1/$2/context.jsonld [R=303,L] + +# JSON-LD shapes (versioned) — no JSON-LD shapes published, serve Turtle +RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^(core|gx|delegate)/(v[0-9]+)/shapes/?$ https://reachhaven.github.io/harbour-credentials/w3id/reachhaven/harbour/$1/$2/shapes.ttl [R=303,L] + +# --- Context sub-path (direct URL for JSON-LD @context references) --- +# JSON-LD processors fetch @context URLs with a plain GET (no Accept header), +# so these rules have no content-negotiation guard. + +# Versioned context +RewriteRule ^(core|gx|delegate)/(v[0-9]+)/context/?$ https://reachhaven.github.io/harbour-credentials/w3id/reachhaven/harbour/$1/$2/context.jsonld [R=303,L] + +# --- Bare class IRIs: /harbour/{domain}/v1/ClassName --- +# Individual class IRIs resolve to the ontology (OWL/SHACL validators +# dereference the namespace, not individual classes) +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^(core|gx|delegate)/(v[0-9]+)/.+$ https://reachhaven.github.io/harbour-credentials/w3id/reachhaven/harbour/$1/$2/ontology.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^(core|gx|delegate)/(v[0-9]+)/.+$ https://reachhaven.github.io/harbour-credentials/w3id/reachhaven/harbour/$1/$2/context.jsonld [R=303,L] + +# --- HTML fallback — redirect browsers to documentation --- +RewriteRule ^(core|gx|delegate)/(v[0-9]+)/?$ https://reachhaven.github.io/harbour-credentials/reference/schemas/ [R=303,L] +RewriteRule ^(core|gx|delegate)/(v[0-9]+)/shapes/?$ https://reachhaven.github.io/harbour-credentials/reference/schemas/ [R=303,L] +RewriteRule ^(core|gx|delegate)/(v[0-9]+)/.+$ https://reachhaven.github.io/harbour-credentials/reference/schemas/ [R=303,L] + +# --- Root redirect to documentation --- +RewriteRule ^$ https://reachhaven.github.io/harbour-credentials/ [R=303,L] diff --git a/reachhaven/harbour/README.md b/reachhaven/harbour/README.md new file mode 100644 index 0000000000..d0af101052 --- /dev/null +++ b/reachhaven/harbour/README.md @@ -0,0 +1,34 @@ +# Harbour Credentials Ontology + +Harbour is a library and ontology for issuing and verifying W3C Verifiable Credentials with selective disclosure (SD-JWT-VC), designed for the Gaia-X ecosystem. + +## Homepage + +- + +## Documentation + +Refer to the documentation site for the schema reference and API docs: + +- + +## URL Patterns + +- `https://w3id.org/reachhaven/harbour/{domain}/v{version}/` — Ontology namespace (for prefix) +- `https://w3id.org/reachhaven/harbour/{domain}/v{version}` — Ontology IRI (for owl:Ontology) +- `https://w3id.org/reachhaven/harbour/{domain}/v{version}/shapes` — SHACL shapes +- `https://w3id.org/reachhaven/harbour/{domain}/v{version}/context` — JSON-LD context + +Domains: `core`, `gx`, `delegate` + +## Resolution + +W3ID IRIs resolve to static files published on GitHub Pages via the release workflow. + +## GitHub Repository + +- + +## Contacts + +- Carlo van Driesten (GitHub: [@jdsika](https://github.com/jdsika)) From ba9a8d7c8426ae9a0b3a17d6fe3ab29e1c8048e0 Mon Sep 17 00:00:00 2001 From: jdsika Date: Fri, 20 Mar 2026 11:08:28 +0100 Subject: [PATCH 012/111] feat: add simpulse-id namespace for SimpulseID Credentials - Create ascs-ev/simpulse-id/ with content-negotiation rules for versioned ontology, shapes, and context artifacts - Update ascs-ev/README.md to list simpulse-id as active - Redirects resolve to ascs-ev.github.io/credentials/ Depends on: https://github.com/perma-id/w3id.org/pull/5851 Signed-off-by: jdsika --- ascs-ev/README.md | 2 +- ascs-ev/simpulse-id/.htaccess | 67 +++++++++++++++++++++++++++++++++++ ascs-ev/simpulse-id/README.md | 32 +++++++++++++++++ 3 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 ascs-ev/simpulse-id/.htaccess create mode 100644 ascs-ev/simpulse-id/README.md diff --git a/ascs-ev/README.md b/ascs-ev/README.md index 8dc5834003..e3cd89275d 100644 --- a/ascs-ev/README.md +++ b/ascs-ev/README.md @@ -7,7 +7,7 @@ Homepage: ## Subfolders - `envited-x/` - ENVITED-X Simulation Asset Ontologies -- `simpulse-id/` - SimpulseID Credentials (planned) +- `simpulse-id/` - SimpulseID Credentials ## GitHub Repository diff --git a/ascs-ev/simpulse-id/.htaccess b/ascs-ev/simpulse-id/.htaccess new file mode 100644 index 0000000000..8878cc03f8 --- /dev/null +++ b/ascs-ev/simpulse-id/.htaccess @@ -0,0 +1,67 @@ +Header set Access-Control-Allow-Origin * + +# MIME types for RDF serializations +AddType application/rdf+xml .rdf +AddType application/rdf+xml .owl +AddType text/turtle .ttl +AddType application/n-triples .nt +AddType application/ld+json .json +AddType application/ld+json .jsonld + +Options +FollowSymLinks +RewriteEngine on + +# ============================================================================= +# SimpulseID Credentials Ontology - Static GitHub Pages resolution +# Pattern: /ascs-ev/simpulse-id/v{version}[/][shapes|context] +# Target: ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/... +# ============================================================================= + +# --- Turtle / RDF-XML --- + +# Ontology (versioned) +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^(v[0-9]+)/?$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/ontology.ttl [R=303,L] + +# SHACL shapes (versioned) +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^(v[0-9]+)/shapes/?$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/shapes.ttl [R=303,L] + +# --- JSON-LD --- + +# JSON-LD context (versioned) +RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^(v[0-9]+)/?$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/context.jsonld [R=303,L] + +# JSON-LD shapes (versioned) — no JSON-LD shapes published, serve Turtle +RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^(v[0-9]+)/shapes/?$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/shapes.ttl [R=303,L] + +# --- Context sub-path (direct URL for JSON-LD @context references) --- +# JSON-LD processors fetch @context URLs with a plain GET (no Accept header), +# so these rules have no content-negotiation guard. + +# Versioned context +RewriteRule ^(v[0-9]+)/context/?$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/context.jsonld [R=303,L] + +# --- Bare class IRIs: /simpulse-id/v1/ClassName --- +# Individual class IRIs resolve to the ontology +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^(v[0-9]+)/.+$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/ontology.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^(v[0-9]+)/.+$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/context.jsonld [R=303,L] + +# --- HTML fallback — redirect browsers to documentation --- +RewriteRule ^(v[0-9]+)/?$ https://ascs-ev.github.io/credentials/reference/schemas/ [R=303,L] +RewriteRule ^(v[0-9]+)/shapes/?$ https://ascs-ev.github.io/credentials/reference/schemas/ [R=303,L] +RewriteRule ^(v[0-9]+)/.+$ https://ascs-ev.github.io/credentials/reference/schemas/ [R=303,L] + +# --- Root redirect to documentation --- +RewriteRule ^$ https://ascs-ev.github.io/credentials/ [R=303,L] diff --git a/ascs-ev/simpulse-id/README.md b/ascs-ev/simpulse-id/README.md new file mode 100644 index 0000000000..30b26bf706 --- /dev/null +++ b/ascs-ev/simpulse-id/README.md @@ -0,0 +1,32 @@ +# SimpulseID Credentials Ontology + +SimpulseID defines verifiable credential schemas for the ENVITED-X ecosystem, built on the Harbour Credentials library and Gaia-X Trust Framework. + +## Homepage + +- + +## Documentation + +Refer to the documentation site for the schema reference: + +- + +## URL Patterns + +- `https://w3id.org/ascs-ev/simpulse-id/v{version}/` — Ontology namespace (for prefix) +- `https://w3id.org/ascs-ev/simpulse-id/v{version}` — Ontology IRI (for owl:Ontology) +- `https://w3id.org/ascs-ev/simpulse-id/v{version}/shapes` — SHACL shapes +- `https://w3id.org/ascs-ev/simpulse-id/v{version}/context` — JSON-LD context + +## Resolution + +W3ID IRIs resolve to static files published on GitHub Pages via the release workflow. + +## GitHub Repository + +- + +## Contacts + +- Carlo van Driesten (GitHub: [@jdsika](https://github.com/jdsika)) From 569a37562c9b7b7ec81290c0f38ed157163dbb98 Mon Sep 17 00:00:00 2001 From: Carlo van Driesten Date: Fri, 20 Mar 2026 11:35:19 +0100 Subject: [PATCH 013/111] Rename project from Reachhaven GmbH to Haven --- reachhaven/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reachhaven/README.md b/reachhaven/README.md index e8ec37f2b4..c691cd22a2 100644 --- a/reachhaven/README.md +++ b/reachhaven/README.md @@ -1,4 +1,4 @@ -# Reachhaven GmbH +# Haven Homepage: From fbacbae2d7aefc07632ad15c0e4c37e2aaed43fc Mon Sep 17 00:00:00 2001 From: Steven PIEL Date: Fri, 20 Mar 2026 18:20:18 +0100 Subject: [PATCH 014/111] Create .htaccess --- earthsemantics/OSO/.htaccess | 1 + 1 file changed, 1 insertion(+) create mode 100644 earthsemantics/OSO/.htaccess diff --git a/earthsemantics/OSO/.htaccess b/earthsemantics/OSO/.htaccess new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/earthsemantics/OSO/.htaccess @@ -0,0 +1 @@ + From 45583ee49f4dc158286329c4db49c94517cb0acd Mon Sep 17 00:00:00 2001 From: Steven PIEL Date: Fri, 20 Mar 2026 18:24:50 +0100 Subject: [PATCH 015/111] Add rewrite rules for ontology and DCAT redirects --- earthsemantics/OSO/.htaccess | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/earthsemantics/OSO/.htaccess b/earthsemantics/OSO/.htaccess index 8b13789179..0cce233267 100644 --- a/earthsemantics/OSO/.htaccess +++ b/earthsemantics/OSO/.htaccess @@ -1 +1,10 @@ +RewriteEngine On +# Ontologie principale +RewriteRule ^$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/OSO.ttl [R=302,L] + +# VoID +RewriteRule ^void$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/void.ttl [R=302,L] + +# DCAT +RewriteRule ^dcat$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/oso_dcat.ttl [R=302,L] From 16440b81dec1fea1034190674392558d5f1cac7d Mon Sep 17 00:00:00 2001 From: noelmcloughlin Date: Fri, 20 Mar 2026 18:33:32 +0000 Subject: [PATCH 016/111] chore(lmodel): updated nist section --- lmodel/.htaccess | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lmodel/.htaccess b/lmodel/.htaccess index a793cf2a73..165b34c2a0 100644 --- a/lmodel/.htaccess +++ b/lmodel/.htaccess @@ -26,16 +26,12 @@ RewriteRule ^(.*)/data/(.*)\.sql$ https://raw.githubusercontent.com/lmodel/$1/ma # Continue ... -# Rewrite nist SP.800.53 URLs -RewriteRule ^nist-sp-800-53[-/]catalog(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-53-catalog/$1 [R=302,L] -RewriteRule ^nist-sp-800-53[-/]HIGH-baseline_profile(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-53-HIGH-baseline_profile/$1 [R=302,L] -RewriteRule ^nist-sp-800-53[-/]HIGH-baseline-resolved-profile_catalog(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-53-HIGH-baseline-resolved-profile_catalog/$1 [R=302,L] -RewriteRule ^nist-sp-800-53[-/]LOW-baseline_profile(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-53-LOW-baseline_profile/$1 [R=302,L] -RewriteRule ^nist-sp-800-53[-/]LOW-baseline-resolved-profile_catalog(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-53-LOW-baseline-resolved-profile_catalog/$1 [R=302,L] -RewriteRule ^nist-sp-800-53[-/]MODERATE-baseline_profile(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-53-MODERATE-baseline_profile/$1 [R=302,L] -RewriteRule ^nist-sp-800-53[-/]MODERATE-baseline-resolved-profile_catalog(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-53-MODERATE-baseline-resolved-profile_catalog/$1 [R=302,L] -RewriteRule ^nist-sp-800-53[-/]PRIVACY-baseline_profile(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-53-PRIVACY-baseline_profile/$1 [R=302,L] -RewriteRule ^nist-sp-800-53[-/]PRIVACY-baseline-resolved-profile_catalog(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-53-PRIVACY-baseline-resolved-profile_catalog/$1 [R=302,L] +# Rewrite nist cybersecurity URLs +RewriteRule ^nist-catalog(?:/|$)(.*)$ https://lmodel.github.io/nist-catalog/$1 [R=302,L] +RewriteRule ^nist-csf-v2(?:/|$)(.*)$ https://lmodel.github.io/nist-csf-v2/$1 [R=302,L] +RewriteRule ^nist-sp-800-53(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-53/$1 [R=302,L] +RewriteRule ^nist-sp-800-218(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-218/$1 [R=302,L] +RewriteRule ^nist-sp-800-171(?:/|$)(.*)$ https://lmodel.github.io/nist-sp-800-171/$1 [R=302,L] # Rewrite base URLs RewriteRule ^collections(?:/|$)(.*)$ https://lmodel.github.io/collections/$1 [R=302,L] From b2d32f7b374ea664789f2ff0bf55a6ce587daef7 Mon Sep 17 00:00:00 2001 From: Michael Zargham Date: Sat, 21 Mar 2026 01:05:00 -0400 Subject: [PATCH 017/111] kc --- kc/.htaccess | 41 +++++++++++++++++++++++++++++++++++++++++ kc/README.md | 25 +++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 kc/.htaccess create mode 100644 kc/README.md diff --git a/kc/.htaccess b/kc/.htaccess new file mode 100644 index 0000000000..9d6001cbc9 --- /dev/null +++ b/kc/.htaccess @@ -0,0 +1,41 @@ +# /kc/ +# +# Knowledge Complex — typed simplicial complexes backed by OWL, SHACL, and SPARQL. +# https://w3id.org/kc/ provides persistent URIs for the Knowledge Complex ontology. +# +# Core ontology: https://w3id.org/kc# (kc_core.ttl) +# Core shapes: https://w3id.org/kc/shape# (kc_core_shapes.ttl) +# +# Repository: https://github.com/BlockScience/knowledgecomplex +# +# ## Contact +# This space is administered by: +# Zargham +# GitHub username: mzargham + +Options +FollowSymLinks +Options -MultiViews + +AddType text/turtle .ttl + +RewriteEngine on + +# /kc/shape — SHACL shapes +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^shape$ https://raw.githubusercontent.com/BlockScience/knowledgecomplex/main/knowledgecomplex/resources/kc_core_shapes.ttl [R=303,L] + +RewriteRule ^shape$ https://blockscience.github.io/knowledgecomplex/ [R=303,L] + +# /kc/queries/ — SPARQL query templates for topological operations +# boundary, coboundary, star, closure, skeleton, degree, vertices +RewriteRule ^queries/([a-z]+)$ https://raw.githubusercontent.com/BlockScience/knowledgecomplex/main/knowledgecomplex/queries/$1.sparql [R=303,L] + +# /kc/queries/ — list (redirect to docs) +RewriteRule ^queries/?$ https://blockscience.github.io/knowledgecomplex/api/graph/ [R=303,L] + +# /kc/ — Core ontology +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^$ https://raw.githubusercontent.com/BlockScience/knowledgecomplex/main/knowledgecomplex/resources/kc_core.ttl [R=303,L] + +# Default: HTML documentation +RewriteRule ^$ https://blockscience.github.io/knowledgecomplex/ [R=303,L] diff --git a/kc/README.md b/kc/README.md new file mode 100644 index 0000000000..c258728d75 --- /dev/null +++ b/kc/README.md @@ -0,0 +1,25 @@ +# /kc/ — Knowledge Complex + +Persistent URIs for the [Knowledge Complex](https://github.com/BlockScience/knowledgecomplex) ontology — typed simplicial complexes backed by OWL, SHACL, and SPARQL. + +## URIs + +| URI | Resolves to | +|-----|-------------| +| `https://w3id.org/kc` | Core OWL ontology (`kc_core.ttl`) | +| `https://w3id.org/kc/shape` | Core SHACL shapes (`kc_core_shapes.ttl`) | +| `https://w3id.org/kc/queries/boundary` | SPARQL template: boundary operator ∂(σ) | +| `https://w3id.org/kc/queries/coboundary` | SPARQL template: cofaces δ(σ) | +| `https://w3id.org/kc/queries/star` | SPARQL template: star St(σ) | +| `https://w3id.org/kc/queries/closure` | SPARQL template: closure Cl(S) | +| `https://w3id.org/kc/queries/skeleton` | SPARQL template: k-skeleton sk_k(K) | +| `https://w3id.org/kc/queries/degree` | SPARQL template: degree deg(v) | +| `https://w3id.org/kc/queries/vertices` | SPARQL template: all vertices and types | + +Content negotiation: requests for `/kc` and `/kc/shape` with `Accept: text/turtle` receive the Turtle file directly; all other requests redirect to HTML documentation. Query templates are served directly as `.sparql` files. + +## Contact + +This namespace is maintained by: + +- **Zargham** — GitHub: [@mzargham](https://github.com/mzargham) From 77a3ceeaa111c84c91f55a8e64e6dabbc45d6022 Mon Sep 17 00:00:00 2001 From: automation Date: Mon, 23 Mar 2026 09:21:17 +0100 Subject: [PATCH 018/111] Add arknet namespace for semantic DDD architecture modeling arknet is a semantic modeling platform for software architecture based on Domain-Driven Design (RDF/OWL, SHACL, SPARQL, MCP). Part of https://kogn.io --- arknet/.htaccess | 47 +++++++++++++++++++++++++++++++++++++++++++++++ arknet/README.md | 14 ++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 arknet/.htaccess create mode 100644 arknet/README.md diff --git a/arknet/.htaccess b/arknet/.htaccess new file mode 100644 index 0000000000..28caaedf57 --- /dev/null +++ b/arknet/.htaccess @@ -0,0 +1,47 @@ +RewriteEngine on + +# Turn off MultiViews +Options -MultiViews + +# Directive to ensure RDF files served as appropriate content type +AddType application/rdf+xml .rdf +AddType application/rdf+xml .owl +AddType text/turtle .ttl +AddType text/n3 .n3 +AddType application/n-triples .nt +AddType application/ld+json .json + + +### Ontology modules: core, process, architecture, tech, privacy +# Serve Turtle content for ontology modules +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} text/\* [OR] +RewriteCond %{HTTP_ACCEPT} \*/turtle +RewriteRule ^(core|process|architecture|tech|privacy)$ https://git.changinggraph.org/kogn-io/arknet/raw/branch/main/ontology/$1.ttl [R=303,L] + +# Serve HTML content for ontology modules +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* +RewriteRule ^(core|process|architecture|tech|privacy)$ https://git.changinggraph.org/kogn-io/arknet/src/branch/main/ontology/$1.ttl [R=303,L] + +# Serve RDF/XML content for ontology modules +RewriteCond %{HTTP_ACCEPT} \*/\* [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^(core|process|architecture|tech|privacy)$ https://git.changinggraph.org/kogn-io/arknet/raw/branch/main/ontology/$1.ttl [R=303,L] + + +### SHACL shapes +RewriteRule ^shapes/(.+)$ https://git.changinggraph.org/kogn-io/arknet/raw/branch/main/shapes/$1.ttl [R=303,L] + + +### Root: redirect to repository +# Serve Turtle for root namespace +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} text/\* [OR] +RewriteCond %{HTTP_ACCEPT} \*/turtle +RewriteRule ^$ https://git.changinggraph.org/kogn-io/arknet/raw/branch/main/ontology/core.ttl [R=303,L] + +# Default: redirect to repository +RewriteRule ^$ https://git.changinggraph.org/kogn-io/arknet [R=303,L] diff --git a/arknet/README.md b/arknet/README.md new file mode 100644 index 0000000000..26ccae9711 --- /dev/null +++ b/arknet/README.md @@ -0,0 +1,14 @@ +## arknet – Semantic Architecture Modeling for Domain-Driven Design + +A semantic modeling platform for software architecture based on Domain-Driven Design. +Architecture models in RDF/OWL (W3C standards) instead of proprietary DSLs – +validatable (SHACL), queryable (SPARQL), and AI-ready (MCP). + +### Resources + +* Repository: https://git.changinggraph.org/kogn-io/arknet +* Part of: https://kogn.io + +### Contact + +* Fred Robert Hauschel – https://github.com/naturzukunft From f352ad5763365e14551a531de0494141c4974821 Mon Sep 17 00:00:00 2001 From: Miguel Vieira da Silva Date: Thu, 19 Mar 2026 10:08:52 +0100 Subject: [PATCH 019/111] redirection of ODP ISO7498 redirection for ODP IEC62443 --- hsu-aut/IEC62443/.htaccess | 20 ++++++++++++++++++++ hsu-aut/ISO7498-1/.htaccess | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 hsu-aut/IEC62443/.htaccess create mode 100644 hsu-aut/ISO7498-1/.htaccess diff --git a/hsu-aut/IEC62443/.htaccess b/hsu-aut/IEC62443/.htaccess new file mode 100644 index 0000000000..fe7b9eb0cd --- /dev/null +++ b/hsu-aut/IEC62443/.htaccess @@ -0,0 +1,20 @@ +RewriteEngine on + +# Redirect ontology version IRI to the given version +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [OR] +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^(\d\.\d\.\d)/?$ https://raw.githubusercontent.com/hsu-aut/IndustrialStandard-ODP-IEC62443/v$1/iec62443.ttl [R=303,NC,L] + +# Redirect ontology IRI (without version) to the current main branch version +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [OR] +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^/?$ https://raw.githubusercontent.com/hsu-aut/IndustrialStandard-ODP-IEC62443/master/iec62443.ttl [R=303,NC,L] + +# Redirect HTML requests to the main repository page +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml +RewriteRule ^(\d\.\d\.\d)?/?$ https://github.com/hsu-aut/IndustrialStandard-ODP-IEC62443 [R=302,NC,L] + diff --git a/hsu-aut/ISO7498-1/.htaccess b/hsu-aut/ISO7498-1/.htaccess new file mode 100644 index 0000000000..040f87872f --- /dev/null +++ b/hsu-aut/ISO7498-1/.htaccess @@ -0,0 +1,20 @@ +RewriteEngine on + +# Redirect ontology version IRI to the given version +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [OR] +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^(\d\.\d\.\d)/?$ https://raw.githubusercontent.com/hsu-aut/IndustrialStandard-ODP-ISO7498-1/v$1/ISO7498.ttl [R=303,NC,L] + +# Redirect ontology IRI (without version) to the current main branch version +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [OR] +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^/?$ https://raw.githubusercontent.com/hsu-aut/IndustrialStandard-ODP-ISO7498-1/master/ISO7498.ttl [R=303,NC,L] + +# Redirect HTML requests to the main repository page +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml +RewriteRule ^(\d\.\d\.\d)?/?$ https://github.com/hsu-aut/IndustrialStandard-ODP-ISO7498-1 [R=302,NC,L] + From afa373784c5a0e9f82d13fe7e4bde849a2fa1c5f Mon Sep 17 00:00:00 2001 From: "Giorgio A. Ubbiali" <104498237+gioUbbiali@users.noreply.github.com> Date: Mon, 23 Mar 2026 10:03:40 +0100 Subject: [PATCH 020/111] Update .htaccess --- climoo/.htaccess | 1 + 1 file changed, 1 insertion(+) diff --git a/climoo/.htaccess b/climoo/.htaccess index 7ad7187fc0..2e6c41cf49 100644 --- a/climoo/.htaccess +++ b/climoo/.htaccess @@ -20,6 +20,7 @@ RedirectMatch 302 ^/climoo/releases/?$ https://github.com/ClimOO/ClimOO-Ontolog ## Redirect to RDF content when accessing the root namespace RedirectMatch 302 ^/climoo/?$ https://raw.githubusercontent.com/ClimOO/ClimOO-Ontology/refs/heads/main/climoo.ttl +RedirectMatch 302 ^/climoo/(climoo[^/]*)$ https://raw.githubusercontent.com/ClimOO/ClimOO-Ontology/refs/heads/main//$1.ttl ## Redirect documentation requests explicitly RedirectMatch 302 ^/climoo/docs/?$ https://github.com/ClimOO/ClimOO-Ontology/docs/index.html From cc56cfb765544ec4fa4181b100db7b6ec4c7a20a Mon Sep 17 00:00:00 2001 From: yurykharytanovich Date: Mon, 23 Mar 2026 10:29:35 +0100 Subject: [PATCH 021/111] update versions of schema context and ont plus default ont version --- liccium/.htaccess | 2 +- liccium/README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/liccium/.htaccess b/liccium/.htaccess index c36f52401a..28b4a897d1 100644 --- a/liccium/.htaccess +++ b/liccium/.htaccess @@ -33,7 +33,7 @@ RewriteRule ^context/(.+)\.json$ https://raw.githubusercontent.com/liccium/w3id. # Ontology files # ------------------------------ # Default: ont/ or ont → 0.1.0.ttl -RewriteRule ^ont/?$ https://raw.githubusercontent.com/liccium/w3id.docs/main/ont/0.1.0.ttl [R=303,L] +RewriteRule ^ont/?$ https://raw.githubusercontent.com/liccium/w3id.docs/main/ont/0.2.0.ttl [R=303,L] # Specific file: ont/.ttl RewriteRule ^ont/(.+)\.ttl$ https://raw.githubusercontent.com/liccium/w3id.docs/main/ont/$1.ttl [R=303,L] diff --git a/liccium/README.md b/liccium/README.md index 46d98f72e5..8bd8d77d6f 100644 --- a/liccium/README.md +++ b/liccium/README.md @@ -14,9 +14,9 @@ Reference these files via w3id.org persistent URLs: | Format | URL | | ---------------- | -------------------------------------------- | -| **JSON Schema** | https://w3id.org/liccium/schema/0.1.0.json | -| **JSON-LD** | https://w3id.org/liccium/context/0.1.0.json | -| **OWL Ontology** | https://w3id.org/liccium/ont/0.1.0.ttl | +| **JSON Schema** | https://w3id.org/liccium/schema/0.3.0.json | +| **JSON-LD** | https://w3id.org/liccium/context/0.3.0.json | +| **OWL Ontology** | https://w3id.org/liccium/ont/0.2.0.ttl | **Repository:** https://github.com/Liccium/w3id.docs From 3d968a1773dd8f107ae2d43ede3b0764f2aa087e Mon Sep 17 00:00:00 2001 From: lc-spxl Date: Mon, 23 Mar 2026 10:26:15 +0100 Subject: [PATCH 022/111] Add celine-eu namespace for CELINE Core Ontology Persistent URI namespace for the CELINE Core Ontology (https://w3id.org/celine-eu), a lightweight orchestration profile for Renewable Energy Communities and Digital Twin workflows. Maintainers: lc-spxl, mpavan23 (SPXL), ewidl (AIT) --- celine-eu/.htaccess | 55 +++++++++++++++++++++++++++++++++++++++++++++ celine-eu/README.md | 39 ++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 celine-eu/.htaccess create mode 100644 celine-eu/README.md diff --git a/celine-eu/.htaccess b/celine-eu/.htaccess new file mode 100644 index 0000000000..d3eb7fe185 --- /dev/null +++ b/celine-eu/.htaccess @@ -0,0 +1,55 @@ +Options +FollowSymLinks +RewriteEngine on + +# CELINE Core Ontology — https://w3id.org/celine-eu +# Contact: https://github.com/celine-eu +# Docs: https://celine-eu.github.io/ontologies/ + +AddType text/turtle .ttl +AddType application/rdf+xml .owl +AddType application/ld+json .jsonld +AddType application/n-triples .nt + +# ── Ontology root IRI: https://w3id.org/celine-eu ────────────────────────── + +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* +RewriteRule ^$ https://celine-eu.github.io/ontologies/ [R=303,L] + +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^$ https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/current/ontology.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^$ https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/current/ontology.owl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^$ https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/current/ontology.jsonld [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^$ https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/current/ontology.nt [R=303,L] + +RewriteRule ^$ https://celine-eu.github.io/ontologies/ [R=303,L] + +# ── Versioned IRI: https://w3id.org/celine-eu/vX.Y ───────────────────────── + +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* +RewriteRule ^(v[0-9]+\.[0-9]+)$ https://celine-eu.github.io/ontologies/ [R=303,L] + +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^(v[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/$1/ontology.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^(v[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/$1/ontology.owl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^(v[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/$1/ontology.jsonld [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^(v[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/$1/ontology.nt [R=303,L] + +RewriteRule ^(v[0-9]+\.[0-9]+)$ https://celine-eu.github.io/ontologies/ [R=303,L] diff --git a/celine-eu/README.md b/celine-eu/README.md new file mode 100644 index 0000000000..a1957bed5c --- /dev/null +++ b/celine-eu/README.md @@ -0,0 +1,39 @@ +# /celine-eu + +Persistent URI namespace for the **CELINE Core Ontology** — a lightweight +orchestration profile for Renewable Energy Communities (RECs) and Digital +Twin workflows connecting PECO, SAREF, SOSA/SSN and BIGG. + +CELINE is a Horizon Europe project (Grant Agreement No. 101160667). + +## Redirects + +Serializations are served from the WIDOCO-generated `releases/current/` directory. + +| Accept | Target | +|---|---| +| `text/html` | https://celine-eu.github.io/ontologies/ | +| `text/turtle` | https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/current/ontology.ttl | +| `application/rdf+xml` | https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/current/ontology.owl | +| `application/ld+json` | https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/current/ontology.jsonld | +| `application/n-triples` | https://raw.githubusercontent.com/celine-eu/ontologies/main/releases/current/ontology.nt | + +Versioned IRIs (`/celine-eu/vX.Y`) resolve to the corresponding `releases/$version/` files. + +## References + +- Project website: https://www.celineproject.eu/ +- GitHub organisation: https://github.com/celine-eu +- Documentation: https://celine-eu.github.io/ + +## Contact + +This space is administered by the CELINE project team. + +GitHub organisation: [celine-eu](https://github.com/celine-eu) + +**lc-spxl** (SPXL), https://github.com/lc-spxl + +**mpavan23** (SPXL), https://github.com/mpavan23 + +**ewidl** (AIT), https://github.com/ewidl From aac6eb1f6d1f800451804000356c0e76ca06b458 Mon Sep 17 00:00:00 2001 From: Luca Gulinelli Date: Tue, 24 Mar 2026 09:15:55 +0100 Subject: [PATCH 023/111] Update .htaccess --- italia/public-policies-analysis/data/.htaccess | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/italia/public-policies-analysis/data/.htaccess b/italia/public-policies-analysis/data/.htaccess index f27cf466a9..38e99fcfe1 100644 --- a/italia/public-policies-analysis/data/.htaccess +++ b/italia/public-policies-analysis/data/.htaccess @@ -1,6 +1,16 @@ Header set Access-Control-Allow-Origin * Options +FollowSymLinks RewriteEngine on -SetEnvIf Request_URI ^.*$ ROOT_URL=https://schema.gov.it/lodview/public-policies-analysis/data/ -RewriteRule ^(.*)/?$ %{ENV:ROOT_URL}$1 [R=303,L] +SetEnvIf Accept ^.*text/turtle.* SYNTAX=ttl +SetEnvIf Accept ^.*application/json.* SYNTAX=json +SetEnvIf Accept ^.*application/csv.* SYNTAX=csv +SetEnvIf Accept ^.*text/csv.* SYNTAX=csv +SetEnvIf Accept ^.*text/html.* SYNTAX=html + +RewriteCond %{ENV:SYNTAX} ^html$ +RewriteRule ^(.+)$ https://dati.inapp.gov.it/$1 [R=303,L] + +RewriteRule ^(.+)/(.+)$ https://dati.inapp.gov.it/$1/$2 [R=303,L] + +RewriteRule ^(.+)/(.+)/(.+)$ https://dati.inapp.gov.it/$1/$2/$3 [R=303,L] From 4988c1fe96d0247e40c6b36cc349a319c7f76584 Mon Sep 17 00:00:00 2001 From: hauschel Date: Tue, 24 Mar 2026 10:36:45 +0100 Subject: [PATCH 024/111] Update README.md github url removed --- arknet/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arknet/README.md b/arknet/README.md index 26ccae9711..944fda14c8 100644 --- a/arknet/README.md +++ b/arknet/README.md @@ -11,4 +11,4 @@ validatable (SHACL), queryable (SPARQL), and AI-ready (MCP). ### Contact -* Fred Robert Hauschel – https://github.com/naturzukunft +* Fred Robert Hauschel From 7ddc77d9f536e1a854e3dc477cd4b35c49ae03f1 Mon Sep 17 00:00:00 2001 From: Stephen Gadd <42514781+docuracy@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:54:44 +0100 Subject: [PATCH 025/111] Add .htaccess and README for Medieval London Customs Accounts content negotiation and URI patterns --- mlca/.htaccess | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ mlca/README.md | 28 +++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 mlca/.htaccess create mode 100644 mlca/README.md diff --git a/mlca/.htaccess b/mlca/.htaccess new file mode 100644 index 0000000000..25b1b896a9 --- /dev/null +++ b/mlca/.htaccess @@ -0,0 +1,60 @@ +# w3id.org content negotiation for Medieval London Customs Accounts +# +# Submitted to https://github.com/perma-id/w3id.org via pull request. +# See README.md for URI pattern documentation. +# +# HTTP flow: +# https://w3id.org/mlca/4-11-B-0001 +# Accept: application/ld+json → 303 → .../api/4-11-B-0001.json +# Accept: text/html (default) → 303 → .../entity.html#4-11-B-0001 +# +# https://w3id.org/mlca/4-11-B-0001-0001 (cargo) +# Accept: application/ld+json → 303 → .../api/4-11-B-0001.json +# (cargo is a node in the graph) +# Accept: text/html (default) → 303 → .../entity.html#4-11-B-0001-0001 +# +# https://w3id.org/mlca/glossary/cloth +# Accept: application/ld+json → 303 → .../api/glossary/cloth.json +# Accept: text/html (default) → 303 → .../entity.html#glossary/cloth + +Options +FollowSymLinks +RewriteEngine on + +Header set Access-Control-Allow-Origin * +Header set Access-Control-Allow-Headers "Accept" + +# Base URL for GitHub Pages site +# (no trailing slash — added in rules below) + +# --- Context document (no content negotiation needed) --- +RewriteRule ^context$ https://docuracy.github.io/London_Customs_Accounts/api/context.json [R=303,L] + +# --- JSON-LD: Cargo URI → parent lading file --- +# Cargo IDs have 5 hyphen-separated segments: e.g. 4-11-B-0001-0001 +# Strip the cargo suffix and serve the parent lading JSON. +RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^(\d+-\d+-[A-Z]-\d{4})-\d{4}$ https://docuracy.github.io/London_Customs_Accounts/api/$1.json [R=303,L] + +# --- JSON-LD: Lading URI --- +RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^(\d+-\d+-[A-Z]-\d{4})$ https://docuracy.github.io/London_Customs_Accounts/api/$1.json [R=303,L] + +# --- JSON-LD: Glossary term --- +RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] +RewriteCond %{HTTP_ACCEPT} application/json +RewriteRule ^glossary/(.+)$ https://docuracy.github.io/London_Customs_Accounts/api/glossary/$1.json [R=303,L] + +# --- HTML: Cargo --- +RewriteRule ^(\d+-\d+-[A-Z]-\d{4}-\d{4})$ https://docuracy.github.io/London_Customs_Accounts/entity.html#$1 [R=303,L,NE] + +# --- HTML: Lading --- +RewriteRule ^(\d+-\d+-[A-Z]-\d{4})$ https://docuracy.github.io/London_Customs_Accounts/entity.html#$1 [R=303,L,NE] + +# --- HTML: Glossary term --- +RewriteRule ^glossary/(.+)$ https://docuracy.github.io/London_Customs_Accounts/entity.html#glossary/$1 [R=303,L,NE] + +# --- Homepage --- +RewriteRule ^$ https://docuracy.github.io/London_Customs_Accounts/ [R=303,L] + diff --git a/mlca/README.md b/mlca/README.md new file mode 100644 index 0000000000..117f0981c0 --- /dev/null +++ b/mlca/README.md @@ -0,0 +1,28 @@ +# /mlca/ — Medieval London Customs Accounts + +Permanent identifiers for entities in the Medieval London Customs Accounts +digital humanities project. + +## Maintainer + +- **Stephen Gadd** — + +## Homepage + + + +## URI patterns + +| Pattern | Entity type | Example | +|---------|-------------|---------| +| `/mlca/{lading-id}` | Lading record | `/mlca/4-11-B-0001` | +| `/mlca/{lading-id}-{seq}` | Cargo within a lading | `/mlca/4-11-B-0001-0001` | +| `/mlca/glossary/{term}` | Commodity glossary term | `/mlca/glossary/cloth` | +| `/mlca/context` | JSON-LD context document | `/mlca/context` | + +## Content negotiation + +- `Accept: application/ld+json` or `application/json` → 303 redirect to + static JSON(-LD) files on GitHub Pages (`application/json` Content-Type). +- Default → 303 redirect to an HTML entity resolver page. + From 6c924407ce1cdc183754e9f6a7648c93a327e7a3 Mon Sep 17 00:00:00 2001 From: Jesper Friis Date: Tue, 24 Mar 2026 20:07:24 +0100 Subject: [PATCH 026/111] Redirection rules for SSbD ontologies. --- ssbd/.htaccess | 172 +++++++++++++++++++++++++++++++++++++++++++++++++ ssbd/README.md | 78 ++++++++++++++++++++++ 2 files changed, 250 insertions(+) create mode 100644 ssbd/.htaccess create mode 100644 ssbd/README.md diff --git a/ssbd/.htaccess b/ssbd/.htaccess new file mode 100644 index 0000000000..e72dfad026 --- /dev/null +++ b/ssbd/.htaccess @@ -0,0 +1,172 @@ +########################################################################## +# .htaccess file https://w3id.org/ssbd +# +# If testing interactively with https://htaccess.madewithlove.com/ +# remember to remove the initial "ssbd/" in the URL to test. +# +########################################################################## + +Options +FollowSymLinks + +# Rewrite engine setup +RewriteEngine On + + +########################################################################## +## IRIs to namespaces +########################################################################## + +# Source: https://w3id.org/ssbd +# Target from browser: https://ssbd-ontology.github.io/core/core.html +# Target, otherwise: https://ssbd-ontology.github.io/core/core.ttl +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^/?$ https://ssbd-ontology.github.io/core.html [R=303,NE,L] +RewriteRule ^/?$ https://ssbd-ontology.github.io/core.ttl [R=303,NE,L] + +# Source: https://w3id.org/ssbd/{VERSION} +# Target from browser: https://ssbd-ontology.github.io/core/versions/{VERSION}/core.html +# Target, otherwise: https://ssbd-ontology.github.io/core/versions/{VERSION}/core.ttl +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^([0-9][^/]*)/?$ https://ssbd-ontology.github.io/core/versions/$1/core.html [R=303,NE,L] +RewriteRule ^([0-9][^/]*)/?$ https://ssbd-ontology.github.io/core/versions/$1/core.ttl [R=303,NE,L] + +# Source: https://w3id.org/ssbd/domain/{DOMAIN} +# Target from browser: https://ssbd-ontology.github.io/domain-{DOMAIN}/{DOMAIN}.html +# Target, otherwise: https://ssbd-ontology.github.io/domain-{DOMAIN}/{DOMAIN}.ttl +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^domain/(domain-)?([^/]+)/?$ https://ssbd-ontology.github.io/domain-$2/$2.html [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/?$ https://ssbd-ontology.github.io/domain-$2/$2.ttl [R=303,NE,L] +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^application/(application-)?([^/]+)/?$ https://ssbd-ontology.github.io/application-$2/$2.html [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/?$ https://ssbd-ontology.github.io/application-$2/$2.ttl [R=303,NE,L] + +# Source: https://w3id.org/ssbd/domain/{DOMAIN}/{VERSION} +# Target from browser: https://ssbd-ontology.github.io/domain-{DOMAIN}/versions/{VERSION}/{DOMAIN}.html +# Target, otherwise: https://ssbd-ontology.github.io/domain-{DOMAIN}/versions/{VERSION}/{DOMAIN}.ttl +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/?$ https://ssbd-ontology.github.io/domain-$2/versions/$3/$2.html [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/?$ https://ssbd-ontology.github.io/domain-$2/versions/$3/$2.ttl [R=303,NE,L] +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/?$ https://ssbd-ontology.github.io/application-$2/versions/$3/$2.html [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/?$ https://ssbd-ontology.github.io/application-$2/versions/$3/$2.ttl [R=303,NE,L] + + +########################################################################## +## IRIs to ontological terms +########################################################################## + +# Source: https://w3id.org/ssbd/{TERM} +# Target from browser: https://ssbd-ontology.github.io/core/core.html?section={TERM} +# Target, otherwise: https://ssbd-ontology.github.io/core/core.ttl +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^([^/]+)$ https://ssbd-ontology.github.io/core.html?section=$1 [R=303,NE,L] +RewriteRule ^([^/]+)$ https://ssbd-ontology.github.io/core.ttl [R=303,NE,L] + +# Source: https://w3id.org/ssbd/{VERSION}/{TERM} +# Target from browser: https://ssbd-ontology.github.io/core/versions/{VERSION}/core.html?section={TERM} +# Target, otherwise: https://ssbd-ontology.github.io/core/versions/{VERSION}/core.ttl +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^([0-9][^/]*)/([^/]+)$ https://ssbd-ontology.github.io/core/versions/$1/core.html?section=$2 [R=303,NE,L] +RewriteRule ^([0-9][^/]*)/([^/]+)$ https://ssbd-ontology.github.io/core/versions/$1/core.ttl [R=303,NE,L] + +# Source: https://w3id.org/ssbd/domain/{DOMAIN}/{TERM} +# Target from browser: https://ssbd-ontology.github.io/domain-{DOMAIN}/{DOMAIN}.html?section={TERM} +# Target, otherwise: https://ssbd-ontology.github.io/domain-{DOMAIN}/{DOMAIN}.ttl +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^domain/(domain-)?([^/]+)/([^/]+)$ https://ssbd-ontology.github.io/domain-$2/$2.html?section=$3 [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/([^/]+)$ https://ssbd-ontology.github.io/domain-$2/$2.ttl [R=303,NE,L] +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^application/(application-)?([^/]+)/([^/]+)$ https://ssbd-ontology.github.io/application-$2/$2.html?section=$3 [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([^/]+)$ https://ssbd-ontology.github.io/application-$2/$2.ttl [R=303,NE,L] + +# Source: https://w3id.org/ssbd/domain/{DOMAIN}/{VERSION}/{TERM} +# Target from browser: https://ssbd-ontology.github.io/domain-{DOMAIN}/versions/{VERSION}/{DOMAIN}.html?section={TERM} +# Target, otherwise: https://ssbd-ontology.github.io/domain-{DOMAIN}/versions/{VERSION}/{DOMAIN}.ttl +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/([^/]+)$ https://ssbd-ontology.github.io/domain-$2/versions/$3/$2.html?section=$4 [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/([^/]+)$ https://ssbd-ontology.github.io/domain-$2/versions/$3/$2.ttl [R=303,NE,L] +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/([^/]+)$ https://ssbd-ontology.github.io/application-$2/versions/$3/$2.html?section=$4 [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/([^/]+)$ https://ssbd-ontology.github.io/application-$2/versions/$3/$2.ttl [R=303,NE,L] + + +########################################################################## +## IRIs to asserted ontologies (modules) +########################################################################## + +# Source: https://w3id.org/ssbd/{PATH}/{MODULE} +# Target: https://github.com/ssbd-ontology/core/main/{PATH}/{MODULE} +RewriteRule ^([a-zA-Z).*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/core/main/$1/$2.ttl [R=303,NE,L] + +# Source: https://w3id.org/ssbd/{VERSION}/{PATH}/{MODULE} +# Target: https://github.com/ssbd-ontology/core/{VERSION}/{PATH}/{MODULE} +RewriteRule ^([0-9][^/]*)/(.*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/core/main/$1/$2/$3.ttl [R=303,NE,L] + +# Source: https://w3id.org/ssbd/domain/{DOMAIN}/{PATH}/{MODULE} +# Target: https://github.com/ssbd-ontology/domain-{DOMAIN}/main/{PATH}/{MODULE} +RewriteRule ^domain/(domain-)?([^/]+)/([a-zA-Z].*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/domain-$2/main/$3/$4.ttl [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([a-zA-Z].*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/application-$2/main/$3/$4.ttl [R=303,NE,L] + +# Source: https://w3id.org/ssbd/domain/{DOMAIN}/{VERSION}/{PATH}/{MODULE} +# Target: https://github.com/ssbd-ontology/domain-{DOMAIN}/{VERSION}/{PATH}/{MODULE} +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/([a-zA-Z].*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/domain-$2/$3/$4/$5.ttl [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/([a-zA-Z].*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/application-$2/$3/$4/$5.ttl [R=303,NE,L] + + +########################################################################## +## Special redirections +########################################################################## + +# Source: {NAMESPACE}/html/ +# Target: HTML documentation on GitHub Pages +RewriteRule ^html/$ https://ssbd-ontology.github.io/core.html [R=303,NE,L] +RewriteRule ^([0-9][^/]*)/html/$ https://ssbd-ontology.github.io/core/versions/$1/core.html [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/html/$ https://ssbd-ontology.github.io/domain-$2/$2.html [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/html/$ https://ssbd-ontology.github.io/application-$2/$2.html [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/html/$ https://ssbd-ontology.github.io/domain-$2/versions/$3/$2.html [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/html/$ https://ssbd-ontology.github.io/application-$2/versions/$3/$2.html [R=303,NE,L] + +# Source: {NAMESPACE}/turtle/ +# Target: Squashed turtle file on GitHub Pages +RewriteRule ^turtle/$ https://ssbd-ontology.github.io/core.ttl [R=303,NE,L] +RewriteRule ^([0-9][^/]*)/turtle/$ https://ssbd-ontology.github.io/core/versions/$1/core.ttl [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/turtle/$ https://ssbd-ontology.github.io/domain-$2/$2.ttl [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/turtle/$ https://ssbd-ontology.github.io/application-$2/$2.ttl [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/turtle/$ https://ssbd-ontology.github.io/domain-$2/versions/$3/$2.ttl [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/turtle/$ https://ssbd-ontology.github.io/application-$2/versions/$3/$2.ttl [R=303,NE,L] + +# Source: {NAMESPACE}/inferred/ +# Target: Inferred ontology on GitHub Pages +RewriteRule ^inferred/$ https://ssbd-ontology.github.io/core-inferred.ttl [R=303,NE,L] +RewriteRule ^([0-9][^/]*)/inferred/$ https://ssbd-ontology.github.io/core/versions/$1/core-inferred.ttl [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/inferred/$ https://ssbd-ontology.github.io/domain-$2/$2-inferred.ttl [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/inferred/$ https://ssbd-ontology.github.io/application-$2/$2-inferred.ttl [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/inferred/$ https://ssbd-ontology.github.io/domain-$2/versions/$3/$2-inferred.ttl [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/inferred/$ https://ssbd-ontology.github.io/application-$2/versions/$3/$2-inferred.ttl [R=303,NE,L] + +# Source: {NAMESPACE}/dependencies/ +# Target: Inferred ontology on GitHub Pages +RewriteRule ^dependencies/$ https://ssbd-ontology.github.io/core-dependencies.ttl [R=303,NE,L] +RewriteRule ^([0-9][^/]*)/dependencies/$ https://ssbd-ontology.github.io/core/versions/$1/core-dependencies.ttl [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/dependencies/$ https://ssbd-ontology.github.io/domain-$2/$2-dependencies.ttl [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/dependencies/$ https://ssbd-ontology.github.io/application-$2/$2-dependencies.ttl [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/dependencies/$ https://ssbd-ontology.github.io/domain-$2/versions/$3/$2-dependencies.ttl [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/dependencies/$ https://ssbd-ontology.github.io/application-$2/versions/$3/$2-dependencies.ttl [R=303,NE,L] + +# Source: {NAMESPACE}/context/ +# Target: JSON-LD context on GitHub Pages +RewriteRule ^context/$ https://ssbd-ontology.github.io/context/context.json [R=303,NE,L] +RewriteRule ^([0-9][^/]*)/context/$ https://ssbd-ontology.github.io/core/versions/$1/context/context.json [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/context/$ https://ssbd-ontology.github.io/domain-$2/context/context.json [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/context/$ https://ssbd-ontology.github.io/application-$2/context/context.json [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/context/$ https://ssbd-ontology.github.io/domain-$2/versions/$3/context/context.json [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/context/$ https://ssbd-ontology.github.io/application-$2/versions/$3/context/context.json [R=303,NE,L] + +# Source: {NAMESPACE}/context/{CONTEXTNAME}/ +# Target: JSON-LD context on GitHub Pages +RewriteRule ^context/([^/]+)/$ https://ssbd-ontology.github.io/context/$1.json [R=303,NE,L] +RewriteRule ^([0-9][^/]*)/context/([^/]+)/$ https://ssbd-ontology.github.io/core/versions/$1/context/$2.json [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/context/([^/]+)/$ https://ssbd-ontology.github.io/domain-$2/context/$3.json [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/context/([^/]+)/$ https://ssbd-ontology.github.io/application-$2/context/$3.json [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/context/([^/]+)/$ https://ssbd-ontology.github.io/domain-$2/versions/$3/context/$4.json [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/context/([^/]+)/$ https://ssbd-ontology.github.io/application-$2/versions/$3/context/$4.json [R=303,NE,L] diff --git a/ssbd/README.md b/ssbd/README.md new file mode 100644 index 0000000000..672351b9c0 --- /dev/null +++ b/ssbd/README.md @@ -0,0 +1,78 @@ +# SSbD +This [W3ID](https://w3id.org) repository provides a persistent namespace for IRIs for the Safety and Sustainability by Design (SSbD) community. + +## Redirection rules + + +### Substitutions +Variable names used in the IRIs below. + +* **{VERSION}**: Version number. Must start with a digit, e.g. "0.5.3". +* **{NAME}**: Name of SSbD domain or application ontology. +* **{TERM}**: Final component of the IRI of an ontological concept. +* **{PATH}**: Directory path. +* **{MODULE}**: Name of a (sub-)ontology module. +* **{CONTEXTNAME}**: Name of an additional JSON-LD context. +* **{NAMESPACE}**: IRI to a namespace, see below. + + +### IRIs to namespaces +These must follow any of the following patterns: + +* https://w3id.org/ssbd -> SSbD Core Ontology, latest +* https://w3id.org/ssbd/{VERSION} -> SSbD Core Ontology, given version +* https://w3id.org/ssbd/domain/{NAME} -> SSbD domain ontology, latest +* https://w3id.org/ssbd/domain/{NAME}/{VERSION} -> SSbD domain ontology, given version +* https://w3id.org/ssbd/application/{NAME} -> SSbD application ontology, latest +* https://w3id.org/ssbd/application/{NAME}/{VERSION} -> SSbD application ontology, given version + +The IRI can have an optional trailing slash. +If the request comes from a browser, the redirection will be to a html file, otherwise to a turtle file. + + +### IRIs to ontological terms +These must follow any of the following patterns: + +* https://w3id.org/ssbd/{TERM} -> Term in the SSbD Core Ontology, latest +* https://w3id.org/ssbd/{VERSION}/{TERM} -> Term in the SSbD Core Ontology, given version +* https://w3id.org/ssbd/domain/{NAME}/{TERM} -> Term in a SSbD domain ontology, latest +* https://w3id.org/ssbd/domain/{NAME}/{VERSION}/{TERM} -> Term in a SSbD domain ontology, given version +* https://w3id.org/ssbd/application/{NAME}/{TERM} -> Term in a SSbD application ontology, latest +* https://w3id.org/ssbd/application/{NAME}/{VERSION}/{TERM} -> Term in a SSbD application ontology, given version + +Note that there is no trailing slash. +If the request comes from a browser, the redirection will be to a html file, otherwise to a turtle file. + + +### IRIs to asserted ontologies (modules) + +* https://w3id.org/ssbd/{PATH}/{MODULE} -> Module in the SSbD Core Ontology, latest +* https://w3id.org/ssbd/{VERSION}/{PATH}/{MODULE} -> Module in the SSbD Core Ontology, latest +* https://w3id.org/ssbd/domain/{NAME}/{PATH}/{MODULE} -> Module in domain ontology, latest +* https://w3id.org/ssbd/domain/{NAME}/{VERSION}/{PATH}/{MODULE} -> Module in domain ontology, given version +* https://w3id.org/ssbd/application/{NAME}/{PATH}/{MODULE} -> Module in application ontology, latest +* https://w3id.org/ssbd/application/{NAME}/{VERSION}/{PATH}/{MODULE} -> Module in application ontology, given version + +Note that there is no trailing slash. +Will always be redirected to turtle files in the GitHub repo. + + +### Special redirections + +* {NAMESPACE}/html/ -> Always redirect to HTML documentation +* {NAMESPACE}/turtle/ -> Always redirect to turtle file +* {NAMESPACE}/inferred/ -> Inferred ontology +* {NAMESPACE}/dependencies/ -> Dependencies. Turtle file that imports all imported ontologies +* {NAMESPACE}/context/ -> JSON-LD context +* {NAMESPACE}/context/{CONTEXTNAME} -> Additional named JSON-LD context + + + +## Contacts +This space is maintained by the [PINK Project](https://pink-project.eu/). +Contact email: [contact@pink-project.eu](mailto:contact@pink-project.eu) + +Current maintainers: +* [Jesper Friis](https://github.com/jesper-friis) +* [Francesca L. Bleken](https://github.com/francescalb) +* [Joh Dokler](https://github.com/joahim) From 505eac255cf7e3ffad7537c2229ff3415126ec7e Mon Sep 17 00:00:00 2001 From: pooya Date: Wed, 25 Mar 2026 16:07:43 +0100 Subject: [PATCH 027/111] feat: add ts4nfdi application --- ts4nfdi/.htaccess | 6 ++++++ ts4nfdi/README.md | 25 +++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 ts4nfdi/.htaccess create mode 100644 ts4nfdi/README.md diff --git a/ts4nfdi/.htaccess b/ts4nfdi/.htaccess new file mode 100644 index 0000000000..2d743b6c77 --- /dev/null +++ b/ts4nfdi/.htaccess @@ -0,0 +1,6 @@ +RewriteEngine On + +RewriteRule ^collection/?$ https://terminology.services.base4nfdi.de/collection [R=302,L] +RewriteRule ^collection/([0-9a-fA-F-]+)$ https://terminology.services.base4nfdi.de/collection/$1 [R=302,L] +RewriteRule ^entityset/?$ https://terminology.services.base4nfdi.de/entityset [R=302,L] +RewriteRule ^entityset/([0-9a-fA-F-]+)$ https://terminology.services.base4nfdi.de/entityset/$1 [R=302,L] diff --git a/ts4nfdi/README.md b/ts4nfdi/README.md new file mode 100644 index 0000000000..c265a9b2bd --- /dev/null +++ b/ts4nfdi/README.md @@ -0,0 +1,25 @@ +## Terminology Services 4 NFDI (TS4NFDI) + + +This W3ID provides a persistent IRI namespace for terminology collections hosted by the [Terminology Services 4 NFDI (TS4NFDI)](https://terminology.services.base4nfdi.de/) project. TS4NFDI is a cross-domain service for the provision, curation, development, harmonization, and mapping of terminologies. It aims to facilitate consensus-building and interoperability of services across disciplines to achieve a shared knowledge representation and knowledge engineering framework. The service seeks to integrate and converge individual solutions into a standardized, interoperable, and sustainable architecture. + +The redirection for the terminology collection of the NFDI4Chem project looks like this: + +https://w3id.org/ts4nfdi/collection/729ad568-78a1-4a5c-ba41-904571c84646 redirects to https://terminology.services.base4nfdi.de/collection/729ad568-78a1-4a5c-ba41-904571c84646 + + + +Contact: + +It is possible to contact the complete project team via the contact form of the TS4NFDI Service Portal: + +[https://terminology.services.base4nfdi.de/contact](https://terminology.services.base4nfdi.de/contact) + +or via GitHub: + +[https://github.com/ts4nfdi/](https://github.com/ts4nfdi/) + +Maintainers: +- Pooya Oladazimi (GitHub: [@Pooya-Oladazimi](https://github.com/Pooya-Oladazimi/); ORCID: [0000-0002-5117-070X](https://orcid.org/0000-0002-5117-070X) +- Roman Baum (GitHub: [@rombaum](https://github.com/rombaum); ORCID: [0000-0001-5246-9351](https://orcid.org/0000-0001-5246-9351) +- Ralph Schäfermeier (GitHub: [@RalphBln](https://github.com/RalphBln); ORCID: [0000-0002-4349-6726](https://orcid.org/0000-0002-4349-6726) From 533aee725896a8862215bc8f03cf2e2a90d59314 Mon Sep 17 00:00:00 2001 From: Jesper Friis Date: Thu, 26 Mar 2026 01:08:07 +0100 Subject: [PATCH 028/111] Corrected URLs of redirection targets (#5868) * Corrected missing repo name for redirections to core on github pages. * Also corrected URLs to github files * Reorder rules for correct matching * Updated README file accorging to the changes --- ssbd/.htaccess | 47 ++++++++++++++++++++++++----------------------- ssbd/README.md | 8 ++++---- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/ssbd/.htaccess b/ssbd/.htaccess index e72dfad026..6e74b20fde 100644 --- a/ssbd/.htaccess +++ b/ssbd/.htaccess @@ -2,7 +2,7 @@ # .htaccess file https://w3id.org/ssbd # # If testing interactively with https://htaccess.madewithlove.com/ -# remember to remove the initial "ssbd/" in the URL to test. +# remember to remove the initial "/ssbd" in the URL to test. # ########################################################################## @@ -20,8 +20,8 @@ RewriteEngine On # Target from browser: https://ssbd-ontology.github.io/core/core.html # Target, otherwise: https://ssbd-ontology.github.io/core/core.ttl RewriteCond %{HTTP_ACCEPT} text/html -RewriteRule ^/?$ https://ssbd-ontology.github.io/core.html [R=303,NE,L] -RewriteRule ^/?$ https://ssbd-ontology.github.io/core.ttl [R=303,NE,L] +RewriteRule ^/?$ https://ssbd-ontology.github.io/core/core.html [R=303,NE,L] +RewriteRule ^/?$ https://ssbd-ontology.github.io/core/core.ttl [R=303,NE,L] # Source: https://w3id.org/ssbd/{VERSION} # Target from browser: https://ssbd-ontology.github.io/core/versions/{VERSION}/core.html @@ -59,8 +59,8 @@ RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/?$ https://ssbd-ont # Target from browser: https://ssbd-ontology.github.io/core/core.html?section={TERM} # Target, otherwise: https://ssbd-ontology.github.io/core/core.ttl RewriteCond %{HTTP_ACCEPT} text/html -RewriteRule ^([^/]+)$ https://ssbd-ontology.github.io/core.html?section=$1 [R=303,NE,L] -RewriteRule ^([^/]+)$ https://ssbd-ontology.github.io/core.ttl [R=303,NE,L] +RewriteRule ^([^/]+)$ https://ssbd-ontology.github.io/core/core.html?section=$1 [R=303,NE,L] +RewriteRule ^([^/]+)$ https://ssbd-ontology.github.io/core/core.ttl [R=303,NE,L] # Source: https://w3id.org/ssbd/{VERSION}/{TERM} # Target from browser: https://ssbd-ontology.github.io/core/versions/{VERSION}/core.html?section={TERM} @@ -93,24 +93,25 @@ RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/([^/]+)$ https:/ ########################################################################## ## IRIs to asserted ontologies (modules) ########################################################################## +# Note the swap of order - we match for versionIRI before the unversioned IRI. -# Source: https://w3id.org/ssbd/{PATH}/{MODULE} -# Target: https://github.com/ssbd-ontology/core/main/{PATH}/{MODULE} -RewriteRule ^([a-zA-Z).*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/core/main/$1/$2.ttl [R=303,NE,L] - -# Source: https://w3id.org/ssbd/{VERSION}/{PATH}/{MODULE} +# Source: https://w3id.org/ssbd/core/{VERSION}/{PATH}/{MODULE} # Target: https://github.com/ssbd-ontology/core/{VERSION}/{PATH}/{MODULE} -RewriteRule ^([0-9][^/]*)/(.*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/core/main/$1/$2/$3.ttl [R=303,NE,L] +RewriteRule ^core/([0-9][^/]*)(/.*)?/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/core/refs/heads/$1$2/$3.ttl [R=303,NE,L] -# Source: https://w3id.org/ssbd/domain/{DOMAIN}/{PATH}/{MODULE} -# Target: https://github.com/ssbd-ontology/domain-{DOMAIN}/main/{PATH}/{MODULE} -RewriteRule ^domain/(domain-)?([^/]+)/([a-zA-Z].*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/domain-$2/main/$3/$4.ttl [R=303,NE,L] -RewriteRule ^application/(application-)?([^/]+)/([a-zA-Z].*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/application-$2/main/$3/$4.ttl [R=303,NE,L] +# Source: https://w3id.org/ssbd/core/{PATH}/{MODULE} +# Target: https://github.com/ssbd-ontology/core/main/{PATH}/{MODULE} +RewriteRule ^core(/.*)?/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/core/refs/heads/main$1/$2.ttl [R=303,NE,L] # Source: https://w3id.org/ssbd/domain/{DOMAIN}/{VERSION}/{PATH}/{MODULE} # Target: https://github.com/ssbd-ontology/domain-{DOMAIN}/{VERSION}/{PATH}/{MODULE} -RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)/([a-zA-Z].*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/domain-$2/$3/$4/$5.ttl [R=303,NE,L] -RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/([a-zA-Z].*)/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/application-$2/$3/$4/$5.ttl [R=303,NE,L] +RewriteRule ^domain/(domain-)?([^/]+)/([0-9][^/]*)(/.*)?/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/domain-$2/refs/heads/$3$4/$5.ttl [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)(/.*)?/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/application-$2/refs/heads/$3$4/$5.ttl [R=303,NE,L] + +# Source: https://w3id.org/ssbd/domain/{DOMAIN}/{PATH}/{MODULE} +# Target: https://github.com/ssbd-ontology/domain-{DOMAIN}/main/{PATH}/{MODULE} +RewriteRule ^domain/(domain-)?([^/]+)(/.*)?/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/domain-$2/refs/heads/main$3/$4.ttl [R=303,NE,L] +RewriteRule ^application/(application-)?([^/]+)(/.*)?/([^/]+)$ https://raw.githubusercontent.com/ssbd-ontology/application-$2/refs/heads/main$3/$4.ttl [R=303,NE,L] ########################################################################## @@ -119,7 +120,7 @@ RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/([a-zA-Z].*)/([^/]+ # Source: {NAMESPACE}/html/ # Target: HTML documentation on GitHub Pages -RewriteRule ^html/$ https://ssbd-ontology.github.io/core.html [R=303,NE,L] +RewriteRule ^html/$ https://ssbd-ontology.github.io/core/core.html [R=303,NE,L] RewriteRule ^([0-9][^/]*)/html/$ https://ssbd-ontology.github.io/core/versions/$1/core.html [R=303,NE,L] RewriteRule ^domain/(domain-)?([^/]+)/html/$ https://ssbd-ontology.github.io/domain-$2/$2.html [R=303,NE,L] RewriteRule ^application/(application-)?([^/]+)/html/$ https://ssbd-ontology.github.io/application-$2/$2.html [R=303,NE,L] @@ -128,7 +129,7 @@ RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/html/$ https:// # Source: {NAMESPACE}/turtle/ # Target: Squashed turtle file on GitHub Pages -RewriteRule ^turtle/$ https://ssbd-ontology.github.io/core.ttl [R=303,NE,L] +RewriteRule ^turtle/$ https://ssbd-ontology.github.io/core/core.ttl [R=303,NE,L] RewriteRule ^([0-9][^/]*)/turtle/$ https://ssbd-ontology.github.io/core/versions/$1/core.ttl [R=303,NE,L] RewriteRule ^domain/(domain-)?([^/]+)/turtle/$ https://ssbd-ontology.github.io/domain-$2/$2.ttl [R=303,NE,L] RewriteRule ^application/(application-)?([^/]+)/turtle/$ https://ssbd-ontology.github.io/application-$2/$2.ttl [R=303,NE,L] @@ -137,7 +138,7 @@ RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/turtle/$ https:/ # Source: {NAMESPACE}/inferred/ # Target: Inferred ontology on GitHub Pages -RewriteRule ^inferred/$ https://ssbd-ontology.github.io/core-inferred.ttl [R=303,NE,L] +RewriteRule ^inferred/$ https://ssbd-ontology.github.io/core/core-inferred.ttl [R=303,NE,L] RewriteRule ^([0-9][^/]*)/inferred/$ https://ssbd-ontology.github.io/core/versions/$1/core-inferred.ttl [R=303,NE,L] RewriteRule ^domain/(domain-)?([^/]+)/inferred/$ https://ssbd-ontology.github.io/domain-$2/$2-inferred.ttl [R=303,NE,L] RewriteRule ^application/(application-)?([^/]+)/inferred/$ https://ssbd-ontology.github.io/application-$2/$2-inferred.ttl [R=303,NE,L] @@ -146,7 +147,7 @@ RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/inferred/$ https # Source: {NAMESPACE}/dependencies/ # Target: Inferred ontology on GitHub Pages -RewriteRule ^dependencies/$ https://ssbd-ontology.github.io/core-dependencies.ttl [R=303,NE,L] +RewriteRule ^dependencies/$ https://ssbd-ontology.github.io/core/core-dependencies.ttl [R=303,NE,L] RewriteRule ^([0-9][^/]*)/dependencies/$ https://ssbd-ontology.github.io/core/versions/$1/core-dependencies.ttl [R=303,NE,L] RewriteRule ^domain/(domain-)?([^/]+)/dependencies/$ https://ssbd-ontology.github.io/domain-$2/$2-dependencies.ttl [R=303,NE,L] RewriteRule ^application/(application-)?([^/]+)/dependencies/$ https://ssbd-ontology.github.io/application-$2/$2-dependencies.ttl [R=303,NE,L] @@ -155,7 +156,7 @@ RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/dependencies/$ h # Source: {NAMESPACE}/context/ # Target: JSON-LD context on GitHub Pages -RewriteRule ^context/$ https://ssbd-ontology.github.io/context/context.json [R=303,NE,L] +RewriteRule ^context/$ https://ssbd-ontology.github.io/core/context/context.json [R=303,NE,L] RewriteRule ^([0-9][^/]*)/context/$ https://ssbd-ontology.github.io/core/versions/$1/context/context.json [R=303,NE,L] RewriteRule ^domain/(domain-)?([^/]+)/context/$ https://ssbd-ontology.github.io/domain-$2/context/context.json [R=303,NE,L] RewriteRule ^application/(application-)?([^/]+)/context/$ https://ssbd-ontology.github.io/application-$2/context/context.json [R=303,NE,L] @@ -164,7 +165,7 @@ RewriteRule ^application/(application-)?([^/]+)/([0-9][^/]*)/context/$ https: # Source: {NAMESPACE}/context/{CONTEXTNAME}/ # Target: JSON-LD context on GitHub Pages -RewriteRule ^context/([^/]+)/$ https://ssbd-ontology.github.io/context/$1.json [R=303,NE,L] +RewriteRule ^context/([^/]+)/$ https://ssbd-ontology.github.io/core/context/$1.json [R=303,NE,L] RewriteRule ^([0-9][^/]*)/context/([^/]+)/$ https://ssbd-ontology.github.io/core/versions/$1/context/$2.json [R=303,NE,L] RewriteRule ^domain/(domain-)?([^/]+)/context/([^/]+)/$ https://ssbd-ontology.github.io/domain-$2/context/$3.json [R=303,NE,L] RewriteRule ^application/(application-)?([^/]+)/context/([^/]+)/$ https://ssbd-ontology.github.io/application-$2/context/$3.json [R=303,NE,L] diff --git a/ssbd/README.md b/ssbd/README.md index 672351b9c0..e3c19eb389 100644 --- a/ssbd/README.md +++ b/ssbd/README.md @@ -10,8 +10,8 @@ Variable names used in the IRIs below. * **{VERSION}**: Version number. Must start with a digit, e.g. "0.5.3". * **{NAME}**: Name of SSbD domain or application ontology. * **{TERM}**: Final component of the IRI of an ontological concept. -* **{PATH}**: Directory path. -* **{MODULE}**: Name of a (sub-)ontology module. +* **{PATH}**: Directory path. May be empty. +* **{MODULE}**: Name of a (sub-)ontology module. Should be the file name with the .ttl extension stripped off. * **{CONTEXTNAME}**: Name of an additional JSON-LD context. * **{NAMESPACE}**: IRI to a namespace, see below. @@ -46,8 +46,8 @@ If the request comes from a browser, the redirection will be to a html file, oth ### IRIs to asserted ontologies (modules) -* https://w3id.org/ssbd/{PATH}/{MODULE} -> Module in the SSbD Core Ontology, latest -* https://w3id.org/ssbd/{VERSION}/{PATH}/{MODULE} -> Module in the SSbD Core Ontology, latest +* https://w3id.org/ssbd/core/{PATH}/{MODULE} -> Module in the SSbD Core Ontology, latest +* https://w3id.org/ssbd/core/{VERSION}/{PATH}/{MODULE} -> Module in the SSbD Core Ontology, latest * https://w3id.org/ssbd/domain/{NAME}/{PATH}/{MODULE} -> Module in domain ontology, latest * https://w3id.org/ssbd/domain/{NAME}/{VERSION}/{PATH}/{MODULE} -> Module in domain ontology, given version * https://w3id.org/ssbd/application/{NAME}/{PATH}/{MODULE} -> Module in application ontology, latest From bb3f6da3fe43325620e5d6ba407ef7ea0a358c92 Mon Sep 17 00:00:00 2001 From: Daniel Garijo Date: Thu, 26 Mar 2026 16:08:42 +0100 Subject: [PATCH 029/111] Apply suggestion from @dgarijo --- arknet/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arknet/README.md b/arknet/README.md index 944fda14c8..b0c1b39dea 100644 --- a/arknet/README.md +++ b/arknet/README.md @@ -11,4 +11,4 @@ validatable (SHACL), queryable (SPARQL), and AI-ready (MCP). ### Contact -* Fred Robert Hauschel +* Fred Robert Hauschel (@hauschel) From 99ab41d50686ca360c48668b76471562fbad1865 Mon Sep 17 00:00:00 2001 From: Luca Gulinelli Date: Thu, 26 Mar 2026 16:39:34 +0100 Subject: [PATCH 030/111] Update .htaccess --- italia/public-policies-analysis/data/.htaccess | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/italia/public-policies-analysis/data/.htaccess b/italia/public-policies-analysis/data/.htaccess index 38e99fcfe1..2a75678590 100644 --- a/italia/public-policies-analysis/data/.htaccess +++ b/italia/public-policies-analysis/data/.htaccess @@ -9,8 +9,8 @@ SetEnvIf Accept ^.*text/csv.* SYNTAX=csv SetEnvIf Accept ^.*text/html.* SYNTAX=html RewriteCond %{ENV:SYNTAX} ^html$ -RewriteRule ^(.+)$ https://dati.inapp.gov.it/$1 [R=303,L] +RewriteRule ^(.+)$ https://dati.inapp.gov.it/data/$1 [R=303,L] -RewriteRule ^(.+)/(.+)$ https://dati.inapp.gov.it/$1/$2 [R=303,L] +RewriteRule ^(.+)/(.+)$ https://dati.inapp.gov.it/data/$1/$2 [R=303,L] -RewriteRule ^(.+)/(.+)/(.+)$ https://dati.inapp.gov.it/$1/$2/$3 [R=303,L] +RewriteRule ^(.+)/(.+)/(.+)$ https://dati.inapp.gov.it/data/$1/$2/$3 [R=303,L] From 356637c89b670692cd627fd625b0131813f7410e Mon Sep 17 00:00:00 2001 From: Delphine Claerhout Date: Thu, 26 Mar 2026 17:52:25 +0100 Subject: [PATCH 031/111] feat: add imx namespace Signed-off-by: Delphine Claerhout --- imx/.htaccess | 22 ++++++++++++++++++++++ imx/README.md | 20 ++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 imx/.htaccess create mode 100644 imx/README.md diff --git a/imx/.htaccess b/imx/.htaccess new file mode 100644 index 0000000000..438599d2ae --- /dev/null +++ b/imx/.htaccess @@ -0,0 +1,22 @@ +Header set Access-Control-Allow-Origin * + +AddType text/turtle .ttl +AddType application/rdf+xml .ttl + +Options +FollowSymLinks +RewriteEngine on + +# SHAPES +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^ https://imx-extension.lab.gaia-x.eu/development/rdf/shapes [R=303,L] + +# ONTOLOGY +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^ https://imx-extension.lab.gaia-x.eu/development/rdf/ontology [R=303,L] + +# docs +RewriteCond %{HTTP_ACCEPT} text/html +RewriteRule ^ https://imx-extension.lab.gaia-x.eu/development/docs [R=303,L] + +# default +RewriteRule ^ https://imx-extension.lab.gaia-x.eu/development/docs [R=303,L] \ No newline at end of file diff --git a/imx/README.md b/imx/README.md new file mode 100644 index 0000000000..0e407bacbb --- /dev/null +++ b/imx/README.md @@ -0,0 +1,20 @@ +IMX Specifications +========================= + +Homepage: +* https://imx-extension.lab.gaia-x.eu/development/docs#/ +* [IMX Documents](https://imx-extension.lab.gaia-x.eu/development/docs#/) + +Endpoints: + * with `Accept: text/turtle` returns the IMX Shacl shapes + * with `Accept: application/rdf+xml` returns the IMX OWL ontology + +Support: +* IMX showcase Specifications and components and their [GitLab Repository](https://gitlab.com/gaia-x/lab/gaia-x-danube-components/gaia-x-local-extensions/imx-extension) + +Contacts: +* [Delphine Claerhout](https://github.com/Phinodel) +* [Christoph F. Strnadl](https://github.com/cfs314) +* [Yassir SELLAMI](https://github.com/YassirSellami) +* [Pierre Gronlier](https://github.com/ticapix) +* [Ryan Reychico](https://gitlab.com/ryan.reychico2) From 49b8db8c0d4ed10c39e9bd4960dc189794921284 Mon Sep 17 00:00:00 2001 From: pcoronaf Date: Thu, 26 Mar 2026 16:01:09 -0600 Subject: [PATCH 032/111] Add /agi-governance/ redirect for AGI governance vocabulary --- agi-governance/.htaccess | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 agi-governance/.htaccess diff --git a/agi-governance/.htaccess b/agi-governance/.htaccess new file mode 100644 index 0000000000..e0ab743d65 --- /dev/null +++ b/agi-governance/.htaccess @@ -0,0 +1,20 @@ +# AGI Governance Compliance Model — w3id.org persistent URI redirect +# Vocabulary: https://w3id.org/agi-governance/evidence/ns/v1.0/ +# Norms base: https://w3id.org/agi-governance/norms/ +# Maintainer: pablo.coronaf@infotec.mx +# GitHub: https://github.com/pcoronaf/agi-governance + +Options -MultiViews +RewriteEngine on + +# Redirect vocabulary namespace to GitHub repository +RewriteRule ^evidence/ns/v1\.0/?$ https://github.com/pcoronaf/agi-governance/blob/main/agi_governance_legalruleml.xml [R=303,L] + +# Redirect norms base URI to repository +RewriteRule ^norms/?$ https://github.com/pcoronaf/agi-governance/blob/main/agi_governance_legalruleml.xml [R=303,L] + +# Redirect root to repository landing page +RewriteRule ^$ https://github.com/pcoronaf/agi-governance [R=303,L] + +# Catch-all: redirect anything else under /agi-governance/ to the repository +RewriteRule ^(.*)$ https://github.com/pcoronaf/agi-governance [R=303,L] From 1b19f309a8e19af83477bdbd6b9a4ffbd8a45c70 Mon Sep 17 00:00:00 2001 From: pcoronaf Date: Thu, 26 Mar 2026 16:03:35 -0600 Subject: [PATCH 033/111] Add README for /agi-governance/ Added README.md with information on AGI Governance Compliance Model. --- agi-governance/README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 agi-governance/README.md diff --git a/agi-governance/README.md b/agi-governance/README.md new file mode 100644 index 0000000000..d30d481119 --- /dev/null +++ b/agi-governance/README.md @@ -0,0 +1,28 @@ +# agi-governance + +Persistent URI namespace for the AGI Governance Compliance Model vocabulary and norms. + +## URIs maintained here + +| URI | Resolves to | +|-----|-------------| +| https://w3id.org/agi-governance | Repository landing page | +| https://w3id.org/agi-governance/evidence/ns/v1.0/ | AGI Evidence Vocabulary (agiev) LegalRuleML encoding | +| https://w3id.org/agi-governance/norms/ | AGI governance norm encodings base URI | + +## Maintainers + +- Pablo Corona Fraga — pablo.coronaf@infotec.mx + INFOTEC, Mexico City, Mexico + ORCID: 0000-0001-5012-9468 + +- Amin M.E-A. Diab — adiab3@jhu.edu + Johns Hopkins University, Baltimore, MD, USA + +## Related publication + +Corona Fraga, P., Diab, A.M.E-A., Hwang, S.H., & Diaz, V. (2026). +Machine-checkable compliance for AGI Governance: Formalizing principles +as auditable norms and evidence-linked indicators. Manuscript under review. + +Repository: https://github.com/pcoronaf/agi-governance From bb6199ff23d06a9918e4c3668a3203c78f98dab9 Mon Sep 17 00:00:00 2001 From: ProfTuan Date: Thu, 26 Mar 2026 17:28:28 -0500 Subject: [PATCH 034/111] Creating vick redirect initial creation of vick redirect --- vick/.htaccess | 14 ++++++++++++++ vick/readme.md | 11 +++++++++++ 2 files changed, 25 insertions(+) create mode 100644 vick/.htaccess create mode 100644 vick/readme.md diff --git a/vick/.htaccess b/vick/.htaccess new file mode 100644 index 0000000000..588524cecf --- /dev/null +++ b/vick/.htaccess @@ -0,0 +1,14 @@ +#Options -MultiViews + +#AddType application/rdf+xml .owl + +RewriteEngine on + +# OWL context +#RewriteCond %{HTTP_ACCEPT} \*/\* [OR] +#RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^$ https://raw.githubusercontent.com/VICK-Blockchain/VICK-KnowledgeGraph/refs/heads/main/vick.owl [R=302,L] + +RewriteRule ^vick.owl$ https://raw.githubusercontent.com/VICK-Blockchain/VICK-KnowledgeGraph/refs/heads/main/vick.owl [R=302,L] + +RewriteRule ^vick-base.owl$ https://raw.githubusercontent.com/VICK-Blockchain/VICK-KnowledgeGraph/refs/heads/main/vick-base.owl [R=302,L] diff --git a/vick/readme.md b/vick/readme.md new file mode 100644 index 0000000000..85525d47ad --- /dev/null +++ b/vick/readme.md @@ -0,0 +1,11 @@ +# Repository for redirecting to Vaccine Information and Consent Knowledge base (VICK) + +# VICK artifact +- http://w3id.org/vick/ --> https://raw.githubusercontent.com/VICK-Blockchain/VICK-KnowledgeGraph/refs/heads/main/vick.owl + +- http://w3id.org/vick/vick.owl --> https://raw.githubusercontent.com/VICK-Blockchain/VICK-KnowledgeGraph/refs/heads/main/vick.owl + +- http://w3id.org/vick/vick-base.owl --> https://raw.githubusercontent.com/VICK-Blockchain/VICK-KnowledgeGraph/refs/heads/main/vick-base.owl + +# Maintainers/Contact +- [Tuan Amith](http://github.com/ProfTuan) muamith AT utmb DOT edu \ No newline at end of file From dadeba8a2e71d239a6ffbd04392788582ce56852 Mon Sep 17 00:00:00 2001 From: Brettt Johnson Date: Thu, 26 Mar 2026 16:43:17 -0700 Subject: [PATCH 035/111] smn: align root/version redirects with DFO content negotiation --- smn/.htaccess | 77 +++++++++++++++++++++++++++++---------------------- smn/README.md | 39 +++++++++++++++++++------- 2 files changed, 73 insertions(+), 43 deletions(-) diff --git a/smn/.htaccess b/smn/.htaccess index e91c946de7..37b77d6845 100644 --- a/smn/.htaccess +++ b/smn/.htaccess @@ -2,14 +2,24 @@ # # Salmon Domain Ontology shared namespace (`smn:`) # -# Canonical ontology IRI (unversioned): +# Latest ontology IRI (unversioned): # https://w3id.org/smn # -# Draft status: -# - Active rules below are the safe fallback for the assets that exist today. -# - The repo currently exposes Turtle sources only. -# - GitHub Pages / HTML docs / RDF/XML / JSON-LD / SemVer release snapshots do not exist yet. -# - When those targets exist, replace the fallback with the commented DFO-style latest/version rules. +# Version IRIs: +# https://w3id.org/smn/X.Y.Z +# +# Redirect targets (GitHub Pages): +# - HTML docs (latest): https://salmon-data-mobilization.github.io/salmon-domain-ontology/ +# - Turtle (latest): https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.ttl +# - RDF/XML (latest): https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.owl +# - JSON-LD (latest): https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.jsonld +# - Version snapshot: https://salmon-data-mobilization.github.io/salmon-domain-ontology/releases/X.Y.Z/ +# +# Pattern note: +# - Root + version content negotiation below intentionally mirrors the live +# DFO Salmon Ontology (`/gcdfo/salmon/`) routing pattern. +# - Research / case-study / module / profile / term paths remain Turtle-first. +# - `/latest` is intentionally not part of this updated public contract. # # Maintainer repository: # https://github.com/salmon-data-mobilization/salmon-domain-ontology @@ -23,9 +33,34 @@ RewriteEngine On # Tell caches that responses vary by content negotiation. Header merge Vary "Accept" -# Current safe fallback (latest Turtle artifacts only) -# -------------------------------------------------- -RewriteRule ^$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/salmon-domain-ontology.ttl [R=303,L] +# Latest (no version path) +# --------------------------- +RewriteCond %{HTTP_ACCEPT} text/turtle [NC] +RewriteRule ^$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] +RewriteRule ^$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.owl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] +RewriteRule ^$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.jsonld [R=303,L] + +RewriteRule ^$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/ [R=303,L] + +# Version paths (SemVer: X.Y.Z) +# --------------------------- +RewriteCond %{HTTP_ACCEPT} text/turtle [NC] +RewriteRule ^([0-9]+\.[0-9]+\.[0-9]+)/?$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/releases/$1/smn.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] +RewriteRule ^([0-9]+\.[0-9]+\.[0-9]+)/?$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/releases/$1/smn.owl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] +RewriteRule ^([0-9]+\.[0-9]+\.[0-9]+)/?$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/releases/$1/smn.jsonld [R=303,L] + +RewriteRule ^([0-9]+\.[0-9]+\.[0-9]+)/?$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/releases/$1/ [R=303,L] + +# Current secondary surfaces remain Turtle-first +# --------------------------------------------- RewriteRule ^research/?$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/salmon-domain-ontology-research.ttl [R=303,L] RewriteRule ^rda-case-study/?$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/salmon-domain-ontology-rda-case-study.ttl [R=303,L] RewriteRule ^modules/([A-Za-z0-9._-]+)/?$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/modules/$1.ttl [R=303,L] @@ -33,27 +68,3 @@ RewriteRule ^profile/hakai/?$ https://raw.githubusercontent.com/salmon-data-mobi RewriteRule ^profile/neville/?$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/modules/09-rda-neville-decomposition-profile-bridges.ttl [R=303,L] RewriteRule ^profile/rda-case-study/?$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/salmon-domain-ontology-rda-case-study.ttl [R=303,L] RewriteRule ^[A-Za-z0-9._-]+/?$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/salmon-domain-ontology.ttl [R=303,L] - -# Future DFO-style content negotiation (activate after publication targets exist) -# ----------------------------------------------------------------------------- -# RewriteCond %{HTTP_ACCEPT} text/turtle [NC] -# RewriteRule ^$ https:///smn.ttl [R=303,L] -# -# RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] -# RewriteRule ^$ https:///smn.owl [R=303,L] -# -# RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] -# RewriteRule ^$ https:///smn.jsonld [R=303,L] -# -# RewriteRule ^$ https:/// [R=303,L] -# -# RewriteCond %{HTTP_ACCEPT} text/turtle [NC] -# RewriteRule ^([0-9]+\.[0-9]+\.[0-9]+)/?$ https:///releases/$1/smn.ttl [R=303,L] -# -# RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] -# RewriteRule ^([0-9]+\.[0-9]+\.[0-9]+)/?$ https:///releases/$1/smn.owl [R=303,L] -# -# RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] -# RewriteRule ^([0-9]+\.[0-9]+\.[0-9]+)/?$ https:///releases/$1/smn.jsonld [R=303,L] -# -# RewriteRule ^([0-9]+\.[0-9]+\.[0-9]+)/?$ https:///releases/$1/ [R=303,L] diff --git a/smn/README.md b/smn/README.md index 45b5481e46..e3b6537292 100644 --- a/smn/README.md +++ b/smn/README.md @@ -2,11 +2,12 @@ Salmon Domain Ontology shared namespace (`smn:`). -[`https://w3id.org/smn`](https://w3id.org/smn) is intended to be the persistent base for the shared Salmon Domain Ontology layer. +[`https://w3id.org/smn`](https://w3id.org/smn) is the persistent base for the shared Salmon Domain Ontology layer. ## Canonical IRIs - Latest ontology IRI: `https://w3id.org/smn` +- Version IRIs: `https://w3id.org/smn/X.Y.Z` - Term namespace: `https://w3id.org/smn/` - Module namespace: `https://w3id.org/smn/modules/` - Research build: `https://w3id.org/smn/research` @@ -16,18 +17,36 @@ Salmon Domain Ontology shared namespace (`smn:`). - `https://w3id.org/smn/profile/neville/` - `https://w3id.org/smn/profile/rda-case-study/` -## Current redirect behavior +## Redirect behavior -This first registration uses conservative `303` redirects to the current published Turtle artifacts in the maintainer repository. +This update makes the root and version IRIs follow the same content-negotiation pattern used by the live DFO Salmon Ontology redirects at `https://w3id.org/gcdfo/salmon`: -It currently supports: -- the main shared ontology -- module paths -- research and case-study builds -- profile bridge paths -- term-path redirects into the main shared graph +- root IRI serves HTML by default +- root IRI serves Turtle / RDF/XML / JSON-LD via the HTTP `Accept` header +- version IRIs (`/X.Y.Z`) serve release HTML by default +- version IRIs serve versioned Turtle / RDF/XML / JSON-LD via the HTTP `Accept` header +- `/latest` is intentionally not part of this updated contract -A future follow-up may replace these raw-GitHub Turtle redirects with the fuller DFO-style publication pattern (HTML/Turtle/RDFXML/JSON-LD plus versioned release redirects) once those public targets exist. +Existing secondary surfaces remain supported and Turtle-first for now: + +- `/research` +- `/rda-case-study` +- `/modules/*` +- `/profile/*` +- term paths such as `/Stock` + +## Redirect targets + +GitHub Pages publication surface: + +- HTML docs (latest): `https://salmon-data-mobilization.github.io/salmon-domain-ontology/` +- Turtle (latest): `https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.ttl` +- RDF/XML (latest): `https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.owl` +- JSON-LD (latest): `https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.jsonld` +- Version snapshot HTML: `https://salmon-data-mobilization.github.io/salmon-domain-ontology/releases/X.Y.Z/` +- Version snapshot Turtle: `.../releases/X.Y.Z/smn.ttl` +- Version snapshot RDF/XML: `.../releases/X.Y.Z/smn.owl` +- Version snapshot JSON-LD: `.../releases/X.Y.Z/smn.jsonld` ## Maintainer repository From 9ba54925974510156752102392b8111fb6cdffb8 Mon Sep 17 00:00:00 2001 From: Raul Palma Date: Fri, 27 Mar 2026 02:37:31 +0100 Subject: [PATCH 036/111] test signposting --- ro-id-dev/.htaccess | 88 ++++++++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 28 deletions(-) diff --git a/ro-id-dev/.htaccess b/ro-id-dev/.htaccess index 80c1f5a421..5b851b7209 100644 --- a/ro-id-dev/.htaccess +++ b/ro-id-dev/.htaccess @@ -23,70 +23,90 @@ RewriteRule ^$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/ [R=302,L] # ROHub user (imported) RewriteRule ^users/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/userprofile?username=$1 [R=302,L] +# ---------------------------------------- # Research Object resource +# ---------------------------------------- +# landing-page view of a resource RewriteCond %{HTTP_ACCEPT} text/html -RewriteRule ^(.*)/resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=content&resource=$2 [R=302,L] -# download resource -RewriteRule ^(.*)/resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/resources/$2/download/ [R=302,L] +RewriteRule ^(.*)/resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=content&resource=$2 [R=302,L,E=ROID:$1,E=SP:1] +# resource download via RO-scoped path +RewriteRule ^(.*)/resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/resources/$2/download/ [R=302,L,E=ROID:$1,E=SP:1] +# resource download via direct resource path RewriteRule ^resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/resources/$1/download/ [R=302,L] +# ---------------------------------------- # Research Object manifest body -# download manifest -RewriteRule ^(.*)/.ro/manifest.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/download/ [R=302,L] +# ---------------------------------------- +# download RO manifest body +RewriteRule ^(.*)/.ro/manifest.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/download/ [R=302,L,E=ROID:$1,E=SP:1] -# Research Object evo info +# ---------------------------------------- +# Research Object evo info +# ---------------------------------------- # download evo info annotation -RewriteRule ^(.*)/annotations/evo_info$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/evo_info/download/ [R=302,L] +RewriteRule ^(.*)/annotations/evo_info$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/evo_info/download/ [R=302,L,E=ROID:$1,E=SP:1] # download evo info body -RewriteRule ^(.*)/.ro/evo_info.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/evo_info/download/ [R=302,L] +RewriteRule ^(.*)/.ro/evo_info.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/evo_info/download/ [R=302,L,E=ROID:$1,E=SP:1] -# Research Object enrichment info +# ---------------------------------------- +# Research Object enrichment info +# ---------------------------------------- # download enrichment annotation -RewriteRule ^(.*)/annotations/enrichment$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/enrichment/download/ [R=302,L] +RewriteRule ^(.*)/annotations/enrichment$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/enrichment/download/ [R=302,L,E=ROID:$1,E=SP:1] # download enrichment body -RewriteRule ^(.*)/.ro/annotations/enrichment.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/enrichment/download/ [R=302,L] +RewriteRule ^(.*)/.ro/annotations/enrichment.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/enrichment/download/ [R=302,L,E=ROID:$1,E=SP:1] +# ---------------------------------------- # Research Object annotation bodies +# ---------------------------------------- # download annotation body -RewriteRule ^(.*)/.ro/annotations/(.*).ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/annotations/$2/download/ [R=302,L] +RewriteRule ^(.*)/.ro/annotations/(.*).ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/annotations/$2/download/ [R=302,L,E=ROID:$1,E=SP:1] +# ---------------------------------------- # Research Object annotation +# ---------------------------------------- # download annotation -RewriteRule ^(.*)/annotations/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/annotations/$2/download/ [R=302,L] +RewriteRule ^(.*)/annotations/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/annotations/$2/download/ [R=302,L,E=ROID:$1,E=SP:1] RewriteRule ^annotations/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/annotations/$1/download/ [R=302,L] +# ---------------------------------------- # Research Object folder +# ---------------------------------------- # folder manifest -RewriteRule ^(.*)/folders/(.*).ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/folders/$2.ttl [R=302,L] +RewriteRule ^(.*)/folders/(.*).ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/folders/$2.ttl [R=302,L,E=ROID:$1,E=SP:1] # download folder using path -RewriteRule ^(.*)/folders/(.*)/$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/folders/$2/download/ [R=302,L] +RewriteRule ^(.*)/folders/(.*)/$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/folders/$2/download/ [R=302,L,E=ROID:$1,E=SP:1] # download folder using identifier -RewriteRule ^(.*)/folders/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/folders/$2/download/ [R=302,L] +RewriteRule ^(.*)/folders/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/folders/$2/download/ [R=302,L,E=ROID:$1,E=SP:1] RewriteRule ^folders/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/folders/$1/download/ [R=302,L] -# Research Object activities +# ---------------------------------------- +# Research Object activities / geolocation / research areas +# ---------------------------------------- # download activities -RewriteRule ^(.*)/activities$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/activities/ [R=302,L] +RewriteRule ^(.*)/activities$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/activities/ [R=302,L,E=ROID:$1,E=SP:1] -# Research Object geolocation # download geolocation -RewriteRule ^(.*)/geolocation$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/geolocation/ [R=302,L] +RewriteRule ^(.*)/geolocation$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/geolocation/ [R=302,L,E=ROID:$1,E=SP:1] -# Research Object research areas # download research areas -RewriteRule ^(.*)/research-areas$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/research-areas/ [R=302,L] +RewriteRule ^(.*)/research-areas$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/research-areas/ [R=302,L,E=ROID:$1,E=SP:1] +# ---------------------------------------- # Research Object crate +# ---------------------------------------- # download ro-crate -RewriteRule ^(.*)/crate$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/crate/download/ [R=302,L] +RewriteRule ^(.*)/crate$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/crate/download/ [R=302,L,E=ROID:$1,E=SP:1] -# Research Object +# ---------------------------------------- +# Base RO PID with content negotiation +# ---------------------------------------- # download RO-Crate RewriteCond %{HTTP_ACCEPT} ^.*application/ld\+json.* -RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/crate/download/ [R=302,L] +RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/crate/download/ [R=302,L,E=ROID:$1,E=SP:1] # download SKG-IF RewriteCond %{HTTP_ACCEPT} ^.*application/vnd\.skgif\.ld\+json.* -RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/skg-if/download/ [R=302,L] +RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/skg-if/download/ [R=302,L,E=ROID:$1,E=SP:1] # download RO as RDF (manifest), ZIP or PDF RewriteCond %{HTTP_ACCEPT} ^.*application/rdf\+xml.* [OR] RewriteCond %{HTTP_ACCEPT} ^.*text/turtle.* [OR] @@ -98,9 +118,21 @@ RewriteCond %{HTTP_ACCEPT} ^.*application/zip.* [OR] RewriteCond %{HTTP_ACCEPT} ^.*application/pdf.* # original # RewriteRule ^(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/download/ [R=302,L] -RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/download/ [R=302,L] +RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/download/ [R=302,L,E=ROID:$1,E=SP:1] # else open RO in ROHub portal # RewriteCond %{HTTP_ACCEPT} text/html # original # RewriteRule ^(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=overview [R=302,L] -RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=overview [R=302,L] +RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=overview [R=302,L,E=ROID:$1,E=SP:1] + +---------------------------------------- +# FAIR Signposting Level 2 discovery on w3id redirect responses +# ---------------------------------------- + + + # Advertise one or two serializations of the Link Set. + # Replace these endpoints with your actual Link Set URLs. + + Header always add Link "; rel=\"linkset\"; type=\"application/linkset\"" "expr=-n %{reqenv:REDIRECT_SP} && -n %{reqenv:REDIRECT_ROID}" + Header always add Link "; rel=\"linkset\"; type=\"application/linkset+json\"" "expr=-n %{reqenv:REDIRECT_SP} && -n %{reqenv:REDIRECT_ROID}" + \ No newline at end of file From 21f717127d80d765c8fbfed0b8eb0d4ec85b3c9b Mon Sep 17 00:00:00 2001 From: harumukanon Date: Fri, 27 Mar 2026 16:27:27 +0900 Subject: [PATCH 037/111] Create README.md --- momijiyama/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 momijiyama/README.md diff --git a/momijiyama/README.md b/momijiyama/README.md new file mode 100644 index 0000000000..a2c4a81f4b --- /dev/null +++ b/momijiyama/README.md @@ -0,0 +1,2 @@ +This project aims to generate permalinks for the Digital Momijiyama Bunko (https://db2.sido.keio.ac.jp/momijiyama/). +Contact: Maiko Kimura (@harumukanon) From 23b50e7d7a048ad7bd9f30f1b33b8d19e645af6c Mon Sep 17 00:00:00 2001 From: harumukanon Date: Fri, 27 Mar 2026 16:31:58 +0900 Subject: [PATCH 038/111] Create .htaccess --- momijiyama/.htaccess | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 momijiyama/.htaccess diff --git a/momijiyama/.htaccess b/momijiyama/.htaccess new file mode 100644 index 0000000000..90034e384a --- /dev/null +++ b/momijiyama/.htaccess @@ -0,0 +1,2 @@ +RewriteEngine on +RewriteRule ^(.*) https://db2.sido.keio.ac.jp/momijiyama/bib_detail?bibid=$1 [R=302,L] From dd510d81d5bf00c69a0169bfaf47117cf1a79207 Mon Sep 17 00:00:00 2001 From: Stefan Bischof Date: Fri, 27 Mar 2026 11:09:07 +0100 Subject: [PATCH 039/111] Initial commit of mqto --- mqto/.htaccess | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ mqto/README.md | 10 ++++++++ 2 files changed, 72 insertions(+) create mode 100644 mqto/.htaccess create mode 100644 mqto/README.md diff --git a/mqto/.htaccess b/mqto/.htaccess new file mode 100644 index 0000000000..d5d87f9a61 --- /dev/null +++ b/mqto/.htaccess @@ -0,0 +1,62 @@ +# https://w3id.org/mqto redirects to https://dg-assist.github.io/mqto +# +# ## Contact +# This space is administered by: +# +# Stefan Bischof +# bischof.stefan@siemens.com +# GitHub username: stefanbischof +# ORCID: 0000-0001-9521-8907 + +# Turn off MultiViews +Options -MultiViews + +# Directive to ensure *.rdf files served as appropriate content type, +# if not present in main apache config +AddType application/rdf+xml .rdf +AddType application/rdf+xml .owl +AddType text/turtle .ttl +AddType application/n-triples .n3 +AddType application/ld+json .jsonld +# Rewrite engine setup +RewriteEngine On + +# Forward to most recent version +RewriteRule ^$ 1.0 [L] +RewriteRule ^doc(\/.*)?$ https://dg-assist.github.io/mqto$1 [R=303,L] +RewriteRule ^git(\/.*)?$ https://github.com/dg-assist/mqto$1 [R=303,L] + +# Rewrite rule to serve HTML content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* +RewriteRule ^([^/]+)$ https://dg-assist.github.io/mqto/OnToology/mqto-$1.ttl/documentation/index-en.html [R=303,L] + +# Rewrite rule to serve JSON-LD content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^([^/]+)$ https://dg-assist.github.io/mqto/OnToology/mqto-$1.ttl/documentation/ontology.jsonld [R=303,L] + +# Rewrite rule to serve RDF/XML content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} \*/\* [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^([^/]+)$ https://dg-assist.github.io/mqto/OnToology/mqto-$1.ttl/documentation/ontology.owl [R=303,L] + +# Rewrite rule to serve N-Triples content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^([^/]+)$ https://dg-assist.github.io/mqto/OnToology/mqto-$1.ttl/documentation/ontology.nt [R=303,L] + +# Rewrite rule to serve TTL content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} text/\* [OR] +RewriteCond %{HTTP_ACCEPT} \*/turtle +RewriteRule ^([^/]+)$ https://dg-assist.github.io/mqto/OnToology/mqto-$1.ttl/documentation/ontology.ttl [R=303,L] + +# 406 Not Acceptable +RewriteCond %{HTTP_ACCEPT} .+ +RewriteRule ^([^/]+)$ https://dg-assist.github.io/mqto/OnToology/mqto-$1.ttl/documentation/406.html [R=406,L] + +# Default response +# --------------------------- +# Rewrite rule to serve the RDF/XML content from the vocabulary URI by default +RewriteRule ^([^/]+)$ https://dg-assist.github.io/mqto/OnToology/mqto-$1.ttl/documentation/ontology.owl [R=303,L] diff --git a/mqto/README.md b/mqto/README.md new file mode 100644 index 0000000000..0e1e812e2f --- /dev/null +++ b/mqto/README.md @@ -0,0 +1,10 @@ +# /mqto/ +This [W3ID](https://w3id.org) provides a persistent URI namespace for the Manufacturing Quality Troubleshooting Ontology (MQTO). + +## Contact +This space is administered by: + +**Project:** DG-Assist +**Organization:** [dg-assist](https://github.com/dg-assist) +**Repository:** https://github.com/dg-assist/mqto +**Email:** Stefan Bischof [stefanbischof](https://github.com/stefanbischof/) ORCID: [0000-0001-9521-8907](https://orcid.org/0000-0001-9521-8907) From 81f61daa5c0e2586a3f11244b7df91ab457caaca Mon Sep 17 00:00:00 2001 From: Raul Palma Date: Fri, 27 Mar 2026 15:52:56 +0100 Subject: [PATCH 040/111] typo --- ro-id-dev/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ro-id-dev/.htaccess b/ro-id-dev/.htaccess index 5b851b7209..826fcf2c41 100644 --- a/ro-id-dev/.htaccess +++ b/ro-id-dev/.htaccess @@ -125,7 +125,7 @@ RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1 # RewriteRule ^(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=overview [R=302,L] RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=overview [R=302,L,E=ROID:$1,E=SP:1] ----------------------------------------- +# ---------------------------------------- # FAIR Signposting Level 2 discovery on w3id redirect responses # ---------------------------------------- From 5e27db1bde05515e39fdde5d379e26bc8dd4e2ee Mon Sep 17 00:00:00 2001 From: Raul Palma Date: Fri, 27 Mar 2026 15:58:45 +0100 Subject: [PATCH 041/111] github username --- ro-id-dev/README.md | 4 +++- ro-id/README.md | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ro-id-dev/README.md b/ro-id-dev/README.md index 91c66a36cf..76465ac1d5 100644 --- a/ro-id-dev/README.md +++ b/ro-id-dev/README.md @@ -6,4 +6,6 @@ References: * https://www.researchobject.org/ Contacts: -* Raul Palma +* Raul Palma + * email: + * github username: rapw3k \ No newline at end of file diff --git a/ro-id/README.md b/ro-id/README.md index aa0f00794e..0ea928b2ee 100644 --- a/ro-id/README.md +++ b/ro-id/README.md @@ -6,4 +6,6 @@ References: * https://www.researchobject.org/ Contacts: -* Raul Palma +* Raul Palma + * email: + * github username: rapw3k From 5d3d8636ff91f5d6be972da8da1a53ca4c20dc53 Mon Sep 17 00:00:00 2001 From: kschweikert Date: Fri, 27 Mar 2026 11:00:50 -0400 Subject: [PATCH 042/111] create SAWGraph project directory (#5877) * Add README for SAWGraph project * Add .htaccess for URL redirection rules for SAWGraph create a basic skeleton htaccess for sawgraph project dataset ontologies --- sawgraph/.htaccess | 39 +++++++++++++++++++++++++++++++++++++++ sawgraph/README.md | 12 ++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 sawgraph/.htaccess create mode 100644 sawgraph/README.md diff --git a/sawgraph/.htaccess b/sawgraph/.htaccess new file mode 100644 index 0000000000..835c9a9e5a --- /dev/null +++ b/sawgraph/.htaccess @@ -0,0 +1,39 @@ +# # /sawgraph/ +# +# https://w3id.org/sawgraph/ html request redirects to project website datasources +# specific ontologies redirect to github ttl files +# +# +# ## Contact +# This space is administered by: +# +# Katrina Schweikert +# Github username: kschweikert +# +# Torsten Hahmann +# Github username: thahmann + +# Turn off MultiViews +Options -MultiViews + +# Rewrite engine setup +RewriteEngine On + +# Rewrite rule for me-egad +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml +RewriteRule ^v1/me-egad$ https://raw.githubusercontent.com/SAWGraph/pfas-kg/refs/heads/main/datasets/maine/egad/ontology/egad-sites-samples-schema.ttl [R=303,L,NE] + +# Rewrite rule for us-wqp +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml +RewriteRule ^v1/us-wqp$ https://raw.githubusercontent.com/SAWGraph/pfas-kg/refs/heads/main/datasets/federal/us-wqp/ontology/wqp_schema.ttl [R=303,L,NE] + + +# Default response +# ----------------------------- + +# Rewrite rule for all other request to point back to the main github repo +RewriteRule ^(.*) https://sawgraph.github.io/kg.html#data-sources [R=303,L,NE] diff --git a/sawgraph/README.md b/sawgraph/README.md new file mode 100644 index 0000000000..97eaf90e91 --- /dev/null +++ b/sawgraph/README.md @@ -0,0 +1,12 @@ +# /fio/ + +## Uses +This namespace supports SAWGraph - safe agriculture and water graph + +## Project home +[https://github.com/SAWGraph/](https://github.com/SAWGraph/) + +## Contact +This space is administered by: +* [Katrina Schweikert](https://github.com/kschweikert) +* [Torsten Hahmann](https://github.com/thahmann) From d8d57762271012ffdf8b096d2e15def860727c06 Mon Sep 17 00:00:00 2001 From: Raul Palma Date: Fri, 27 Mar 2026 16:18:09 +0100 Subject: [PATCH 043/111] adding header link does not seem to work, testing without condition --- ro-id-dev/.htaccess | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/ro-id-dev/.htaccess b/ro-id-dev/.htaccess index 826fcf2c41..3562be5946 100644 --- a/ro-id-dev/.htaccess +++ b/ro-id-dev/.htaccess @@ -129,10 +129,4 @@ RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activet # FAIR Signposting Level 2 discovery on w3id redirect responses # ---------------------------------------- - - # Advertise one or two serializations of the Link Set. - # Replace these endpoints with your actual Link Set URLs. - - Header always add Link "; rel=\"linkset\"; type=\"application/linkset\"" "expr=-n %{reqenv:REDIRECT_SP} && -n %{reqenv:REDIRECT_ROID}" - Header always add Link "; rel=\"linkset\"; type=\"application/linkset+json\"" "expr=-n %{reqenv:REDIRECT_SP} && -n %{reqenv:REDIRECT_ROID}" - \ No newline at end of file +Header always add Link "; rel=\"linkset\"; type=\"application/linkset+json\"" \ No newline at end of file From 1af256c363d622ffcd93ad5ab2683be1600e140c Mon Sep 17 00:00:00 2001 From: yurykharytanovich Date: Fri, 27 Mar 2026 16:41:41 +0100 Subject: [PATCH 044/111] add faia ontology and vocab files, update latest usage versions --- liccium/.htaccess | 12 +++++++++++- liccium/README.md | 20 +++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/liccium/.htaccess b/liccium/.htaccess index 28b4a897d1..3a394c4500 100644 --- a/liccium/.htaccess +++ b/liccium/.htaccess @@ -32,11 +32,21 @@ RewriteRule ^context/(.+)\.json$ https://raw.githubusercontent.com/liccium/w3id. # ------------------------------ # Ontology files # ------------------------------ -# Default: ont/ or ont → 0.1.0.ttl +# Default: ont/ or ont → 0.2.0.ttl RewriteRule ^ont/?$ https://raw.githubusercontent.com/liccium/w3id.docs/main/ont/0.2.0.ttl [R=303,L] # Specific file: ont/.ttl RewriteRule ^ont/(.+)\.ttl$ https://raw.githubusercontent.com/liccium/w3id.docs/main/ont/$1.ttl [R=303,L] +# ------------------------------ +# FAIA Ontology files +# ------------------------------ +RewriteRule ^faia/ont/(.+)\.ttl$ https://raw.githubusercontent.com/liccium/w3id.docs/main/faia/ont/$1.ttl [R=303,L] + +# ------------------------------ +# FAIA Vocabulary files +# ------------------------------ +RewriteRule ^faia/vocab/(.+)\.ttl$ https://raw.githubusercontent.com/liccium/w3id.docs/main/faia/vocab/$1.ttl [R=303,L] + # ------------------------------ # Default response (redirect to GitHub repo) # ------------------------------ diff --git a/liccium/README.md b/liccium/README.md index 8bd8d77d6f..d7b4611b89 100644 --- a/liccium/README.md +++ b/liccium/README.md @@ -1,28 +1,30 @@ # Liccium Schema, Context & Ontology -Versioned JSON Schema, JSON-LD context, and OWL ontology definitions for Liccium metadata declarations. +Versioned JSON Schema, JSON-LD context, OWL ontology, and FAIA definitions for Liccium metadata declarations. ## Contents - **`schema/`** — JSON Schema files for validating declaration metadata - **`context/`** — JSON-LD context files for semantic interoperability - **`ont/`** — OWL ontology files for semantic definitions +- **`faia/ont/`** — FAIA ontology files +- **`faia/vocab/`** — FAIA vocabulary files ## Usage Reference these files via w3id.org persistent URLs: -| Format | URL | -| ---------------- | -------------------------------------------- | -| **JSON Schema** | https://w3id.org/liccium/schema/0.3.0.json | -| **JSON-LD** | https://w3id.org/liccium/context/0.3.0.json | -| **OWL Ontology** | https://w3id.org/liccium/ont/0.2.0.ttl | +| Format | URL | +| ------------------- | ------------------------------------------------- | +| **JSON Schema** | https://w3id.org/liccium/schema/0.3.0.json | +| **JSON-LD** | https://w3id.org/liccium/context/0.3.0.json | +| **OWL Ontology** | https://w3id.org/liccium/ont/0.3.0.ttl | +| **FAIA Ontology** | https://w3id.org/liccium/faia/ont/0.4.0.ttl | +| **FAIA Vocabulary** | https://w3id.org/liccium/faia/vocab/0.4.0.ttl | -**Repository:** https://github.com/Liccium/w3id.docs +**Repository:** https://github.com/liccium/w3id.docs ## Contact - **Yury Kharytanovich** — · https://github.com/yurykharytanovich - **Sebastian Posth** — · https://github.com/sposth - - \ No newline at end of file From d8ae420ed1a8fe2138862974274c2b8eec572ca3 Mon Sep 17 00:00:00 2001 From: pcoronaf Date: Fri, 27 Mar 2026 09:57:13 -0600 Subject: [PATCH 045/111] Add GitHub username for Pablo Corona Fraga --- agi-governance/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/agi-governance/README.md b/agi-governance/README.md index d30d481119..dfcfbe4241 100644 --- a/agi-governance/README.md +++ b/agi-governance/README.md @@ -15,6 +15,7 @@ Persistent URI namespace for the AGI Governance Compliance Model vocabulary and - Pablo Corona Fraga — pablo.coronaf@infotec.mx INFOTEC, Mexico City, Mexico ORCID: 0000-0001-5012-9468 + Github username: pcoronaf - Amin M.E-A. Diab — adiab3@jhu.edu Johns Hopkins University, Baltimore, MD, USA From c576a46ae89afa1a19fb9543fbc2aa8786af6748 Mon Sep 17 00:00:00 2001 From: Brettt Johnson Date: Fri, 27 Mar 2026 11:22:48 -0700 Subject: [PATCH 046/111] smn: dereference term IRIs to WIDOCO anchors --- smn/.htaccess | 20 +++++++++++++++++--- smn/README.md | 30 ++++++++++++++++++++++++++---- 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/smn/.htaccess b/smn/.htaccess index 37b77d6845..5f8aeae0d1 100644 --- a/smn/.htaccess +++ b/smn/.htaccess @@ -18,8 +18,10 @@ # Pattern note: # - Root + version content negotiation below intentionally mirrors the live # DFO Salmon Ontology (`/gcdfo/salmon/`) routing pattern. -# - Research / case-study / module / profile / term paths remain Turtle-first. -# - `/latest` is intentionally not part of this updated public contract. +# - Canonical term IRIs now default to the WIDOCO HTML anchor for humans while +# still serving Turtle / RDF/XML / JSON-LD via `Accept`-based redirects. +# - Research / case-study / module / profile paths remain Turtle-first. +# - `/latest` is intentionally not part of this public contract. # # Maintainer repository: # https://github.com/salmon-data-mobilization/salmon-domain-ontology @@ -67,4 +69,16 @@ RewriteRule ^modules/([A-Za-z0-9._-]+)/?$ https://raw.githubusercontent.com/salm RewriteRule ^profile/hakai/?$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/modules/08-rda-case-study-profile-bridges.ttl [R=303,L] RewriteRule ^profile/neville/?$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/modules/09-rda-neville-decomposition-profile-bridges.ttl [R=303,L] RewriteRule ^profile/rda-case-study/?$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/salmon-domain-ontology-rda-case-study.ttl [R=303,L] -RewriteRule ^[A-Za-z0-9._-]+/?$ https://raw.githubusercontent.com/salmon-data-mobilization/salmon-domain-ontology/main/ontology/salmon-domain-ontology.ttl [R=303,L] + +# Canonical shared-term IRIs: human-friendly by default, negotiable for machines +# ------------------------------------------------------------------------------- +RewriteCond %{HTTP_ACCEPT} text/turtle [NC] +RewriteRule ^([A-Za-z0-9._-]+)/?$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] +RewriteRule ^([A-Za-z0-9._-]+)/?$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.owl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] +RewriteRule ^([A-Za-z0-9._-]+)/?$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.jsonld [R=303,L] + +RewriteRule ^([A-Za-z0-9._-]+)/?$ https://salmon-data-mobilization.github.io/salmon-domain-ontology/#/$1 [NE,R=303,L] diff --git a/smn/README.md b/smn/README.md index e3b6537292..6677ef699e 100644 --- a/smn/README.md +++ b/smn/README.md @@ -19,21 +19,27 @@ Salmon Domain Ontology shared namespace (`smn:`). ## Redirect behavior -This update makes the root and version IRIs follow the same content-negotiation pattern used by the live DFO Salmon Ontology redirects at `https://w3id.org/gcdfo/salmon`: +Root and SemVer version IRIs keep the current DFO-style content negotiation contract: - root IRI serves HTML by default - root IRI serves Turtle / RDF/XML / JSON-LD via the HTTP `Accept` header - version IRIs (`/X.Y.Z`) serve release HTML by default - version IRIs serve versioned Turtle / RDF/XML / JSON-LD via the HTTP `Accept` header -- `/latest` is intentionally not part of this updated contract +- `/latest` is intentionally not part of this public contract -Existing secondary surfaces remain supported and Turtle-first for now: +Canonical shared-term IRIs are now human-friendly by default while still negotiable for machines: + +- browser/default request for `/Term` redirects to the matching WIDOCO anchor, e.g. `https://salmon-data-mobilization.github.io/salmon-domain-ontology/#/Escapement` +- `Accept: text/turtle` on `/Term` redirects to the latest Turtle serialization +- `Accept: application/rdf+xml` on `/Term` redirects to the latest RDF/XML serialization +- `Accept: application/ld+json` on `/Term` redirects to the latest JSON-LD serialization + +Secondary surfaces remain supported and Turtle-first for now: - `/research` - `/rda-case-study` - `/modules/*` - `/profile/*` -- term paths such as `/Stock` ## Redirect targets @@ -48,6 +54,22 @@ GitHub Pages publication surface: - Version snapshot RDF/XML: `.../releases/X.Y.Z/smn.owl` - Version snapshot JSON-LD: `.../releases/X.Y.Z/smn.jsonld` +## Verification examples + +```bash +curl -I https://w3id.org/smn/Escapement +curl -I -H 'Accept: text/turtle' https://w3id.org/smn/Escapement +curl -I -H 'Accept: application/rdf+xml' https://w3id.org/smn/Escapement +curl -I -H 'Accept: application/ld+json' https://w3id.org/smn/Escapement +``` + +Expected after merge: + +- default term request → `303` to `https://salmon-data-mobilization.github.io/salmon-domain-ontology/#/Escapement` +- Turtle → `303` to `https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.ttl` +- RDF/XML → `303` to `https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.owl` +- JSON-LD → `303` to `https://salmon-data-mobilization.github.io/salmon-domain-ontology/smn.jsonld` + ## Maintainer repository - From 8503cb5565815ba6105a11e1d1888f2cf8d24b9e Mon Sep 17 00:00:00 2001 From: Raul Palma Date: Fri, 27 Mar 2026 19:37:11 +0100 Subject: [PATCH 047/111] remove add header adding headers (based on RO UUID) does not work. Return to original behaviour, and will add them in the resolved URIs (also in alignment with signposting) --- ro-id-dev/.htaccess | 46 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/ro-id-dev/.htaccess b/ro-id-dev/.htaccess index 3562be5946..40a8238817 100644 --- a/ro-id-dev/.htaccess +++ b/ro-id-dev/.htaccess @@ -28,9 +28,9 @@ RewriteRule ^users/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/userprofi # ---------------------------------------- # landing-page view of a resource RewriteCond %{HTTP_ACCEPT} text/html -RewriteRule ^(.*)/resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=content&resource=$2 [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=content&resource=$2 [R=302,L] # resource download via RO-scoped path -RewriteRule ^(.*)/resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/resources/$2/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/resources/$2/download/ [R=302,L] # resource download via direct resource path RewriteRule ^resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/resources/$1/download/ [R=302,L] @@ -38,75 +38,75 @@ RewriteRule ^resources/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/r # Research Object manifest body # ---------------------------------------- # download RO manifest body -RewriteRule ^(.*)/.ro/manifest.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/.ro/manifest.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/download/ [R=302,L] # ---------------------------------------- # Research Object evo info # ---------------------------------------- # download evo info annotation -RewriteRule ^(.*)/annotations/evo_info$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/evo_info/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/annotations/evo_info$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/evo_info/download/ [R=302,L] # download evo info body -RewriteRule ^(.*)/.ro/evo_info.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/evo_info/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/.ro/evo_info.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/evo_info/download/ [R=302,L] # ---------------------------------------- # Research Object enrichment info # ---------------------------------------- # download enrichment annotation -RewriteRule ^(.*)/annotations/enrichment$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/enrichment/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/annotations/enrichment$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/enrichment/download/ [R=302,L] # download enrichment body -RewriteRule ^(.*)/.ro/annotations/enrichment.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/enrichment/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/.ro/annotations/enrichment.ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/annotations/enrichment/download/ [R=302,L] # ---------------------------------------- # Research Object annotation bodies # ---------------------------------------- # download annotation body -RewriteRule ^(.*)/.ro/annotations/(.*).ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/annotations/$2/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/.ro/annotations/(.*).ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/annotations/$2/download/ [R=302,L] # ---------------------------------------- # Research Object annotation # ---------------------------------------- # download annotation -RewriteRule ^(.*)/annotations/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/annotations/$2/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/annotations/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/annotations/$2/download/ [R=302,L] RewriteRule ^annotations/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/annotations/$1/download/ [R=302,L] # ---------------------------------------- # Research Object folder # ---------------------------------------- # folder manifest -RewriteRule ^(.*)/folders/(.*).ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/folders/$2.ttl [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/folders/(.*).ttl$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/folders/$2.ttl [R=302,L] # download folder using path -RewriteRule ^(.*)/folders/(.*)/$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/folders/$2/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/folders/(.*)/$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/folders/$2/download/ [R=302,L] # download folder using identifier -RewriteRule ^(.*)/folders/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/folders/$2/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/folders/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/folders/$2/download/ [R=302,L] RewriteRule ^folders/(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/folders/$1/download/ [R=302,L] # ---------------------------------------- # Research Object activities / geolocation / research areas # ---------------------------------------- # download activities -RewriteRule ^(.*)/activities$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/activities/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/activities$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/activities/ [R=302,L] # download geolocation -RewriteRule ^(.*)/geolocation$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/geolocation/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/geolocation$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/geolocation/ [R=302,L] # download research areas -RewriteRule ^(.*)/research-areas$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/research-areas/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/research-areas$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/research-areas/ [R=302,L] # ---------------------------------------- # Research Object crate # ---------------------------------------- # download ro-crate -RewriteRule ^(.*)/crate$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/crate/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^(.*)/crate$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/crate/download/ [R=302,L] # ---------------------------------------- # Base RO PID with content negotiation # ---------------------------------------- # download RO-Crate RewriteCond %{HTTP_ACCEPT} ^.*application/ld\+json.* -RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/crate/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/crate/download/ [R=302,L] # download SKG-IF RewriteCond %{HTTP_ACCEPT} ^.*application/vnd\.skgif\.ld\+json.* -RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/skg-if/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/skg-if/download/ [R=302,L] # download RO as RDF (manifest), ZIP or PDF RewriteCond %{HTTP_ACCEPT} ^.*application/rdf\+xml.* [OR] RewriteCond %{HTTP_ACCEPT} ^.*text/turtle.* [OR] @@ -118,15 +118,9 @@ RewriteCond %{HTTP_ACCEPT} ^.*application/zip.* [OR] RewriteCond %{HTTP_ACCEPT} ^.*application/pdf.* # original # RewriteRule ^(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/download/ [R=302,L] -RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/download/ [R=302,L,E=ROID:$1,E=SP:1] +RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/api/ros/$1/download/ [R=302,L] # else open RO in ROHub portal # RewriteCond %{HTTP_ACCEPT} text/html # original # RewriteRule ^(.*)$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=overview [R=302,L] -RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=overview [R=302,L,E=ROID:$1,E=SP:1] - -# ---------------------------------------- -# FAIR Signposting Level 2 discovery on w3id redirect responses -# ---------------------------------------- - -Header always add Link "; rel=\"linkset\"; type=\"application/linkset+json\"" \ No newline at end of file +RewriteRule ^([^/]*)/?$ https://rohub2020-rohub.apps.paas-dev.psnc.pl/$1?activetab=overview [R=302,L] \ No newline at end of file From aa772e20af1420b4b063dfef8657378fa66bc8b3 Mon Sep 17 00:00:00 2001 From: Raul Palma Date: Fri, 27 Mar 2026 19:37:55 +0100 Subject: [PATCH 048/111] organize nicely --- ro-id/.htaccess | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/ro-id/.htaccess b/ro-id/.htaccess index 9913bf6a15..10f96d216b 100644 --- a/ro-id/.htaccess +++ b/ro-id/.htaccess @@ -34,39 +34,55 @@ RewriteRule ^about$ https://www.rohub.org/about [R=302,L] # this will point to rohub main page RewriteRule ^explore$ https://www.rohub.org/explore [R=302,L] +# ---------------------------------------- # Research Object resource +# ---------------------------------------- +# landing-page view of a resource RewriteCond %{HTTP_ACCEPT} text/html RewriteRule ^(.*)/resources/(.*)$ https://www.rohub.org/$1?activetab=content&resource=$2 [R=302,L] -# download resource +# resource download via RO-scoped path RewriteRule ^(.*)/resources/(.*)$ https://api.rohub.org/api/resources/$2/download/ [R=302,L] +# resource download via direct resource path RewriteRule ^resources/(.*)$ https://api.rohub.org/api/resources/$1/download/ [R=302,L] +# ---------------------------------------- # Research Object manifest body -# download manifest +# ---------------------------------------- +# download RO manifest body RewriteRule ^(.*)/.ro/manifest.ttl$ https://api.rohub.org/api/ros/$1/download/ [R=302,L] -# Research Object evo info +# ---------------------------------------- +# Research Object evo info +# ---------------------------------------- # download evo info annotation RewriteRule ^(.*)/annotations/evo_info$ https://api.rohub.org/api/ros/$1/annotations/evo_info/download/ [R=302,L] # download evo info body RewriteRule ^(.*)/.ro/evo_info.ttl$ https://api.rohub.org/api/ros/$1/annotations/evo_info/download/ [R=302,L] -# Research Object enrichment info +# ---------------------------------------- +# Research Object enrichment info +# ---------------------------------------- # download enrichment annotation RewriteRule ^(.*)/annotations/enrichment$ https://api.rohub.org/api/ros/$1/annotations/enrichment/download/ [R=302,L] # download enrichment body RewriteRule ^(.*)/.ro/annotations/enrichment.ttl$ https://api.rohub.org/api/ros/$1/annotations/enrichment/download/ [R=302,L] +# ---------------------------------------- # Research Object annotation bodies +# ---------------------------------------- # download annotation body RewriteRule ^(.*)/.ro/annotations/(.*).ttl$ https://api.rohub.org/api/annotations/$2/download/ [R=302,L] +# ---------------------------------------- # Research Object annotation +# ---------------------------------------- # download annotation RewriteRule ^(.*)/annotations/(.*)$ https://api.rohub.org/api/annotations/$2/download/ [R=302,L] RewriteRule ^annotations/(.*)$ https://api.rohub.org/api/annotations/$1/download/ [R=302,L] +# ---------------------------------------- # Research Object folder +# ---------------------------------------- # folder manifest RewriteRule ^(.*)/folders/(.*).ttl$ https://api.rohub.org/api/ros/$1/folders/$2.ttl [R=302,L] # download folder using path @@ -75,23 +91,27 @@ RewriteRule ^(.*)/folders/(.*)/$ https://api.rohub.org/api/ros/$1/folders/$2/dow RewriteRule ^(.*)/folders/(.*)$ https://api.rohub.org/api/folders/$2/download/ [R=302,L] RewriteRule ^folders/(.*)$ https://api.rohub.org/api/folders/$1/download/ [R=302,L] -# Research Object activities +# ---------------------------------------- +# Research Object activities / geolocation / research areas +# ---------------------------------------- # download activities RewriteRule ^(.*)/activities$ https://api.rohub.org/api/ros/$1/activities/ [R=302,L] -# Research Object geolocation # download geolocation RewriteRule ^(.*)/geolocation$ https://api.rohub.org/api/ros/$1/geolocation/ [R=302,L] -# Research Object research areas # download research areas RewriteRule ^(.*)/research-areas$ https://api.rohub.org/api/ros/$1/research-areas/ [R=302,L] +# ---------------------------------------- # Research Object crate +# ---------------------------------------- # download ro-crate RewriteRule ^(.*)/crate$ https://api.rohub.org/api/ros/$1/crate/download/ [R=302,L] -# Research Object +# ---------------------------------------- +# Base RO PID with content negotiation +# ---------------------------------------- # download RO-Crate RewriteCond %{HTTP_ACCEPT} ^.*application/ld\+json.* RewriteRule ^([^/]*)/?$ https://api.rohub.org/api/ros/$1/crate/download/ [R=302,L] From a0fcc6238ab95cdc3b387ce54f4cb6828dbecab1 Mon Sep 17 00:00:00 2001 From: harumukanon Date: Sat, 28 Mar 2026 10:41:28 +0900 Subject: [PATCH 049/111] Create .htaccess --- kanseki/.htaccess | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 kanseki/.htaccess diff --git a/kanseki/.htaccess b/kanseki/.htaccess new file mode 100644 index 0000000000..8ef5cb6c07 --- /dev/null +++ b/kanseki/.htaccess @@ -0,0 +1,2 @@ +RewriteEngine on +RewriteRule ^(.*) https://db2.sido.keio.ac.jp/kanseki/bib_detail?bibid=$1 [R=302,L] From 0037266bece9bd2ceb5a4453705384e5f9d22ff9 Mon Sep 17 00:00:00 2001 From: harumukanon Date: Sat, 28 Mar 2026 10:54:35 +0900 Subject: [PATCH 050/111] Create README.md --- kanseki/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 kanseki/README.md diff --git a/kanseki/README.md b/kanseki/README.md new file mode 100644 index 0000000000..2e1c6cbf5c --- /dev/null +++ b/kanseki/README.md @@ -0,0 +1 @@ +This project aims to generate permalinks for the Kunaicho Shoryobu Kanseki Shuran (https://db2.sido.keio.ac.jp/kanseki/). Contact: Maiko Kimura (@harumukanon) From 85f0ca525a090494be19a5e190abdc06a36a3bbb Mon Sep 17 00:00:00 2001 From: harumukanon Date: Sat, 28 Mar 2026 16:42:24 +0900 Subject: [PATCH 051/111] Update .htaccess --- kanseki/.htaccess | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/kanseki/.htaccess b/kanseki/.htaccess index 8ef5cb6c07..dc748249f0 100644 --- a/kanseki/.htaccess +++ b/kanseki/.htaccess @@ -1,2 +1,7 @@ -RewriteEngine on -RewriteRule ^(.*) https://db2.sido.keio.ac.jp/kanseki/bib_detail?bibid=$1 [R=302,L] +RewriteEngine On + +# トップページ +RewriteRule ^$ https://db2.sido.keio.ac.jp/kanseki/ [R=302,L] + +# 書誌詳細ページ +RewriteRule ^bib/([0-9]+)$ https://db2.sido.keio.ac.jp/kanseki/bib_detail?bibid=$1 [R=302,L] From d050677223f2dfb27a9c5793ca11a1ead9bd6b0c Mon Sep 17 00:00:00 2001 From: harumukanon Date: Sat, 28 Mar 2026 16:44:02 +0900 Subject: [PATCH 052/111] Update .htaccess --- momijiyama/.htaccess | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/momijiyama/.htaccess b/momijiyama/.htaccess index 90034e384a..bd6e346636 100644 --- a/momijiyama/.htaccess +++ b/momijiyama/.htaccess @@ -1,2 +1,7 @@ -RewriteEngine on -RewriteRule ^(.*) https://db2.sido.keio.ac.jp/momijiyama/bib_detail?bibid=$1 [R=302,L] +RewriteEngine On + +# トップページ +RewriteRule ^$ https://db2.sido.keio.ac.jp/momijiyama/ [R=302,L] + +# 書誌詳細ページ +RewriteRule ^bib/([0-9]+)$ https://db2.sido.keio.ac.jp/momijiyama/bib_detail?bibid=$1 [R=302,L] From 69983e58f4342240e156b1b077991b029ddf26c5 Mon Sep 17 00:00:00 2001 From: markwilkinson Date: Sat, 28 Mar 2026 16:05:08 +0100 Subject: [PATCH 053/111] adding support for json-ld metrics --- fair-metrics/.htaccess | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fair-metrics/.htaccess b/fair-metrics/.htaccess index 6c8d028e4d..3a87db51c8 100644 --- a/fair-metrics/.htaccess +++ b/fair-metrics/.htaccess @@ -22,7 +22,12 @@ RewriteRule ^(.+)$ https://fairmetrics.github.io/Metrics/landingpages/$1.html [R # Turtle if text/turtle is acceptable (only if HTML conditions didn't match) RewriteCond %{HTTP:Accept} text/turtle -RewriteRule ^(.+)$ https://fairmetrics.github.io/Metrics/landingpages/$1.ttl [R=303,L,NE] +RewriteRule ^(.+)$ https://fairmetrics.github.io/Metrics/metric/$1.ttl [R=303,L,NE] + +# JSON if application/json or application/ld+json is acceptable +RewriteCond %{HTTP:Accept} application/json [OR] +RewriteCond %{HTTP:Accept} application/ld+json +RewriteRule ^(.+)$ https://fairmetrics.github.io/Metrics/metric/$1.jsonld [R=303,L,NE] # Default fallback: HTML (for browsers, no Accept header, or unknown types) -RewriteRule ^(.+)$ https://fairmetrics.github.io/Metrics/landingpages/$1.html [R=303,L,NE] \ No newline at end of file +RewriteRule ^(.+)$ https://fairmetrics.github.io/Metrics/landingpages/$1.html [R=303,L,NE] From ddda0f717b0212048d9f69427ebed33fedaaba4f Mon Sep 17 00:00:00 2001 From: Sara Roggiani Date: Sat, 28 Mar 2026 16:51:31 +0100 Subject: [PATCH 054/111] add .htaccess and readme for SMT Library --- smt-library/.htaccess | 15 +++++++++++++++ smt-library/README.md | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 smt-library/.htaccess create mode 100644 smt-library/README.md diff --git a/smt-library/.htaccess b/smt-library/.htaccess new file mode 100644 index 0000000000..ae38eb9a10 --- /dev/null +++ b/smt-library/.htaccess @@ -0,0 +1,15 @@ +### 1. Enable Rewriting +RewriteEngine On +RewriteBase /smt-library/ + +### 2. Redirect for the Ontology +# Request: https://w3id.org/smt-library/ontology +RewriteRule ^ontology$ https://raw.githubusercontent.com/hexWitches/semantic-tarot-library/main/ontology/smtOntology.ttl [R=302,L] + +### 3. Redirect for the Knowledge Graph +# Request: https://w3id.org/smt-library/graph +RewriteRule ^kg$ https://raw.githubusercontent.com/hexWitches/semantic-tarot-library/main/ontology/smtGraph.ttl [R=302,L] + +### 4. Redirect for the Website +# Request: https://w3id.org/smt-library/ +RewriteRule ^$ https://hexwitches.github.io/semantic-tarot-library/ [R=302,L] \ No newline at end of file diff --git a/smt-library/README.md b/smt-library/README.md new file mode 100644 index 0000000000..e02f143b63 --- /dev/null +++ b/smt-library/README.md @@ -0,0 +1,16 @@ +# Semantic Tarot Library (smt-library) + +- **Description**: Persistent identifiers for the SMT Library, its ontology and knowledge graph. +- **Project URL**: https://hexwitches.github.io/semantic-tarot-library/ +- **Maintainers**: + - [hexWitches] (https://github.com/hexWitches) +- **Status**: Active + +This directory provides redirection for: +- The main website: https://w3id.org/smt-library/ +- The Ontology: https://w3id.org/smt-library/ontology +- The Knowledge Graph: https://w3id.org/smt-library/graph + +## Contact +For issues or updates regarding these identifiers, please contact +[mir-pin] (https://github.com/mir-pin) or [sararoggi] (https://github.com/sararoggi) via GitHub. \ No newline at end of file From 049b4f525c0094a0cf0a6ced625e8405b158fac3 Mon Sep 17 00:00:00 2001 From: Sara Roggiani Date: Sat, 28 Mar 2026 18:23:16 +0100 Subject: [PATCH 055/111] add htaccess rule --- smt-library/.htaccess | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/smt-library/.htaccess b/smt-library/.htaccess index ae38eb9a10..b935d91b34 100644 --- a/smt-library/.htaccess +++ b/smt-library/.htaccess @@ -4,12 +4,13 @@ RewriteBase /smt-library/ ### 2. Redirect for the Ontology # Request: https://w3id.org/smt-library/ontology -RewriteRule ^ontology$ https://raw.githubusercontent.com/hexWitches/semantic-tarot-library/main/ontology/smtOntology.ttl [R=302,L] +RewriteRule ^ontology$ https://hexwitches.github.io/semantic-tarot-library/ontology/smtOntology.ttl [R=303,L] ### 3. Redirect for the Knowledge Graph # Request: https://w3id.org/smt-library/graph -RewriteRule ^kg$ https://raw.githubusercontent.com/hexWitches/semantic-tarot-library/main/ontology/smtGraph.ttl [R=302,L] +RewriteRule ^graph$ https://hexwitches.github.io/semantic-tarot-library/ontology/smtGraph.ttl [R=303,L] ### 4. Redirect for the Website # Request: https://w3id.org/smt-library/ -RewriteRule ^$ https://hexwitches.github.io/semantic-tarot-library/ [R=302,L] \ No newline at end of file +RewriteRule ^([^/.]+)$ website/$1.html [R=301,L] +RewriteRule ^$ https://hexwitches.github.io/semantic-tarot-library/ [R=301,L] \ No newline at end of file From c55e600742caac2792b3dd52481dfb06aab23e7a Mon Sep 17 00:00:00 2001 From: Nico Matentzoglu Date: Sat, 28 Mar 2026 23:50:20 +0200 Subject: [PATCH 056/111] Update monarch mapping redirect to new URL --- sssom/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sssom/.htaccess b/sssom/.htaccess index f4f362af08..7e1519d236 100644 --- a/sssom/.htaccess +++ b/sssom/.htaccess @@ -21,7 +21,7 @@ RewriteRule ^commons/disease/?$ https://github.com/mapping-commons/disease-mappi RewriteRule ^commons/disease/mappings/(.+) https://raw.githubusercontent.com/mapping-commons/disease-mappings/master/mappings/$1 [R=302,L] RewriteRule ^commons/monarch/?$ https://github.com/monarch-initiative/monarch-mapping-commons [R=302,L] -RewriteRule ^commons/monarch/mappings/(.+) https://raw.githubusercontent.com/monarch-initiative/monarch-mapping-commons/main/mappings/$1 [R=302] +RewriteRule ^commons/monarch/mappings/(.+) https://data.monarchinitiative.org/mappings/latest/$1 [R=302] # Fall through (if none of the above matches, redirect to the docs) RewriteRule ^(.+) https://mapping-commons.github.io/sssom/$1 [R=302,L] From 240b48a5d571b34824e5bf75fad649e8ac5e5095 Mon Sep 17 00:00:00 2001 From: Miriana Pinto Date: Sun, 29 Mar 2026 12:49:49 +0200 Subject: [PATCH 057/111] fix .htaccess --- smt-library/.htaccess | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/smt-library/.htaccess b/smt-library/.htaccess index b935d91b34..b09614aeef 100644 --- a/smt-library/.htaccess +++ b/smt-library/.htaccess @@ -1,6 +1,5 @@ ### 1. Enable Rewriting RewriteEngine On -RewriteBase /smt-library/ ### 2. Redirect for the Ontology # Request: https://w3id.org/smt-library/ontology @@ -8,9 +7,13 @@ RewriteRule ^ontology$ https://hexwitches.github.io/semantic-tarot-library/ontol ### 3. Redirect for the Knowledge Graph # Request: https://w3id.org/smt-library/graph -RewriteRule ^graph$ https://hexwitches.github.io/semantic-tarot-library/ontology/smtGraph.ttl [R=303,L] +RewriteRule ^graph(.*)$ https://hexwitches.github.io/semantic-tarot-library/ontology/smtGraph.ttl [R=303,L] -### 4. Redirect for the Website +### 4. Redirect for the Website Pages +# Request: https://w3id.org/smt-library/page +RewriteRule ^([^/.]+)$ https://hexwitches.github.io/semantic-tarot-library/website/$1.html [R=303,L] + +### 5. Redirect for the Website # Request: https://w3id.org/smt-library/ -RewriteRule ^([^/.]+)$ website/$1.html [R=301,L] +RewriteRule ^([^/.]+)$ website/$1.html [R=303,L] RewriteRule ^$ https://hexwitches.github.io/semantic-tarot-library/ [R=301,L] \ No newline at end of file From fe99c7d4e28fe3472c3f1c8d2ee34517fd028327 Mon Sep 17 00:00:00 2001 From: Miriana Pinto Date: Sun, 29 Mar 2026 12:55:31 +0200 Subject: [PATCH 058/111] small fix on htaccess and readme --- smt-library/.htaccess | 3 +-- smt-library/README.md | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/smt-library/.htaccess b/smt-library/.htaccess index b09614aeef..c01aa5415b 100644 --- a/smt-library/.htaccess +++ b/smt-library/.htaccess @@ -15,5 +15,4 @@ RewriteRule ^([^/.]+)$ https://hexwitches.github.io/semantic-tarot-library/websi ### 5. Redirect for the Website # Request: https://w3id.org/smt-library/ -RewriteRule ^([^/.]+)$ website/$1.html [R=303,L] -RewriteRule ^$ https://hexwitches.github.io/semantic-tarot-library/ [R=301,L] \ No newline at end of file +RewriteRule ^$ https://hexwitches.github.io/semantic-tarot-library/ [R=303,L] \ No newline at end of file diff --git a/smt-library/README.md b/smt-library/README.md index e02f143b63..c2212ba197 100644 --- a/smt-library/README.md +++ b/smt-library/README.md @@ -3,7 +3,7 @@ - **Description**: Persistent identifiers for the SMT Library, its ontology and knowledge graph. - **Project URL**: https://hexwitches.github.io/semantic-tarot-library/ - **Maintainers**: - - [hexWitches] (https://github.com/hexWitches) + - [hexWitches](https://github.com/hexWitches) - **Status**: Active This directory provides redirection for: @@ -13,4 +13,4 @@ This directory provides redirection for: ## Contact For issues or updates regarding these identifiers, please contact -[mir-pin] (https://github.com/mir-pin) or [sararoggi] (https://github.com/sararoggi) via GitHub. \ No newline at end of file +[mir-pin](https://github.com/mir-pin) or [sararoggi](https://github.com/sararoggi) via GitHub. \ No newline at end of file From 349ff3c55610aafeea8dd856746870403090ab1e Mon Sep 17 00:00:00 2001 From: Nico Matentzoglu Date: Sun, 29 Mar 2026 23:51:54 +0300 Subject: [PATCH 059/111] Fix missing flag in monarch mappings redirect --- sssom/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sssom/.htaccess b/sssom/.htaccess index 7e1519d236..fc34982d5f 100644 --- a/sssom/.htaccess +++ b/sssom/.htaccess @@ -21,7 +21,7 @@ RewriteRule ^commons/disease/?$ https://github.com/mapping-commons/disease-mappi RewriteRule ^commons/disease/mappings/(.+) https://raw.githubusercontent.com/mapping-commons/disease-mappings/master/mappings/$1 [R=302,L] RewriteRule ^commons/monarch/?$ https://github.com/monarch-initiative/monarch-mapping-commons [R=302,L] -RewriteRule ^commons/monarch/mappings/(.+) https://data.monarchinitiative.org/mappings/latest/$1 [R=302] +RewriteRule ^commons/monarch/mappings/(.+) https://data.monarchinitiative.org/mappings/latest/$1 [R=302,L] # Fall through (if none of the above matches, redirect to the docs) RewriteRule ^(.+) https://mapping-commons.github.io/sssom/$1 [R=302,L] From cecbc2e5f40d928f05ed5306d24fc60db0e7bb21 Mon Sep 17 00:00:00 2001 From: Saif Alramahi <132353864+saiframahii@users.noreply.github.com> Date: Mon, 30 Mar 2026 09:23:46 +0100 Subject: [PATCH 060/111] Update OCCO - content negotiation and README refresh (#5891) * Update .htaccess for OCCO redirects and URIs * Refine README.md formatting and add content negotiation info Updated README.md to improve formatting and add content negotiation details. * Update README with maintainer and URI information Added maintainer information and persistent URI details. --- occo/.htaccess | 54 ++++++++++++++++++++++++++++++++++++++++++++++---- occo/README.md | 23 +++++++++++---------- 2 files changed, 63 insertions(+), 14 deletions(-) diff --git a/occo/.htaccess b/occo/.htaccess index fb51c5aa1c..3863e46c24 100644 --- a/occo/.htaccess +++ b/occo/.htaccess @@ -1,10 +1,56 @@ # OCCO - Occupant-Centric Control Ontology +# Namespace: https://w3id.org/occo# # Contact: Saif Alramahi (@saiframahii) -# Repository: https://github.com/saiframahii/occo +# Repository: https://github.com/saiframahii/saiframahii.github.io Options +FollowSymLinks RewriteEngine on -# Redirect to ontology landing page -RewriteRule ^$ https://saiframahii.github.io/occo/ [R=302,L] -RewriteRule ^(.*)$ https://saiframahii.github.io/occo/$1 [R=302,L] +# --------------------------------------------------------------------------- +# https://w3id.org/occo/0.0.2 — version IRI (frozen release) +# --------------------------------------------------------------------------- + +# Turtle +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^0\.0\.2/?$ https://saiframahii.github.io/occo/releases/0.0.2/occo.ttl [R=303,L] + +# RDF/XML +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^0\.0\.2/?$ https://saiframahii.github.io/occo/releases/0.0.2/occo.rdf [R=303,L] + +# HTML / default +RewriteRule ^0\.0\.2/?$ https://saiframahii.github.io/occo/index-en.html [R=303,L] + +# --------------------------------------------------------------------------- +# https://w3id.org/occo — base URI (latest version) +# --------------------------------------------------------------------------- + +# JSON-LD +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^$ https://saiframahii.github.io/occo/ontology.jsonld [R=303,L] + +# Turtle +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^$ https://saiframahii.github.io/occo/occo.ttl [R=303,L] + +# RDF/XML +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^$ https://saiframahii.github.io/occo/occo.rdf [R=303,L] + +# N-Triples +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^$ https://saiframahii.github.io/occo/ontology.nt [R=303,L] + +# OWL/XML +RewriteCond %{HTTP_ACCEPT} application/owl\+xml +RewriteRule ^$ https://saiframahii.github.io/occo/ontology.owl [R=303,L] + +# HTML / browser default +RewriteRule ^$ https://saiframahii.github.io/occo/index-en.html [R=303,L] + +# --------------------------------------------------------------------------- +# Pass-through for all sub-paths (evaluation, provenance, releases, etc.) +# --------------------------------------------------------------------------- +RewriteRule ^(.+)$ https://saiframahii.github.io/occo/$1 [R=303,L] diff --git a/occo/README.md b/occo/README.md index 78d4835570..d3ac949845 100644 --- a/occo/README.md +++ b/occo/README.md @@ -1,14 +1,17 @@ -# OCCO - Occupant-Centric Control Ontology +# OCCO — Occupant-Centric Control Ontology -A semantic ontology for occupant-centric building control, integrating visual comfort metrics, control strategies, and performance evaluation. +**Namespace:** `https://w3id.org/occo#` -## Maintainer -**Saif Alramahi** (@saiframahii)
-Birmingham City University
-saif.alramahi@mail.bcu.ac.uk +**Persistent URI:** `https://w3id.org/occo` -## Status -🚧 *The ontology will be accessible online upon publication.* +**Maintainer:** Saif Alramahi (Birmingham City University) — saif.alramahi@mail.bcu.ac.uk — [@saiframahii](https://github.com/saiframahii) -## References -- [EC3 2026 Paper] (forthcoming) +This namespace provides persistent URIs for the Occupant-Centric Control Ontology (OCCO), +an OWL ontology for semantic modelling of occupant-centric building control developed as part +of PhD research at Birmingham City University. + +Content negotiation is supported — dereference `https://w3id.org/occo` with the appropriate +`Accept` header to receive Turtle, RDF/XML, JSON-LD, N-Triples, or OWL/XML. + +Full documentation and all serialisations are served from: +`https://saiframahii.github.io/occo/` From f6f94e3ba5a802519f611e1172764273a57043fa Mon Sep 17 00:00:00 2001 From: Steven PIEL Date: Mon, 30 Mar 2026 13:26:48 +0200 Subject: [PATCH 061/111] Add README for OSO namespace Added README.md for OSO namespace with details on maintainer, scope, and target project. --- earthsemantics/OSO/README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 earthsemantics/OSO/README.md diff --git a/earthsemantics/OSO/README.md b/earthsemantics/OSO/README.md new file mode 100644 index 0000000000..818ff17c0a --- /dev/null +++ b/earthsemantics/OSO/README.md @@ -0,0 +1,18 @@ +# OSO namespace at w3id.org + +This subpath provides persistent identifiers for the OSO ontology and its related metadata descriptions. + +## Maintainer +Steven / @spiel-ifremer +https://github.com/spiel-ifremer + +## Scope +- /earthsemantics/OSO +- /earthsemantics/OSO/void +- /earthsemantics/OSO/dcat + +## Target project +https://github.com/emso-eric/oso-ontology + +## Notes +This subpath is maintained independently and does not modify other earthsemantics namespaces. From c66022e74db151d73fa8a25162d4839d6ef21c00 Mon Sep 17 00:00:00 2001 From: Steven PIEL Date: Mon, 30 Mar 2026 13:29:45 +0200 Subject: [PATCH 062/111] Update RewriteRules for void and dcat paths Improve OSO redirect rules for trailing slash support --- earthsemantics/OSO/.htaccess | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/earthsemantics/OSO/.htaccess b/earthsemantics/OSO/.htaccess index 0cce233267..1db40a0f3a 100644 --- a/earthsemantics/OSO/.htaccess +++ b/earthsemantics/OSO/.htaccess @@ -4,7 +4,7 @@ RewriteEngine On RewriteRule ^$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/OSO.ttl [R=302,L] # VoID -RewriteRule ^void$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/void.ttl [R=302,L] +RewriteRule ^void/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/void.ttl [R=302,L] # DCAT -RewriteRule ^dcat$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/oso_dcat.ttl [R=302,L] +RewriteRule ^dcat/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/oso_dcat.ttl [R=302,L] From 8a20a4ed9ff6f20d4266880386ab82fd3fcbb3ee Mon Sep 17 00:00:00 2001 From: Steven PIEL Date: Mon, 30 Mar 2026 13:33:50 +0200 Subject: [PATCH 063/111] Update DCAT rewrite rule in .htaccess --- earthsemantics/OSO/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/earthsemantics/OSO/.htaccess b/earthsemantics/OSO/.htaccess index 1db40a0f3a..9262d19209 100644 --- a/earthsemantics/OSO/.htaccess +++ b/earthsemantics/OSO/.htaccess @@ -7,4 +7,4 @@ RewriteRule ^$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/ RewriteRule ^void/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/void.ttl [R=302,L] # DCAT -RewriteRule ^dcat/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/oso_dcat.ttl [R=302,L] +RewriteRule ^dcat/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/dcat.ttl [R=302,L] From 19acb0e7c038050b6a143ce5c28d66ae3f67bcaf Mon Sep 17 00:00:00 2001 From: Steven PIEL Date: Mon, 30 Mar 2026 14:37:49 +0200 Subject: [PATCH 064/111] Add OSO w3id redirects for ontology, VoID and DCAT (#5853) * Create .htaccess * Add rewrite rules for ontology and DCAT redirects * Add README for OSO namespace Added README.md for OSO namespace with details on maintainer, scope, and target project. * Update RewriteRules for void and dcat paths Improve OSO redirect rules for trailing slash support * Update DCAT rewrite rule in .htaccess --- earthsemantics/OSO/.htaccess | 10 ++++++++++ earthsemantics/OSO/README.md | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 earthsemantics/OSO/.htaccess create mode 100644 earthsemantics/OSO/README.md diff --git a/earthsemantics/OSO/.htaccess b/earthsemantics/OSO/.htaccess new file mode 100644 index 0000000000..9262d19209 --- /dev/null +++ b/earthsemantics/OSO/.htaccess @@ -0,0 +1,10 @@ +RewriteEngine On + +# Ontologie principale +RewriteRule ^$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/OSO.ttl [R=302,L] + +# VoID +RewriteRule ^void/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/void.ttl [R=302,L] + +# DCAT +RewriteRule ^dcat/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/dcat.ttl [R=302,L] diff --git a/earthsemantics/OSO/README.md b/earthsemantics/OSO/README.md new file mode 100644 index 0000000000..818ff17c0a --- /dev/null +++ b/earthsemantics/OSO/README.md @@ -0,0 +1,18 @@ +# OSO namespace at w3id.org + +This subpath provides persistent identifiers for the OSO ontology and its related metadata descriptions. + +## Maintainer +Steven / @spiel-ifremer +https://github.com/spiel-ifremer + +## Scope +- /earthsemantics/OSO +- /earthsemantics/OSO/void +- /earthsemantics/OSO/dcat + +## Target project +https://github.com/emso-eric/oso-ontology + +## Notes +This subpath is maintained independently and does not modify other earthsemantics namespaces. From e82da263c601966799034768f7cc482aab8fa76e Mon Sep 17 00:00:00 2001 From: Valentina Carriero <36740200+valecarriero@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:53:45 +0200 Subject: [PATCH 065/111] add redirect rules for daont I would like to add the redirect rules for DAOnt, the Digital Assets Ontology --- daont/.htaccess | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ daont/README.md | 12 ++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 daont/.htaccess create mode 100644 daont/README.md diff --git a/daont/.htaccess b/daont/.htaccess new file mode 100644 index 0000000000..78fe1b5bf4 --- /dev/null +++ b/daont/.htaccess @@ -0,0 +1,52 @@ +Header set Access-Control-Allow-Origin * +Options -MultiViews +Options +FollowSymLinks + +# Directive to ensure *.rdf files served as appropriate content type, +# if not present in main apache config +AddType application/rdf+xml .rdf +AddType text/turtle .ttl +AddType application/n-triples .n3 +AddType application/ld+json .json + +RewriteEngine on +SetEnvIf Accept ^.+$ SYNTAX=other +SetEnvIf Accept ^.*application/rdf\+xml.* SYNTAX=rdf +SetEnvIf Accept ^.*text/turtle.* SYNTAX=ttl +SetEnvIf Accept ^.*application/json-ld.* SYNTAX=json +SetEnvIf Accept ^.*application/n-triples.* SYNTAX=nt +SetEnvIf Accept ^.*text/html.* SYNTAX=html +SetEnvIf Accept ^\*/\*$ SYNTAX=ttl +SetEnvIf Request_URI ^.*$ ROOT_URL=https://cefriel.github.io/daont-ontology + +##### Ontology ##### + +# Versioned ontology releases +RewriteCond %{ENV:SYNTAX} ^(rdf|ttl|json|nt)$ +RewriteRule ^([0-9].[0-9].[0-9])/?$ %{ENV:ROOT_URL}/daont/$1/daont.%{ENV:SYNTAX} [R=303,L] + +# Latest ontology releases +RewriteCond %{ENV:SYNTAX} ^(rdf|ttl|json|nt)$ +RewriteRule ^/?$ %{ENV:ROOT_URL}/daont/latest/daont.%{ENV:SYNTAX} [R=303,L] + +# Versioned ontology documentation +RewriteCond %{ENV:SYNTAX} ^html$ +RewriteRule ^([0-9].[0-9].[0-9])/?$ %{ENV:ROOT_URL}/daont/$1/index.html [R=303,L] + +# Latest ontology documentation +RewriteCond %{ENV:SYNTAX} ^html$ +RewriteRule ^/?$ %{ENV:ROOT_URL}/daont/latest/index.html [R=303,L] + +# No serialisation available +RewriteCond %{ENV:SYNTAX} ^other$ +RewriteRule ^/?$ %{ENV:ROOT_URL}/406.html [R=406,L] + + +##### Default ##### + +# Specification repo +RewriteCond %{ENV:MARKER} ^other$ +RewriteRule ^.*$ https://github.com/cefriel/daont-ontology [R=303,L] + +# Default response +RewriteRule ^.*$ https://github.com/cefriel/daont-ontology [R=303,L] \ No newline at end of file diff --git a/daont/README.md b/daont/README.md new file mode 100644 index 0000000000..c50d350b8a --- /dev/null +++ b/daont/README.md @@ -0,0 +1,12 @@ +# /daont/ + +This permanent w3id [`https://w3id.org/daont/`](https://w3id.org/daont/) redirects to the Digital Assets Ontology (DAOnt). + +## Contact +This space is administered by: + +**Valentina Carriero** +[Cefriel](https://www.cefriel.com) + +GitHub: [valecarriero](https://github.com/valecarriero) +ORCID: [0000-0003-1427-3723](https://orcid.org/0000-0003-1427-3723) \ No newline at end of file From e57ae810e4289da0b0504f286f87eb20def4fadb Mon Sep 17 00:00:00 2001 From: Simon Clark <52653938+jsimonclark@users.noreply.github.com> Date: Mon, 30 Mar 2026 16:37:33 +0200 Subject: [PATCH 066/111] Update .htaccess add redirect rule to point object ids to the battery-genome --- battinfo/.htaccess | 47 ++++++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/battinfo/.htaccess b/battinfo/.htaccess index 1dc76333f9..a8c94b725e 100644 --- a/battinfo/.htaccess +++ b/battinfo/.htaccess @@ -7,65 +7,54 @@ ########################################################################## Options +FollowSymLinks - -# Rewrite engine setup RewriteEngine On - ########################################################################## ## Redirections to raw files in the GitHub repo ########################################################################## -# Redirect to raw files in the GitHub repo (like figures, etc) RewriteRule ^raw/([^0-9].*)$ https://raw.githubusercontent.com/BIG-MAP/BattINFO/master/$1 [R=303,NE,L] RewriteRule ^raw/([0-9][^/]*)/(.*)$ https://raw.githubusercontent.com/BIG-MAP/BattINFO/master/$1/$2 [R=303,NE,L] - ########################################################################## -## Redirection Rules +## Ontology root and documentation ########################################################################## -# Rule 1a: https://w3id.org/battinfo -# Alias: https://w3id.org/battinfo/ -# Redirect to GitHub Pages -# If the request appears coming from a browser, redirect to html documentation otherwise to squashed turtle file. +# https://w3id.org/battinfo RewriteCond %{HTTP_ACCEPT} text/html [OR] RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml RewriteRule ^$ https://big-map.github.io/BattINFO/battinfo.html [R=303,NE,L] RewriteRule ^$ https://big-map.github.io/BattINFO/battinfo.ttl [R=303,NE,L] -# Rule 1b: https://w3id.org/battinfo/inferred -# Redirect to GitHub Pages -# Inferred ontology (only turtle) on GitHub Pages +# https://w3id.org/battinfo/inferred RewriteRule ^inferred/?$ https://big-map.github.io/BattINFO/battinfo-inferred.ttl [R=303,NE,L] -# Rule 1c: https://w3id.org/battinfo/turtle -# Redirect to GitHub Pages -# Squashed ontology on GitHub Pages +# https://w3id.org/battinfo/turtle RewriteRule ^turtle/?$ https://big-map.github.io/BattINFO/battinfo.ttl [R=303,NE,L] +########################################################################## +## Source/latest aliases +########################################################################## -# Rule 2a: https://w3id.org/battinfo/source -# Alias: https://w3id.org/battinfo/latest -# Redirect to master branch RewriteRule ^/$ https://raw.githubusercontent.com/BIG-MAP/BattINFO/master/battinfo.ttl [R=303,NE,L] RewriteRule ^latest/?$ https://raw.githubusercontent.com/BIG-MAP/BattINFO/master/battinfo.ttl [R=303,NE,L] RewriteRule ^source/?$ https://raw.githubusercontent.com/BIG-MAP/BattINFO/master/battinfo.ttl [R=303,NE,L] +########################################################################## +## Versioned ontology routes +########################################################################## -# Rule 3a: https://w3id.org/battinfo/{VERSION} -# Alias: https://w3id.org/battinfo/{VERSION}/ -# Redirect to specified version branch -# If the request appears coming from a browser, redirect to html documentation otherwise to squashed turtle file for given version. RewriteCond %{HTTP_ACCEPT} text/html [OR] RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml RewriteRule ^([0-9][^/]*)/?$ https://big-map.github.io/BattINFO/battinfo/versions/$1/battinfo.html [R=303,NE,L] RewriteRule ^([0-9][^/]*)/?$ https://big-map.github.io/BattINFO/battinfo/versions/$1/battinfo.ttl [R=303,NE,L] -# -# Rule 3b: https://w3id.org/battinfo/{VERSION}/inferred -# Redirect to GitHub Pages + RewriteRule ^([0-9][^/]*)/inferred/?$ https://big-map.github.io/BattINFO/battinfo/versions/$1/battinfo-inferred.ttl [R=303,NE,L] -# -# Rule 3c: https://w3id.org/battinfo/{VERSION}/turtle -# Redirect to GitHub Pages RewriteRule ^([0-9][^/]*)/turtle/?$ https://big-map.github.io/BattINFO/battinfo/versions/$1/battinfo.ttl [R=303,NE,L] + +########################################################################## +## Generic BattINFO object id redirects to Battery Genome registry +########################################################################## + +RewriteRule ^([a-z-]+)/([^/]+)/?$ https://www.battery-genome.org/registry/$1/$2 [R=303,NE,L] + From 392221a7532c35d961eedcff29ddc728115eef62 Mon Sep 17 00:00:00 2001 From: Simon Clark <52653938+jsimonclark@users.noreply.github.com> Date: Mon, 30 Mar 2026 16:39:13 +0200 Subject: [PATCH 067/111] Enhance readme with additional information Expanded the introduction and added details about redirection rules and placeholders. --- battinfo/readme.md | 50 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/battinfo/readme.md b/battinfo/readme.md index 025f2d7afe..4e9ee9babf 100644 --- a/battinfo/readme.md +++ b/battinfo/readme.md @@ -1,31 +1,55 @@ # BattINFO -This [W3ID](https://w3id.org) provides a persistent URI namespace for the [Battery Interface Ontology (BattINFO)](https://github.com/BIG-MAP/BattINFO). + +This [W3ID](https://w3id.org) provides a persistent URI namespace for the [Battery Interface Ontology (BattINFO)](https://github.com/BIG-MAP/BattINFO), and for BattINFO-governed persistent object identifiers that resolve to the [Battery Genome](https://www.battery-genome.org) registry. ## Redirection Rules + This section contains a general summary of the logic behind the redirection rules. 1. `https://w3id.org/battinfo --> https://big-map.github.io/BattINFO/battinfo{.html|.ttl}` - - Alias: https://w3id.org/battinfo/ - - If the user is accessing this from a browser, redirect to html documentation on GitHub Pages. + - Alias: `https://w3id.org/battinfo/` + - If the user is accessing this from a browser, redirect to HTML documentation on GitHub Pages. - Otherwise, redirect to the squashed `.ttl` file on GitHub Pages. - - Special case for inferred ontology: `https://w3id.org/battinfo/inferred --> https://big-map.github.io/BattINFO/battinfo-inferred.ttl` + - Special case for inferred ontology: + `https://w3id.org/battinfo/inferred --> https://big-map.github.io/BattINFO/battinfo-inferred.ttl` 2. `https://w3id.org/battinfo/source --> https://raw.githubusercontent.com/BIG-MAP/BattINFO/master/battinfo.ttl` - - Alias: https://w3id.org/battinfo/latest - - Target: `battinfo.ttl` file in the root of the master branch. + - Alias: `https://w3id.org/battinfo/latest` + - Target: `battinfo.ttl` file in the root of the `master` branch. + +3. `https://w3id.org/battinfo/{VERSION} --> https://big-map.github.io/BattINFO/battinfo/versions/{VERSION}/battinfo{.html|.ttl}` + - Alias: `https://w3id.org/battinfo/{VERSION}/` + - If the user is accessing this from a browser, redirect to HTML documentation for the given version on GitHub Pages. + - Otherwise, redirect to the squashed `.ttl` file for the given version on GitHub Pages. + - Special case for inferred ontology: + `https://w3id.org/battinfo/{VERSION}/inferred --> https://big-map.github.io/BattINFO/battinfo/versions/{VERSION}/battinfo-inferred.ttl` + +4. `https://w3id.org/battinfo/{TYPE}/{ID} --> https://www.battery-genome.org/registry/{TYPE}/{ID}` + - BattINFO object IRIs use a generic two-segment pattern. + - The `TYPE` segment is preserved when redirecting into Battery Genome. + - This keeps BattINFO persistent identifiers aligned with Battery Genome registry URLs. + - Examples: + - `https://w3id.org/battinfo/cell-type/pge5-wer6-2q82-v9k0` + `--> https://www.battery-genome.org/registry/cell-type/pge5-wer6-2q82-v9k0` + - `https://w3id.org/battinfo/material/abc123` + `--> https://www.battery-genome.org/registry/material/abc123` -3. `https://w3id.org/battinfo/{VERSION} --> https://big-map.github.io/BattINFO/versions/{VERSION}/battinfo{.html|.ttl}` - - Alias: https://w3id.org/battinfo/{VERSION}/ - - If the user is accessing this from a browser, redirect to html documentation for given version on GitHub Pages. - - Otherwise, redirect to squashed `.ttl` file for given version on GitHub Pages. - - Special case for inferred ontology: `https://w3id.org/battinfo/{VERSION}/inferred --> https://big-map.github.io/BattINFO/versions/{VERSION}/battinfo-inferred.ttl` +## Meaning of placeholders -### Meaning of placeholders - `{VERSION}`: Version number. Must start with a digit to distinguish it from domain or path names. +- `{TYPE}`: BattINFO object type slug, for example `cell`, `cell-type`, `material`, `protocol`, `dataset`, or `model`. +- `{ID}`: Persistent local identifier for the referenced object. + +## Notes + +- Special BattINFO routes such as `/raw`, `/latest`, `/source`, `/turtle`, `/inferred`, and versioned paths are handled before the generic `{TYPE}/{ID}` redirect. +- The generic object redirect assumes that Battery Genome supports the route pattern: + `https://www.battery-genome.org/registry/{TYPE}/{ID}` ## Contacts + This space is maintained by [SINTEF](https://www.sintef.no/en/). For any questions or issues, please contact [BattINFO Team](mailto:simon.clark@sintef.no). Current maintainers: -[Simon Clark](https://github.com/jsimonclark) +- [Simon Clark](https://github.com/jsimonclark) From de7b269d29ea3aaa97239e278be313b47d148b6a Mon Sep 17 00:00:00 2001 From: Steven PIEL Date: Mon, 30 Mar 2026 17:29:03 +0200 Subject: [PATCH 068/111] Update OSO root redirect to EarthPortal landing page Update OSO w3id redirects: - /earthsemantics/OSO now points to the EarthPortal landing page - /earthsemantics/OSO/ttl points to the Turtle serialization (OSO.ttl) - /earthsemantics/OSO/void points to the VoID description - /earthsemantics/OSO/dcat points to the DCAT description This improves usability by providing a human-readable entry point while keeping explicit RDF access paths. --- earthsemantics/OSO/.htaccess | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/earthsemantics/OSO/.htaccess b/earthsemantics/OSO/.htaccess index 9262d19209..2ff9684772 100644 --- a/earthsemantics/OSO/.htaccess +++ b/earthsemantics/OSO/.htaccess @@ -1,7 +1,11 @@ +Options +FollowSymLinks RewriteEngine On -# Ontologie principale -RewriteRule ^$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/OSO.ttl [R=302,L] +# Default landing page (human-readable) +RewriteRule ^$ https://earthportal.eu/ontologies/OSO [R=302,L] + +# Turtle serialization +RewriteRule ^ttl/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/OSO.ttl [R=302,L] # VoID RewriteRule ^void/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/void.ttl [R=302,L] From c3dc551ffc17a2422e99cf2a3ab11163bc11ecdb Mon Sep 17 00:00:00 2001 From: Mark Hodierne <153869223+markhodierne@users.noreply.github.com> Date: Tue, 31 Mar 2026 12:45:19 +0100 Subject: [PATCH 069/111] Merge pull request #5896 from markhodierne/master --- uk/curriculum/.htaccess | 494 ++++++++++++------------------------ uk/oak/curriculum/.htaccess | 161 +++++++++--- 2 files changed, 283 insertions(+), 372 deletions(-) diff --git a/uk/curriculum/.htaccess b/uk/curriculum/.htaccess index 9dcfb8d6b6..45ab3e0473 100644 --- a/uk/curriculum/.htaccess +++ b/uk/curriculum/.htaccess @@ -2,430 +2,250 @@ # the UK Curriculum Ontology (UKCO) and related resources # published by Oak National Academy. # -# The namespace https://w3id.org/uk/curriculum/ redirects to: -# https://github.com/oaknational/dfe-curriculum-ontology/ -# # This W3ID is used to provide persistent, resolvable URIs # for curriculum concepts, relationships, and metadata # used in educational technology, data integration, # and linked open data applications. # -# ## Contact +# Contact # Maintainer: Mark Hodierne # Email: eng.mhodierne@thenational.academy # GitHub: https://github.com/oaknational RewriteEngine on -# ---------------------------------------------------------------------- -# CORE ONTOLOGY -# ---------------------------------------------------------------------- - -# Versioned ontology IRIs (used in owl:versionIRI) -RewriteRule ^core/curriculum-ontology/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/ontology/versions/dfe-curriculum-ontology-$1.ttl [R=303,L] - -# Main ontology file (latest version) -RewriteRule ^core/curriculum-ontology\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/ontology/dfe-curriculum-ontology.ttl [R=303,L] - -RewriteRule ^core/curriculum-ontology$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/ontology/dfe-curriculum-ontology.ttl [R=303,L] +# ====================================================================== +# NATIONAL CURRICULUM FOR ENGLAND - ONTOLOGY +# ====================================================================== -# Core ontology namespace (for individual terms like curric:Phase) -RewriteRule ^core/$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/ontology/dfe-curriculum-ontology.ttl [R=303,L] - -# Ontology documentation - HTML requests go to GitHub Pages +# HTML requests → GitHub Pages documentation RewriteCond %{HTTP_ACCEPT} text/html [NC,OR] RewriteCond %{HTTP_USER_AGENT} Mozilla [NC] -RewriteRule ^core/?$ https://oaknational.github.io/dfe-curriculum-ontology/ [R=303,L] +RewriteRule ^nat-ontology/?$ https://oaknational.github.io/national-curriculum-ontology-development/ [R=303,L] -# ---------------------------------------------------------------------- -# CORE ONTOLOGY CONSTRAINTS (SHACL) -# ---------------------------------------------------------------------- +# Versioned ontology IRIs (used in owl:versionIRI) +RewriteRule ^nat-ontology/national-curriculum-ontology/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/ontology/versions/national-curriculum-ontology-$1.ttl [R=303,L] -# Versioned constraints -RewriteRule ^core/shapes/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/ontology/versions/dfe-curriculum-constraints-$1.ttl [R=303,L] +# Main ontology file (latest version) - with and without .ttl extension +RewriteRule ^nat-ontology/national-curriculum-ontology(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/ontology/national-curriculum-ontology.ttl [R=303,L] -# Main constraints file (latest version) -RewriteRule ^core/shapes\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/ontology/dfe-curriculum-constraints.ttl [R=303,L] +# Core ontology namespace (for individual terms like curric:Phase) +RewriteRule ^nat-ontology/$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/ontology/national-curriculum-ontology.ttl [R=303,L] -RewriteRule ^core/shapes$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/ontology/dfe-curriculum-constraints.ttl [R=303,L] +# ====================================================================== +# NATIONAL CURRICULUM FOR ENGLAND - SHACL CONSTRAINTS +# ====================================================================== +# Versioned constraints +RewriteRule ^nat-ontology/shapes/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/ontology/versions/national-curriculum-constraints-$1.ttl [R=303,L] -# ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - TEMPORAL STRUCTURE -# ---------------------------------------------------------------------- +# Main constraints file (latest version) - with and without .ttl extension +RewriteRule ^nat-ontology/shapes(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/ontology/national-curriculum-constraints.ttl [R=303,L] -# Versioned programme structure -RewriteRule ^england/temporal-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/versions/$1/temporal-structure-$1.ttl [R=303,L] +# ====================================================================== +# NATIONAL CURRICULUM FOR ENGLAND - TEMPORAL STRUCTURE (2014/2028) +# ====================================================================== -# Main programme structure file (latest version) -RewriteRule ^england/temporal-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/temporal-structure.ttl [R=303,L] +# Versioned temporal structure +RewriteRule ^nat-data-(2014|2028)/temporal-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/data/natcurric-$1/versions/$2/temporal-structure-$2.ttl [R=303,L] -RewriteRule ^england/temporal-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/temporal-structure.ttl [R=303,L] +# Main temporal structure file - with and without .ttl extension +RewriteRule ^nat-data-(2014|2028)/temporal-structure(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/data/natcurric-$1/temporal-structure.ttl [R=303,L] -# England namespace (for individual terms like eng:key-stage-3) -RewriteRule ^england/$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/temporal-structure.ttl [R=303,L] +# Data namespace root (for individual terms like eng:key-stage-3) +RewriteRule ^nat-data-(2014|2028)/?$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/data/natcurric-$1/temporal-structure.ttl [R=303,L] -# ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - THEMES -# ---------------------------------------------------------------------- +# ====================================================================== +# NATIONAL CURRICULUM FOR ENGLAND - THEMES (2014/2028) +# ====================================================================== # Versioned themes -RewriteRule ^england/themes/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/versions/$1/themes-$1.ttl [R=303,L] - -# Main themes file (latest version) -RewriteRule ^england/themes\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/themes.ttl [R=303,L] - -RewriteRule ^england/themes$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/themes.ttl [R=303,L] - -# ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - INDIVIDUAL RESOURCE CONTENT NEGOTIATION -# ---------------------------------------------------------------------- -# These handle content negotiation for individual curriculum resources - -# Subject resources - Turtle format -RewriteCond %{HTTP_ACCEPT} text/turtle [NC] -RewriteRule ^england/([a-z0-9-]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/distributions/$1.ttl [R=303,L] - -# Subject resources - RDF/XML format -RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] -RewriteRule ^england/([a-z0-9-]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/distributions/$1.rdf [R=303,L] - -# Subject resources - JSON-LD format -RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] -RewriteRule ^england/([a-z0-9-]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/distributions/$1.jsonld [R=303,L] - -# Subject resources - N-Triples format -RewriteCond %{HTTP_ACCEPT} application/n-triples [NC] -RewriteRule ^england/([a-z0-9-]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/distributions/$1.nt [R=303,L] - -# Subject resources - HTML (browsers) - redirect to web interface -RewriteCond %{HTTP_ACCEPT} text/html [NC,OR] -RewriteCond %{HTTP_USER_AGENT} Mozilla [NC] -RewriteRule ^england/([a-z0-9-]+)$ https://curriculum.education.gov.uk/id/subjects/$1 [R=303,L] - -# Subject with key stage - Turtle format -RewriteCond %{HTTP_ACCEPT} text/turtle [NC] -RewriteRule ^england/([a-z0-9-]+)/(key-stage-[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/distributions/$1-$2.ttl [R=303,L] - -# Subject with key stage - RDF/XML format -RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] -RewriteRule ^england/([a-z0-9-]+)/(key-stage-[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/distributions/$1-$2.rdf [R=303,L] - -# Subject with key stage - JSON-LD format -RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] -RewriteRule ^england/([a-z0-9-]+)/(key-stage-[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/distributions/$1-$2.jsonld [R=303,L] - -# Subject with key stage - N-Triples format -RewriteCond %{HTTP_ACCEPT} application/n-triples [NC] -RewriteRule ^england/([a-z0-9-]+)/(key-stage-[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/distributions/$1-$2.nt [R=303,L] - -# Subject with key stage - HTML (browsers) - redirect to web interface -RewriteCond %{HTTP_ACCEPT} text/html [NC,OR] -RewriteCond %{HTTP_USER_AGENT} Mozilla [NC] -RewriteRule ^england/([a-z0-9-]+)/(key-stage-[0-9]+)$ https://curriculum.education.gov.uk/id/subjects/$1?keystage=$2 [R=303,L] - -# Default: if no Accept header matched, return Turtle (default RDF format) -RewriteRule ^england/([a-z0-9-]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/distributions/$1.ttl [R=303,L] - -# Default for key stage specific: return Turtle -RewriteRule ^england/([a-z0-9-]+)/(key-stage-[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/distributions/$1-$2.ttl [R=303,L] - -# ---------------------------------------------------------------------- -# NOTES: -# -# 1. These rules redirect individual resource URIs to either: -# - Static RDF files in /distributions/ for machine clients -# - HTML web interface for human browsers -# -# 2. File naming convention in distributions/: -# - Full subject: {subject}.{ext} (e.g., mathematics.ttl) -# - Key stage specific: {subject}-{keystage}.{ext} (e.g., mathematics-key-stage-3.ttl) -# -# 3. Insert these rules BEFORE existing subject-specific rules -# so content negotiation happens before hardcoded redirects -# -# 4. The (key-stage-[0-9]+) pattern matches key-stage-1, key-stage-2, etc. -# -# 5. For HTML requests, we check both Accept header AND User-Agent -# to catch browsers that send */* in Accept header -# -# ---------------------------------------------------------------------- - -# ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - HISTORY SUBJECT -# ---------------------------------------------------------------------- - -# Versioned history programme structure -RewriteRule ^england/history-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/history/versions/$1/history-programme-structure-$1.ttl [R=303,L] - -# Main history programme structure file (latest version) -RewriteRule ^england/history-programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/history/history-programme-structure.ttl [R=303,L] - -RewriteRule ^england/history-programme-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/history/history-programme-structure.ttl [R=303,L] - -# Versioned history knowledge taxonomy -RewriteRule ^england/history-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/history/versions/$1/history-knowledge-taxonomy-$1.ttl [R=303,L] - -# Main history knowledge taxonomy file (latest version) -RewriteRule ^england/history-knowledge-taxonomy\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/history/history-knowledge-taxonomy.ttl [R=303,L] - -RewriteRule ^england/history-knowledge-taxonomy$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/history/history-knowledge-taxonomy.ttl [R=303,L] - -# ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - GEOGRAPHY SUBJECT -# ---------------------------------------------------------------------- - -# Versioned geography programme structure -RewriteRule ^england/geography-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/geography/versions/$1/geography-programme-structure-$1.ttl [R=303,L] - -# Main geography programme structure file (latest version) -RewriteRule ^england/geography-programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/geography/geography-programme-structure.ttl [R=303,L] - -RewriteRule ^england/geography-programme-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/geography/geography-programme-structure.ttl [R=303,L] - -# Versioned geography knowledge taxonomy -RewriteRule ^england/geography-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/geography/versions/$1/geography-knowledge-taxonomy-$1.ttl [R=303,L] - -# Main geography knowledge taxonomy file (latest version) -RewriteRule ^england/geography-knowledge-taxonomy\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/geography/geography-knowledge-taxonomy.ttl [R=303,L] +RewriteRule ^nat-data-(2014|2028)/themes/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/data/natcurric-$1/versions/$2/themes-$2.ttl [R=303,L] -RewriteRule ^england/geography-knowledge-taxonomy$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/geography/geography-knowledge-taxonomy.ttl [R=303,L] +# Main themes file - with and without .ttl extension +RewriteRule ^nat-data-(2014|2028)/themes(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/data/natcurric-$1/themes.ttl [R=303,L] -# ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - BIOLOGY SUBJECT -# ---------------------------------------------------------------------- - -# Versioned biology programme structure -RewriteRule ^england/biology-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/biology/versions/$1/biology-programme-structure-$1.ttl [R=303,L] - -# Main biology programme structure file (latest version) -RewriteRule ^england/biology-programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/biology/biology-programme-structure.ttl [R=303,L] - -RewriteRule ^england/biology-programme-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/biology/biology-programme-structure.ttl [R=303,L] - -# Versioned biology knowledge taxonomy -RewriteRule ^england/biology-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/biology/versions/$1/biology-knowledge-taxonomy-$1.ttl [R=303,L] - -# Main biology knowledge taxonomy file (latest version) -RewriteRule ^england/biology-knowledge-taxonomy\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/biology/biology-knowledge-taxonomy.ttl [R=303,L] - -RewriteRule ^england/biology-knowledge-taxonomy$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/biology/biology-knowledge-taxonomy.ttl [R=303,L] +# ====================================================================== +# NATIONAL CURRICULUM FOR ENGLAND - SUBJECT FILES (2014/2028) +# ====================================================================== # ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - CHEMISTRY SUBJECT +# Programme Structure (all subjects) # ---------------------------------------------------------------------- -# Versioned chemistry programme structure -RewriteRule ^england/chemistry-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/chemistry/versions/$1/chemistry-programme-structure-$1.ttl [R=303,L] - -# Main chemistry programme structure file (latest version) -RewriteRule ^england/chemistry-programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/chemistry/chemistry-programme-structure.ttl [R=303,L] - -RewriteRule ^england/chemistry-programme-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/chemistry/chemistry-programme-structure.ttl [R=303,L] - -# Versioned chemistry knowledge taxonomy -RewriteRule ^england/chemistry-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/chemistry/versions/$1/chemistry-knowledge-taxonomy-$1.ttl [R=303,L] - -# Main chemistry knowledge taxonomy file (latest version) -RewriteRule ^england/chemistry-knowledge-taxonomy\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/chemistry/chemistry-knowledge-taxonomy.ttl [R=303,L] - -RewriteRule ^england/chemistry-knowledge-taxonomy$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/chemistry/chemistry-knowledge-taxonomy.ttl [R=303,L] - -# ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - PHYSICS SUBJECT -# ---------------------------------------------------------------------- - -# Versioned physics programme structure -RewriteRule ^england/physics-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/physics/versions/$1/physics-programme-structure-$1.ttl [R=303,L] - -# Main physics programme structure file (latest version) -RewriteRule ^england/physics-programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/physics/physics-programme-structure.ttl [R=303,L] - -RewriteRule ^england/physics-programme-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/physics/physics-programme-structure.ttl [R=303,L] - -# Versioned physics knowledge taxonomy -RewriteRule ^england/physics-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/physics/versions/$1/physics-knowledge-taxonomy-$1.ttl [R=303,L] - -# Main physics knowledge taxonomy file (latest version) -RewriteRule ^england/physics-knowledge-taxonomy\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/physics/physics-knowledge-taxonomy.ttl [R=303,L] +# Versioned programme structure +RewriteRule ^nat-data-(2014|2028)/(biology|chemistry|physics|combined-science|science|history|geography|mathematics|english|citizenship)-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/data/natcurric-$1/subjects/$2/versions/$3/$2-programme-structure-$3.ttl [R=303,L] -RewriteRule ^england/physics-knowledge-taxonomy$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/physics/physics-knowledge-taxonomy.ttl [R=303,L] +# Main programme structure - with and without .ttl extension +RewriteRule ^nat-data-(2014|2028)/(biology|chemistry|physics|combined-science|science|history|geography|mathematics|english|citizenship)-programme-structure(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/data/natcurric-$1/subjects/$2/$2-programme-structure.ttl [R=303,L] # ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - COMBINED SCIENCE SUBJECT +# Knowledge Taxonomy (all subjects) # ---------------------------------------------------------------------- -# Versioned combined science programme structure -RewriteRule ^england/combined-science-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/combined-science/versions/$1/combined-science-programme-structure-$1.ttl [R=303,L] - -# Main combined science programme structure file (latest version) -RewriteRule ^england/combined-science-programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/combined-science/combined-science-programme-structure.ttl [R=303,L] - -RewriteRule ^england/combined-science-programme-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/combined-science/combined-science-programme-structure.ttl [R=303,L] +# Versioned knowledge taxonomy +RewriteRule ^nat-data-(2014|2028)/(biology|chemistry|physics|combined-science|science|history|geography|mathematics|english|citizenship)-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/data/natcurric-$1/subjects/$2/versions/$3/$2-knowledge-taxonomy-$3.ttl [R=303,L] -# Versioned combined science knowledge taxonomy -RewriteRule ^england/combined-science-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/combined-science/versions/$1/combined-science-knowledge-taxonomy-$1.ttl [R=303,L] - -# Main combined science knowledge taxonomy file (latest version) -RewriteRule ^england/combined-science-knowledge-taxonomy\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/combined-science/combined-science-knowledge-taxonomy.ttl [R=303,L] - -RewriteRule ^england/combined-science-knowledge-taxonomy$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/combined-science/combined-science-knowledge-taxonomy.ttl [R=303,L] - -# ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - SCIENCE SUBJECT -# ---------------------------------------------------------------------- +# Main knowledge taxonomy - with and without .ttl extension +RewriteRule ^nat-data-(2014|2028)/(biology|chemistry|physics|combined-science|science|history|geography|mathematics|english|citizenship)-knowledge-taxonomy(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/data/natcurric-$1/subjects/$2/$2-knowledge-taxonomy.ttl [R=303,L] -# Versioned science programme structure -RewriteRule ^england/science-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/science/versions/$1/science-programme-structure-$1.ttl [R=303,L] +# ====================================================================== +# NATIONAL CURRICULUM - DISTRIBUTIONS (full dataset) +# ====================================================================== -# Main science programme structure file (latest version) -RewriteRule ^england/science-programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/science/science-programme-structure.ttl [R=303,L] +# Turtle +RewriteCond %{HTTP_ACCEPT} text/turtle [NC] +RewriteRule ^nat-data-(2014|2028)/distributions/?$ https://github.com/oaknational/national-curriculum-ontology-development/releases/latest/download/national-curriculum-$1-full.ttl [R=303,L] -RewriteRule ^england/science-programme-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/science/science-programme-structure.ttl [R=303,L] +# JSON-LD +RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] +RewriteRule ^nat-data-(2014|2028)/distributions/?$ https://github.com/oaknational/national-curriculum-ontology-development/releases/latest/download/national-curriculum-$1-full.jsonld [R=303,L] -# Versioned science knowledge taxonomy -RewriteRule ^england/science-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/science/versions/$1/science-knowledge-taxonomy-$1.ttl [R=303,L] +# RDF/XML +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] +RewriteRule ^nat-data-(2014|2028)/distributions/?$ https://github.com/oaknational/national-curriculum-ontology-development/releases/latest/download/national-curriculum-$1-full.rdf [R=303,L] -# Main science knowledge taxonomy file (latest version) -RewriteRule ^england/science-knowledge-taxonomy\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/science/science-knowledge-taxonomy.ttl [R=303,L] +# N-Triples +RewriteCond %{HTTP_ACCEPT} application/n-triples [NC] +RewriteRule ^nat-data-(2014|2028)/distributions/?$ https://github.com/oaknational/national-curriculum-ontology-development/releases/latest/download/national-curriculum-$1-full.nt [R=303,L] -RewriteRule ^england/science-knowledge-taxonomy$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/science/science-knowledge-taxonomy.ttl [R=303,L] +# Default → Turtle +RewriteRule ^nat-data-(2014|2028)/distributions/?$ https://github.com/oaknational/national-curriculum-ontology-development/releases/latest/download/national-curriculum-$1-full.ttl [R=303,L] -# ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - MATHEMATICS SUBJECT -# ---------------------------------------------------------------------- +# ====================================================================== +# OAK CURRICULUM - DISTRIBUTIONS (full dataset) +# ====================================================================== -# Versioned mathematics programme structure -RewriteRule ^england/mathematics-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/mathematics/versions/$1/mathematics-programme-structure-$1.ttl [R=303,L] +# Turtle +RewriteCond %{HTTP_ACCEPT} text/turtle [NC] +RewriteRule ^oak-data/distributions/?$ https://github.com/oaknational/oak-curriculum-ontology-development/releases/latest/download/oak-curriculum-full.ttl [R=303,L] -# Main mathematics programme structure file (latest version) -RewriteRule ^england/mathematics-programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/mathematics/mathematics-programme-structure.ttl [R=303,L] +# JSON-LD +RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] +RewriteRule ^oak-data/distributions/?$ https://github.com/oaknational/oak-curriculum-ontology-development/releases/latest/download/oak-curriculum-full.jsonld [R=303,L] -RewriteRule ^england/mathematics-programme-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/mathematics/mathematics-programme-structure.ttl [R=303,L] +# RDF/XML +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] +RewriteRule ^oak-data/distributions/?$ https://github.com/oaknational/oak-curriculum-ontology-development/releases/latest/download/oak-curriculum-full.rdf [R=303,L] -# Versioned mathematics knowledge taxonomy -RewriteRule ^england/mathematics-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/mathematics/versions/$1/mathematics-knowledge-taxonomy-$1.ttl [R=303,L] +# N-Triples +RewriteCond %{HTTP_ACCEPT} application/n-triples [NC] +RewriteRule ^oak-data/distributions/?$ https://github.com/oaknational/oak-curriculum-ontology-development/releases/latest/download/oak-curriculum-full.nt [R=303,L] -# Main mathematics knowledge taxonomy file (latest version) -RewriteRule ^england/mathematics-knowledge-taxonomy\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/mathematics/mathematics-knowledge-taxonomy.ttl [R=303,L] +# Default → Turtle +RewriteRule ^oak-data/distributions/?$ https://github.com/oaknational/oak-curriculum-ontology-development/releases/latest/download/oak-curriculum-full.ttl [R=303,L] -RewriteRule ^england/mathematics-knowledge-taxonomy$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/mathematics/mathematics-knowledge-taxonomy.ttl [R=303,L] +# ====================================================================== +# NATIONAL CURRICULUM - INDIVIDUAL RESOURCES (2014/2028) +# ====================================================================== # ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - ENGLISH SUBJECT +# Subject resources (e.g., /nat-data-2014/mathematics) # ---------------------------------------------------------------------- -# Versioned english programme structure -RewriteRule ^england/english-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/english/versions/$1/english-programme-structure-$1.ttl [R=303,L] - -# Main english programme structure file (latest version) -RewriteRule ^england/english-programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/english/english-programme-structure.ttl [R=303,L] - -RewriteRule ^england/english-programme-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/english/english-programme-structure.ttl [R=303,L] - -# Versioned english knowledge taxonomy -RewriteRule ^england/english-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/english/versions/$1/english-knowledge-taxonomy-$1.ttl [R=303,L] - -# Main english knowledge taxonomy file (latest version) -RewriteRule ^england/english-knowledge-taxonomy\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/english/english-knowledge-taxonomy.ttl [R=303,L] +# HTML (browsers) → redirect to web interface +RewriteCond %{HTTP_ACCEPT} text/html [NC,OR] +RewriteCond %{HTTP_USER_AGENT} Mozilla [NC] +RewriteRule ^nat-data-(2014|2028)/([a-z0-9-]+)$ https://curriculum.education.gov.uk/id/subjects/$2 [R=303,L] -RewriteRule ^england/english-knowledge-taxonomy$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/english/english-knowledge-taxonomy.ttl [R=303,L] +# Default → return Turtle +RewriteRule ^nat-data-(2014|2028)/([a-z0-9-]+)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/distributions/$2.ttl [R=303,L] # ---------------------------------------------------------------------- -# NATIONAL CURRICULUM FOR ENGLAND - CITIZENSHIP SUBJECT +# Subject with key stage (e.g., /nat-data-2014/mathematics/key-stage-3) # ---------------------------------------------------------------------- -# Versioned citizenship programme structure -RewriteRule ^england/citizenship-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/citizenship/versions/$1/citizenship-programme-structure-$1.ttl [R=303,L] - -# Main citizenship programme structure file (latest version) -RewriteRule ^england/citizenship-programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/citizenship/citizenship-programme-structure.ttl [R=303,L] - -RewriteRule ^england/citizenship-programme-structure$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/citizenship/citizenship-programme-structure.ttl [R=303,L] - -# Versioned citizenship knowledge taxonomy -RewriteRule ^england/citizenship-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/citizenship/versions/$1/citizenship-knowledge-taxonomy-$1.ttl [R=303,L] - -# Main citizenship knowledge taxonomy file (latest version) -RewriteRule ^england/citizenship-knowledge-taxonomy\.ttl$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/citizenship/citizenship-knowledge-taxonomy.ttl [R=303,L] +# HTML (browsers) → redirect to web interface +RewriteCond %{HTTP_ACCEPT} text/html [NC,OR] +RewriteCond %{HTTP_USER_AGENT} Mozilla [NC] +RewriteRule ^nat-data-(2014|2028)/([a-z0-9-]+)/(key-stage-[0-9]+)$ https://curriculum.education.gov.uk/id/subjects/$2?keystage=$3 [R=303,L] -RewriteRule ^england/citizenship-knowledge-taxonomy$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/data/national-curriculum-for-england/subjects/citizenship/citizenship-knowledge-taxonomy.ttl [R=303,L] +# Default → return Turtle +RewriteRule ^nat-data-(2014|2028)/([a-z0-9-]+)/(key-stage-[0-9]+)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/distributions/$2-$3.ttl [R=303,L] -# ---------------------------------------------------------------------- -# OAK CURRICULUM ONTOLOGY -# ---------------------------------------------------------------------- +# ====================================================================== +# OAK CURRICULUM - ONTOLOGY +# ====================================================================== # Versioned ontology IRIs (used in owl:versionIRI) -RewriteRule ^oak-ontology/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/versions/oak-curriculum-ontology-$1.ttl [R=303,L] +RewriteRule ^oak-ontology/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/ontology/versions/oak-curriculum-ontology-$1.ttl [R=303,L] -# Main ontology file (latest version) -RewriteRule ^oak-ontology\.ttl$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/oak-curriculum-ontology.ttl [R=303,L] +# Main ontology file - with and without .ttl extension +RewriteRule ^oak-ontology(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/ontology/oak-curriculum-ontology.ttl [R=303,L] -# Oak ontology namespace (for individual terms like oakcurric:Programme) -RewriteRule ^oak-ontology$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/oak-curriculum-ontology.ttl [R=303,L] - -# ---------------------------------------------------------------------- -# OAK CURRICULUM ONTOLOGY CONSTRAINTS (SHACL) -# ---------------------------------------------------------------------- +# ====================================================================== +# OAK CURRICULUM - SHACL CONSTRAINTS +# ====================================================================== # Versioned constraints -RewriteRule ^oak-ontology/shapes/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/versions/oak-curriculum-constraints-$1.ttl [R=303,L] +RewriteRule ^oak-ontology/shapes/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/ontology/versions/oak-curriculum-constraints-$1.ttl [R=303,L] -# Main constraints file (latest version) -RewriteRule ^oak-ontology/shapes\.ttl$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/oak-curriculum-constraints.ttl [R=303,L] +# Main constraints file - with and without .ttl extension +RewriteRule ^oak-ontology/shapes(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/ontology/oak-curriculum-constraints.ttl [R=303,L] -RewriteRule ^oak-ontology/shapes$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/oak-curriculum-constraints.ttl [R=303,L] - -# ---------------------------------------------------------------------- -# OAK CURRICULUM DATA - PROGRAMME STRUCTURE -# ---------------------------------------------------------------------- +# ====================================================================== +# OAK CURRICULUM - PROGRAMME STRUCTURE +# ====================================================================== # Versioned programme structure -RewriteRule ^oak-data/programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/versions/programme-structure-$1.ttl [R=303,L] - -# Main programme structure file (latest version) -RewriteRule ^oak-data/programme-structure\.ttl$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/programme-structure.ttl [R=303,L] +RewriteRule ^oak-data/programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/versions/programme-structure-$1.ttl [R=303,L] -# Oak data namespace (for individual programme structure terms) -RewriteRule ^oak-data/programme-structure$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/programme-structure.ttl [R=303,L] +# Main programme structure file - with and without .ttl extension +RewriteRule ^oak-data/programme-structure(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/programme-structure.ttl [R=303,L] -# ---------------------------------------------------------------------- -# OAK CURRICULUM DATA - THREADS -# ---------------------------------------------------------------------- +# ====================================================================== +# OAK CURRICULUM - THREADS +# ====================================================================== # Versioned threads -RewriteRule ^oak-data/threads/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/versions/threads-$1.ttl [R=303,L] +RewriteRule ^oak-data/threads/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/versions/threads-$1.ttl [R=303,L] -# Main threads file (latest version) -RewriteRule ^oak-data/threads\.ttl$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/threads.ttl [R=303,L] - -# Oak data namespace (for individual thread terms) -RewriteRule ^oak-data/threads$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/threads.ttl [R=303,L] +# Main threads file - with and without .ttl extension +RewriteRule ^oak-data/threads(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/threads.ttl [R=303,L] # Oak data namespace root -RewriteRule ^oak-data/$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/programme-structure.ttl [R=303,L] +RewriteRule ^oak-data/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/programme-structure.ttl [R=303,L] -# ---------------------------------------------------------------------- -# OAK CURRICULUM DATA - RESOURCES -# ---------------------------------------------------------------------- +# ====================================================================== +# OAK CURRICULUM - RESOURCES +# ====================================================================== # Versioned resources -RewriteRule ^oak-data/resources/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/resources/versions/resources-$1.ttl [R=303,L] - -# Main resources file (latest version) -RewriteRule ^oak-data/resources\.ttl$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/resources/resources.ttl [R=303,L] +RewriteRule ^oak-data/resources/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/resources/versions/resources-$1.ttl [R=303,L] -# Oak resources namespace (for individual resource terms) -RewriteRule ^oak-data/resources$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/resources/resources.ttl [R=303,L] +# Main resources file - with and without .ttl extension +RewriteRule ^oak-data/resources(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/resources/resources.ttl [R=303,L] # Oak resources namespace root -RewriteRule ^oak-data/resources/$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/oak-curriculum/resources/resources.ttl [R=303,L] +RewriteRule ^oak-data/resources/$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/resources/resources.ttl [R=303,L] -# ---------------------------------------------------------------------- +# ====================================================================== +# OAK CURRICULUM - SUBJECT FILES +# ====================================================================== + +# Versioned subject key stage files +RewriteRule ^oak-data/(biology|chemistry|physics|combined-science|science|history|geography|mathematics|english|citizenship)-key-stage-([0-9]+)/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/subjects/$1/versions/$3/$1-key-stage-$2-$3.ttl [R=303,L] + +# Subject key stage files - with and without .ttl extension +RewriteRule ^oak-data/(biology|chemistry|physics|combined-science|science|history|geography|mathematics|english|citizenship)-key-stage-([0-9]+)(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/subjects/$1/$1-key-stage-$2.ttl [R=303,L] + +# ====================================================================== # FALLBACK - Repository root and other files -# ---------------------------------------------------------------------- +# ====================================================================== + +# Oak ontology fallback - any unmatched oak-ontology/* paths +RewriteRule ^oak-ontology/(.+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/ontology/$1 [R=303,L] + +# Oak data fallback - any unmatched oak-data/* paths +RewriteRule ^oak-data/(.+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology-development/main/data/$1 [R=303,L] + +# National curriculum ontology fallback - any unmatched nat-ontology/* paths +RewriteRule ^nat-ontology/(.+)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/ontology/$1 [R=303,L] + +# National curriculum data fallback - any unmatched nat-data-*/* paths +RewriteRule ^nat-data-(2014|2028)/(.+)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/data/natcurric-$1/$2 [R=303,L] # Root namespace - redirect to README -RewriteRule ^$ https://github.com/oaknational/dfe-curriculum-ontology [R=303,L] +RewriteRule ^$ https://github.com/oaknational/national-curriculum-ontology-development [R=303,L] -# Any other files (documentation, etc.) -RewriteRule ^(.*)$ https://raw.githubusercontent.com/oaknational/dfe-curriculum-ontology/main/$1 [R=303,L] +# Final catch-all for anything else +RewriteRule ^(.*)$ https://raw.githubusercontent.com/oaknational/national-curriculum-ontology-development/main/$1 [R=303,L] diff --git a/uk/oak/curriculum/.htaccess b/uk/oak/curriculum/.htaccess index f0a1495a14..06a0ed678f 100644 --- a/uk/oak/curriculum/.htaccess +++ b/uk/oak/curriculum/.htaccess @@ -9,72 +9,151 @@ RewriteEngine on # Repo: oaknational/oak-curriculum-ontology -# ---------------------------------------------------------------------- +# ====================================================================== # ONTOLOGY (https://w3id.org/uk/oak/curriculum/ontology/) -# ---------------------------------------------------------------------- +# ====================================================================== # HTML requests → GitHub Pages documentation RewriteCond %{HTTP_ACCEPT} text/html [NC,OR] RewriteCond %{HTTP_USER_AGENT} Mozilla [NC] RewriteRule ^ontology/?$ https://oaknational.github.io/oak-curriculum-ontology/ [R=303,L] -# RDF requests → raw TTL file -RewriteRule ^ontology/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/oak-curriculum-ontology.ttl [R=303,L] +# Versioned ontology IRIs (used in owl:versionIRI) +RewriteRule ^ontology/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/versions/oak-curriculum-ontology-$1.ttl [R=303,L] -# Explicit .ttl extension -RewriteRule ^ontology\.ttl$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/oak-curriculum-ontology.ttl [R=303,L] +# Main ontology file - with and without .ttl extension +RewriteRule ^ontology(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/oak-curriculum-ontology.ttl [R=303,L] -# ---------------------------------------------------------------------- +# ====================================================================== # SHACL CONSTRAINTS (https://w3id.org/uk/oak/curriculum/ontology/shapes/) -# ---------------------------------------------------------------------- +# ====================================================================== -RewriteRule ^ontology/shapes/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/oak-curriculum-constraints.ttl [R=303,L] -RewriteRule ^ontology/shapes\.ttl$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/oak-curriculum-constraints.ttl [R=303,L] +# Versioned constraints +RewriteRule ^ontology/shapes/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/versions/oak-curriculum-constraints-$1.ttl [R=303,L] -# ---------------------------------------------------------------------- +# Main constraints file - with and without .ttl extension +RewriteRule ^ontology/shapes(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/oak-curriculum-constraints.ttl [R=303,L] + +# ====================================================================== # NATIONAL CURRICULUM DATA (https://w3id.org/uk/oak/curriculum/nationalcurriculum/) # Used for: phases, key stages, subjects, strands etc +# ====================================================================== + # ---------------------------------------------------------------------- +# Temporal Structure +# ---------------------------------------------------------------------- + +# Versioned temporal structure +RewriteRule ^nationalcurriculum/temporal-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/versions/temporal-structure-$1.ttl [R=303,L] -# Temporal structure (phases, key stages, year groups) -RewriteRule ^nationalcurriculum/temporal-structure/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/temporal-structure.ttl [R=303,L] +# Main temporal structure file - with and without .ttl extension +RewriteRule ^nationalcurriculum/temporal-structure(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/temporal-structure.ttl [R=303,L] -# Science-related programme structure (biology, chemistry, physics, combined-science, science) -RewriteRule ^nationalcurriculum/(biology|chemistry|physics|combined-science|science)-programme-structure/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/$1-programme-structure.ttl [R=303,L] +# Namespace root +RewriteRule ^nationalcurriculum/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/temporal-structure.ttl [R=303,L] -# Science-related knowledge taxonomy (biology, chemistry, physics) -RewriteRule ^nationalcurriculum/(biology|chemistry|physics)-knowledge-taxonomy/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/$1-knowledge-taxonomy.ttl [R=303,L] +# ---------------------------------------------------------------------- +# Science-related Programme Structure (biology, chemistry, physics, combined-science, science) +# ---------------------------------------------------------------------- -# Other subjects programme structure (citizenship, english, geography, history, mathematics) -RewriteRule ^nationalcurriculum/(citizenship|english|geography|history|mathematics)-programme-structure/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/$1/$1-programme-structure.ttl [R=303,L] +# Versioned +RewriteRule ^nationalcurriculum/(biology|chemistry|physics|combined-science|science)-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/versions/$2/$1-programme-structure-$2.ttl [R=303,L] -# Other subjects knowledge taxonomy (citizenship, english, geography, history, mathematics) -RewriteRule ^nationalcurriculum/(citizenship|english|geography|history|mathematics)-knowledge-taxonomy/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/$1/$1-knowledge-taxonomy.ttl [R=303,L] +# Main file - with and without .ttl extension +RewriteRule ^nationalcurriculum/(biology|chemistry|physics|combined-science|science)-programme-structure(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/$1-programme-structure.ttl [R=303,L] # ---------------------------------------------------------------------- +# Science-related Knowledge Taxonomy (biology, chemistry, physics) +# ---------------------------------------------------------------------- + +# Versioned +RewriteRule ^nationalcurriculum/(biology|chemistry|physics)-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/versions/$2/$1-knowledge-taxonomy-$2.ttl [R=303,L] + +# Main file - with and without .ttl extension +RewriteRule ^nationalcurriculum/(biology|chemistry|physics)-knowledge-taxonomy(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/$1-knowledge-taxonomy.ttl [R=303,L] + +# ---------------------------------------------------------------------- +# Other Subjects Programme Structure (citizenship, english, geography, history, mathematics) +# ---------------------------------------------------------------------- + +# Versioned +RewriteRule ^nationalcurriculum/(citizenship|english|geography|history|mathematics)-programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/$1/versions/$2/$1-programme-structure-$2.ttl [R=303,L] + +# Main file - with and without .ttl extension +RewriteRule ^nationalcurriculum/(citizenship|english|geography|history|mathematics)-programme-structure(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/$1/$1-programme-structure.ttl [R=303,L] + +# ---------------------------------------------------------------------- +# Other Subjects Knowledge Taxonomy (citizenship, english, geography, history, mathematics) +# ---------------------------------------------------------------------- + +# Versioned +RewriteRule ^nationalcurriculum/(citizenship|english|geography|history|mathematics)-knowledge-taxonomy/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/$1/versions/$2/$1-knowledge-taxonomy-$2.ttl [R=303,L] + +# Main file - with and without .ttl extension +RewriteRule ^nationalcurriculum/(citizenship|english|geography|history|mathematics)-knowledge-taxonomy(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/$1/$1-knowledge-taxonomy.ttl [R=303,L] + +# ====================================================================== # OAK CURRICULUM DATA (https://w3id.org/uk/oak/curriculum/oakcurriculum/) # Used for: programmes, units, lessons, key learning points etc +# ====================================================================== + +# ---------------------------------------------------------------------- +# Programme Structure (Oak-specific) # ---------------------------------------------------------------------- -# Programme structure (Oak-specific) -RewriteRule ^oakcurriculum/programme-structure/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/programme-structure.ttl [R=303,L] +# Versioned +RewriteRule ^oakcurriculum/programme-structure/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/versions/programme-structure-$1.ttl [R=303,L] +# Main file - with and without .ttl extension +RewriteRule ^oakcurriculum/programme-structure(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/programme-structure.ttl [R=303,L] + +# ---------------------------------------------------------------------- # Threads -RewriteRule ^oakcurriculum/threads/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/threads.ttl [R=303,L] +# ---------------------------------------------------------------------- + +# Versioned +RewriteRule ^oakcurriculum/threads/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/versions/threads-$1.ttl [R=303,L] -# Science KS4 files (biology, chemistry, physics, combined science) -RewriteRule ^oakcurriculum/(biology|chemistry|physics|combined-science)-key-stage-([0-9]+)/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/$1-key-stage-$2.ttl [R=303,L] +# Main file - with and without .ttl extension +RewriteRule ^oakcurriculum/threads(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/threads.ttl [R=303,L] +# Namespace root +RewriteRule ^oakcurriculum/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/programme-structure.ttl [R=303,L] + +# ---------------------------------------------------------------------- +# Science KS4 files (biology, chemistry, physics, combined-science) +# ---------------------------------------------------------------------- + +# Versioned +RewriteRule ^oakcurriculum/(biology|chemistry|physics|combined-science)-key-stage-([0-9]+)/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/versions/$3/$1-key-stage-$2-$3.ttl [R=303,L] + +# Main file - with and without .ttl extension +RewriteRule ^oakcurriculum/(biology|chemistry|physics|combined-science)-key-stage-([0-9]+)(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/$1-key-stage-$2.ttl [R=303,L] + +# ---------------------------------------------------------------------- # Science KS1-KS3 files (science) -RewriteRule ^oakcurriculum/science-key-stage-([0-9]+)/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/science-key-stage-$1.ttl [R=303,L] +# ---------------------------------------------------------------------- -# Other subjects key stage files (citizenship, english, geography, history, mathematics) -RewriteRule ^oakcurriculum/(citizenship|english|geography|history|mathematics)-key-stage-([0-9]+)/?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/$1/$1-key-stage-$2.ttl [R=303,L] +# Versioned +RewriteRule ^oakcurriculum/science-key-stage-([0-9]+)/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/versions/$2/science-key-stage-$1-$2.ttl [R=303,L] + +# Main file - with and without .ttl extension +RewriteRule ^oakcurriculum/science-key-stage-([0-9]+)(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/science/science-key-stage-$1.ttl [R=303,L] # ---------------------------------------------------------------------- -# DISTRIBUTIONS (content negotiation for full dataset) +# Other subjects key stage files (citizenship, english, geography, history, mathematics) # ---------------------------------------------------------------------- +# Versioned +RewriteRule ^oakcurriculum/(citizenship|english|geography|history|mathematics)-key-stage-([0-9]+)/([0-9]+\.[0-9]+\.[0-9]+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/$1/versions/$3/$1-key-stage-$2-$3.ttl [R=303,L] + +# Main file - with and without .ttl extension +RewriteRule ^oakcurriculum/(citizenship|english|geography|history|mathematics)-key-stage-([0-9]+)(?:/|\.ttl)?$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/subjects/$1/$1-key-stage-$2.ttl [R=303,L] + +# ====================================================================== +# DISTRIBUTIONS (content negotiation for full dataset) +# ====================================================================== + # Turtle RewriteCond %{HTTP_ACCEPT} text/turtle [NC] RewriteRule ^distributions/?$ https://github.com/oaknational/oak-curriculum-ontology/releases/latest/download/oak-curriculum-full.ttl [R=303,L] @@ -94,14 +173,26 @@ RewriteRule ^distributions/?$ https://github.com/oaknational/oak-curriculum-onto # Default → Turtle RewriteRule ^distributions/?$ https://github.com/oaknational/oak-curriculum-ontology/releases/latest/download/oak-curriculum-full.ttl [R=303,L] -# ---------------------------------------------------------------------- -# ROOT NAMESPACE -# ---------------------------------------------------------------------- +# ====================================================================== +# FALLBACK - Repository root and other files +# ====================================================================== + +# Ontology fallback - any unmatched ontology/* paths +RewriteRule ^ontology/(.+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/ontology/$1 [R=303,L] -# HTML → GitHub repo +# National curriculum fallback - any unmatched nationalcurriculum/* paths +RewriteRule ^nationalcurriculum/(.+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/$1 [R=303,L] + +# Oak curriculum fallback - any unmatched oakcurriculum/* paths +RewriteRule ^oakcurriculum/(.+)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/data/$1 [R=303,L] + +# Root namespace - HTML → GitHub repo RewriteCond %{HTTP_ACCEPT} text/html [NC,OR] RewriteCond %{HTTP_USER_AGENT} Mozilla [NC] RewriteRule ^$ https://github.com/oaknational/oak-curriculum-ontology [R=303,L] -# Default → repo +# Root namespace - Default → repo RewriteRule ^$ https://github.com/oaknational/oak-curriculum-ontology [R=303,L] + +# Final catch-all for anything else +RewriteRule ^(.*)$ https://raw.githubusercontent.com/oaknational/oak-curriculum-ontology/main/$1 [R=303,L] From 71f8f3f59c75b5f3dc5e476be91998cb425ae081 Mon Sep 17 00:00:00 2001 From: Gregor Kaefer Date: Tue, 31 Mar 2026 14:03:21 +0200 Subject: [PATCH 070/111] Add sock redirect to explainability --- explainability/.htaccess | 3 +++ 1 file changed, 3 insertions(+) diff --git a/explainability/.htaccess b/explainability/.htaccess index e2c4bae7cb..e76459ac91 100644 --- a/explainability/.htaccess +++ b/explainability/.htaccess @@ -11,6 +11,9 @@ RewriteEngine on +# Specific redirect for 'SoCK' +RewriteRule ^explainability/SoCK$ https://semsys.ai.wu.ac.at/sock/ [R=302,L, NC] + # Specific redirect for 'result' RewriteRule ^sense/result$ https://sense-project.net/results/ [R=302,L] From 083b2e6908baee1b9b3a90aa3911b30d1191b675 Mon Sep 17 00:00:00 2001 From: Mark Hodierne <153869223+markhodierne@users.noreply.github.com> Date: Tue, 31 Mar 2026 13:15:35 +0100 Subject: [PATCH 071/111] fix: changes to redirects in w3id.org/uk/curriculum/.htaccess and w3id.org/uk/oak/curriculum/.htaccess (#5899) * fix: changes to redirects in w3id.org/uk/curriculum/.htaccess and w3id.org/uk/oak/curriculum/.htaccess * fix: changes to redirects in w3id.org/uk/curriculum/.htaccess and w3id.org/uk/oak/curriculum/.htaccess * fix: changes to redirects in w3id.org/uk/oak/curriculum/.htaccess * fix: changes to redirects in w3id.org/uk/curriculum/.htaccess From d9e39dec226040d621af3428e07725d9f33026d7 Mon Sep 17 00:00:00 2001 From: Gregor Kaefer Date: Tue, 31 Mar 2026 15:03:01 +0200 Subject: [PATCH 072/111] Update path in explainability .htaccess --- explainability/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/explainability/.htaccess b/explainability/.htaccess index e76459ac91..ce9b8d91e9 100644 --- a/explainability/.htaccess +++ b/explainability/.htaccess @@ -12,7 +12,7 @@ RewriteEngine on # Specific redirect for 'SoCK' -RewriteRule ^explainability/SoCK$ https://semsys.ai.wu.ac.at/sock/ [R=302,L, NC] +RewriteRule ^SoCK$ https://semsys.ai.wu.ac.at/sock/ [R=302,L, NC] # Specific redirect for 'result' RewriteRule ^sense/result$ https://sense-project.net/results/ [R=302,L] From 9ee0f52b71edbb60b158cddc5e4af7ee44a54079 Mon Sep 17 00:00:00 2001 From: Gregor Kaefer Date: Tue, 31 Mar 2026 17:08:13 +0200 Subject: [PATCH 073/111] Fix invalid RewriteRule (remove space before NC) --- explainability/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/explainability/.htaccess b/explainability/.htaccess index ce9b8d91e9..8e1420b290 100644 --- a/explainability/.htaccess +++ b/explainability/.htaccess @@ -12,7 +12,7 @@ RewriteEngine on # Specific redirect for 'SoCK' -RewriteRule ^SoCK$ https://semsys.ai.wu.ac.at/sock/ [R=302,L, NC] +RewriteRule ^SoCK$ https://semsys.ai.wu.ac.at/sock/ [R=302,L,NC] # Specific redirect for 'result' RewriteRule ^sense/result$ https://sense-project.net/results/ [R=302,L] From 36b20cdc6accc3cdd93390d0769e8426f5690acb Mon Sep 17 00:00:00 2001 From: Junli Liang Date: Tue, 31 Mar 2026 16:14:28 +0100 Subject: [PATCH 074/111] updated rewrite rule for HSE indicator, indicator group and dataset --- hse/.htaccess | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hse/.htaccess b/hse/.htaccess index 9a0289ae38..1df9ac3c9a 100644 --- a/hse/.htaccess +++ b/hse/.htaccess @@ -6,6 +6,7 @@ RewriteEngine on RewriteRule .* - [E=BASE:https://hse-ucd.github.io/hse-ontology] RewriteRule .* - [E=LATEST:latest] RewriteRule .* - [E=TERMINOLOGY:https://hse-ucd.github.io/hse-terminology] +RewriteRule .* - [E=DATAPORTAL:https://hse-ucd.github.io/hse-data-portal] RewriteRule ^$ https://hse-ucd.github.io/ [R=302,L] @@ -36,3 +37,15 @@ RewriteRule ^terminology/(\d+\.\d+\.\d+)/$ %{ENV:TERMINOLOGY}/$1/ [NE,R=302,L] # terminology latest RewriteRule ^terminology$ %{ENV:TERMINOLOGY}/ [NE,R=302,L] RewriteRule ^terminology/$ %{ENV:TERMINOLOGY}/ [NE,R=302,L] + +# @prefix indicator: +# indicator: https://w3id.org/hse/indicator/hse0000042 +RewriteRule ^indicator/(.+)$ %{ENV:DATAPORTAL}/indicator/$1/ [NE,R=302,L] + +# @prefix indicator-group: +# indicator-group: https://w3id.org/hse/indicator-group/hse0001001 +RewriteRule ^indicator-group/(.+)$ %{ENV:DATAPORTAL}/indicator-group/$1/ [NE,R=302,L] + +# @prefix dataset: +# dataset: https://w3id.org/hse/dataset/AGS01/ +RewriteRule ^dataset/(.+)$ %{ENV:DATAPORTAL}/dataset/$1/ [NE,R=302,L] From a5ad4b664780b3e813c13bf42d5584e33696ae5d Mon Sep 17 00:00:00 2001 From: fazia brinis <59578900+fazia97@users.noreply.github.com> Date: Wed, 1 Apr 2026 02:14:05 +0200 Subject: [PATCH 075/111] Create ucomm --- ucomm | 1 + 1 file changed, 1 insertion(+) create mode 100644 ucomm diff --git a/ucomm b/ucomm new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/ucomm @@ -0,0 +1 @@ + From 7f8b595f1785640ee9f45040f14fd4f79ffd375b Mon Sep 17 00:00:00 2001 From: fazia brinis Date: Wed, 1 Apr 2026 03:04:12 +0200 Subject: [PATCH 076/111] first commit --- ucomm | 1 - ucomm/.htaccess | 20 ++++++++++++++++++++ ucomm/README.md | 4 ++++ 3 files changed, 24 insertions(+), 1 deletion(-) delete mode 100644 ucomm create mode 100644 ucomm/.htaccess create mode 100644 ucomm/README.md diff --git a/ucomm b/ucomm deleted file mode 100644 index 8b13789179..0000000000 --- a/ucomm +++ /dev/null @@ -1 +0,0 @@ - diff --git a/ucomm/.htaccess b/ucomm/.htaccess new file mode 100644 index 0000000000..45ef27f120 --- /dev/null +++ b/ucomm/.htaccess @@ -0,0 +1,20 @@ +# Déclare le type MIME pour RDF/XML +AddType application/rdf+xml .rdf .xml + +# Active le moteur de réécriture +RewriteEngine On + +# ---- Version HTML via LODE avec reasoner pour les navigateurs ---- +# Détecte tout navigateur humain via User-Agent classique +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} (Mozilla|Chrome|Safari|Edge|Opera) [NC] +RewriteRule ^ucomm$ https://w3id.org/lode/reasoner/https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] + +# ---- Version RDF/XML si demandé par un client RDF (Protégé, script, robot) ---- +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^ucomm$ https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] + +# ---- Fallback par défaut sur RDF/XML ---- +RewriteRule ^ucomm$ https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] \ No newline at end of file diff --git a/ucomm/README.md b/ucomm/README.md new file mode 100644 index 0000000000..ed7e47beaa --- /dev/null +++ b/ucomm/README.md @@ -0,0 +1,4 @@ +# ucomm + +This directory contains the permanent identifier for the UCOMM ontology. + From 8d8f5b9e1b82e0bc0562e4c7fb75272570a39f09 Mon Sep 17 00:00:00 2001 From: Masao Takaku Date: Wed, 1 Apr 2026 17:39:23 +0900 Subject: [PATCH 077/111] Add redirect rules for Time-based URIs for jp-textbook --- jp-textbook/.htaccess | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/jp-textbook/.htaccess b/jp-textbook/.htaccess index 108021479a..589d61eb94 100644 --- a/jp-textbook/.htaccess +++ b/jp-textbook/.htaccess @@ -4,10 +4,16 @@ RewriteEngine on RewriteCond "%{HTTP_ACCEPT}" "text/turtle" RewriteRule ^(A[ABC])(\d{9})(\d{3})$ https://jp-textbook.github.io/$1/$2/$3.ttl [R=302,L] +RewriteCond "%{HTTP_ACCEPT}" "text/turtle" +RewriteRule ^(A[ABC])(\d{9})(\d{3})\/(Time\d{3})$ https://jp-textbook.github.io/$1/$2/$3/$4.ttl [R=302,L] + RewriteCond "%{HTTP_ACCEPT}" "text/turtle" RewriteRule ^(.+) https://jp-textbook.github.io/$1.ttl [R=302,L] RewriteRule ^(A[ABC])(\d{9})(\d{3})\.ttl$ https://jp-textbook.github.io/$1/$2/$3.ttl [R=302,L] +RewriteRule ^(A[ABC])(\d{9})(\d{3})\/(Time\d{3})\.ttl$ https://jp-textbook.github.io/$1/$2/$3/$4.ttl [R=302,L] + RewriteRule ^(A[ABC])(\d{9})(\d{3})$ https://jp-textbook.github.io/$1/$2/$3 [R=302,L] +RewriteRule ^(A[ABC])(\d{9})(\d{3})\/(Time\d{3})$ https://jp-textbook.github.io/$1/$2/$3/$4 [R=302,L] RewriteRule ^(.*) https://jp-textbook.github.io/$1 [R=302,L] From ee95189caf9caf43f08c0dfa6d35b51c88211ee5 Mon Sep 17 00:00:00 2001 From: Masao Takaku Date: Wed, 1 Apr 2026 17:42:31 +0900 Subject: [PATCH 078/111] add github accounts in README --- jp-textbook/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jp-textbook/README.md b/jp-textbook/README.md index 8f97b0c927..78a0bacbd8 100644 --- a/jp-textbook/README.md +++ b/jp-textbook/README.md @@ -7,5 +7,5 @@ Homepage: * https://w3id.org/jp-textbook/ Contact: -* Yuka Egusa -* Masao Takaku +* Yuka Egusa (@yegusa) +* Masao Takaku (@masao) From 6455e6831b5b1ec4a6d87a8a1fb0c4d2a967c9b0 Mon Sep 17 00:00:00 2001 From: Jose Rafael Ferrer-Paris Date: Wed, 1 Apr 2026 21:21:59 +1100 Subject: [PATCH 079/111] IUCN GET vocabulary test site at RVA --- iucn-get/.htaccess | 7 +++++++ iucn-get/README.md | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 iucn-get/.htaccess create mode 100644 iucn-get/README.md diff --git a/iucn-get/.htaccess b/iucn-get/.htaccess new file mode 100644 index 0000000000..e3965c0b2e --- /dev/null +++ b/iucn-get/.htaccess @@ -0,0 +1,7 @@ + +Options +FollowSymLinks + +RewriteEngine On + +# Add redirect for testing via demo RVA server and using new W3ID domain: https://w3id.org/iucn-get/ +RewriteRule ^(.*)$ https://demo.vocabs.ardc.edu.au/repository/api/lda/ands-nc/iucn-get-example/2-1/resource?uri=https://w3id.org/iucn-get/$1 [B,L,NE,QSA,R=307] \ No newline at end of file diff --git a/iucn-get/README.md b/iucn-get/README.md new file mode 100644 index 0000000000..e73fff4999 --- /dev/null +++ b/iucn-get/README.md @@ -0,0 +1,20 @@ +# /iucn-get/ +This [W3ID](https://w3id.org) provides a persistent URI namespace for iucn-get resources. + + +## Uses +This namespace is used to provide URIs for the Metadata standards for the IUCN Global Ecosystem Typology (iucn-get) hosted in [Research Vocabularies Australia (RVA)](https://vocabs.ardc.edu.au). + +The IUCN Global Ecosystem Typology is available at [global-ecosystems.org](https://global-ecosystems.org/) and the vocabulary will be documented in a GitHub repository and other sites (in preparation). + +## Redirects +- https://w3id.org/iucn-get -> Research Vocabularies Australia (RVA) + +## Contact +This space is administered by: + +**Global Ecosystem Partnership** +UNSW Centre for Ecosystem Science (https://www.unsw.edu.au/research/ecosystem) +University of New South Wales, Sydney, Australia +GitHub: [@ces-unsw-edu-au](https://github.com/ces-unsw-edu-au) + From 98d327bdac31380e852a8b2758a5a363bf19f2ba Mon Sep 17 00:00:00 2001 From: Jose Rafael Ferrer-Paris Date: Wed, 1 Apr 2026 21:30:08 +1100 Subject: [PATCH 080/111] add maintainer info --- iucn-get/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/iucn-get/README.md b/iucn-get/README.md index e73fff4999..6062f149fb 100644 --- a/iucn-get/README.md +++ b/iucn-get/README.md @@ -18,3 +18,7 @@ UNSW Centre for Ecosystem Science (https://www.unsw.edu.au/research/ecosystem) University of New South Wales, Sydney, Australia GitHub: [@ces-unsw-edu-au](https://github.com/ces-unsw-edu-au) +# Maintainer +j.ferrer@unsw.edu.de (@jrfep) + + From f25234ece8b35725d27ed2e3acdda07cbcb54b9f Mon Sep 17 00:00:00 2001 From: 44_ <44.in.ua@gmail.com> Date: Wed, 1 Apr 2026 13:56:28 +0300 Subject: [PATCH 081/111] Add 44inua identifier --- 44inua/.htaccess | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 44inua/.htaccess diff --git a/44inua/.htaccess b/44inua/.htaccess new file mode 100644 index 0000000000..57b0faf00f --- /dev/null +++ b/44inua/.htaccess @@ -0,0 +1,3 @@ +Options +FollowSymLinks +RewriteEngine on +RewriteRule ^(.*)$ https://44.in.ua/$1 [R=302,L] From ff1de4afd70ed21820661e575d14c6bc3aed01ef Mon Sep 17 00:00:00 2001 From: 44_ <44.in.ua@gmail.com> Date: Wed, 1 Apr 2026 15:25:04 +0300 Subject: [PATCH 082/111] Create README.md --- 44inua/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 44inua/README.md diff --git a/44inua/README.md b/44inua/README.md new file mode 100644 index 0000000000..abb57d3c1e --- /dev/null +++ b/44inua/README.md @@ -0,0 +1,10 @@ +# w3id for 44inua (Technical Bureau 44) + +This w3id is used for Technical Bureau 44 (https://44.in.ua). +It provides stable and persistent identifiers for: +- JSON-LD contexts and vocabularies +- Technical SEO and Performance audit metadata +- E-commerce data structures + +## Maintainers +- @44inua (Technical Bureau 44) From 848053165d8a7ada68865c042d625d65759073bd Mon Sep 17 00:00:00 2001 From: fazia brinis Date: Wed, 1 Apr 2026 15:16:59 +0200 Subject: [PATCH 083/111] Add maintainer info and checklist --- ucomm/.htaccess | 18 ++++++++++-------- ucomm/README.md | 18 ++++++++++++++++-- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/ucomm/.htaccess b/ucomm/.htaccess index 45ef27f120..2ddb0dd865 100644 --- a/ucomm/.htaccess +++ b/ucomm/.htaccess @@ -1,20 +1,22 @@ -# Déclare le type MIME pour RDF/XML -AddType application/rdf+xml .rdf .xml +# Declare MIME type for RDF/XML +AddType application/rdf+xml .rdf -# Active le moteur de réécriture +# Enable rewrite engine RewriteEngine On -# ---- Version HTML via LODE avec reasoner pour les navigateurs ---- -# Détecte tout navigateur humain via User-Agent classique +# ---- HTML version via LODE with reasoner (for human users / browsers) ---- +# Detect browsers via Accept headers and User-Agent RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) RewriteCond %{HTTP_ACCEPT} text/html [OR] RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] RewriteCond %{HTTP_USER_AGENT} (Mozilla|Chrome|Safari|Edge|Opera) [NC] -RewriteRule ^ucomm$ https://w3id.org/lode/reasoner/https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] -# ---- Version RDF/XML si demandé par un client RDF (Protégé, script, robot) ---- +# Redirect to LODE with OWLAPI preprocessing and reasoning +RewriteRule ^ucomm$ https://w3id.org/lode/owlapi/reasoner/https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] + +# ---- RDF/XML version for semantic web clients (Protégé, scripts, etc.) ---- RewriteCond %{HTTP_ACCEPT} application/rdf\+xml RewriteRule ^ucomm$ https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] -# ---- Fallback par défaut sur RDF/XML ---- +# ---- Default fallback: serve RDF/XML ---- RewriteRule ^ucomm$ https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] \ No newline at end of file diff --git a/ucomm/README.md b/ucomm/README.md index ed7e47beaa..08592ee5d3 100644 --- a/ucomm/README.md +++ b/ucomm/README.md @@ -1,4 +1,18 @@ -# ucomm +# UCOMM Ontology + +This w3id identifier provides a persistent URI for the UCOMM (Unified Cataloguing Ontology Model for Manuscripts) ontology. + +## URI +https://w3id.org/ucomm + +## Description +This identifier redirects to the RDF/XML version of the ontology and to its HTML documentation via LODE. + +The ontology is hosted on GitHub : https://github.com/fazia97/ucomm-ontology + +## Maintainer +- Name: Fazia BRINIS +- GitHub: fazia97 +- Email: brinisfazia97@gmail.com -This directory contains the permanent identifier for the UCOMM ontology. From 36e74d60e914d1a95dda80ef9022fc6a5590725d Mon Sep 17 00:00:00 2001 From: Paola Arce Date: Wed, 1 Apr 2026 15:09:53 +0100 Subject: [PATCH 084/111] Add /prism redirect for PRISM ontology MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PRISM is an EU AI Act compliance record-keeping ontology that extends the W3C Data Privacy Vocabulary (DPV) and its EU AI Act extension. Redirects: w3id.org/prism → HTML docs or Turtle (content-negotiated) w3id.org/prism/0.1.0 → versioned ontology w3id.org/prism/shacl → SHACL validation shapes Target: itsbigspark.github.io/prism-ontology Maintainer: Paola Arce (GitHub: mapsa) --- prism/.htaccess | 28 ++++++++++++++++++++++++++++ prism/README.md | 7 +++++++ 2 files changed, 35 insertions(+) create mode 100644 prism/.htaccess create mode 100644 prism/README.md diff --git a/prism/.htaccess b/prism/.htaccess new file mode 100644 index 0000000000..19376a4d8b --- /dev/null +++ b/prism/.htaccess @@ -0,0 +1,28 @@ +# w3id.org/prism — Permanent redirect configuration +# Submit as /prism/.htaccess in a PR to https://github.com/perma-id/w3id.org +# +# Maintainers: Paola Arce + +Options -Indexes +Header set Access-Control-Allow-Origin * +RewriteEngine on + +# Versioned ontology +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [OR] +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^0\.1\.0$ https://itsbigspark.github.io/prism-ontology/ontology/prism-0.1.0.ttl [R=303,L] +RewriteRule ^0\.1\.0$ https://itsbigspark.github.io/prism-ontology/0.1.0/ [R=303,L] + +# SHACL shapes +RewriteRule ^shacl/(.*)$ https://itsbigspark.github.io/prism-ontology/shacl/$1 [R=303,L] + +# Default — Turtle for semantic web clients +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [OR] +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^$ https://itsbigspark.github.io/prism-ontology/ontology/prism.ttl [R=303,L] + +# Default — HTML for browsers +RewriteRule ^$ https://itsbigspark.github.io/prism-ontology/ [R=303,L] +RewriteRule ^(.*)$ https://itsbigspark.github.io/prism-ontology/$1 [R=303,L] diff --git a/prism/README.md b/prism/README.md new file mode 100644 index 0000000000..5afc7a3cde --- /dev/null +++ b/prism/README.md @@ -0,0 +1,7 @@ +# PRISM +PRISM is an EU AI Act compliance record-keeping ontology that extends the W3C Data Privacy Vocabulary (DPV) and its EU AI Act extension with structured mappings from legal obligations to compliance record types, attestation workflows, and SHACL validation shapes. + +https://github.com/itsbigspark/prism-ontology + +## Contacts +* Paola Arce (GitHub: mapsa) From 1650ae4b9b673b37173307b657966efede9d2e42 Mon Sep 17 00:00:00 2001 From: fazia brinis Date: Wed, 1 Apr 2026 17:48:38 +0200 Subject: [PATCH 085/111] fix the URI in .htaccess file --- ucomm/.htaccess | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ucomm/.htaccess b/ucomm/.htaccess index 2ddb0dd865..9e6ccf3371 100644 --- a/ucomm/.htaccess +++ b/ucomm/.htaccess @@ -12,11 +12,11 @@ RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] RewriteCond %{HTTP_USER_AGENT} (Mozilla|Chrome|Safari|Edge|Opera) [NC] # Redirect to LODE with OWLAPI preprocessing and reasoning -RewriteRule ^ucomm$ https://w3id.org/lode/owlapi/reasoner/https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] +RewriteRule ^$ https://w3id.org/lode/owlapi/reasoner/https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] # ---- RDF/XML version for semantic web clients (Protégé, scripts, etc.) ---- RewriteCond %{HTTP_ACCEPT} application/rdf\+xml -RewriteRule ^ucomm$ https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] +RewriteRule ^$ https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] # ---- Default fallback: serve RDF/XML ---- -RewriteRule ^ucomm$ https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] \ No newline at end of file +RewriteRule ^$ https://raw.githubusercontent.com/fazia97/ucomm-ontology/main/ucommXML.rdf [R=303,L] \ No newline at end of file From 15db564e23853f9d8283c0f9c663d52c4d819dfb Mon Sep 17 00:00:00 2001 From: Marjolaine Bodin Date: Thu, 2 Apr 2026 09:28:17 +0200 Subject: [PATCH 086/111] Update contact list for PaN ontologies --- PaN/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PaN/README.md b/PaN/README.md index a87c8a9d29..835b8d2aa6 100644 --- a/PaN/README.md +++ b/PaN/README.md @@ -13,4 +13,5 @@ This repository manages persistent HTTP identifiers (PIDs) under `w3id.org/PaN/` * Wout De Nolf (wout.de_nolf@esrf.fr), ESRF, France, [@woutdenolf](https://github.com/woutdenolf) * Nadine Fischer (nadine.fischer@esrf.fr), ESRF, France * Heike Görzig (heike.goerzig@helmholtz-berlin.de), [Helmholtz Zentrum Berlin](https://www.helmholtz-berlin.de/), Germany, [@hgoerzig](https://github.com/hgoerzig) -* Aaron Brewster (NIAC Chair) (nexus-committee@nexusformat.org), [Lawrence Berkeley National Laboratory](https://www.lbl.gov/), USA \ No newline at end of file +* Aaron Brewster (NIAC Chair) (nexus-committee@nexusformat.org), [Lawrence Berkeley National Laboratory](https://www.lbl.gov/), USA +* Paul Millar (paul.millar@desy.de), [Deutsches Elektronen-Synchrotron (DESY)](https://desy.de/), Germany, [@paulmillar](https://github.com/paulmillar) From 2f0cea66a6c123cf719172cacc99821442e7a0f1 Mon Sep 17 00:00:00 2001 From: Steven PIEL Date: Fri, 3 Apr 2026 09:29:13 +0200 Subject: [PATCH 087/111] fix(w3id): update .htaccess to use main branch and enable content negotiation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Updated w3id redirections to point to the main branch instead of develop - Implemented HTTP content negotiation for the OSO ontology root URI: - text/turtle → OSO.ttl - HTML fallback → EarthPortal landing page - Removed references to non-existing serializations (RDF/XML, JSON-LD) - Added explicit /ttl endpoint for direct Turtle access - Prepared structure for future extensions (VoID, DCAT, SPARQL endpoint) This improves FAIR compliance (F1, I1, I3) and ensures consistent access to the stable 1.0.0 version of the ontology. --- earthsemantics/OSO/.htaccess | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/earthsemantics/OSO/.htaccess b/earthsemantics/OSO/.htaccess index 2ff9684772..d57f89bd63 100644 --- a/earthsemantics/OSO/.htaccess +++ b/earthsemantics/OSO/.htaccess @@ -1,14 +1,21 @@ Options +FollowSymLinks RewriteEngine On -# Default landing page (human-readable) +# Turtle +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^$ https://raw.githubusercontent.com/emso-eric/oso-ontology/main/OSO.ttl [R=302,L] + +# HTML fallback +RewriteCond %{HTTP_ACCEPT} !text/turtle RewriteRule ^$ https://earthportal.eu/ontologies/OSO [R=302,L] -# Turtle serialization -RewriteRule ^ttl/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/OSO.ttl [R=302,L] +# Explicit Turtle serialization +RewriteRule ^ttl/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/main/OSO.ttl [R=302,L] -# VoID -RewriteRule ^void/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/void.ttl [R=302,L] +# Metadata artifacts +RewriteRule ^void/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/main/void.ttl [R=302,L] +RewriteRule ^dcat/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/main/dcat.ttl [R=302,L] -# DCAT -RewriteRule ^dcat/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/develop/dcat.ttl [R=302,L] +# Future endpoints +# RewriteRule ^sparql/?$ https://ton-endpoint/sparql [R=302,L] +# RewriteRule ^yasgui/?$ https://ton-yasgui/ [R=302,L] From 11880c9ede98b8ea758cea847afdec85a63bc934 Mon Sep 17 00:00:00 2001 From: tettoni Date: Fri, 3 Apr 2026 18:18:21 +0200 Subject: [PATCH 088/111] ltettoni (maintainer of /standards) adding 2 other maintainers for the same subdir / identifier. --- standards/README.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/standards/README.md b/standards/README.md index ce189862c0..8a931e42e4 100644 --- a/standards/README.md +++ b/standards/README.md @@ -15,12 +15,16 @@ of the above organizations. > if you wish to register redirections for your projects > please contact the IEC and ISO maintainers mentioned below. -The first project to rely on ```w3id``` instead of ```purl``` URLs is -[IEC/ISO SMART](https://www.iso.org/smart). +The first project to rely on ```w3id``` instead of ```purl``` URLs is [IEC/ISO SMART](https://www.iso.org/smart). Allowed maintainers of the "/standards" identifier are: -- For ISO: Laurent Tettoni, tettoni@iso.org, github: [ltettoni](https://github.com/ltettoni) -- For IEC: Stéphane da Costa Silva, sco@iec.ch, github: [stephanecosta](https://github.com/stephanecosta) -- On behalf of IEC: Mikalai Zubok, Mikalai_Zubok@epam.com, github: [mzubok](https://github.com/mzubok) -- For CCMC (the [CEN-CENELEC Management Centre](https://www.cencenelec.eu/management-centre/)): Eric Cornez, ecornez@cencenelec.eu +- For IEC/ISO's Single Delivery Unit: + - Mohameth François Sy, sy@smartsdu.org, github: [MFSY](https://github.com/MFSY) + - Panagiotis Mitzias, ext-mitzias@smartsdu.org, github: [panmitz](https://github.com/panmitz) +- For ISO: + - Laurent Tettoni, tettoni@iso.org, github: [ltettoni](https://github.com/ltettoni) +- For IEC: + - Stéphane da Costa Silva, sco@iec.ch, github: [stephanecosta](https://github.com/stephanecosta) +- For CCMC (the [CEN-CENELEC Management Centre](https://www.cencenelec.eu/management-centre/)): + - Eric Cornez, ecornez@cencenelec.eu From 616b32a39ac7eb677194a41061b355b49f2f8da1 Mon Sep 17 00:00:00 2001 From: Laurent Tettoni Date: Fri, 3 Apr 2026 21:28:05 +0200 Subject: [PATCH 089/111] Update standards/README.md Co-authored-by: Ted Thibodeau Jr --- standards/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/standards/README.md b/standards/README.md index 8a931e42e4..d799c40a46 100644 --- a/standards/README.md +++ b/standards/README.md @@ -11,8 +11,8 @@ used by IT solutions specified and implemented by joint projects of the above organizations. > [!NOTE] -> Administrators of other globally-scoped Standards Development Organizations, -> if you wish to register redirections for your projects +> Administrators of other globally-scoped Standards Development Organizations: +> if you wish to register redirections for your projects, > please contact the IEC and ISO maintainers mentioned below. The first project to rely on ```w3id``` instead of ```purl``` URLs is [IEC/ISO SMART](https://www.iso.org/smart). From fe5d03046ddb8ebb73be9f1c87133b0a0363313e Mon Sep 17 00:00:00 2001 From: KimLoubat <59658682+KimLoubat@users.noreply.github.com> Date: Sat, 4 Apr 2026 00:26:10 +0200 Subject: [PATCH 090/111] MARS pull request (#5910) * Create MARS folder Add README and .htaccess files * Delete MARS directory * Added mars directory and readme * Added .htaccess * Update readme.md --- mars/.htaccess | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++ mars/readme.md | 13 ++++++++ 2 files changed, 100 insertions(+) create mode 100644 mars/.htaccess create mode 100644 mars/readme.md diff --git a/mars/.htaccess b/mars/.htaccess new file mode 100644 index 0000000000..0ea5137b57 --- /dev/null +++ b/mars/.htaccess @@ -0,0 +1,87 @@ +# Turn off MultiViews +Options -MultiViews + +# Directive to ensure *.rdf files served as appropriate content type, +# if not present in main apache config +AddType application/rdf+xml .rdf +AddType application/rdf+xml .owl +AddType text/turtle .ttl +AddType application/n-triples .n3 +AddType application/ld+json .jsonld +# Rewrite engine setup +RewriteEngine On + +#Change the path to the folder here +#RewriteBase https://www.irit.fr/recherches/MELODI/ontologies/mars/ + +# Rewrite rule to serve HTML content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* +RewriteRule ^$ https://www.irit.fr/recherches/MELODI/ontologies/mars/index.html [R=303,L] + +# Rewrite rule to serve JSON-LD content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^$ https://www.irit.fr/recherches/MELODI/ontologies/mars/ontology.jsonld [R=303,L] + +# Rewrite rule to serve RDF/XML content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^$ https://www.irit.fr/recherches/MELODI/ontologies/mars/ontology.rdf [R=303,L] + +# Rewrite rule to serve N-Triples content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^$ https://www.irit.fr/recherches/MELODI/ontologies/mars/ontology.nt [R=303,L] + +# Rewrite rule to serve TTL content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} \*/\* [OR] +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} text/\* [OR] +RewriteCond %{HTTP_ACCEPT} \*/turtle +RewriteRule ^$ https://www.irit.fr/recherches/MELODI/ontologies/mars/ontology.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} .+ +RewriteRule ^$ https://www.irit.fr/recherches/MELODI/ontologies/mars/406.html [R=406,L] + +# Rewrite rule for data +RewriteRule ^Data/(.+) https://www.irit.fr/recherches/MELODI/ontologies/mars/Data/$1.ttl [R=303,L] + +# Rewrite rule to serve HTML content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* +RewriteRule ^(.+) https://www.irit.fr/recherches/MELODI/ontologies/mars/$1/index-en.html [R=303,L] + +# Rewrite rule to serve JSON-LD content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^(.+) https://www.irit.fr/recherches/MELODI/ontologies/mars/$1/ontology.jsonld [R=303,L] + +# Rewrite rule to serve RDF/XML content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^(.+) https://www.irit.fr/recherches/MELODI/ontologies/mars/$1/ontology.rdf [R=303,L] + +# Rewrite rule to serve N-Triples content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^(.+) https://www.irit.fr/recherches/MELODI/ontologies/mars/$1/ontology.nt [R=303,L] + +# Rewrite rule to serve TTL content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} \*/\* [OR] +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} text/\* [OR] +RewriteCond %{HTTP_ACCEPT} \*/turtle +RewriteRule ^(.+) https://www.irit.fr/recherches/MELODI/ontologies/mars/$1/ontology.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} .+ +RewriteRule ^(.+) https://www.irit.fr/recherches/MELODI/ontologies/mars/$1/406.html [R=406,L] + + + + +# Default response +# --------------------------- +# Rewrite rule to serve the turtle content from the vocabulary URI by default +RewriteRule ^$ https://www.irit.fr/recherches/MELODI/ontologies/mars/ontology.ttl [R=303,L] + +# Default response as turtle for subdirectories. +RewriteRule ^(.+) https://www.irit.fr/recherches/MELODI/ontologies/mars/$1/ontology.ttl [R=303,L] \ No newline at end of file diff --git a/mars/readme.md b/mars/readme.md new file mode 100644 index 0000000000..687368f0bc --- /dev/null +++ b/mars/readme.md @@ -0,0 +1,13 @@ +# Maintainability and Architecture Requirements of Systems + +## What is the MARS Ontology ? + +In systems engineering, functional requirements are often subject to analysis and optimisation. Less formalized aspects, such as maintainability, play a major role in system quality but are, nevertheless, often addressed late in system development, resulting in cost overruns. To establish semantic links between maintainability requirements and optimization tools such as Multidisciplinary Design Analysis and Optimization (MDAO) matrices, we propose a dedicated ontology: MARS (Maintainability and Architecture Requirements of Systems). + +Ontology documentation redirection: https://w3id.org/mars -> https://www.irit.fr/recherches/MELODI/ontologies/mars/ + +## Maintainers +* Kim Loubat (kim.loubat@irit.fr) (GitHub ID: [KimLoubat](https://github.com/KimLoubat)) +* Nathalie HERNANDEZ (nathalie.hernandez@irit.fr) +* Sophie Ebersold-Marcaillou (sophie.ebersold@irit.fr) +* Jean-Michel Bruel (jean-michel.bruel@irit.fr) From d004a45366f3b1dd6716b482c0b54fc5ecd6cdc1 Mon Sep 17 00:00:00 2001 From: Mariam-the-Solivagus Date: Sat, 4 Apr 2026 07:19:41 +0300 Subject: [PATCH 091/111] Add sanctions ontology namespace (#5897) * Add .htaccess for URL redirection and CORS headers * Modify .htaccess for ontology redirects Updated rewrites for ontology redirection and modified options. * update * Update * Add README for Sanctions Legislative Implementation Vocabulary * Delete sanctions/sanctions/README.md * Add README for Sanctions Legislative Implementation Vocabulary * Change ontology.ttl rewrite rule to raw GitHub URL Updated the RewriteRule for ontology.ttl to point to the raw GitHub URL. --- sanctions/.htaccess | 10 ++++++++++ sanctions/README.md | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 sanctions/.htaccess create mode 100644 sanctions/README.md diff --git a/sanctions/.htaccess b/sanctions/.htaccess new file mode 100644 index 0000000000..971b6c5585 --- /dev/null +++ b/sanctions/.htaccess @@ -0,0 +1,10 @@ +# Maintainer: Mariam-the-Solivagus (https://github.com/Mariam-the-Solivagus) + +Options -MultiViews +Header set Access-Control-Allow-Origin * + +RewriteEngine on + +RewriteRule ^ontology/?$ https://github.com/Mariam-the-Solivagus/sanctions-ontology [R=303,L] +RewriteRule ^ontology\.ttl$ https://raw.githubusercontent.com/Mariam-the-Solivagus/sanctions-ontology/main/sanctions.ttl [R=303,L] + diff --git a/sanctions/README.md b/sanctions/README.md new file mode 100644 index 0000000000..d5ae3760ac --- /dev/null +++ b/sanctions/README.md @@ -0,0 +1,20 @@ +# w3id.org/sanctions + +Persistent URI namespace for the Sanctions Legislative Implementation Vocabulary (SLIV). + +## Maintainer + +- **Name:** Mariam Hadjilouka +- **GitHub:** https://github.com/Mariam-the-Solivagus +- **Email:** mariamhadjilouka@icloud.com + +## Description + +SLIV is an OWL vocabulary extending the UN System Document Ontology (UNDO) +for linking UN Security Council sanctions resolutions to their EU implementing +regulations and designated entities. + +## Ontology + +- **URI:** https://w3id.org/sanctions/ontology +- **Repository:** https://github.com/Mariam-the-Solivagus/sanctions-ontology From 4c3c2a935b8c0699c6378d62ace4758d2fc911bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?erdem=20=C3=B6nal?= <137915983+erdemonal@users.noreply.github.com> Date: Sat, 4 Apr 2026 12:53:21 +0300 Subject: [PATCH 092/111] Add w3id redirect for Euatonome Ontology --- eautonome/.htaccess | 12 ++++++++++++ eautonome/README.md | 5 +++++ 2 files changed, 17 insertions(+) create mode 100644 eautonome/.htaccess create mode 100644 eautonome/README.md diff --git a/eautonome/.htaccess b/eautonome/.htaccess new file mode 100644 index 0000000000..2d406cc3e2 --- /dev/null +++ b/eautonome/.htaccess @@ -0,0 +1,12 @@ +Options +FollowSymLinks +RewriteEngine on + +RewriteRule ^ontology\.ttl$ https://erdemonal.github.io/eautonome/eautonome.ttl [R=303,L] +RewriteRule ^dataset/?$ https://erdemonal.github.io/eautonome/dataset.ttl [R=303,L] +RewriteRule ^readme/?$ https://github.com/erdemonal/eautonome/blob/main/README.md [R=303,L] + +RewriteRule ^/?$ https://erdemonal.github.io/eautonome/index.html [R=303,L] + +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule ^([a-zA-Z0-9_-]+)$ https://erdemonal.github.io/eautonome/index.html [R=303,L] diff --git a/eautonome/README.md b/eautonome/README.md new file mode 100644 index 0000000000..7db92bd861 --- /dev/null +++ b/eautonome/README.md @@ -0,0 +1,5 @@ +# Eautonome Ontology +This W3 identifier is meant to provide a generic identifier for Projet Maison Eautonome (https://www.leesu.fr/projet-eautonome). + +### Contact +**Erdem Önal**: erdemonal at outlook dot fr From 24e53abfbe604125550b367b92622142aacafc56 Mon Sep 17 00:00:00 2001 From: Carlo van Driesten Date: Sat, 4 Apr 2026 22:29:24 +0200 Subject: [PATCH 093/111] fix: update simpulse-id redirect target to simpulse-id-credentials The GitHub Pages site is deployed from the repo ASCS-eV/simpulse-id-credentials (not ASCS-eV/credentials). Update all redirect targets from ascs-ev.github.io/credentials/ to ascs-ev.github.io/simpulse-id-credentials/. Signed-off-by: jdsika --- ascs-ev/simpulse-id/.htaccess | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ascs-ev/simpulse-id/.htaccess b/ascs-ev/simpulse-id/.htaccess index 8878cc03f8..182268580b 100644 --- a/ascs-ev/simpulse-id/.htaccess +++ b/ascs-ev/simpulse-id/.htaccess @@ -14,7 +14,7 @@ RewriteEngine on # ============================================================================= # SimpulseID Credentials Ontology - Static GitHub Pages resolution # Pattern: /ascs-ev/simpulse-id/v{version}[/][shapes|context] -# Target: ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/... +# Target: ascs-ev.github.io/simpulse-id-credentials/w3id/ascs-ev/simpulse-id/... # ============================================================================= # --- Turtle / RDF-XML --- @@ -22,46 +22,46 @@ RewriteEngine on # Ontology (versioned) RewriteCond %{HTTP_ACCEPT} text/turtle [OR] RewriteCond %{HTTP_ACCEPT} application/rdf\+xml -RewriteRule ^(v[0-9]+)/?$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/ontology.ttl [R=303,L] +RewriteRule ^(v[0-9]+)/?$ https://ascs-ev.github.io/simpulse-id-credentials/w3id/ascs-ev/simpulse-id/$1/ontology.ttl [R=303,L] # SHACL shapes (versioned) RewriteCond %{HTTP_ACCEPT} text/turtle [OR] RewriteCond %{HTTP_ACCEPT} application/rdf\+xml -RewriteRule ^(v[0-9]+)/shapes/?$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/shapes.ttl [R=303,L] +RewriteRule ^(v[0-9]+)/shapes/?$ https://ascs-ev.github.io/simpulse-id-credentials/w3id/ascs-ev/simpulse-id/$1/shapes.ttl [R=303,L] # --- JSON-LD --- # JSON-LD context (versioned) RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] RewriteCond %{HTTP_ACCEPT} application/json -RewriteRule ^(v[0-9]+)/?$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/context.jsonld [R=303,L] +RewriteRule ^(v[0-9]+)/?$ https://ascs-ev.github.io/simpulse-id-credentials/w3id/ascs-ev/simpulse-id/$1/context.jsonld [R=303,L] # JSON-LD shapes (versioned) — no JSON-LD shapes published, serve Turtle RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] RewriteCond %{HTTP_ACCEPT} application/json -RewriteRule ^(v[0-9]+)/shapes/?$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/shapes.ttl [R=303,L] +RewriteRule ^(v[0-9]+)/shapes/?$ https://ascs-ev.github.io/simpulse-id-credentials/w3id/ascs-ev/simpulse-id/$1/shapes.ttl [R=303,L] # --- Context sub-path (direct URL for JSON-LD @context references) --- # JSON-LD processors fetch @context URLs with a plain GET (no Accept header), # so these rules have no content-negotiation guard. # Versioned context -RewriteRule ^(v[0-9]+)/context/?$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/context.jsonld [R=303,L] +RewriteRule ^(v[0-9]+)/context/?$ https://ascs-ev.github.io/simpulse-id-credentials/w3id/ascs-ev/simpulse-id/$1/context.jsonld [R=303,L] # --- Bare class IRIs: /simpulse-id/v1/ClassName --- # Individual class IRIs resolve to the ontology RewriteCond %{HTTP_ACCEPT} text/turtle [OR] RewriteCond %{HTTP_ACCEPT} application/rdf\+xml -RewriteRule ^(v[0-9]+)/.+$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/ontology.ttl [R=303,L] +RewriteRule ^(v[0-9]+)/.+$ https://ascs-ev.github.io/simpulse-id-credentials/w3id/ascs-ev/simpulse-id/$1/ontology.ttl [R=303,L] RewriteCond %{HTTP_ACCEPT} application/ld\+json [OR] RewriteCond %{HTTP_ACCEPT} application/json -RewriteRule ^(v[0-9]+)/.+$ https://ascs-ev.github.io/credentials/w3id/ascs-ev/simpulse-id/$1/context.jsonld [R=303,L] +RewriteRule ^(v[0-9]+)/.+$ https://ascs-ev.github.io/simpulse-id-credentials/w3id/ascs-ev/simpulse-id/$1/context.jsonld [R=303,L] # --- HTML fallback — redirect browsers to documentation --- -RewriteRule ^(v[0-9]+)/?$ https://ascs-ev.github.io/credentials/reference/schemas/ [R=303,L] -RewriteRule ^(v[0-9]+)/shapes/?$ https://ascs-ev.github.io/credentials/reference/schemas/ [R=303,L] -RewriteRule ^(v[0-9]+)/.+$ https://ascs-ev.github.io/credentials/reference/schemas/ [R=303,L] +RewriteRule ^(v[0-9]+)/?$ https://ascs-ev.github.io/simpulse-id-credentials/reference/schemas/ [R=303,L] +RewriteRule ^(v[0-9]+)/shapes/?$ https://ascs-ev.github.io/simpulse-id-credentials/reference/schemas/ [R=303,L] +RewriteRule ^(v[0-9]+)/.+$ https://ascs-ev.github.io/simpulse-id-credentials/reference/schemas/ [R=303,L] # --- Root redirect to documentation --- -RewriteRule ^$ https://ascs-ev.github.io/credentials/ [R=303,L] +RewriteRule ^$ https://ascs-ev.github.io/simpulse-id-credentials/ [R=303,L] From a9892d7474e376bec4856c2b9f3b747b88e38c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?erdem=20=C3=B6nal?= <137915983+erdemonal@users.noreply.github.com> Date: Sun, 5 Apr 2026 08:48:30 +0300 Subject: [PATCH 094/111] update README.md --- eautonome/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eautonome/README.md b/eautonome/README.md index 7db92bd861..5b78e11f21 100644 --- a/eautonome/README.md +++ b/eautonome/README.md @@ -2,4 +2,5 @@ This W3 identifier is meant to provide a generic identifier for Projet Maison Eautonome (https://www.leesu.fr/projet-eautonome). ### Contact -**Erdem Önal**: erdemonal at outlook dot fr +- email: erdemonal at outlook dot fr +- github: [erdemonal](https://github.com/erdemonal) From b4bd24eabb54bff584b2cd84d25130bce78d2b31 Mon Sep 17 00:00:00 2001 From: Xiaoli Song <133590308+XiaoliSong1126@users.noreply.github.com> Date: Sun, 5 Apr 2026 18:00:00 +0200 Subject: [PATCH 095/111] Add .htaccess for content negotiation and redirects --- bedo/.htaccess | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 bedo/.htaccess diff --git a/bedo/.htaccess b/bedo/.htaccess new file mode 100644 index 0000000000..9194aa069d --- /dev/null +++ b/bedo/.htaccess @@ -0,0 +1,24 @@ +Options +FollowSymLinks +RewriteEngine On + +# RDF/XML +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^$ https://xiaolisong1126.github.io/bedo/ontology.xml [R=303,L] + +# Turtle +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^$ https://xiaolisong1126.github.io/bedo/ontology.ttl [R=303,L] + +# JSON-LD +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^$ https://xiaolisong1126.github.io/bedo/ontology.jsonld [R=303,L] + +# HTML for browsers +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* +RewriteRule ^$ https://xiaolisong1126.github.io/bedo/ [R=303,L] + +# Fallback +RewriteRule ^$ https://xiaolisong1126.github.io/bedo/ontology.ttl [R=303,L] From 8bb075efcdfdf22eb590f7efd3b805aee9680c68 Mon Sep 17 00:00:00 2001 From: Xiaoli Song <133590308+XiaoliSong1126@users.noreply.github.com> Date: Sun, 5 Apr 2026 18:09:22 +0200 Subject: [PATCH 096/111] Add README for BEDO namespace --- bedo/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 bedo/README.md diff --git a/bedo/README.md b/bedo/README.md new file mode 100644 index 0000000000..2bf396e921 --- /dev/null +++ b/bedo/README.md @@ -0,0 +1,14 @@ +# BEDO: Bridge Engineering Drawing Ontology + +This directory contains the redirection rules for the permanent identifier of the Bridge Engineering Drawing Ontology (BEDO). + +## Namespace +- `https://w3id.org/bedo#` + +## Target Domain +- `https://xiaolisong1126.github.io/bedo/` + +## Maintainer / Contact +- **Name:** Xiaoli Song +- **GitHub:** [@XiaoliSong1126](https://github.com/XiaoliSong1126) +- **Email:** xiaolisong1126@gmail.com From 4f05cd3855a15e742c968d618a8dd6254508d099 Mon Sep 17 00:00:00 2001 From: MJS Date: Mon, 6 Apr 2026 15:09:00 +0200 Subject: [PATCH 097/111] Added AgoraOWL ontology (#5916) * Update .htaccess to redirect to AgoraOWL * Rename EDAAnOWL to AgoraOWL in README Updated references from EDAAnOWL to AgoraOWL in the README. * feat: add .htaccess and README for AgoraOWL ontology redirection and content negotiation --- AgoraOWL/.htaccess | 80 ++++++++++++++++++++++++++++++++++++++++++++++ AgoraOWL/README.md | 55 +++++++++++++++++++++++++++++++ EDAAnOWL/.htaccess | 30 ++++++++--------- EDAAnOWL/README.md | 26 +++++++++------ 4 files changed, 167 insertions(+), 24 deletions(-) create mode 100644 AgoraOWL/.htaccess create mode 100644 AgoraOWL/README.md diff --git a/AgoraOWL/.htaccess b/AgoraOWL/.htaccess new file mode 100644 index 0000000000..ab455a5cff --- /dev/null +++ b/AgoraOWL/.htaccess @@ -0,0 +1,80 @@ +# Turn off MultiViews +Options -MultiViews + +# Add content types for RDF serializations +AddType application/rdf+xml .rdf +AddType application/rdf+xml .owl +AddType text/turtle .ttl +AddType application/n-triples .nt +AddType application/ld+json .jsonld + +RewriteEngine On +RewriteBase / + +# ----------------------------------------------------------------------------- +# GENERIC RULES (FUTURE-PROOF) +# This regex matches "latest" OR any "X.Y.Z" semantic version string. +# $1 captures the folder name (e.g., "latest", "0.2.1", "1.0.0") +# $3 captures the vocabulary name (if present) +# ----------------------------------------------------------------------------- + +# Rule 1: Vocabularies (e.g., /latest/vocabularies/sector-scheme) - Always serve Turtle +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))/vocabularies/([a-zA-Z0-9_-]+)$ https://khaosresearch.github.io/AgoraOWL/$1/vocabularies/$3.ttl [R=303,L] + +# Rule 2: Versioned/Latest Ontology PID (e.g., /0.2.1 or /latest) - Content Negotiation +# HTML request (browser) -> Widoco docs index for THAT version +RewriteCond %{HTTP_ACCEPT} (text/html|application/xhtml\+xml) +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/index-en.html [R=303,L] + +# Specific RDF format requests -> Raw file with corresponding extension for THAT version +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/ontology.ttl [R=303,L] + +# RDF/XML request -> .owl file +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/ontology.owl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/ontology.nt [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/ontology.jsonld [R=303,L] + +# Fallback for versioned/latest PIDs (if Accept header is missing or doesn't match known RDF types) -> Turtle file +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/ontology.ttl [R=303,L] + +# ----------------------------------------------------------------------------- +# RULES FOR THE BASE URI ( /AgoraOWL ) -> Redirects to "latest" +# ----------------------------------------------------------------------------- + +# Rule 3: HTML request for base URI -> redirect to "latest" docs index +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/index-en.html [R=303,L] + +# Rule 4: HTML request for a term (e.g., /DataProfile) -> redirect to anchor in "latest" docs +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* +# Match only if it's NOT a version string or "latest" or "vocabularies" - i.e., it's likely a term +RewriteCond %{REQUEST_URI} !^/(latest|([0-9]+\.[0-9]+\.[0-9]+)|vocabularies)/?$ +RewriteRule ^(.+)$ https://khaosresearch.github.io/AgoraOWL/latest/index-en.html#$1 [R=303,NE,L] + +# Rule 5: Specific RDF format requests for base URI -> redirect to "latest" raw file +RewriteCond %{HTTP_ACCEPT} text/turtle +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/ontology.ttl [R=303,L] + +# RDF/XML request -> .owl file +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/ontology.owl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/ontology.nt [R=303,L] +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/ontology.jsonld [R=303,L] + +# Rule 6: Fallback for base URI -> "latest" Turtle file +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/ontology.ttl [R=303,L] diff --git a/AgoraOWL/README.md b/AgoraOWL/README.md new file mode 100644 index 0000000000..d328b50586 --- /dev/null +++ b/AgoraOWL/README.md @@ -0,0 +1,55 @@ +# AgoraOWL + +**Persistent identifier (PID) home** for the AgoraOWL ontology and related resources. + +This directory hosts the redirection rules (via `.htaccess`) that resolve the PID + and its associated versions and vocabularies. + +## 🔗 Resolvable Resources + +The redirection rules point to the ontology documentation and files hosted on GitHub Pages: +**`https://khaosresearch.github.io/AgoraOWL/`** + +### Main Ontology (Latest & Versioned) + +The base PID redirects to the **latest** version. Specific versions can be accessed via `/` (e.g., ). + +- **HTML Docs (for browsers):** + - `https://w3id.org/AgoraOWL/` (Redirects to latest docs) + - `https://w3id.org/AgoraOWL/0.0.1/` (Redirects to versioned docs) + +- **RDF Serializations (for tools, using `Accept` header):** + - **Turtle (.ttl):** `https://khaosresearch.github.io/AgoraOWL/latest/ontology.ttl` + - **RDF/XML (.owl):** `https://khaosresearch.github.io/AgoraOWL/latest/ontology.owl` + - **N-Triples (.nt):** `https://khaosresearch.github.io/AgoraOWL/latest/ontology.nt` + - **JSON-LD (.jsonld):** `https://khaosresearch.github.io/AgoraOWL/latest/ontology.jsonld` + +### Modular Vocabularies + +Vocabulary PIDs are resolvable _per version_. For example: + + +This PID will redirect to the raw `.ttl` file: + +- `https://khaosresearch.github.io/AgoraOWL/latest/vocabularies/sector-scheme.ttl` +- `https://khaosresearch.github.io/AgoraOWL/0.0.1/vocabularies/agro-vocab.ttl` + +## 📦 Content Negotiation + +The `.htaccess` provides content negotiation based on the `Accept` header: + +- `text/html` → HTML documentation (e.g., `.../latest/index-en.html`) +- `text/turtle` → Turtle file (e.g., `.../latest/ontology.ttl`) +- `application/rdf+xml` → RDF/XML file (e.g., `.../latest/ontology.owl`) +- `application/n-triples` → N-Triples file (e.g., `.../latest/ontology.nt`) +- `application/ld+json` → JSON-LD file (e.g., `.../latest/ontology.jsonld`) +- Default/Fallback → Turtle file (e.g., `.../latest/ontology.ttl`) + +## 🧭 Scope + +**AgoraOWL** is an ontology aligned with **IDSA** and connected to **BIGOWL** (Data, Algorithms, Problems, Workflows). +It models data assets, data apps, profiles, and workflows, using modular SKOS vocabularies for domains, data types, and observed properties. + +## 👥 Maintainers + +- Martín J. Salvachúa ([@MartinM10](https://github.com/MartinM10)) - `` - `` diff --git a/EDAAnOWL/.htaccess b/EDAAnOWL/.htaccess index d94dc5de7f..ab455a5cff 100644 --- a/EDAAnOWL/.htaccess +++ b/EDAAnOWL/.htaccess @@ -19,32 +19,32 @@ RewriteBase / # ----------------------------------------------------------------------------- # Rule 1: Vocabularies (e.g., /latest/vocabularies/sector-scheme) - Always serve Turtle -RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))/vocabularies/([a-zA-Z0-9_-]+)$ https://khaosresearch.github.io/EDAAnOWL/$1/vocabularies/$3.ttl [R=303,L] +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))/vocabularies/([a-zA-Z0-9_-]+)$ https://khaosresearch.github.io/AgoraOWL/$1/vocabularies/$3.ttl [R=303,L] # Rule 2: Versioned/Latest Ontology PID (e.g., /0.2.1 or /latest) - Content Negotiation # HTML request (browser) -> Widoco docs index for THAT version RewriteCond %{HTTP_ACCEPT} (text/html|application/xhtml\+xml) -RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/EDAAnOWL/$1/index-en.html [R=303,L] +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/index-en.html [R=303,L] # Specific RDF format requests -> Raw file with corresponding extension for THAT version RewriteCond %{HTTP_ACCEPT} text/turtle -RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/EDAAnOWL/$1/ontology.ttl [R=303,L] +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/ontology.ttl [R=303,L] # RDF/XML request -> .owl file RewriteCond %{HTTP_ACCEPT} application/rdf\+xml -RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/EDAAnOWL/$1/ontology.owl [R=303,L] +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/ontology.owl [R=303,L] RewriteCond %{HTTP_ACCEPT} application/n-triples -RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/EDAAnOWL/$1/ontology.nt [R=303,L] +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/ontology.nt [R=303,L] RewriteCond %{HTTP_ACCEPT} application/ld\+json -RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/EDAAnOWL/$1/ontology.jsonld [R=303,L] +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/ontology.jsonld [R=303,L] # Fallback for versioned/latest PIDs (if Accept header is missing or doesn't match known RDF types) -> Turtle file -RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/EDAAnOWL/$1/ontology.ttl [R=303,L] +RewriteRule ^(latest|([0-9]+\.[0-9]+\.[0-9]+))$ https://khaosresearch.github.io/AgoraOWL/$1/ontology.ttl [R=303,L] # ----------------------------------------------------------------------------- -# RULES FOR THE BASE URI ( /EDAAnOWL ) -> Redirects to "latest" +# RULES FOR THE BASE URI ( /AgoraOWL ) -> Redirects to "latest" # ----------------------------------------------------------------------------- # Rule 3: HTML request for base URI -> redirect to "latest" docs index @@ -52,7 +52,7 @@ RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+ RewriteCond %{HTTP_ACCEPT} text/html [OR] RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* -RewriteRule ^$ https://khaosresearch.github.io/EDAAnOWL/latest/index-en.html [R=303,L] +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/index-en.html [R=303,L] # Rule 4: HTML request for a term (e.g., /DataProfile) -> redirect to anchor in "latest" docs RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) @@ -61,20 +61,20 @@ RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* # Match only if it's NOT a version string or "latest" or "vocabularies" - i.e., it's likely a term RewriteCond %{REQUEST_URI} !^/(latest|([0-9]+\.[0-9]+\.[0-9]+)|vocabularies)/?$ -RewriteRule ^(.+)$ https://khaosresearch.github.io/EDAAnOWL/latest/index-en.html#$1 [R=303,NE,L] +RewriteRule ^(.+)$ https://khaosresearch.github.io/AgoraOWL/latest/index-en.html#$1 [R=303,NE,L] # Rule 5: Specific RDF format requests for base URI -> redirect to "latest" raw file RewriteCond %{HTTP_ACCEPT} text/turtle -RewriteRule ^$ https://khaosresearch.github.io/EDAAnOWL/latest/ontology.ttl [R=303,L] +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/ontology.ttl [R=303,L] # RDF/XML request -> .owl file RewriteCond %{HTTP_ACCEPT} application/rdf\+xml -RewriteRule ^$ https://khaosresearch.github.io/EDAAnOWL/latest/ontology.owl [R=303,L] +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/ontology.owl [R=303,L] RewriteCond %{HTTP_ACCEPT} application/n-triples -RewriteRule ^$ https://khaosresearch.github.io/EDAAnOWL/latest/ontology.nt [R=303,L] +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/ontology.nt [R=303,L] RewriteCond %{HTTP_ACCEPT} application/ld\+json -RewriteRule ^$ https://khaosresearch.github.io/EDAAnOWL/latest/ontology.jsonld [R=303,L] +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/ontology.jsonld [R=303,L] # Rule 6: Fallback for base URI -> "latest" Turtle file -RewriteRule ^$ https://khaosresearch.github.io/EDAAnOWL/latest/ontology.ttl [R=303,L] \ No newline at end of file +RewriteRule ^$ https://khaosresearch.github.io/AgoraOWL/latest/ontology.ttl [R=303,L] diff --git a/EDAAnOWL/README.md b/EDAAnOWL/README.md index f1469592b8..15bd16c4ca 100644 --- a/EDAAnOWL/README.md +++ b/EDAAnOWL/README.md @@ -1,4 +1,12 @@ -# EDAAnOWL +> [!IMPORTANT] +> The ontology name and its directory have been updated. Previously **EDAAnOWL**, now **AgoraOWL**. +> The ontology name and its directory have been updated. Previously **EDAAnOWL**, it is now **AgoraOWL**. + +> [!NOTE] +> The **EDAAnOWL** PermaID remains the same and now references **AgoraOWL**. + + +# AgoraOWL **Persistent identifier (PID) home** for the EDAAnOWL ontology and related resources. @@ -8,7 +16,7 @@ This directory hosts the redirection rules (via `.htaccess`) that resolve the PI ## 🔗 Resolvable Resources The redirection rules point to the ontology documentation and files hosted on GitHub Pages: -**`https://khaosresearch.github.io/EDAAnOWL/`** +**`https://khaosresearch.github.io/AgoraOWL/`** ### Main Ontology (Latest & Versioned) @@ -20,10 +28,10 @@ The base PID redirects to the **latest** version. Sp - `https://w3id.org/EDAAnOWL/0.0.1/` (Redirects to versioned docs) - **RDF Serializations (for tools, using `Accept` header):** - - **Turtle (.ttl):** `https://khaosresearch.github.io/EDAAnOWL/latest/ontology.ttl` - - **RDF/XML (.owl):** `https://khaosresearch.github.io/EDAAnOWL/latest/ontology.owl` - - **N-Triples (.nt):** `https://khaosresearch.github.io/EDAAnOWL/latest/ontology.nt` - - **JSON-LD (.jsonld):** `https://khaosresearch.github.io/EDAAnOWL/latest/ontology.jsonld` + - **Turtle (.ttl):** `https://khaosresearch.github.io/AgoraOWL/latest/ontology.ttl` + - **RDF/XML (.owl):** `https://khaosresearch.github.io/AgoraOWL/latest/ontology.owl` + - **N-Triples (.nt):** `https://khaosresearch.github.io/AgoraOWL/latest/ontology.nt` + - **JSON-LD (.jsonld):** `https://khaosresearch.github.io/AgoraOWL/latest/ontology.jsonld` ### Modular Vocabularies @@ -32,8 +40,8 @@ Vocabulary PIDs are resolvable _per version_. For example: This PID will redirect to the raw `.ttl` file: -- `https://khaosresearch.github.io/EDAAnOWL/latest/vocabularies/sector-scheme.ttl` -- `https://khaosresearch.github.io/EDAAnOWL/0.0.1/vocabularies/agro-vocab.ttl` +- `https://khaosresearch.github.io/AgoraOWL/latest/vocabularies/sector-scheme.ttl` +- `https://khaosresearch.github.io/AgoraOWL/0.0.1/vocabularies/agro-vocab.ttl` ## 📦 Content Negotiation @@ -48,7 +56,7 @@ The `.htaccess` provides content negotiation based on the `Accept` header: ## 🧭 Scope -**EDAAnOWL** is an ontology aligned with **IDSA** and connected to **BIGOWL** (Data, Algorithms, Problems, Workflows). +**AgoraOWL** is an ontology aligned with **IDSA** and connected to **BIGOWL** (Data, Algorithms, Problems, Workflows). It models data assets, data apps, profiles, and workflows, using modular SKOS vocabularies for domains, data types, and observed properties. ## 👥 Maintainers From 3a9b29a14401c70a65f9cfd76e1d63a292c5b9f2 Mon Sep 17 00:00:00 2001 From: Morris Florek Date: Thu, 2 Apr 2026 08:50:18 +0200 Subject: [PATCH 098/111] BCore ontology rename file deleted txt file --- bcore/.htaccess | 104 ++++++++++++++++++++++++++++++++++++++++++++++++ bcore/README.md | 9 +++++ 2 files changed, 113 insertions(+) create mode 100644 bcore/.htaccess create mode 100644 bcore/README.md diff --git a/bcore/.htaccess b/bcore/.htaccess new file mode 100644 index 0000000000..e66b78d701 --- /dev/null +++ b/bcore/.htaccess @@ -0,0 +1,104 @@ +# https://w3id.org/bcore redirects to https://github.com/TUD-IMB/bcore +# +# ## Contact +# This space is administered by: +# +# Tim Noack +# tim.noack@tu-dresden.de +# GitHub username: NoackTim + + +# Directive to ensure *.rdf files served as appropriate content type, +# if not present in main apache config +AddType application/rdf+xml .rdf +AddType application/rdf+xml .owl +AddType text/turtle .ttl +AddType text/n3 .n3 +AddType application/n-triples .nt +AddType application/ld+json .json + +RewriteEngine on + +# Turn off MultiViews +Options -MultiViews + +### Rewrite rules for latest version +# Rewrite rule to serve HTML content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+xml) +RewriteCond %{HTTP_ACCEPT} text/html [OR] +RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* +RewriteRule ^$ https://github.com/TUD-IMB/bcore [R=303,L] + +# Rewrite rule to serve TTL content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} ^.*text/turtle.* [OR] +RewriteCond %{HTTP_ACCEPT} text/\* [OR] +RewriteCond %{HTTP_ACCEPT} \*/turtle +RewriteRule ^$ https://github.com/TUD-IMB/bcore/bcore.ttl [R=303,L] + +# Rewrite rule to serve JSON-LD content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^$ https://github.com/TUD-IMB/bcore/bcore.jsonld [R=303,L] + +# Rewrite rule to serve RDF/XML content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} \*/\* [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^$ https://github.com/TUD-IMB/bcore/bcore.rdf [R=303,L] + +# Rewrite rule to serve N-Triples content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^$ https://github.com/TUD-IMB/bcore/bcore.nt [R=303,L] + +# Rewrite rule to serve N3 content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} ^.*text/n3.* [OR] +RewriteCond %{HTTP_ACCEPT} text/\* [OR] +RewriteCond %{HTTP_ACCEPT} \*/n3 +RewriteRule ^$ https://github.com/TUD-IMB/bcore/bcore.n3 [R=303,L] + +# If suffix ttl, redirect to turtle version +RewriteRule ^bcore.ttl$ https://github.com/TUD-IMB/bcore/bcore.ttl [R=303,L] + +# If suffix html, redirect to html version +RewriteRule ^bcore.html$ https://github.com/TUD-IMB/bcore/ [R=303,L] + +# If suffix rdf, redirect to rdf version +RewriteRule ^bcore.rdf$ https://github.com/TUD-IMB/bcore/bcore.rdf [R=303,L] + +# If suffix jsonld, redirect to jsonld version +RewriteRule ^bcore.jsonld$ https://github.com/TUD-IMB/bcore/bcore.jsonld [R=303,L] + +# If suffix nt, redirect to nt version +RewriteRule ^bcore.nt$ https://github.com/TUD-IMB/bcore/bcore.nt [R=303,L] + +# If suffix n3, redirect to N3 version +RewriteRule ^bcore.n3$ https://github.com/TUD-IMB/bcore/bcore.n3 [R=303,L] + + +### Rewrite rules for any other version +# Rewrite rule to serve TTL content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} text/\* [OR] +RewriteCond %{HTTP_ACCEPT} \*/turtle +RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://github.com/TUD-IMB/bcore/bcore-$1.ttl [R=302,NE,L] + +# Rewrite rule to serve JSON-LD content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://github.com/TUD-IMB/bcore/bcore-$1.jsonld [R=302,NE,L] + +# Rewrite rule to serve RDF/XML content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} \*/\* [OR] +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://github.com/TUD-IMB/bcore/bcore-$1.rdf [R=302,NE,L] + +# Rewrite rule to serve N-Triples content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://github.com/TUD-IMB/bcore/bcore-$1.nt [R=302,NE,L] + +# Rewrite rule to serve N3 content from the vocabulary URI if requested +RewriteCond %{HTTP_ACCEPT} ^.*text/n3.* [OR] +RewriteCond %{HTTP_ACCEPT} text/\* [OR] +RewriteCond %{HTTP_ACCEPT} \*/n3 +RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://github.com/TUD-IMB/bcore/bcore-$1.n3 [R=302,NE,L] + +### Default response +RewriteRule ^$ https://github.com/TUD-IMB/bcore/ [R=303,L] diff --git a/bcore/README.md b/bcore/README.md new file mode 100644 index 0000000000..9ae1e314bd --- /dev/null +++ b/bcore/README.md @@ -0,0 +1,9 @@ +# Bridge Core Ontology + +The Bridge Core Ontology (BCore) enables the represetation of a bridge structure, its components and material, as well as the infrastructure and media files connected to it and the environment and location of the bridge. + +Recommended namespace for BCore: https://w3id.org/bcore# + +**Contact** +- Tim Noack (GitHub: NoackTim) +- Morris Florek (GitHub: morrisfl) From 39eebe815c8e1ae19a6bdf81fd50beeaa5a1afd3 Mon Sep 17 00:00:00 2001 From: DKwakye <66885426+DKwakye@users.noreply.github.com> Date: Tue, 7 Apr 2026 23:01:57 +0200 Subject: [PATCH 099/111] Create .htaccess for URL redirection Add .htaccess for URL rewriting to serve HTML and Turtle formats. --- wedowind/.htaccess | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 wedowind/.htaccess diff --git a/wedowind/.htaccess b/wedowind/.htaccess new file mode 100644 index 0000000000..628c037c99 --- /dev/null +++ b/wedowind/.htaccess @@ -0,0 +1,8 @@ +RewriteEngine On + +# HTML for humans +RewriteCond %{HTTP_ACCEPT} text/html [NC] +RewriteRule ^$ https://dkwakye.github.io/wedowind/ [R=303,L] + +# Turtle for semantic web clients +RewriteRule ^$ https://dkwakye.github.io/wedowind/ontology.ttl [R=303,L] From f3582097e536e525a5a1208005611627a2402490 Mon Sep 17 00:00:00 2001 From: DKwakye <66885426+DKwakye@users.noreply.github.com> Date: Tue, 7 Apr 2026 23:10:33 +0200 Subject: [PATCH 100/111] Add README for WeDoWind ontology --- wedowind/README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 wedowind/README.md diff --git a/wedowind/README.md b/wedowind/README.md new file mode 100644 index 0000000000..9df461e98d --- /dev/null +++ b/wedowind/README.md @@ -0,0 +1,22 @@ +# WeDoWind Ontology + +Ontology for modeling **wind energy benchmarking challenges, tasks, submissions, and evaluation metrics**. + +## Namespace + +- W3ID: https://w3id.org/wedowind/ +- GitHub Pages: https://dkwakye.github.io/wedowind/ +- TTL: https://dkwakye.github.io/wedowind/ontology.ttl + +## Available Formats + +- Turtle (`.ttl`) — available +- RDF/XML, JSON-LD — planned + +## Maintainer + +- GitHub: @DKwakye + +## License + +[CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/) — Daniel Kwakye From cc663373f524448936e75d44357cb1e7ae559d79 Mon Sep 17 00:00:00 2001 From: morris florek Date: Thu, 9 Apr 2026 08:14:33 +0200 Subject: [PATCH 101/111] updated url --- bcore/.htaccess | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/bcore/.htaccess b/bcore/.htaccess index e66b78d701..63b3728b7f 100644 --- a/bcore/.htaccess +++ b/bcore/.htaccess @@ -28,50 +28,50 @@ RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+ RewriteCond %{HTTP_ACCEPT} text/html [OR] RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.* -RewriteRule ^$ https://github.com/TUD-IMB/bcore [R=303,L] +RewriteRule ^$ https://tud-imb.github.io/BCore/ [R=303,L] # Rewrite rule to serve TTL content from the vocabulary URI if requested RewriteCond %{HTTP_ACCEPT} ^.*text/turtle.* [OR] RewriteCond %{HTTP_ACCEPT} text/\* [OR] RewriteCond %{HTTP_ACCEPT} \*/turtle -RewriteRule ^$ https://github.com/TUD-IMB/bcore/bcore.ttl [R=303,L] +RewriteRule ^$ https://tud-imb.github.io/BCore/bcore.ttl [R=303,L] # Rewrite rule to serve JSON-LD content from the vocabulary URI if requested RewriteCond %{HTTP_ACCEPT} application/ld\+json -RewriteRule ^$ https://github.com/TUD-IMB/bcore/bcore.jsonld [R=303,L] +RewriteRule ^$ https://tud-imb.github.io/BCore/bcore.jsonld [R=303,L] # Rewrite rule to serve RDF/XML content from the vocabulary URI if requested RewriteCond %{HTTP_ACCEPT} \*/\* [OR] RewriteCond %{HTTP_ACCEPT} application/rdf\+xml -RewriteRule ^$ https://github.com/TUD-IMB/bcore/bcore.rdf [R=303,L] +RewriteRule ^$ https://tud-imb.github.io/BCore/bcore.rdf [R=303,L] # Rewrite rule to serve N-Triples content from the vocabulary URI if requested RewriteCond %{HTTP_ACCEPT} application/n-triples -RewriteRule ^$ https://github.com/TUD-IMB/bcore/bcore.nt [R=303,L] +RewriteRule ^$ https://tud-imb.github.io/BCore/bcore.nt [R=303,L] # Rewrite rule to serve N3 content from the vocabulary URI if requested RewriteCond %{HTTP_ACCEPT} ^.*text/n3.* [OR] RewriteCond %{HTTP_ACCEPT} text/\* [OR] RewriteCond %{HTTP_ACCEPT} \*/n3 -RewriteRule ^$ https://github.com/TUD-IMB/bcore/bcore.n3 [R=303,L] +RewriteRule ^$ https://tud-imb.github.io/BCore/bcore.n3 [R=303,L] # If suffix ttl, redirect to turtle version -RewriteRule ^bcore.ttl$ https://github.com/TUD-IMB/bcore/bcore.ttl [R=303,L] +RewriteRule ^bcore.ttl$ https://tud-imb.github.io/BCore/bcore.ttl [R=303,L] # If suffix html, redirect to html version -RewriteRule ^bcore.html$ https://github.com/TUD-IMB/bcore/ [R=303,L] +RewriteRule ^bcore.html$ https://tud-imb.github.io/BCore/ [R=303,L] # If suffix rdf, redirect to rdf version -RewriteRule ^bcore.rdf$ https://github.com/TUD-IMB/bcore/bcore.rdf [R=303,L] +RewriteRule ^bcore.rdf$ https://tud-imb.github.io/BCore/bcore.rdf [R=303,L] # If suffix jsonld, redirect to jsonld version -RewriteRule ^bcore.jsonld$ https://github.com/TUD-IMB/bcore/bcore.jsonld [R=303,L] +RewriteRule ^bcore.jsonld$ https://tud-imb.github.io/BCore/bcore.jsonld [R=303,L] # If suffix nt, redirect to nt version -RewriteRule ^bcore.nt$ https://github.com/TUD-IMB/bcore/bcore.nt [R=303,L] +RewriteRule ^bcore.nt$ https://tud-imb.github.io/BCore/bcore.nt [R=303,L] # If suffix n3, redirect to N3 version -RewriteRule ^bcore.n3$ https://github.com/TUD-IMB/bcore/bcore.n3 [R=303,L] +RewriteRule ^bcore.n3$ https://tud-imb.github.io/BCore/bcore.n3 [R=303,L] ### Rewrite rules for any other version @@ -79,26 +79,26 @@ RewriteRule ^bcore.n3$ https://github.com/TUD-IMB/bcore/bcore.n3 [R=303,L] RewriteCond %{HTTP_ACCEPT} text/turtle [OR] RewriteCond %{HTTP_ACCEPT} text/\* [OR] RewriteCond %{HTTP_ACCEPT} \*/turtle -RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://github.com/TUD-IMB/bcore/bcore-$1.ttl [R=302,NE,L] +RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://tud-imb.github.io/BCore/bcore-$1.ttl [R=302,NE,L] # Rewrite rule to serve JSON-LD content from the vocabulary URI if requested RewriteCond %{HTTP_ACCEPT} application/ld\+json -RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://github.com/TUD-IMB/bcore/bcore-$1.jsonld [R=302,NE,L] +RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://tud-imb.github.io/BCore/bcore-$1.jsonld [R=302,NE,L] # Rewrite rule to serve RDF/XML content from the vocabulary URI if requested RewriteCond %{HTTP_ACCEPT} \*/\* [OR] RewriteCond %{HTTP_ACCEPT} application/rdf\+xml -RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://github.com/TUD-IMB/bcore/bcore-$1.rdf [R=302,NE,L] +RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://tud-imb.github.io/BCore/bcore-$1.rdf [R=302,NE,L] # Rewrite rule to serve N-Triples content from the vocabulary URI if requested RewriteCond %{HTTP_ACCEPT} application/n-triples -RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://github.com/TUD-IMB/bcore/bcore-$1.nt [R=302,NE,L] +RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://tud-imb.github.io/BCore/bcore-$1.nt [R=302,NE,L] # Rewrite rule to serve N3 content from the vocabulary URI if requested RewriteCond %{HTTP_ACCEPT} ^.*text/n3.* [OR] RewriteCond %{HTTP_ACCEPT} text/\* [OR] RewriteCond %{HTTP_ACCEPT} \*/n3 -RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://github.com/TUD-IMB/bcore/bcore-$1.n3 [R=302,NE,L] +RewriteRule ^bcore-?([0-9]+\.[0-9]+\.[0-9]+)$ https://tud-imb.github.io/BCore/bcore-$1.n3 [R=302,NE,L] ### Default response -RewriteRule ^$ https://github.com/TUD-IMB/bcore/ [R=303,L] +RewriteRule ^$ https://tud-imb.github.io/BCore/ [R=303,L] From 05c9929df442ade43ab4940c7943f889614e89d9 Mon Sep 17 00:00:00 2001 From: Steven PIEL Date: Thu, 9 Apr 2026 17:16:41 +0200 Subject: [PATCH 102/111] feat(w3id): add version IRIs and SPARQL endpoints for OSO --- earthsemantics/OSO/.htaccess | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/earthsemantics/OSO/.htaccess b/earthsemantics/OSO/.htaccess index d57f89bd63..32d6539456 100644 --- a/earthsemantics/OSO/.htaccess +++ b/earthsemantics/OSO/.htaccess @@ -1,6 +1,16 @@ Options +FollowSymLinks RewriteEngine On +# Version IRIs +RewriteRule ^1\.0\.0/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/main/versions/1.0.0/OSO.ttl [R=302,L] +RewriteRule ^1\.0\.1/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/main/versions/1.0.1/OSO.ttl [R=302,L] + +# SPARQL endpoint +RewriteRule ^sparql/?$ https://virtuoso.ifremer.fr/oso/sparql/ [R=302,L] + +# SPARQL UI +RewriteRule ^ui/?$ https://virtuoso.ifremer.fr/oso/ [R=302,L] + # Turtle RewriteCond %{HTTP_ACCEPT} text/turtle RewriteRule ^$ https://raw.githubusercontent.com/emso-eric/oso-ontology/main/OSO.ttl [R=302,L] @@ -15,7 +25,3 @@ RewriteRule ^ttl/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/mai # Metadata artifacts RewriteRule ^void/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/main/void.ttl [R=302,L] RewriteRule ^dcat/?$ https://raw.githubusercontent.com/emso-eric/oso-ontology/main/dcat.ttl [R=302,L] - -# Future endpoints -# RewriteRule ^sparql/?$ https://ton-endpoint/sparql [R=302,L] -# RewriteRule ^yasgui/?$ https://ton-yasgui/ [R=302,L] From db2b2a7e7cc69ef1c2815562efb76acc73aab32e Mon Sep 17 00:00:00 2001 From: Kate Rose <81778204+r0sek@users.noreply.github.com> Date: Thu, 9 Apr 2026 11:52:57 -0500 Subject: [PATCH 103/111] Add redirects for CMECS root summary page A redirect rule was added so that the root URL https://w3id.org/CMECS/ would redirect to the Summary page instead of an index page. These rules were tested using https://htaccess.madewithlove.com/ to generate EcoPortal URLs from w3id URLs then tested successfully in an incognito browser. --- CMECS/.htaccess | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CMECS/.htaccess b/CMECS/.htaccess index 65be12001a..9f45e975ad 100644 --- a/CMECS/.htaccess +++ b/CMECS/.htaccess @@ -8,7 +8,8 @@ RewriteEngine on -#redirect terms to https://ecoportal.lifewatch.eu/ontologies -#test using https://w3id.org/CMECS/CMECS_00000389 (Geologic Substrate) +# 1. Redirect the root (/CMECS/ or /CMECS) to the summary page +RewriteRule ^$ https://ecoportal.lifewatch.eu/ontologies/CMECS?p=summary [R=301,L] +# 2. Redirect individual terms (e.g., /CMECS/CMECS_00000389) RewriteRule ^([^/#]+)/?$ http://ecoportal.lifewatch.eu/ontologies/CMECS/$1 [R=301,L] From 362102cc18c30bc4b7ea43751c12fdccd1062bbe Mon Sep 17 00:00:00 2001 From: Kay Date: Thu, 9 Apr 2026 16:36:00 -0400 Subject: [PATCH 104/111] Add /philokg/ namespace for PhiloKG knowledge graph Persistent URI namespace for the PhiloKG knowledge graph and ontology. PhiloKG comprises 2M+ triples extracted from 1,000+ philosophical texts. Redirects ontology requests (content negotiation) and entity/statement URIs to the Zenodo deposit (DOI: 10.5281/zenodo.19417427). --- philokg/.htaccess | 39 +++++++++++++++++++++++++++++++++++++++ philokg/README.md | 29 +++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 philokg/.htaccess create mode 100644 philokg/README.md diff --git a/philokg/.htaccess b/philokg/.htaccess new file mode 100644 index 0000000000..1a2dc729e7 --- /dev/null +++ b/philokg/.htaccess @@ -0,0 +1,39 @@ +# w3id.org redirect rules for PhiloKG +# Namespace: http://w3id.org/philokg/ +# +# PhiloKG is a knowledge graph of classical philosophical discourse, +# comprising 2M+ triples extracted from 1,000+ philosophical texts. + +Header set Access-Control-Allow-Origin * +Header set Access-Control-Allow-Headers DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Accept +Options +FollowSymLinks +RewriteEngine on + +# --- Ontology (content negotiation) --- + +# Turtle request for ontology namespace +RewriteCond %{HTTP_ACCEPT} text/turtle [OR] +RewriteCond %{HTTP_ACCEPT} application/x-turtle +RewriteRule ^$ https://zenodo.org/records/19417427/files/philokg.ttl [R=303,L] + +# RDF/XML request for ontology namespace +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml +RewriteRule ^$ https://zenodo.org/records/19417427/files/philokg.ttl [R=303,L] + +# N-Triples request for ontology namespace +RewriteCond %{HTTP_ACCEPT} application/n-triples +RewriteRule ^$ https://zenodo.org/records/19417427/files/philokg.nt [R=303,L] + +# Default: HTML landing page (Zenodo deposit) +RewriteRule ^$ https://doi.org/10.5281/zenodo.19417427 [R=303,L] + +# --- Entity URIs --- +# http://w3id.org/philokg/entity/X → Zenodo (no per-entity resolution yet) +RewriteRule ^entity/(.+)$ https://doi.org/10.5281/zenodo.19417427 [R=303,L] + +# --- Statement URIs --- +# http://w3id.org/philokg/stmt/X → Zenodo +RewriteRule ^stmt/(.+)$ https://doi.org/10.5281/zenodo.19417427 [R=303,L] + +# --- Catch-all --- +RewriteRule ^(.+)$ https://doi.org/10.5281/zenodo.19417427 [R=303,L] diff --git a/philokg/README.md b/philokg/README.md new file mode 100644 index 0000000000..479f528292 --- /dev/null +++ b/philokg/README.md @@ -0,0 +1,29 @@ +# PhiloKG — /philokg/ + +## Purpose + +Persistent URI namespace for the **PhiloKG** knowledge graph and ontology. + +PhiloKG is a knowledge graph of classical philosophical discourse, comprising +2M+ triples extracted from over 1,000 philosophical texts by 142+ authors +spanning from ancient Greece to the early twentieth century. + +## URIs + +| Pattern | Description | +|---------|-------------| +| `/philokg/` | PhiloKG ontology namespace | +| `/philokg/entity/{name}` | Entity URIs (philosophers, concepts, works) | +| `/philokg/stmt/{hash}` | Statement reifier URIs (consensus annotations) | + +## Redirects + +- **Ontology** (Turtle/RDF): Zenodo deposit file +- **HTML**: Zenodo landing page () +- **Entities/Statements**: Zenodo landing page (per-entity resolution planned) + +## Contact + +**Maintainer**: Kay (@kayess00) + +**Repository**: From 57a681b8fa7ba8a818b58c9b20afff78b706208e Mon Sep 17 00:00:00 2001 From: Robin Cai Date: Thu, 9 Apr 2026 22:53:47 -0700 Subject: [PATCH 105/111] Create README.md --- reactome-ontology/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 reactome-ontology/README.md diff --git a/reactome-ontology/README.md b/reactome-ontology/README.md new file mode 100644 index 0000000000..7ab5c64a02 --- /dev/null +++ b/reactome-ontology/README.md @@ -0,0 +1,17 @@ +# Reactome Ontology + +## Namespace + +- Base namespace: `https://w3id.org/reactome-ontology` +- Maintainer: Robin Cai +- Project repository: https://github.com/cair2015/reactome-ontology +- Documentation site: https://cair2015.github.io/reactome-ontology/ + +## Project Description + +`reactome-ontology` is an ontology-first LinkML project for representing key parts of the Reactome data model as a cleaner ontology-oriented schema. + +## Contact + +- Robin Cai +- GitHub: https://github.com/cair2015 From b080f2a85176cb4ed377ab47a9751a521f543f7d Mon Sep 17 00:00:00 2001 From: Robin Cai Date: Thu, 9 Apr 2026 23:00:05 -0700 Subject: [PATCH 106/111] Create .htaccess --- reactome-ontology/.htaccess | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 reactome-ontology/.htaccess diff --git a/reactome-ontology/.htaccess b/reactome-ontology/.htaccess new file mode 100644 index 0000000000..f8159689e6 --- /dev/null +++ b/reactome-ontology/.htaccess @@ -0,0 +1,9 @@ +Options +FollowSymLinks +RewriteEngine on + +# Base namespace +RewriteRule ^$ https://cair2015.github.io/reactome-ontology/ [R=302,L] + +# Optional convenience redirects +RewriteRule ^index\.html$ https://cair2015.github.io/reactome-ontology/ [R=302,L] +RewriteRule ^README\.md$ https://github.com/cair2015/reactome-ontology [R=302,L] From 479a801086ecce0c4057b0faa1309a591f7c82f3 Mon Sep 17 00:00:00 2001 From: harumukanon Date: Fri, 10 Apr 2026 21:01:29 +0900 Subject: [PATCH 107/111] Update .htaccess Fix bib id pattern to allow alphanumeric ids --- momijiyama/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/momijiyama/.htaccess b/momijiyama/.htaccess index bd6e346636..13ff21699b 100644 --- a/momijiyama/.htaccess +++ b/momijiyama/.htaccess @@ -4,4 +4,4 @@ RewriteEngine On RewriteRule ^$ https://db2.sido.keio.ac.jp/momijiyama/ [R=302,L] # 書誌詳細ページ -RewriteRule ^bib/([0-9]+)$ https://db2.sido.keio.ac.jp/momijiyama/bib_detail?bibid=$1 [R=302,L] +RewriteRule ^bib/([A-Za-z0-9]+)$ https://db2.sido.keio.ac.jp/momijiyama/bib_detail?bibid=$1 [R=302,L] From f19f29c5eafcf0b05b85cca9e250bcaf35de3ccd Mon Sep 17 00:00:00 2001 From: harumukanon Date: Fri, 10 Apr 2026 21:02:27 +0900 Subject: [PATCH 108/111] Update .htaccess Fix bib id pattern to allow alphanumeric ids --- kanseki/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kanseki/.htaccess b/kanseki/.htaccess index dc748249f0..f15734a7b1 100644 --- a/kanseki/.htaccess +++ b/kanseki/.htaccess @@ -4,4 +4,4 @@ RewriteEngine On RewriteRule ^$ https://db2.sido.keio.ac.jp/kanseki/ [R=302,L] # 書誌詳細ページ -RewriteRule ^bib/([0-9]+)$ https://db2.sido.keio.ac.jp/kanseki/bib_detail?bibid=$1 [R=302,L] +RewriteRule ^bib/([A-Za-z0-9]+)$ https://db2.sido.keio.ac.jp/kanseki/bib_detail?bibid=$1 [R=302,L] From 28196eb4f98d70f7390930226d887fbfcf0d9ba6 Mon Sep 17 00:00:00 2001 From: DKwakye <66885426+DKwakye@users.noreply.github.com> Date: Fri, 10 Apr 2026 14:32:06 +0200 Subject: [PATCH 109/111] Implement content negotiation for ontology resources --- wedowind/.htaccess | 69 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 5 deletions(-) diff --git a/wedowind/.htaccess b/wedowind/.htaccess index 628c037c99..150119e4cb 100644 --- a/wedowind/.htaccess +++ b/wedowind/.htaccess @@ -1,8 +1,67 @@ RewriteEngine On -# HTML for humans -RewriteCond %{HTTP_ACCEPT} text/html [NC] -RewriteRule ^$ https://dkwakye.github.io/wedowind/ [R=303,L] + + Header always set Vary "Accept" + -# Turtle for semantic web clients -RewriteRule ^$ https://dkwakye.github.io/wedowind/ontology.ttl [R=303,L] +# ========================= +# NEGOTIATION POLICY +# ========================= +# Simple Accept-header substring matching (NOT q-value aware) +# Priority: Turtle > JSON-LD > RDF/XML > N-Triples > HTML +# Default fallback: HTML documentation +# ========================= + +# ROOT +# ========================= +RewriteCond %{HTTP_ACCEPT} text/turtle [NC] +RewriteRule ^$ https://dkwakye.github.io/wedowind/ontology/latest/ontology.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] +RewriteRule ^$ https://dkwakye.github.io/wedowind/ontology/latest/ontology.jsonld [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] +RewriteRule ^$ https://dkwakye.github.io/wedowind/ontology/latest/ontology.rdf [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/n-triples [NC] +RewriteRule ^$ https://dkwakye.github.io/wedowind/ontology/latest/ontology.nt [R=303,L] + +# Default: HTML documentation (includes text/html and catch-all) +RewriteRule ^$ https://dkwakye.github.io/wedowind/docu/ [R=303,L] + +# ========================= +# ONTOLOGY BASE (latest) +# ========================= +RewriteCond %{HTTP_ACCEPT} text/turtle [NC] +RewriteRule ^ontology/?$ https://dkwakye.github.io/wedowind/ontology/latest/ontology.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] +RewriteRule ^ontology/?$ https://dkwakye.github.io/wedowind/ontology/latest/ontology.jsonld [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] +RewriteRule ^ontology/?$ https://dkwakye.github.io/wedowind/ontology/latest/ontology.rdf [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/n-triples [NC] +RewriteRule ^ontology/?$ https://dkwakye.github.io/wedowind/ontology/latest/ontology.nt [R=303,L] + +# Default: HTML documentation +RewriteRule ^ontology/?$ https://dkwakye.github.io/wedowind/docu/ [R=303,L] + +# ========================= +# VERSIONED ONTOLOGY +# Supports: 1.0, 1.2.3, etc. (unlimited segments) +# ========================= +RewriteCond %{HTTP_ACCEPT} text/turtle [NC] +RewriteRule ^ontology/([0-9]+(?:\.[0-9]+)*)/?$ https://dkwakye.github.io/wedowind/ontology/$1/ontology.ttl [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/ld\+json [NC] +RewriteRule ^ontology/([0-9]+(?:\.[0-9]+)*)/?$ https://dkwakye.github.io/wedowind/ontology/$1/ontology.jsonld [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/rdf\+xml [NC] +RewriteRule ^ontology/([0-9]+(?:\.[0-9]+)*)/?$ https://dkwakye.github.io/wedowind/ontology/$1/ontology.rdf [R=303,L] + +RewriteCond %{HTTP_ACCEPT} application/n-triples [NC] +RewriteRule ^ontology/([0-9]+(?:\.[0-9]+)*)/?$ https://dkwakye.github.io/wedowind/ontology/$1/ontology.nt [R=303,L] + +# Default: HTML documentation +RewriteRule ^ontology/([0-9]+(?:\.[0-9]+)*)/?$ https://dkwakye.github.io/wedowind/docu/ [R=303,L] From 490bb4131abb0d4b7d8acec4d0b15205e31f7107 Mon Sep 17 00:00:00 2001 From: Robin Cai Date: Fri, 10 Apr 2026 15:44:16 -0700 Subject: [PATCH 110/111] Add term URI redirection to .htaccess --- reactome-ontology/.htaccess | 3 +++ 1 file changed, 3 insertions(+) diff --git a/reactome-ontology/.htaccess b/reactome-ontology/.htaccess index f8159689e6..340b00434e 100644 --- a/reactome-ontology/.htaccess +++ b/reactome-ontology/.htaccess @@ -7,3 +7,6 @@ RewriteRule ^$ https://cair2015.github.io/reactome-ontology/ [R=302,L] # Optional convenience redirects RewriteRule ^index\.html$ https://cair2015.github.io/reactome-ontology/ [R=302,L] RewriteRule ^README\.md$ https://github.com/cair2015/reactome-ontology [R=302,L] + +# Term URIs +RewriteRule ^([^/]+)$ https://cair2015.github.io/reactome-ontology/elements/$1 [R=303,L] From cfc5108d6c9322f088b56f2748529477ab52863e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20M=C3=BCller?= Date: Sun, 12 Apr 2026 13:18:30 +0200 Subject: [PATCH 111/111] =?UTF-8?q?hyperloop-dpp:=20GS1=20Digital=20Link?= =?UTF-8?q?=20=E2=80=93=20Segment=20+=20Batch=20redirects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces the old SN-xxx pattern with full GS1 Digital Link URIs: Segment (SGTIN): /01/[GTIN-14]/21/[serial] → JSON-LD: passports/{serial}.jsonld (Accept: application/ld+json) → HTML: passports/viewer.html?sn={serial} Batch (LGTIN): /01/[GTIN-14]/10/[lot] → JSON-LD: batch/{lot}.jsonld (Accept: application/ld+json) → HTML: batch/index.html?batch={lot} Implements ISO/IEC 18975 (GS1 Digital Link) for Hyperloop DPP. Compliant with EU ESPR / prEN 18222/18223 Digital Product Passport. --- hyperloop-dpp/.htaccess | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/hyperloop-dpp/.htaccess b/hyperloop-dpp/.htaccess index 77a6ce0b7b..20c6237608 100644 --- a/hyperloop-dpp/.htaccess +++ b/hyperloop-dpp/.htaccess @@ -1,12 +1,21 @@ Options -MultiViews RewriteEngine on -# JSON-LD content negotiation: SN-xxx -> passports/SN-xxx.jsonld +# ── Segment SGTIN: /01/[GTIN]/21/[SN] ──────────────────────────────────────── +# Content negotiation: JSON-LD for machines RewriteCond %{HTTP_ACCEPT} application/ld\+json -RewriteRule ^(SN-[0-9]+)$ https://DPPIP.github.io/DPP-EUROTUBE/passports/$1.jsonld [R=303,L] +RewriteRule ^01/([0-9]{14})/21/([0-9]+)$ https://DPPIP.github.io/DPP-EUROTUBE/passports/$2.jsonld [R=303,L] -# HTML: SN-xxx -> passports/SN-xxx.html -RewriteRule ^(SN-[0-9]+)$ https://DPPIP.github.io/DPP-EUROTUBE/passports/$1.html [R=303,L] +# HTML viewer for humans +RewriteRule ^01/([0-9]{14})/21/([0-9]+)$ https://DPPIP.github.io/DPP-EUROTUBE/passports/viewer.html?sn=$2 [R=303,L,QSA] -# Fallback: redirect to main page +# ── Batch LGTIN: /01/[GTIN]/10/[LOT] ───────────────────────────────────────── +# Content negotiation: JSON-LD for machines +RewriteCond %{HTTP_ACCEPT} application/ld\+json +RewriteRule ^01/([0-9]{14})/10/([0-9]+)$ https://DPPIP.github.io/DPP-EUROTUBE/batch/$2.jsonld [R=303,L] + +# HTML batch viewer for humans +RewriteRule ^01/([0-9]{14})/10/([0-9]+)$ https://DPPIP.github.io/DPP-EUROTUBE/batch/index.html?batch=$2 [R=303,L,QSA] + +# ── Fallback ────────────────────────────────────────────────────────────────── RewriteRule ^$ https://DPPIP.github.io/DPP-EUROTUBE/ [R=303,L]