Document Status

This is a initial draft of the OSL™ v1.0 specification.

While this draft has been released, it has not been approved by any standards body.

Implementors should periodically check the OSL-v1.0 online resources (see #Online Resources tab) for the current status of OSL-v1.0 documentation.

Abstract

The Open Scripting Language (OSL-v1.0) specification provides a convenient, high level grammar wrapper around ChatGPT commands, which simplifies the process of reading and writing complex commands in ChatGPT prompts, while leaving the natural human language processing cababilites of ChatGPT untouched.

The OSL-v1.0 format is a patent-free format licensed under the Apache 2.0 License.

This specification defines the Internet Media Type "text/osl".

Please review either the #License tab or the repository LICENSE.md for more information.

OSL-v1.0 is designed to be:

  • Simple & portable.
  • Concise & easy to parse.
  • Clear & well structured.

The primary purpose of this specification is to provide the definition of the Open Scripting Language and recommendations for implementors.

The #Appendix tab provides additional documentation, including rational for all design decisions.

While the #Appendix tab and its content are not part of the formal specification, it helps implementors to understand the design and intent behind this document. Its other purpose is to provide cross-references to relevant sections of rationale, examples or other supporting material.

Terms

The key words in this document:

  • "MUST"
  • "MUST NOT"
  • "REQUIRED"
  • "SHALL"
  • "SHALL NOT"
  • "SHOULD"
  • "SHOULD NOT"
  • "RECOMMENDED"
  • "MAY"
  • and "OPTIONAL"

are to be interpreted as described in RFC-2119.

Pronunciation

Phonetically, OSL is pronounced: "oh-ɛs-ɛl".

Comments

Purpose: To define comments which can be used within prompts, either to add non-executable, human readable comments or to optionally disable commands within a command block.

System Constants

Purpose: Convenient, short-hand for the built-in ChatGPT system commands:

  • "/get key"
  • "/set key value"



Phrases

Purpose: Convenient short hand phrase for "set phrase "..." as "..."." statements.

The purpose of using this grammar rule is to enable conveniently setting phrases from a list of commands.


Contexts

Purpose: Conveniently set or switch between existing, pre-configured contexts.

Personae

Purpose: Convenient short hand to enable ChatGPT to behave as a specific persona while processing commands or having conversations involving other personae.


ChainedConversationGrammar

Purpose: To easily facilitate communication and collaboration between groups of personas.


ChainedArgumentGrammar

Purpose: To easily facilitate debate between groups of personas.


StreamOperatorGrammar

Purpose: To easily facilitate debate between groups of personas.

``` {{greeting}}, enable grammar rule as StreamOperatorGrammar: {<prompt1>} >> {<prompt2>} [>> {<prompt3>}] [>> {<prompt4>}] [>> {<prompt5>}] ... - When a series of two or more conversation prompts are separated by two greater than symbols '>>', the result from the left-hand side prompt must not be output, instead it must be prefixed to the right-hand side conversation, for each conversation. - The commands in each prompt will be processed in left to right order before the final result is output. Example Usage: [Doug: list the top 5 benefits of C++] >> [Doug: describe is detail the preceeding list.] [Doug: write an engaging article describing the benefits of C++.] >> [Kaitlin: rewrite the preceeding article to optimize for seo.]

Glossary of Terms

TBD
...
OSL
A concise language for use with LLMs such as ChatGPT to more easily denote scripting conversations or other commands.

Appendix

This section is not part of the formal OSL-v1.0 specification.

This section provides reasoning behind some of the design decisions which when into standardizing OSL. Many of these decisions were the subject of considerable debate.

Why a new file format

Errata

Change Log:

References

Credits

License

This specification is being provided by the copyright holders under the following conditions:

----------------------------------------------------------------

# Copyright © 28-03-2023 Tyler R. Drury (vigilance.eth™), All Rights Reserved.
    
----------------------------------------------------------------

## Disclaimer

This specification (the **Product**), including but not limited to,
all source code, object files, executables, library files,
images, video, audio, documentation, content generated by
the Product and any other resource file of the Product,
are subject to the following terms and conditions (the **License**).

----------------------------------------------------------------

## Retention of Intellectual Property Rights

The name, likeness or works (either in part or in whole)
of [Tyler R. Drury](https://vigilance91.github.io/) or that of any additional authors or contributors respectfully
may not be used to endorse or promote products derived from this specification without specific prior written permission.

----------------------------------------------------------------

## Use and Redistribution

Redistribution and use in source and binary forms,
with or without modification is permitted,
provided that the following conditions are met:

* Redistributions of source code must retain, in whole,
the above copyright notice, disclaimer, and this list of conditions.
* Redistributions in binary form must reproduce, in whole,
the above copyright notice, disclaimer
and this list of conditions in the documentation
and/or other materials provided with the distribution.
* Any documentation, advertising materials,
and other materials related to such distribution and use,
must acknowledge the original author of the **Product** and all contributors.


----------------------------------------------------------------

## Coverage

The **Product** is licensed under the Apache License, Version 2.0 (the **Apache License**),
and may not be used, except in compliance with the **Apache License**.

A full copy of the **Apache License** can be obtained [here](http://www.apache.org/licenses/LICENSE-2.0).

----------------------------------------------------------------

## Disclaimer of Warranty and Limitation of Liability

Unless required by applicable law or agreed to in writing,
software distributed under the **License** is distributed on an
**AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND**,
either express or implied.

Copyright holders and contributors are **not liable for damages** incurred through the use or inability to use the **Product**.

See the [Apache License](http://www.apache.org/licenses/LICENSE-2.0) for the specific language governing permissions and
limitations under the **Apache License**.

----------------------------------------------------------------