OpenPatterns designs, develops and organizes Free and Open Source Software.

Currently we are focusing on projects involving new ways to approach language translation, analysis and education, and systems designed to accomplish this.

OpenTranslator will provide the user with many possible translations to choose from, and detailed information about each one, allowing them to convey extremely precise meanings. It will also include tools to help many people work together to improve translations by quickly and easily adding words and grammars. Anyone can create their own language database to share with others, for fun, business or to preserve endangered languages.

The Ents database library is a special type of database designed to organize complex information, and will be used extensively to enable the unique features of OpenTranslator. Ents will provide a way to easily store and edit factual information and share it with others. It's general design allows it to store information about many things, like molecules, plants and animals, baseball players, or food recipies. This information can then be analyzed to enable new types of software applications like dynamic encyclopedias.

About OpenPatterns

Hey! I'm Jason and I started OpenPatterns Inc to help create amazing software for anyone to use. Coming up with the initial project ideas on my own, I could either sell them, bring them with me to a company, or make them public. I chose the latter because the ideas are very important to me.

OpenPatterns' software projects will revolutionize language learning, enable highly accurate language translation, preserve rare or dying languages, organize and analyze scientific and encyclopedic information, and much more.

Tools for language and education ideally shouldn't be "owned" and held as secrets. Furthermore, retaining the exclusive rights to sell a product isn't always necessary or desirable for innovation.

The rights to language and learning are sacred.

OpenPatterns acts as a trusted intermediary, allowing you to directly support these revolutionary projects monetarily.

How donations are used

By supporting OpenPatterns, you firstly support its employees by paying wages and for them to be equipped to work properly. To work fulltime on these projects, I and others will require fair compensation. I believe the importance of these projects justifies fair compensation. While I determine my own compensation, the amount will be made public and hopefully seen as reasonable.

Donations exceeding employee wages will go directly towards furthering projects. Primarily this will be done via compensating Independent Contractors, allowing them to devote more than their free time. Funds may also be used for things like servers, should they be deemed necessary for the community.

Specifics of how donations are used can be found on the Donate page.

OpenPatterns Inc. 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 the translator to produce political propaganda in different languages. This is unfortunate and OpenPatterns will try to raise the awareness of such issues so that society can take these new technologies into account. 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.

I'm 25 years old 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, available on the Google Play Store for free. You can find it here. It's the proof-of-concept OpenTranslator will be loosely based off of and has many features you won't find anywhere else. I am very proud of it, please have a look!


LinkedIn Profile

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

For those who care, I'm a Meyers Briggs personality type INTP.

I enjoy playing games from time to time. Particularly MMOs, RPGs and card games. Recently I've been playing Hearthstone. I like both Arena and Constructed; my main decks are custom Pirate Rogue and Control Warlock (meta permitting).

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

I also geek out to Adventure Time, Yes, and Van der graaf Generator. I am quite obsessed with Jon Anderson and Peter Hammill.

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 Omega-3s.

I like to do awesome stuff.

Contact OpenPatterns

Please contact Jason Stockwell directly by email: openpatterns37[at]gmail

Or, if you think others would benefit from the response being public, you can post a question on the OpenPatterns Reddit page.

Projects Overview

Project summaries

Ents, a revolutionary database, integral to the other projects, that stores complex factual information for smart analysis. Development will first start with Ents to enable 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. Our intent is to show that the development path forward is well known, and the destination exciting.

The proof-of-concept translator can be found here on the Google Play Store, running on Android. It translates a subset of English to one of J.R.R. Tolkien's elvish languages, but the ideas used within can be expanded on and applied to all languages. The other projects evolved throughout the long process of developing and improving the translator.

Help make these projects happen!

Because these projects themselves will not be sold, OpenPatterns generates revenue exclusively through voluntary donations from the public. Donations to OpenPatterns Inc. are unfortunately not tax deductible because these projects can be used in many ways, including for non-exempt purposes.

OpenPatterns supports these projects by leading their further development, helping to organize them, and compensating certain developers and contributors as it chooses.

I ask for your support in furthering these projects for the use of all people. I sincerely urge caution before you choose to donate to competing projects. As the visionary and original designer, I hope to build trust with the community so that those wishing to support these projects are comfortable donating to to OpenPatterns Inc, knowing that their resources are being used efficiently, and ethically.

Jason Stockwell


Ents is a revolutionary database technology currently being designed 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 as a powerful tool to organize large amounts of complex information.

The specially designed structure behind Ents databases makes it possible to store and efficiently edit the words and grammar of a language for use in OpenTranslator and LanguageHelper. But it can do much more.


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. Utilizing revolutionary methods it will offer unique features like context gathering and post-translation analysis to allow for extremely accurate and customized 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 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.

And, of course, being open source, it will be available free of charge.

OpenTranslator exemplifies the essence 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 its elements. This allows the meaning of a sentence to be deciphered, ensuring an accurate translation based on what was originally intended. 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.

These innovative approaches allow for new features not yet seen in software translation; most importantly, asking questions to get context. 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.

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 free proof-of-concept translator which can be found here for Android on the Google Play store. 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 problems.

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 middle school children 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 available here for free on the Google Play store.

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. OpenTranslator approaches the problem from a completely different direction. This enables the new and sophisticated features not found anywhere else.

I hope you're as excited for the future of OpenTranslator as I am!


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! Get in on the ground level and help build important applications!


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 Code Repository

Discuss Ideas and Theory

The discussion of ideas about features, theory and algorithms is paramount. We need to determine goals and make sure we have a solid theoretical base to accomplish them.

Even if you've never written a line of code, we could use your insight in many different ways. These projects are multidisciplinary, so if you think you can help in any way, please consider doing so.

Because these projects will be used heavily by 3rd party applications, they need to be designed with generality and modularity. The Ents database for example will be used by many future software projects in addition to OpenPatterns', so it must be designed carefully to be optimally useful. Thinking things out will save the coders from many headaches down the road.

Even those who can't write code could be chosen to receive OpenPatterns funds, if they contribute significantly in ways others can't. A great idea can save a lot of development time, or enable a feature that wouldn't even be possible!

Specifically for the language-related projects, we need linguists and language enthusiasts to help make sure OpenTranslator and LanguageHelper are feature-rich, and Ents and FactsOrganizer can handle language properly. The ability to clearly explain linguistic elements and patterns will be crucial for their implementation in code.

If you see yourself using the projects in the future, what would you like to see them do? What specific way will you be using the projects, and what special cases need to be addressed? Maybe your language has a unique grammatical pattern or rare part of speech, or you need to organize data in a way we haven't thought of.


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

There wouldn't be software without code and algorithms! And what goes better with code than documentation?

OpenPatterns is seeking hardcore programmers and problem solvers to form the core development team and create the next generation of interactive software technology. We'll make software everyone will one day use, helping people to learn and communicate better, and do things currently not possible.

Initially, experienced coders are needed to plan out APIs and code architecture to accomplish what we set out to do. 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. Any expert programmer can turn your theory into code; what we need are revolutionary ideas, in and out of code.

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. Documenting code will be important down the line as people customize the projects to suit their needs. Code produced should be so well documented it becomes almost like a lesson in itself.

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 everything went fine you should soon receive a receipt via email.

Return to Homepage