GMEOW Trust Module

What This Slice Covers

This slice owns 34 terms and contributes 12 mapping or projection rows. Use it when its terms match the native fact you want to preserve; use the linkage tables to see how those facts leave GMEOW for consumer vocabularies.

Dependencies

Consumers

Local Map

trust map

Examples

Web Of Trust

# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
# SPDX-License-Identifier: CC-BY-4.0
#
# Worked example: the PGP web of trust. Trust is decentralized and
# relational: agents gmeow:holdsKey cryptographic keys; one agent's
# gmeow:Certification signs another's key (a key-signing, binding key↔identity);
# and a gmeow:TrustAssertion records how much a trustor trusts a trustee AS AN
# INTRODUCER (gmeow:trustLevel + gmeow:introducerDepth — how far transitive trust
# may flow). gmeow:endorses is the lightweight, keyless vouch. No central
# authority: trust is asserted pairwise and composed.
@prefix gmeow: <https://blackcatinformatics.ca/gmeow/> .
@prefix ex:    <https://blackcatinformatics.ca/gmeow/examples/trust/> .

ex:alice a gmeow:Person ;
    gmeow:name     "Alice"@en ;
    gmeow:holdsKey ex:aliceKey ;
    gmeow:endorses ex:bob .

ex:bob a gmeow:Person ;
    gmeow:name     "Bob"@en ;
    gmeow:holdsKey ex:bobKey .

ex:aliceKey a gmeow:CryptographicKey ;
    gmeow:keyScheme    gmeow:keySchemePGP ;
    gmeow:keyAlgorithm "ed25519" ;
    gmeow:fingerprint  "ABCD 1234 EF56 7890 ABCD 1234 EF56 7890 ABCD 1234" ;
    gmeow:keyId        "0xEF567890" .

ex:bobKey a gmeow:CryptographicKey ;
    gmeow:keyScheme   gmeow:keySchemePGP ;
    gmeow:fingerprint "EF01 5678 ABCD 1234 EF01 5678 ABCD 1234 EF01 5678" .

# --- Alice signs Bob's key, certifying the key↔identity binding.
ex:cert a gmeow:Certification ;
    gmeow:certifier         ex:alice ;
    gmeow:certifiedKey      ex:bobKey ;
    gmeow:certifiedIdentity ex:bob ;
    gmeow:certificationLevel "positive" .

# --- Alice trusts Bob as a level-1 introducer (his certifications count for her).
ex:trust a gmeow:TrustAssertion ;
    gmeow:trustor         ex:alice ;
    gmeow:trustee         ex:bob ;
    gmeow:trustLevel      "full" ;
    gmeow:introducerDepth 1 .

Terms

Classes

Term Label Definition
gmeow:Certification Certification A reified attestation that a cryptographic key belongs to a given identity, made by a certifying agent (a PGP key-signature / Web-of-Trust certification). Its...
gmeow:CryptographicKey Cryptographic Key A public key, certificate, or key material bound to an agent's identity — the thing a signature is made with and a certification vouches for.
gmeow:CryptographicSignature Cryptographic Signature A cryptographic signature over a message or its headers, asserting origin and integrity.
gmeow:KeyScheme Key Scheme The cryptographic scheme/format of a key (OpenPGP, X.509, SSH, Nostr, …). Modelled as a value, not a key subclass: the set of schemes is open-ended and they ca...
gmeow:PGPSignature PGP Signature An OpenPGP signature (RFC 4880/9580, PGP-MIME RFC 3156) over a message, bound to a PGP key.
gmeow:SMIMESignature S/MIME Signature An S/MIME signature (RFC 8551) over a message, bound to an X.509 certificate.
gmeow:TrustAssertion Trust Assertion A reified, perspectival assertion that one agent (the trustor) trusts another (the trustee), optionally as an introducer to a given depth — the OpenPGP owner-t...

Properties

