The four kinds of SemType, and how they compose
A SemType is a versioned, structured definition of a kind of thing, an attribute of a thing, or a relationship between things. The specification describes four kinds of type, which build on one another.
Data types constrain the values a property can take — text, numbers, dates, URIs, units of measure, and so on — with constraints attached (such as ranges, formats, or enumerations). They're the leaf-level building blocks every other type ultimately resolves down to.
Property types describe semantic attributes of entities, backed by one or more data types. Because they're defined independently and reused across many entity types, a single canonical Email property can flow between everyone who uses it — rather than each application inventing its own email, contact_email, or primary_address.
Entity types describe what something is — a Person, a Building, a Company — by specifying the property types it can or must have. They're the types you most often work with directly when capturing or querying structured data.
Link types make relationships first-class. A ShareholderIn link can carry its own properties (share count, share class, acquisition date) and point between typed endpoints, so the relationships in your data are as richly described as the things they connect.
Types can inherit from one another, can be versioned and evolved independently, and can be published to a public registry for discovery, reuse, and cross-walking between organizations. They're also designed to be human-readable: every type carries names, descriptions, and documentation that flow through to end-user interfaces, eliminating the gap between technical schemas and what users actually see.
For the complete, normative definition — including identifiers, versioning rules, and inheritance semantics — see the SemType specification and browse published types in the Type Registry.
Previous