OpenPatterns develops computer programs currently involving abstract logic and language translation.

The Ents Database can store, edit and analyze a subset of logical facts with mathematical precision.

OpenTranslator is a new approach to computer-aided natural language translation. Through mathematical codification of a language, and a universal meaning system, ambiguous language is deduced via input from the user, producing highly specific translation.

About OpenPatterns

Hey! I'm Jason and OpenPatterns Inc. is my company for working on my software projects. I'm classically trained in Mathematics and Physics.

I want to develop my programs out in the open because I think all software should be public.

The Ents Database is an application of set theory to mathematically model abstract objective information. The unique database and algorithms enable interesting automatic queries for logical information.

OpenPatterns acts as a trusted intermediary, allowing you to directly support these revolutionary projects which should not have limited access.

OpenPatterns Inc. is registered within the US and intends to produce products available to the public, but is not a federally tax-exempt organization. To be tax-exempt, all received donations must be used strictly for tax-exempt purposes. Among other similar reasons, OpenPatterns does not qualify because someone could use OpenTranslator to produce something like political propaganda in different languages. I find this quite interesting to say the least. Nonetheless, it is of my opinion that these projects will greatly help the public, and that by developing them openly, uses not furthering the public good will be mitigated as much as possible.

Jason Stockwell

Jason Stockwell

Hello, I'm the Founder and President of OpenPatterns Inc, as well the current only member.

I was born in 1991 and currently live in Massachusetts.

I am a scientist in the true sense of the word!

I'm the sole designer and developer of the only working English to Elvish Translator. It's the proof-of-concept OpenTranslator will be loosely based off of and has many features you won't find anywhere else.

My major interests include theoretical physics, language, psychology, programming, mythology, economics, evolution, consciousness, progressive rock, yoga and meditation.

I'm a Meyers Briggs personality type INTP.

I enjoy playing games from time to time, particularly MMOs, RPGs and card games.

I casually recomend everyone read The Silmarillion, Ready Player One, The Interpretation of Language, and The Science of Yoga.

I geek out to Adventure Time and Tolkien, and I am also quite obsessed with the music of Jon Anderson, Peter Hammill, Ian Anderson, MGMT and Lorde.

I'm very interested in human biology, especially relating to diet and consciousness. Particularly, I'm an expert on essential fatty acids and inflammation, having read over 150 scientific papers on that subject alone. I have been known to evangelize the importance Omega-3 fats.

I like to do awesome stuff.

Contact OpenPatterns

Please contact Jason Stockwell directly by email: jstock37[at]

Or, please make a post on the OpenPatterns Reddit page forum.

Projects Overview

Project summaries

Ents, a database and analysis tools for abstract factual information. Development will first start with Ents, which will be used on the others.

OpenTranslator, an innovative language translator built for accuracy and education.

LanguageHelper, an application which gives detailed information about a text, including linguistic components and grammatical correctness.

FactsOrganizer, a powerful database editor and analyzer for Ents databases.

More about projects

These projects are interrelated and interdependent. All projects are currently in the design stage, with Ents and FactsOrganizer currently under active development. The development path forward is well known, and the destination is exciting!

The proof-of-concept translator can translate a subset of English to one of J.R.R. Tolkien's elvish languages. The ideas used within the elvish translator can be expanded on and applied to all languages. Ents and FactsOrganizer evolved out of a need to organize the complex english and elvish grammar in a scalable and flexible way, but generalized in order to apply to abstract objective logic of any kind.

It was the intention to create a post-translation feature for the elvish translator, allowing you to see how the translation was performed and see detailed grammatical information about the resulting text. It then makes sense that a sentence analyzer would be quite useful on its own.

Help make these projects happen!

Please support the development of these projects if you can!

Jason Stockwell


Ents is a data and analysis system in active development that organizes factual information for smart analysis and editing. Things, or entities, are stored using a special type of hierarchal tree. All current projects supported by OpenPatterns will use Ents to organize large amounts of information.

The Ents databases makes it possible to store and efficiently edit the words and grammar of a language for use in OpenTranslator and LanguageHelper.


Ents C++ Github (active)

Ents Java Github (inactive)

15 minute video discussing Ents (Youtube)

Semi-technical paper discussing Ents theory and basic target API

Discuss Ents at its Reddit page

Example: Categorizing Animals

An Ents database could organize many different types of animals. In this example Ents organizes the information in the background, while FactsOrganizer provides the user interface, displays analysis, and facilitates editing.

The animals could be in categories such as "mammals", "reptiles", and "birds", and within those categories there could be more such categories, for instance under "mammals" one could have "primates" and "marsupials", and so on.

Ents categories are not like the folders on a computer filesystem, where the contents of one folder usually don't overlap with another. Ents allows categories to share entities, make categories exclusive to one another, and uses this information to help the user.

