Hom

semagrams.acsets.Hom
trait Hom extends Property

A trait marking morphisms in a Schema

Unlike in typical categories, morphisms can have multiple domains and multiple codomains. This is shorthand for a morphism for each pair of domain and codomain.

Additionally, domains/codomains for morphisms are sequences of objects, representing paths through the schema, so a morphism goes between multiple levels of the schema.

Attributes

Graph
Supertypes
trait Property
class Object
trait Matchable
class Any
Known subtypes
object IS.type
object IT.type
object OS.type
object OT.type
object Src.type
object Tgt.type

Members list

Concise view

Type members

Types

type Value = Part

The type of values of the attribute.

The type of values of the attribute.

Attributes

Value members

Concrete methods

def canSet(p: Part, _q: Any): Boolean

Check whether this has p in the domain and q in the codomain, possibly nested within other parts.

Check whether this has p in the domain and q in the codomain, possibly nested within other parts.

Attributes

Inherited methods

def readValue(sv: Value): Value

Read in a Value from a json value.

Read in a Value from a json value.

Attributes

Inherited from:
Property
def writeValue(v: Any): Value

Construct a json value from a Value.

Construct a json value from a Value.

Attributes

Inherited from:
Property

Abstract fields

val codoms: Seq[PartType]

The possible codomains of this morphism

The possible codomains of this morphism

Attributes

val doms: Seq[PartType]

The possible domains of this morphism

The possible domains of this morphism

Attributes

Concrete fields

val rw: ReadWriter[Value]

Any instance of Property needs a serializer/deserializer.

Any instance of Property needs a serializer/deserializer.

This is a temporary hack that works in a specific case.

Attributes

Todo:

figure out nested acset serialization