piotrmurach / queen

English language linter to hold your files in high esteem.
MIT License
8 stars 2 forks source link

Feature idea: pluggable utilities #2

Open brandondrew opened 6 years ago

brandondrew commented 6 years ago

Since there are already lots of other things written to handle various language-related concerns, it seems like the most efficient (and ultimately flexible) approach would be for Queen to be able to easily use external utilities and services.

This could be a unix utility like aspell, ispell, hunspell, whateverspell, or it could be a grammarly-type web service (although it doesn't appear that they have a publicly available web service).

It would also be nice if Queen could allow arbitrary transformations, manipulation, and filtering of the results of the outside utilities, so that (for example) I'm not forced to hear some outside grammar-checker's complaints about passive voice (since I'm quite firmly in the Geoffrey Pullum camp on that issue).

There are sort of three goals, as I see it. The first would be to make Queen as useful as possible as quickly as possible, without needing to rewrite any software that has already been written. The second would be to make Queen able to quickly embrace any new things that come along, and discard utilities that are no longer useful. (For instance, which of the many *spell utilities is best?)

The third is a little bit different, and perhaps still somewhat vague... It would also be great if Queen made it easier to develop your own pluggable utilities... for example, suppose I fed a boatload of training data to an Amazon or Microsoft ML API about which sentences sound like native speakers and which sentences do not sound like native speakers? If I'm offloading the heavy lifting of that to AWS or Azure, what if Queen made the UI & consumption of the results really easy? In the same way that TTY makes it so much easier to build powerful and robust CLI apps, what if Queen did that with language-related apps, by providing all the tools to consume outside utilities and present an interface to the user.

brandondrew commented 6 years ago

If we were to write adaptors for each outside utility or service, the adaptor could present options to the user (either as command-line switches or on-screen choices), and process the service or utility's output into a form Queen could use.

piotrmurach commented 6 years ago

That is an ambitious and huge 'territory' to conquer 😄

My initial goal is a much lower hanging fruit. Basically, my 'simple' needs mean that I quite often need basic misspelling help. However, I felt that it would be achievable to provide checks for language related issues including profanities, sexist terms, often misspelled technologies, people attempting to commit credit cards info, passwords and other sensitive information and so on.