Under the category of "animals", there could be "land animals", "aquatic animals", "amphibious animals", etc. Certain animals could be both land animals and mammals, while another group could be both land animals and reptiles. While no mammals may also be reptiles, land animals may overlap with the other two. Thus mammals and reptiles are exclusive to one another, but mammals and land animals are not.

By defining how categories relate to each other, special things can be done. If one were to add a new animal, software using Ents could automatically ask the question "is this animal a mammal, reptile, or bird." If the user indicates that it is a mammal, the software can then automatically categorize it further by asking "is it a primate or a marsupial?" If the answer is "primate", the software then knows it can't possibly be an aquatic animal, because primates are exclusively land animals.

Automatically asking relevant questions, and not asking unnecessary or illogical ones, helps the user efficiently add new information to the database. One does not have to sift through thousands of attributes to correctly add an animal, Ents would allow the software to ask only relevant options. It would also prevent the user from forgetting to add an attribute.

Analyzing the populated database, one could compare two animals, and the software would automatically find similarities and differences, and present them to the user. For instance, it could retrieve all animals that live in a certain area, or more specifically list all animals from a certain area that eat a certain type of plant, etc.

Furthermore, if the user were to "look up" information about a chimpanzee, software could analyze the tree and automatically generate a description like "chimpanzees are omnivorous primates that live in central and western Africa." This text was not "written" beforehand. It was generated using the database. If the database were changed, the description would change to reflect this. Thus a single Ents database can provide dynamically created general descriptions of entities and how they relate to others, similar to contemporary encyclopedias, while at the same time enabling sophisticated analysis of those entities as per the user's need.

Ents helps make very sophisticated software possible. It's used extensively in FactsOrganizer, LanguageHelper and OpenTranslator.

The name "Ents"

Ents is so named for a few reasons. Originally the main software objects in-code were called "Entities", and the project itself was called "Organizer". After typing "entities" over and over again in the code, that was quickly shortened to "ents", which seemed like a good project name as well. Perhaps not coincidentally, ents are the fictional talking and moving trees of J.R.R. Tolkien's Arda. Because Ents organizes information in a special type of logical "tree", and the purpose of Ents was originally to organize words and grammar for an elvish translator to translate one of Tolkien's languages.


OpenTranslator is an open source language translation application currently being designed to offer unique features like context gathering and post-translation analysis to allow for extremely accurate translations never before possible. Additionally, by using FactsOrganizer, anyone around the world will be able to create and edit standardized language databases which will contain detailed information about how languages actually fit together. Then another user can download the databases for two different languages and OpenTranslator will automatically translate sentences between them without the need for an internet connection.

Being freely available and open source, its development is very important.

OpenTranslator exemplifies the goal of OpenPatterns. All languages share common patterns such as parts of speech, tenses, irregularities, and use of syntax. OpenTranslator is designed with these patterns in mind to provide a scalable framework for describing a language and all of its elements. This allows the meaning of a sentence to be deciphered, ensuring an accurate translation. These open resources can not only be used by anyone to translate novels and scientific papers, but also to preserve endangered languages in high detail, allowing people around the world to study, learn and use them. In addition, the same databases used by OpenTranslator will be compatible with its sister-application, LanguageHelper, for those who want to study a language, even their own, and learn how it works in depth.

If a sentence could be interpreted in multiple ways, OpenTranslator will ask the user questions to determine the correct interpretation. Furthermore, if a single word in one language corresponds to multiple different words in another, the user can choose which is best to translate into. This allows the user to utilize the nuances of the target language, increasing accuracy.

An important and significant distinction is that if the input text is not grammatically correct, the translation will not occur because no accurate translation is even possible. Instead, detailed explanations of the grammatical problems are given, allowing the user to correct them. Only when proper corrections have been made will the translation be done.

It will even give you a detailed description of the translation results, similar to how LanguageHelper lets you analyze a sentence. You'll be able to read details on each word and section of the sentence, giving you insight into why the translation was done the way it was. It will also give you different optional choices for how to tweak your translation, and what those tweaks will mean.

Though there is no demo yet for the full translator, the important hurdles have been thoroughly tackled in the proof-of-concept elvish translator. It perfectly translates a small subset of English to Elvish, but the same ideas can be applied to all languages. It shows that the basic algorithms and methods are sufficient to prove the veracity of all of the above claims.


OpenTranslator's Reddit page

More about OpenTranslator

Translations using even the most popular computer-based translators are so incorrect they are strangely entertaining. Translate a sentence and then translate it back for a good laugh at your next party or social gathering. OpenTranslator was designed to avoid such situations.

OpenTranslator is very different from other software translators. First of all, it's completely Open Source so you can learn how it works, change it to suit your specific needs, and even improve it for others if you choose.

