Skip to content

Core

Enola 🕵🏾‍♀️ Core is a library of generic concepts of Enola’s problem space.

It is independent of “domains” such as Network, Linux, Kubernetes, Web, etc.

End-users use Enola through different “editions”. Organization can build their own internal editions of Enola, to interface with their proprietary in-house systems.

This Core’s functionality which is implemented and exposed through different Tools.

Enola at its core can be viewed as a Knowledge Management tool to describe an Ontology. It models real world concepts as what it terms Entities, identified by URI, and models their references both across its Entities, and to arbitrary non-Enola URIs. (This notably includes traditional URLs like HTTP links, which models can use to create hyperlinks to UIs of applications managing Entities.)

Formats

Enola currently has built-in interchangeable support for RDF 🐢 Turtle, JSON, YAML, XML, and Text proto & Binary Protocol Buffers wire formats for Things. It is conceptually open to supporting other formats in the future; likely RDF4j’s Binary Format, maybe also e.g. CBOR (perhaps RDF CBOR?), or IPFS IPLD Codecs or something like Amazon Ion or others.

Schemas

Enola is currently exploring using LinkML or yml2vocab with RDFS and (TBD) Proto 3 as its Schema languages. It is conceptually open to supporting other kinds of schemas in the future; perhaps e.g. JSON Schema, or CBOR’s RFC #8610 CDDL or IPFS IPLD Schemas (see #777) or Cap’n Proto, or TypeScript (à la Typson), or XML Schema (XSD) or RelaxNG, or YANG or FHIR or Varlink or Web IDL or ASN.1 or GNU poke or other Interface Description Languages (IDL).