Term Label Definition
gmeow:accountKey account key Relates an online account to the cryptographic key that identifies it — the seam joining a decentralized-identity account (e.g. a Nostr account's nostrPubkey l...
gmeow:certificationLevel certification level How carefully the binding was verified (OpenPGP certification level): generic, persona, casual, or positive.
gmeow:certifiedIdentity certified identity The agent identity a certification binds the key to.
gmeow:certifiedKey certified key The cryptographic key a certification vouches for.
gmeow:certifier certifier The agent that made a certification.
gmeow:endorses endorses A convenience shortcut recording that one agent vouches for another. Deliberately NOT symmetric (endorsement is directional) and NOT transitive (trust must not...
gmeow:fingerprint fingerprint A fingerprint (hash) identifying a key. Not functional: different sources may report differing or differently-formatted fingerprints for the same key.
gmeow:holdsKey holds key Relates an agent to a cryptographic key it holds. The period over which the agent held the key may be carried with gmeow:validFrom/validUntil on this statement.
gmeow:introducerAmount introducer amount The trust-signature amount/weight the trustor assigns to the trustee as an introducer.
gmeow:introducerDepth introducer depth The trust-signature depth: how many levels of indirect introducers the trustor is willing to follow (a trust-signature notion, not computed here).
gmeow:keyAlgorithm key algorithm The key's algorithm (e.g. rsa, ed25519, secp256k1). Not functional (source-variable).
gmeow:keyExpiresAt key expires at The instant a key is set to expire. Not functional (sources may report different expiry, and subkeys differ).
gmeow:keyId key id A short identifier for a key (e.g. a PGP long key id). Not functional (source-variable).
gmeow:keyMaterial key material The public key material itself (armored or hex form). Not functional (encodings vary by source).
gmeow:keyScheme key scheme The scheme/format of a cryptographic key (one of the gmeow:KeyScheme individuals). Functional: a key has exactly one scheme — a key of a different scheme is a...
gmeow:signatureAlgorithm signature algorithm The algorithm used for a signature (e.g. rsa-sha256, ed25519).
gmeow:signedBy signed by The agent (or signing identity) that produced a signature.
gmeow:signingDomain signing domain The domain asserted by a signature (e.g. the DKIM d= tag).
gmeow:signingKey signing key The cryptographic key that produced a signature (the trust module's CryptographicKey). Complements gmeow:signedBy: signedBy gives the identity, signingKey give...
gmeow:trustLevel trust level The degree of owner-trust expressed: ultimate, full, marginal, or none.
gmeow:trustee trustee The agent that is trusted by the trustor in a trust-assertion.
gmeow:trustor trustor The agent whose (subjective) trust a trust-assertion expresses — the perspective holder.
gmeow:verificationStatus verification status The verification outcome of a signature: verified, failed, or unverified.

Individuals

Term Label Definition
gmeow:keySchemeNostr Nostr The nostr key scheme — a cryptographic key format used to identify an agent or sign messages.
gmeow:keySchemePGP OpenPGP The pgp key scheme — a cryptographic key format used to identify an agent or sign messages.
gmeow:keySchemeSSH SSH The ssh key scheme — a cryptographic key format used to identify an agent or sign messages.
gmeow:keySchemeX509 X.509 The x.509 key scheme — a cryptographic key format used to identify an agent or sign messages.

Linkages

Source Kind Profile Predicate/Relation Target Evidence
gmeow:Certification equivalence - skos:closeMatch wd:Q747527 gmeow-wikidata.sssom.tsv; gmeow:eqWikidata048; confidence 0.8
gmeow:Certification equivalence - skos:closeMatch wot:Endorsement gmeow-trust.sssom.tsv; gmeow:eqTrust005; confidence 0.8
gmeow:CryptographicKey equivalence - skos:closeMatch wd:Q826762 gmeow-wikidata.sssom.tsv; gmeow:eqWikidata047; confidence 0.85
gmeow:CryptographicKey equivalence - skos:closeMatch wot:PubKey gmeow-trust.sssom.tsv; gmeow:eqTrust001; confidence 0.9
gmeow:certificationLevel equivalence - skos:closeMatch wot:assurance gmeow-trust.sssom.tsv; gmeow:eqTrust007; confidence 0.7
gmeow:certifier equivalence - skos:closeMatch wot:signer gmeow-trust.sssom.tsv; gmeow:eqTrust006; confidence 0.8
gmeow:fingerprint equivalence - skos:closeMatch wot:fingerprint gmeow-trust.sssom.tsv; gmeow:eqTrust002; confidence 0.95
gmeow:holdsKey equivalence - skos:closeMatch wot:hasKey gmeow-trust.sssom.tsv; gmeow:eqTrust004; confidence 0.9
gmeow:keyId equivalence - skos:closeMatch wot:hex_id gmeow-trust.sssom.tsv; gmeow:eqTrust003; confidence 0.9
gmeow:CryptographicSignature projection intoto projects to / <= https://in-toto.io/Statement/v1#signature gmeow:mapInTotoSignature; confidence 0.6; lossy: signature bytes, algorithm, signed-by identity
gmeow:keyId projection intoto projects to / <= https://in-toto.io/Statement/v1#signature gmeow:mapInTotoSignature; confidence 0.6; lossy: signature bytes, algorithm, signed-by identity
gmeow:signingKey projection intoto projects to / <= https://in-toto.io/Statement/v1#signature gmeow:mapInTotoSignature; confidence 0.6; lossy: signature bytes, algorithm, signed-by identity

Guide

Trust — keys, certifications, and perspectival owner-trust

Slice: https://blackcatinformatics.ca/gmeow/slices/trust · tier: core The Web-of-Trust superset layer: who holds which key, who vouches for the binding, and who trusts whom — never computed, only recorded.

This is the cross-cutting trust facility — cryptographic keys, certifications (key↔identity attestations), and owner-trust — the superset of OpenPGP (RFC 4880/9580), X.509, SSH, and Nostr, aligned to the WOT schema by reference (Principle 5). Its governing refusal: trust here is asserted and perspectival; trust metrics (transitive validity propagation) stay outside the logical core (Principle 12). There is no global trusts property, endorses is neither symmetric nor transitive, and no property chain ever makes A trust C because A trusts B and B trusts C — bounding exactly that is what trust-signature depth is for.

The slice exercises the standpoint doctrine standpoint doctrine that governs every contested-fact slice: accordingTo (whose frame holds it) ⟂ wasAttributedTo (which source recorded it) ⟂ confidence (how sure we are) — three axes that never bridge (Principle 9). A TrustAssertion is already perspectival (its trustor is the frame holder), but the underlying Certification can also be disputed across standpoints — one holds the binding unequivocal, another refutes it — through the cross-cutting standpoint facility alone: no trust-specific dispute mechanism, no primaryCertification, no preferredTrust. For the claim spine (Principle 14), this slice is the attestation floor: the keys and signatures that make a GTS memory package signed, append-only, and model-attested are first-class individuals here.

Keys

gmeow:CryptographicKey

A public key, certificate, or key material bound to an agent's identity — the thing a signature is made with and a certification vouches for. An InformationObject. Carries source-variable descriptors (fingerprint, keyId, keyAlgorithm, keyMaterial, keyExpiresAt) — none functional, because different sources legitimately report differing formats and values, and those reports coexist (Principle 9).

gmeow:KeyScheme

The scheme/format of a key — keySchemePGP, keySchemeX509, keySchemeSSH, keySchemeNostr — a value vocabulary, never key subclasses: schemes are open-ended and carry no distinct structure here, so a new scheme is a new individual (the standard open-vocabulary move). gmeow:keyScheme is functional: a key of a different scheme is a different key.

gmeow:holdsKey · gmeow:accountKey

The two possession seams: an Agent holds a key (tenure carried flat with validFrom/validUntil on the statement — the flat-first pattern); an OnlineAccount is identified by a key (accountKey joins a decentralized-identity account, e.g. a Nostr pubkey literal, to the key as a first-class entity).

Certification — the WoT edge

gmeow:Certification

A reified gufo:Relator: agent X attests that key K belongs to identity Y — the PGP key-signature. EL-axiomatised to mediate a certifier, a certifiedKey, and a certifiedIdentity (all functional; closed-world cardinality is SHACL's, Principle 7). Certifications expire and are revoked, so the validity window rides on validFrom/validUntil — revocation sets validUntil, it never deletes (Principle 10).

gmeow:certificationLevel

How carefully the binding was verified — the OpenPGP ladder: generic, persona, casual, positive. Recorded verbatim as input to downstream validity computation, never interpreted by the reasoner.

Owner-trust — perspectival by construction

gmeow:TrustAssertion

The OpenPGP owner-trust notion, reified with an explicit trustor so one agent's subjective trust never becomes a global fact: trustor, trustee, trustLevel (ultimate / full / marginal / none), and a validFrom/validUntil window. The relator is the standpoint — there is nothing to dispute about "S trusts T marginally" except whether S really asserted it.

gmeow:introducerDepth · gmeow:introducerAmount

The trust-signature parameters: how many levels of indirect introducers the trustor will follow, and with what weight. These are inputs to a Web-of-Trust validity computation that happens in the projection layer — represent inputs and outputs, never compute the metric in OWL (Principle 12).

gmeow:endorses

The flat convenience shortcut for "vouches for" — deliberately directional (not symmetric) and not transitive. Promote to a TrustAssertion when the trust needs a level, a window, or its own identity: the flat↔reified pairing in its standard form.

Signatures

gmeow:CryptographicSignature

A signature over any artifact — not only mail — asserting origin and integrity, with subkinds PGPSignature (RFC 4880/9580, PGP-MIME) and SMIMESignature (RFC 8551). Re-homed beside the keys it references in the dependency refactor; the email-wire half (DKIM, Authentication-Results, relay hops) lives in the email extension.

gmeow:signedBy · gmeow:signingKey

The identity and the key — exactly the pair a Certification attests. signedBy gives the agent, signingKey (functional) gives the CryptographicKey; signatureAlgorithm and signingDomain (the DKIM d= tag) describe the mechanism.

gmeow:verificationStatus

The recorded verification outcome — verified, failed, or unverified. A report of a computation done outside the graph (Principle 12), never an entailment: the reasoner neither verifies signatures nor propagates their validity.

Dependencies

Depends on accounts (the OnlineAccount seam) and kernel. Consumed wherever identity must be vouched for: contacts, accounts, email wire-authentication, and the GTS packages' COSE attestation chain (Principle 14).