Unfortunately, the process of preparing a language for use in OpenTranslator is time consuming because of the amount of detail required. This problem is drastically reduced by using the special application FactsOrganizer to edit smart Ents databases. It is the intention that FactsOrganizer will be made in such a way that many people all over the world will be able to work together to create language databases. There may be mistakes created in this way, but anyone will then be able to fix these mistakes, and there will be ways to let you download language databases only from individuals or groups you trust to be accurate. Furthermore, utilizing the revolutionary smart design of the Ents database, adding and editing words and grammar will be so easy and streamlined even young people with minimal linguistic knowledge could do it.

The idea for OpenTranslator

The idea for OpenTranslator came from me, Jason Stockwell, OpenPatterns' president. I'd wanted to make a translator for J.R.R. Tolkien's elvish languages ever since I was a Tolkien-obsessed 13 year old learning how to program back in 2004. I was amazed that there were online translators for many languages, but none for elvish. I soon found that making my own translator was an unweildy undertaking but I always kept it in the back of my mind. Using many of the same ideas I had back then, I finally made it in 2012 as an Android app that has since fell into disrepair.

But of course the same methods still apply to other languages, not just English and Quenya (high tongue of the elves exiled from Valinor).

In fact, OpenTranslator is a completely original design, and the reason there is no other working elvish translator is because contemporary methods for machine translation require millions of pre-translated sources to statistically analyze. That same reason is why even sentences of utter nonsense can be "translated" with no apparent problem by contemporary translators.


FactsOrganizer is a software project in preliminary development designed to organize and analyze information stored in an Ents database. It's designed to make it easy for anyone to create their own database or edit someone else's.

For big databases like the example of organizing animals in the Ents section, or to categorize a language and its words and rules, many people will be able to work together editing the same database, and then anyone will be able to use that database however they want. One could categorize and explore players in a baseball league, molecules found in the liver, or items in a computer game, and then analyze those elements in sophisticated ways.


FactsOrganizer's Reddit page

More about FactsOrganizer

FactsOrganizer is also the application that will be used to edit the standardized language databases for use in LanguageHelper and OpenTranslator. This will make it easy to add and edit the language databases, even for someone who is not an expert linguist.

It is expected that FactsOrganizer will be extremely useful for many diverse areas and revolutionize the organizing of scientific and encyclopedic information.

Please see the Ents page for more details about how FactsOrganizer will be used.


LanguageHelper is a project currently in design that analyzes text, displaying relevant and detailed information about the elements that make it up. It uses extensive knowledge about a language to determine if a sentence is grammatically correct. If it is incorrect, it will even give a description of what is wrong. Students of a language can improve their knowledge by entering a sentence and learning about how it fits together, or what is wrong with it.

A student of linguistics can also learn by seeing what parts of speech a word is, the form of the word used, the various elements of the sentence, such as the subject of a verb, and many more things.

LanguageHelper uses the same standardized Ents database for a language that OpenTranslator uses, which can be edited and customized in FactsOrganizer to fit the user's needs.


LanguageHelper's Reddit page

How to support these projects

Free and Open Source Software relies on contributions from the public.

Major ways to help the projects of OpenPatterns are to discuss their theory and implementation, directly develop code and resources, and donate funds so that OpenPatterns can compensate significant contributors.


Discussing projects helps make them better! What features do you want to see? Do you have a new way of looking at things? Interested in seeing how things are going?


Software needs coders!


OpenPatterns makes no money by selling or licensing its projects. In order to enable key contributors to work on these projects in more than just their spare time, donations from the public are crucial and will be used transparently and efficiently.

Other Links:

Youtube channel

Facebook page


Github link

Discuss Ideas and Theory

Discussing projects helps make them better! What features do you want to see? Do you have a new way of looking at things? Interested in seeing how things are going?


OpenPatterns has set up Reddit groups where we can communicate. Reddit already has many users and is easy to pick up. Later discussion may move to another platform if necessary or desirable.

Main OpenPatterns subreddit

Ents Database subreddit

OpenTranslator subreddit

FactsOrganizer subreddit

LanguageHelper subreddit

Develop Code

OpenPatterns is seeking hardcore programmers and problem solvers to form the core development team and create the next generation of interactive software technology.

Basic architecture and algorithms have been designed by OpenPatterns' head, but there are many details to work out and much room for improvement.

We aren't looking for only expert programmers, we would like to collaborate with any problem solvers.

Just the beginning

These projects are in their infancy. Get involved now and see how they work from the start.

The first step is to develop the Ents Database to organize the information for the other projects.

Github Link

Even if you're new to programming, you'll at least learn a thing or two. A major goal of OpenPatterns is to heavily document all code so that it is easy to expand and learn.

We want as many people as possible to understand what these new types of software do, so that they can maximize the benefit they get, and understand the ramifications as deeply as possible.


These technologies should be offered on as many different platforms as possible, and could become new standards for the next generation of computer programs to build off of. By creating standardized applications and libraries on multiple platforms, we can help content creators develop more sophisticated and useful applications.

Please consider contributing in any way you can to these important projects!

Donation Successful

Thank you! Your donation is greatly appreciated.

If the transaction went through you should soon receive a receipt via email.

Return to Homepage