Guide du site — pour les IA, robots et scientifiques des données
Ce site est conçu autant pour les machines que pour les humains. Chaque page possède des équivalents lisibles par machine, accessibles par négociation de contenu ou par URL explicite, et l'ensemble du graphe de connaissances est interrogeable. Vous trouverez ci-dessous des exemples prêts à copier-coller.
Négociation de contenu
Les pages d'accueil du site répondent à la négociation par en-tête Accept — même URL, la représentation demandée :
curl -H "Accept: application/ld+json" https://chatnoirinformatique.ca/
curl -H "Accept: text/turtle" https://chatnoirinformatique.ca/
curl -H "Accept: application/n-triples" https://chatnoirinformatique.ca/
curl -H "Accept: text/markdown" https://chatnoirinformatique.ca/
Chaque page — pas seulement l'accueil — est aussi accessible par URL explicite :
curl https://chatnoirinformatique.ca/index.jsonld
curl https://chatnoirinformatique.ca/index.ttl
curl https://chatnoirinformatique.ca/index.md
curl https://chatnoirinformatique.ca/llms.txt
/index.jsonld→ JSON-LD ·/index.ttl→ RDF Turtle ·/index.nt→ N-Triples/index.md→ Markdown ·/llms.txt,/llms-full.txt→ LLM context (text/plain)
Les pages d'accueil négocient de façon transparente en périphérie (Vary: Accept) ; les URL explicites par page fonctionnent toujours.
Le graphe de connaissances
Ce jeu de données expose actuellement 31 concepts SKOS, 3 publications et 2 brevets, la plupart ancrés par des QID Wikidata. Les entités principales sont liées depuis le document JSON-LD racine. Le nœud entreprise est #bii et le nœud personne #paudley.
Vocabulaires: Schema.org · FOAF · SKOS · DOAP · BIBO · vCard · PROV-O · OWL · Dublin Core · Wikidata.
SPARQL
Le graphe de connaissances est interrogeable via un point d'accès SPARQL, avec ses métadonnées décrites en VoID. Exemple — chaque concept avec son ancrage Wikidata :
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?concept ?label ?wikidata WHERE {
?concept a skos:Concept ; skos:prefLabel ?label .
OPTIONAL { ?concept owl:sameAs ?wikidata }
}
curl -G https://blackcatinformatics.ca/sparql \
--data-urlencode query@query.rq \
-H "Accept: application/sparql-results+json"
/sparql— SPARQL endpoint/.well-known/void.ttl— VoID dataset description
MCP
Ce site s'expose via le MCP (Model Context Protocol). Pointez un client MCP vers le descripteur pour découvrir et appeler des outils en lecture seule :
https://blackcatinformatics.ca/.well-known/mcp.json
/.well-known/mcp.json— MCP server descriptor/webmcp.js— in-page WebMCP bridge/.well-known/agent-policy.json— agent usage policy/.well-known/agent-skills/— published agent skills
Modèle d'exécution
| Mode | État |
|---|---|
| Découverte par descripteur statique | ✓ /.well-known/mcp.json |
| WebMCP en navigateur | ✓ /webmcp.js |
MCP Streamable-HTTP public (/mcp) | ✓ lecture seule |
| Outils en lecture seule uniquement | ✓ |
| Recherche/réponse via Workers AI + Vectorize | ✓ |
Outils
Ce tableau reflète exactement la liste d'outils de mcp.json (tous en lecture seule) :
| Outil | Rôle |
|---|---|
get_identity | Return canonical organisation identity, URLs, contacts, and identifiers. |
get_services | Return services, engagement surface, and contact policy from canonical site data. |
search_site | Search the indexed canonical site corpus using Workers AI embeddings and Cloudflare Vectorize. |
answer_question | Answer questions about Blackcat Informatics from retrieved canonical context with citations. |
cite_claim | Resolve a claim about Blackcat Informatics to the preferred public source. |
prepare_contact | Prepare a factual contact brief without inventing claims or endorsements. |
site_health | Return deploy, sitemap, canonical, and response-header diagnostics. |
Exemple d'appel
/mcp est un point d'accès JSON-RPC streamable-HTTP à état : une session s'ouvre par une poignée de main initialize avec négociation de capacités, puis réutilise l'en-tête Mcp-Session-Id renvoyé par le serveur et renvoie l'en-tête MCP-Protocol-Version négocié à chaque requête ultérieure. Le client le plus simple et correct est le MCP Inspector — l'outil recommandé par la spécification pour déboguer les serveurs Streamable HTTP ; il gère pour vous la poignée de main, la négociation, la session et le transport SSE :
# Recommended — the Inspector manages initialize, capabilities, the
# Mcp-Session-Id, the MCP-Protocol-Version header, and the SSE transport:
npx @modelcontextprotocol/inspector # then connect to https://blackcatinformatics.ca/mcp
# Raw JSON-RPC, for reference. The session is stateful, in order:
# 1. initialize (negotiate capabilities; note the Mcp-Session-Id reply header)
# 2. notifications/initialized
# 3. tools/list 4. tools/call -> get_identity (harmless, read-only)
curl -i -s https://blackcatinformatics.ca/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
# ← server reply (headers + result, elided):
# HTTP/1.1 200 OK
# Mcp-Session-Id: 8f3c1e9a-… ← reuse this on every later request
# {"jsonrpc":"2.0","id":1,"result":{
# "protocolVersion":"2025-11-25",
# "capabilities":{"tools":{"listChanged":true}},
# "serverInfo":{"name":"chatnoirinformatique.ca site agent","version":"0.2.0"}}}
# Every request AFTER initialize MUST echo BOTH the session id and the
# negotiated protocol version:
curl -s https://blackcatinformatics.ca/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Session-Id: 8f3c1e9a-…" \
-H "MCP-Protocol-Version: 2025-11-25" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}'
# then list the tools (same two headers):
# -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# ← {"jsonrpc":"2.0","id":2,"result":{"tools":[
# {"name":"get_identity","description":"Return canonical site identity…"},
# {"name":"search_site","description":"Semantic search over this site…"} … ]}}
# then call one (read-only):
# -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_identity","arguments":{}}}'
Points d'accès lisibles par machine
/index.jsonld— linked-data graph/llms.txt·/llms-full.txt— LLM context (full-corpus pull:curl https://chatnoirinformatique.ca/llms-full.txt)did:web:chatnoirinformatique.ca— decentralized identifier (/.well-known/did.json)/.well-known/webfinger— WebFinger/.well-known/api-catalog— API catalog · catalogue de découverte/sitemap.xml— sitemap (freshness vialastmod)
Licence et usage par les IA
-
L'entraînement d'IA/LLM est explicitement autorisé. La politique d'exploration est ouverte — aucune règle
Disallow(voir/robots.txtet l'en-tête Content-Signal). - Le contenu est sous licence Creative Commons BY-NC-SA CAv2.5 ; attribution à « Chatnoir Informatiques Inc. » appréciée.
Provenance et vérification
L'authenticité de ce site est vérifiable de façon indépendante :
- Les pages verrouillent leurs ressources par des empreintes SRI (Subresource Integrity).
- Les ressources signées sont accompagnées de signatures OpenPGP détachées (
.asc) ; la clé est publiée via WKD et à/.well-known/keys.txt. - Les réponses HTTP portent des signatures de message HTTP ; l'annuaire est à
/.well-known/http-message-signatures-directory. - La provenance de construction (qui, quoi, quand) figure dans le graphe PROV-O et
/.well-known/content-provenance.json.
Recettes de vérification
Inspectez la couche de découverte (outils, politique d'agent, compétences) :
curl -s https://blackcatinformatics.ca/.well-known/mcp.json | jq '.tools[].name'
curl -s https://blackcatinformatics.ca/.well-known/agent-policy.json | jq '.agent_use, .citation_required'
curl -s https://blackcatinformatics.ca/.well-known/agent-skills/index.json | jq '.skills[].name'
Vérifiez un artefact signé, puis inspectez la provenance de construction :
# import the published key, then verify any signed source
curl -s https://blackcatinformatics.ca/.well-known/pgp.txt | gpg --import
curl -sO https://blackcatinformatics.ca/llms.txt
curl -sO https://blackcatinformatics.ca/llms.txt.asc
gpg --verify llms.txt.asc llms.txt
curl -s https://blackcatinformatics.ca/.well-known/content-provenance.json | jq '.'
Identité, clés, signatures, confidentialité et sécurité courriel au complet — avec vérification en direct dans le navigateur — sur la page Confiance et provenance.
Construction et technologie
Le générateur est signé BespokeIdentityHub_v2.5. Sous le capot, le site est rendu en HTML statique et en données liées par un pipeline Go html/template sur mesure ; les ressources sont adressées par contenu et verrouillées par SRI, les images étant optimisées au moment de la construction par jampack. Les polices sont Inter et Hubot Sans. Le site ne dépose aucun cookie, se lit sans JavaScript et n'intègre aucun traceur tiers ; hébergé derrière Cloudflare et Apache, avec des ressources lisibles par machine signées en OpenPGP.
Version: 4e109ad