Open andreytkachenko opened 3 years ago
For some reason I was not watching this repo, sorry for answering so late...
At the beginning I thought of writing skills so that they were multiplatform and they could run on Android, Linux, or anywhere you want. But when doing this I encountered some issues: often skills would need access to the resources specific to the environment they run in (e.g. the "open" skill needs to obtain apps from the system). Therefore either I chose something like Qt that would have common APIs in all systems, or I dropped multiplatform compatibility. I went for the second option since using Qt and making sure everything works in a multiplatform fashion would have taken much more work and would probably have been too ambitious. Also, there is already a very good assistant on Desktop devices (Mycroft). So at the end I went for Java skills built upon the Android SDK, so that skills themselves can directly access an Android Context
and do whatever they need to with it.
With that said, let me answer some of your points specifically:
dicio-skill
implementation in another language, this tool can easily be extended to allow compiling "dicio sentences language files" into a language different than Java.dicio-sentences-compiler
), since it is used only at skill build time to convert from the "sentences language" directly to Java code compatible with dicio-skill
, containing ready-to-use data structures that allow running a fast Dynamic Programming algorithm to compare the user input with what the skill accepts.Thank you for reaching out
I would like to suggest to switch this library to Rust and continue development on Rust. Reasons:
Some links: https://mozilla.github.io/firefox-browser-architecture/experiments/2017-09-21-rust-on-android.html https://medium.com/visly/rust-on-android-19f34a2fb43 https://freemasen.com/blog/wasmer-plugin-pt-1/