Skip to content

Generalize SmSn graph elements #65

@joshsh

Description

@joshsh

Currently in SmSn, everything is an Atom, or a set of Atoms. An Atom has a (possibly empty) list of children, a title, and a number of other properties. It is untyped. Children are ordered. These were very deliberate design decisions 12 years ago, before it was clear how SmSn might incorporate strong schemas without compromising rapid, stream-of-consciousness editing. I specifically did not want to force users to choose between creating a Person atom, a Book atom, a Dog atom, etc., then to be constrained to selecting properties supplied in a predefined ontology. However, APG and now LambdaGraph offer a reasonable middle ground in which a user can define graphs which combine strongly typed elements with untyped ones -- or rather, with elements of one particular, distinguished type which would be equivalent to the current Atom (only without ordering on children) and others such as a wikitext type (embedding untyped links into Markdown or another language).

This change, on its own, will require a major rewrite of SmSn -- which is why it hasn't been done yet, despite obvious advantages.

cc @jmatsushita

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions