Git Product home page Git Product logo

thingtalk's Introduction

ThingTalk

Build Status Coverage Status Dependency Status Greenkeeper badge Language grade: JavaScript

The Programming Language of Virtual Assistants

ThingTalk is the declarative (rule-based) distributed programming language for virtual assistants. It connects to multiple web services and IoT devices in a single when-get-do statement.

For example, in ThingTalk you can say:

monitor (@com.washingtonpost.get_article(section=enum(world))) => @com.yandex.translate.translate(target_language="zh"^^tt:iso_lang_code) on (text=title) =>
@com.facebook.post(status=$event);

This program automatically monitors Washington Post headlines, translates them to Chinese, and then posts them on Facebook. It does so by referring to primitives defined in Thingpedia, an open-source crowdsourced repository of APIs and metadata.

ThingTalk the language component of the Almond virtual assistant. You can find a guide to the ThingTalk language on the Almond website.

This package contains the grammar, the compiler of the language, the interface to analyze programs using SMT, the code to translate from ThingTalk to natural language, part of the ThingTalk runtime, and various libraries to manipulate ThingTalk ASTs.

While this library is useful on its own for specific purposes, to run ThingTalk programs you will need a full Almond runtime, such as one provided by almond-cloud or almond-cmdline.

Almond is a research project led by prof. Monica Lam, from Stanford University. You can find more information at https://almond.stanford.edu

License

This package is covered by the GNU General Public License, version 3 or any later version. See LICENSE for details.

Versioning

This package does not follow semantic versioning. Instead, the version should be interpreted as:

  • Major version will be bumped for incompatible changes in the language, such that existing valid programs are no longer valid
  • Minor version will be bumped for any change in the library, such as AST definitions, interfaces to compilation/optimization passes, adding and removing additional processing modules
  • Patch version will be bumped for compatible bug fixes

Minor version bumps can introduce incompatibility to library users; it is recommended that library users use tilde version ranges on their ThingTalk dependency, or use a service such as Greenkeeper to check for incompatibilities when a new version of the ThingTalk library is published.

thingtalk's People

Contributors

gcampax avatar sileix avatar greenkeeper[bot] avatar aydanpirani avatar rakeshr1 avatar rickygv99 avatar

Watchers

James Cloos avatar

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.