GithubHelp home page GithubHelp logo

tomhodgins / bil Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 13 KB

Basic Instruction Language

Home Page: https://tomhodgins.github.io/bil/

License: MIT License

HTML 50.73% JavaScript 49.27%
natural-language instruction-language markup programming-language verb conjunction noun preposition adverbs adjectives

bil's Introduction

BIL ➸ Basic Instruction Language

What is BIL?

BIL is a superset of HTML that adds twelve new tags and uses doctype of <!DOCTYPE bil>.

Why use BIL?

BIL attempts to bridge the gap between natural languages like english, and more structured forms of language like computer programming languages, legalese, and forms.

The challenge is to reduce ambiguity in written instructions by introducing additional markup and information about the parts of speech used, and to adhere to a consistent contextual structure for illustrating the relationships between the words.

The goal is to arrive at an instruction language that acts both as a superset of HTML as well as a simplified subset of the natural language you are marking up as BIL. The aim is to present information in a way that a reader of the same natural language who has never seen BIL can understand it with a minimal learning curve to replace confusing instructions, verbose language, and ambiguous phrasing.

BIL Reference

Words

  • child of: any word tag, <block>, or <phrase>
  • parent of: any word tag, or <block>

Words are the elementary building blocks of BIL. You may nest word tags inside of each other infinitely deep (this is called putting words 'in the context of' another word) and this context-based nesting is the core idea of BIL.

Noun

  • attribute(s): proper

A <noun> tag wraps any noun or proper noun. Nouns are analogous to generic objects in programming language.

The proper attribute can be added to signify a proper noun. This is analogous to a named variable in a programming language.

Verb

A <verb> tag wraps any verb, action, or set of actions. Verbs are analogous to functions in a programming language.

Number

A <number> tag wraps any numeric value.

Adjective

An <adjective> tag wraps any adjective. These are analogous to properties or attributes in a programming language.

Pronoun

A <pronoun> tag wraps any pronoun. These address specific instances of nouns based on context.

Preposition

A <preposition> tag wraps any preposition. These usually refer to the directionality, location, orientation, or state in which a verb or noun exists.

Adverb

An <adverb> tag wraps any adverb. When used to modify verbs adverbs are analogous to function arguments in programming languages.

Conjunction

A <conjunction> tag wraps any conjunction. Conjunctions are analogous to a lot of logical keywords like if and while.

Interjection

An <interjection> tag wraps any interjection.

Grouping Operators

Block

  • child of: <context>
  • parent of: any word tags, and <context>

A <block> tag is a grouping operator containing one or more words and a <context> tag

Context

  • child of: <block>
  • parent of: any word tags, and <phrase>

A <context> tag is a grouping operator containing <phrase> tags and and/or <block> tags.

Phrase

A <phrase> tag is a grouping operator containing multiple word tags.

How to write BIL

Always begin a BIL document with a containing <block> tag:

<block></block>

This containing block may contain one or more word tags, plus a <context> tag. This block is a <noun> block and will contain more words that define something in the context of a <noun> called 'BIL example':

<block>
  <noun>BIL example</noun>
  <context></context>
</block>

This <context> tag may contain one or more word tags, more <block> tags, or if there are multiple separate groupings of word tags each of these gropuings can be wrapped in <phrase> tags:

<block>
  <noun>BIL example</noun>
  <context>
    <phrase><verb>demo <noun>item 1</noun></verb></phrase>
    <phrase><verb>demo <noun>item 2</noun></verb></phrase>
  </context>
</block>

Here we could say that the <noun> 'item 1' is in the context of the <verb> 'demo', to demonstrate. We could also say that doing something with 'item 1' and 'item 2' are in the context of a <noun> called 'BIL example'.

BIL Demos

Made with ♥ by @innovati

bil's People

Contributors

tomhodgins avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

zanshinpost

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.