System Ontology

Technical Reference for Card Data Schema

This document serves as the authoritative reference for the CardDataSchema used in the backend. When defining a Card's data field, strict adherence to this ontology is enforced.

Ontology Model

The Card object is composed of three distinct layers.

Card (JSON)
Identity name, slug, description, type
Data (Strict) Validated against CardDataSchema
  • license
  • runtime_type
  • protocol
Tags (Flexible) Categorization & Search
  • domain:*
  • paradigm:*
  • stack:*

System Tag Registry

To ensure consistency in The Oracle (recommendation engine), tags starting with reserved prefixes MUST use values from the SYSTEM_TAG_REGISTRY.

typing: static, dynamic, strong, weak, gradual, duck
paradigm: oop, functional, imperative, declarative, procedural, meta, logic
layer: frontend, backend, fullstack, infrastructure, data, embedded
domain: web, mobile, desktop, iot, ai-ml, systems, scripting

These categories are strictly forbidden in the data field. They must be provided as prefix:value tags.

Core Attributes

license

string | null

Must be a valid SPDX License Identifier (e.g., 'MIT', 'Apache-2.0').

website

ExternalLink | string | null

Official website or documentation URL.

repository

ExternalLink | string | null

Source code repository (GitHub, GitLab, etc.).

resource_intensity

string | null

Green-Ops impact assessment: 'low', 'medium', or 'high'.

Languages & Runtimes

Required if type is language.

runtime_type

enum
  • compiled
  • interpreted
  • jit
  • vm
  • hybrid
  • transpiled

concurrency_models

list[enum]
  • single-thread
  • multi-thread
  • async-event-loop
  • actors
  • green-threads
  • virtual-threads
  • csp
  • software-transactional-memory

memory_management

enum
  • manual
  • garbage-collected
  • arc
  • reference-counting
  • ownership
  • none

Databases & Gateways

Required if type is database.

consistency_model

enum
  • strong
  • eventual
  • causal
  • acid
  • base

protocol

enum
  • rest
  • graphql
  • grpc
  • thrift
  • websocket
  • soap
  • binary
  • sql

Card Natures

The nature field defines the fundamental category of a technology. This drives which specific rule in the compatibility engine applies.

language framework library tool platform database saas protocol standard infrastructure

Relations & Compatibility

Explicit Relations

Defined manually via CardRelation edges in the graph.

  • parent / child (Composition)
  • dependency / dependent (Requirement)
  • alternative (Substitution)
  • conflict (Mutually Exclusive)
  • synergy (Works well with)

Compatibility Rules

The "Oracle" uses CompatibilityRule logic to infer relationships dynamically.

IF (Source.Nature == 'library' AND Source.Tags includes 'domain:web') AND (Target.Nature == 'framework' AND Target.Tags includes 'domain:web') THEN Compatible = TRUE