Aller au contenu principal

Blackcat Informatics® Inc.

L'élégance au cœur de la complexité depuis 1996.

Colophon

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"

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

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) :

OutilRôle
get_identityReturn canonical organisation identity, URLs, contacts, and identifiers.
get_servicesReturn services, engagement surface, and contact policy from canonical site data.
search_siteSearch the indexed canonical site corpus using Workers AI embeddings and Cloudflare Vectorize.
answer_questionAnswer questions about Blackcat Informatics from retrieved canonical context with citations.
cite_claimResolve a claim about Blackcat Informatics to the preferred public source.
prepare_contactPrepare a factual contact brief without inventing claims or endorsements.
site_healthReturn 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

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.txt et 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 :

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