---
title: "Arquitectura de Semaprax: Grafo semántico del programa"
canonical: https://wavect.io/es/semaprax/architecture/
language: es
description: "Cómo el grafo semántico de Semaprax, los IDs estables, el contexto acotado, las revisiones y los parches forman una arquitectura de compilador para agentes."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

ARQUITECTURA · GRAPH V10-V14

# Un modelo de programa que los agentes consultan sin reconstruir el significado desde texto.

Primero identidad estable. Después cambios de fuente.

El grafo semántico de Semaprax registra declaraciones tipadas, efectos, contratos, datos de ownership, llamadas e identidades de compilación bajo una revisión derivada del contenido.

semaprax://architecture v0.2

```
entity     Semaprax
status     investigación pre-alfa
verified   2026-08-11
authority  github.com/wavect/semaprax
```

## ¿Cómo funciona Semaprax?

Semaprax transforma código legible en HIR validado y un grafo semántico versionado. Los agentes solicitan contexto acotado por ID estable, previsualizan o envían un parche contra una revisión exacta y reciben diagnósticos o evidencia deterministas antes de la salida nativa o Wasm.

// 01

## Primero identidad estable. Después cambios de fuente.

### Identidad semántica estable

Los valores `@id` y las identidades del compilador persisten entre fuente, HIR, grafo, diagnósticos y símbolos generados. Se rechazan identidades con NUL antes de la salida.

### Contexto acotado para agentes

Agent Context v1 y v2 devuelven cortes del grafo limitados por dependencias, bytes, nodos, profundidad y dirección de recorrido.

### Parches semánticos ligados a revisión

Las operaciones apuntan a identidades semánticas y a una revisión exacta. Las revisiones obsoletas fallan de forma cerrada y las familias actuales son deliberadamente limitadas.

### Evidencia antes de publicar

Las rutas de review, impacto, target y workspace producen artefactos deterministas con no-afirmaciones explícitas. No conceden aprobación ni sustituyen pruebas del proyecto.

// 02

## La proyección de código sigue siendo legible

```
module examples.meaning;

@id("math.add")
fn add(left: i64, right: i64) -> i64
    requires left >= 0
    ensures result == left + right
{
    left + right
}
```

Las especificaciones de GitHub son la fuente normativa. Esta página es un resumen de investigación fechado. [Repositorio de GitHub](https://github.com/wavect/semaprax).

// FAQ

## Preguntas respondidas sin exageraciones

### ¿El grafo semántico es un knowledge graph o RAG?

No. Es la representación tipada y versionada del compilador, no una colección de documentos o embeddings.

### ¿Un agente puede editar cualquier programa con parches semánticos?

Todavía no. Los esquemas actuales admiten operaciones acotadas y rechazan revisiones obsoletas, selectores inválidos y ampliaciones semánticas.

Proyecto de investigación de Wavect: [Wavect GmbH](/es/). Creado por Wavect como proyecto de investigación de sistemas de código abierto.

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/es/semaprax/architecture/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-08-11",
      "inLanguage": "es",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-08-11",
      "url": "https://wavect.io/es/semaprax/architecture/"
    },
    {
      "@id": "https://wavect.io/verified-claims.json#semaprax-v02-semantic-graph-patches",
      "@type": "Claim",
      "appearance": {
        "@id": "https://wavect.io/es/semaprax/architecture/#webpage",
        "@type": "WebPage",
        "inLanguage": "es",
        "url": "https://wavect.io/es/semaprax/architecture/"
      },
      "author": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "citation": {
        "@type": "WebPage",
        "url": "https://github.com/wavect/semaprax/blob/main/docs/SEMANTIC-PATCH-V2.md"
      },
      "dateModified": "2026-08-11",
      "identifier": "semaprax-v02-semantic-graph-patches",
      "inLanguage": "en",
      "text": "The Semaprax v0.2 prototype exposes a stable, queryable semantic program graph and revision-bound semantic patch operations for documented language subsets."
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/es/semaprax/architecture/#webpage",
      "@type": "WebPage",
      "creator": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "dateModified": "2026-08-11",
      "description": "Cómo el grafo semántico de Semaprax, los IDs estables, el contexto acotado, las revisiones y los parches forman una arquitectura de compilador para agentes.",
      "inLanguage": "es",
      "mainEntity": {
        "@id": "https://wavect.io/es/semaprax/architecture/#article",
        "@type": "TechArticle"
      },
      "name": "Arquitectura de Semaprax: Grafo semántico del programa | Wavect",
      "url": "https://wavect.io/es/semaprax/architecture/"
    },
    {
      "@id": "https://wavect.io/es/semaprax/architecture/#article",
      "@type": "TechArticle",
      "about": {
        "@id": "https://wavect.io/semaprax/#software",
        "@type": "SoftwareSourceCode"
      },
      "author": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "dateModified": "2026-08-11",
      "datePublished": "2026-08-11",
      "description": "Cómo el grafo semántico de Semaprax, los IDs estables, el contexto acotado, las revisiones y los parches forman una arquitectura de compilador para agentes.",
      "headline": "Un modelo de programa que los agentes consultan sin reconstruir el significado desde texto.",
      "inLanguage": "es",
      "isPartOf": {
        "@id": "https://wavect.io/semaprax/#webpage",
        "@type": "WebPage"
      },
      "mainEntityOfPage": {
        "@id": "https://wavect.io/es/semaprax/architecture/#webpage"
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/es/semaprax/architecture/"
    },
    {
      "@id": "https://wavect.io/semaprax/#software",
      "@type": "SoftwareSourceCode"
    },
    {
      "@id": "https://wavect.io/es/semaprax/architecture/#faq",
      "@type": "FAQPage",
      "inLanguage": "es",
      "mainEntity": [
        {
          "@type": "Question",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. Es la representación tipada y versionada del compilador, no una colección de documentos o embeddings."
          },
          "name": "¿El grafo semántico es un knowledge graph o RAG?"
        },
        {
          "@type": "Question",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Todavía no. Los esquemas actuales admiten operaciones acotadas y rechazan revisiones obsoletas, selectores inválidos y ampliaciones semánticas."
          },
          "name": "¿Un agente puede editar cualquier programa con parches semánticos?"
        }
      ],
      "url": "https://wavect.io/es/semaprax/architecture/"
    },
    {
      "@id": "https://wavect.io/verified-claims.json#semaprax-v02-semantic-graph-patches",
      "@type": "Claim",
      "appearance": {
        "@id": "https://wavect.io/es/semaprax/architecture/#webpage",
        "@type": "WebPage",
        "inLanguage": "es",
        "url": "https://wavect.io/es/semaprax/architecture/"
      },
      "author": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "citation": {
        "@type": "WebPage",
        "url": "https://github.com/wavect/semaprax/blob/main/docs/SEMANTIC-PATCH-V2.md"
      },
      "dateModified": "2026-08-11",
      "identifier": "semaprax-v02-semantic-graph-patches",
      "inLanguage": "en",
      "text": "The Semaprax v0.2 prototype exposes a stable, queryable semantic program graph and revision-bound semantic patch operations for documented language subsets."
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/",
      "name": "Inicio",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/semaprax/",
      "name": "Semaprax",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/semaprax/architecture/",
      "name": "Un modelo de programa que los agentes consultan sin reconstruir el significado desde texto.",
      "position": 3
    }
  ]
}
```
