For the complete documentation index, see llms.txt. This page is also available as Markdown.

Engines

What is an Engine?

An SKL Engine is a code package that allows developers to do two things:

  1. query and manipulate stored SKL Schemas and data

  2. call Verbs and Mappings defined in SKL Schemas from code.

An Engine can be built in any programming language that can read the Schema (JSON)!

Reading and Writing Data

Calling Verbs

In most programming languages and libraries, a function's implementation is defined ahead of time and has a predefined and specific purpose. This is conventional because it reduces ambiguity and allows code to be precise. However, because each language or library has potentially hundreds of function definitions, developers have to read lots of documentation and write code to use the unique functions of each language or library they need to incorporate.

SKL is different in that it uses Nouns and Verbs more like natural language. In natural language, words we use are sometimes understood contextually based on the other words they are paired with (eg. stirring a pot vs stirring in bed). When a developer calls a Verb using an Engine, the Engine uses the context the Verb was called in to dynamically determine what to do. The context includes what Mappings exist in the schema, and the source Integration and types of the Nouns that were used as arguments to the Verb.

Conceptual Example

Lets say a developer is building a productivity application which displays a user's files from Dropbox, saved articles from Medium, and tasks from Asana. The developer could build into their application a single interface to "share" any of these files, articles, or tasks with a co-worker. When a user shares something through this interface, the developer's code can call the share Verb with a Person entity and the entity being shared (a File, Article, or Task) as parameters. The Engine should first search for the configuration of the share Verb in the schema to make sure the right parameters were supplied. Then, it will find a Mapping relating the share Verb, the source Integration of the entity being shared, and the type of the entity being shared.

In the case that an Asana task is being shared, the Mapping would translate the Person and Task parameters into a web request to the Asana API with the unique parameters, headers, and endpoint URL required. It sends the request then translates the API response into the standard share Verb response to return to the developer. This process happens automatically and completely within the Engine.

Get Started

Now that you know what an SKL Engine does, you're ready to get started with one. Currently there are two choices:

We envision Engines being built in all major programming languages so that any project can use SKL, no matter the environment. If you're up to the task of creating an Engine in another language, or simply want to voice your desire for an Engine in a specific language, please reach out to us on Discord or open or contribute to a discussion.

Note: SKL Engines used to be called Standard Knowledge Query Language (SKQL) Engines.

Last updated