Interface Thing

All Superinterfaces:
HasIRI, PredicatesObjects
All Known Subinterfaces:
Class, Class, Class.Builder<B>, Common, Common.Builder<B>, Datatype, Datatype.Builder<B>, Enum, EnumValue, HasA, HasB, HasChildren, HasComment, HasDescription, HasFileExtensions, HasIcon, HasLabel, HasMediaType, HasName, HasName.Builder<B>, HasParent, HasSeeAlso, HasType, HasURL, IImmutableThing, MediaType, Package, Property, Property, Property.Builder<B>, Resource, Schema, Schema.Builder<B>, TestSomething, ThingOrBuilder<B>, Type, Type, Type.Builder<B>, UnknownClass
All Known Implementing Classes:
DatatypeThing, ImmutableThing, MutableThing, OnlyIRIThing, ThingAdapter

public interface Thing extends HasIRI, PredicatesObjects
Thing is the central data structure of Enola.

Each Thing has an iri(), which uniquely identifies it. All Things have 0..n predicates, each identified by an IRI itself, and having a value. Each such value has a (Java, here) Type (see PredicatesObjects).

This is, of course, heavily inspired by TBL's vision of the Semantic Web of Linked Data, such as also described by standards such as RDF and then used e.g. by SPARQL, or JSON-LD, etc.