Skip to content

Instantly share code, notes, and snippets.

@stackdump
Last active September 16, 2025 19:31
Show Gist options
  • Save stackdump/5421e117e2add7983031fb8a609faa94 to your computer and use it in GitHub Desktop.
Save stackdump/5421e117e2add7983031fb8a609faa94 to your computer and use it in GitHub Desktop.
Logoverse Object Axioms

Logoverse Objects (v1)

Immutable, composable objects for the Logoverse.
Each object is both code and data, with identity grounded in cryptographic content addressing.


πŸ”‘ Axioms

  1. Identity = CID
    Every object has a stable content address (Cid()).

  2. Immutability
    All changes yield new CIDs. Objects are append-only.

  3. Composability (βŠ—)
    Objects compose into objects via Compose(...).

  4. Dual Representation (Code/Data)
    Executable and portable data are one.

  5. Addressable Projections (Probes)
    Paths probe into object state: ToPath / FromPath.

  6. Renderability
    Any object renders into surfaces: UI (RenderForm), visual (SVG), semantic (JsonLD).

  7. Determinism
    Pure functions only: same inputs β†’ same outputs.

  8. Permissionless + Attribution
    Anyone can register; attribution is carried in metadata.

  9. Interoperability via JSON-LD
    Objects expose meaning with @context, @type.

  10. Observability
    Each object has semantic, visual, and cryptographic views.

  11. Evolvability by Versioning
    Explicit versions (v0)β€”upgrades create new objects.

  12. Sealed Views
    (CID βŠ— Path) defines a sealβ€”a pinned, canonical projection.


🧩 Interfaces

// Visual + semantic + identity
type LogoGraph interface {
  SVG(...string) string
  JsonLD(...string) eve.JsonLDMap
  Cid(...string) string
  Thumbnail(...string) string
}

// Addressable projections + composition
type Projectable interface {
  ToPath(...interface{}) string
  FromPath(...string) interface{}
  Compose(...interface{}) eve.JsonLDMap
}

// Render surfaces
type Editable interface {
  RenderForm(...string) string
}

πŸ§ͺ Example

type OfficeHours struct {
  Status    string
  StartDate string
  EndDate   string
  Settings  map[string]string
}

func (o OfficeHours) Compose(...interface{}) eve.JsonLDMap { /* ... */ }
func (o OfficeHours) ToPath(...interface{}) string { return "/tz/UTC" }
func (o OfficeHours) FromPath(p string) interface{} { /* ... */ }
func (o OfficeHours) JsonLD(...string) eve.JsonLDMap { return o.Compose() }
func (o OfficeHours) Cid(...string) string { return o.Compose().Cid() }
func (o OfficeHours) SVG(...string) string { return `<svg>Office Hours</svg>` }
  • Cid() β†’ Identity, immutability
  • Compose(...) β†’ Composability, determinism
  • ToPath/FromPath β†’ Probes / sealed views
  • SVG / JsonLD β†’ Dual representation

πŸ”— String Diagram

   [ Object O ] --probe p--> [ View Vp ]
        |                      
        | Compose βŠ—           
        v                      
   [ O βŠ— O' ] --probe p'--> [ View Vp' ]
  • Objects = nodes
  • Probes = morphisms into views
  • Seals = (Cid, path) as canonical edges

Logoverse Objects = falsifiable, composable, censorship-resistant atoms of the semantic internet.

@stackdump
Copy link
Author

Enables the Render Function to be a widget

var myCid string

func init() {
myCid = logo.Register(myLogoGrraphObj)
}

func Render(string path) string {
    logo.Render("?cid="+myCid")
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment