-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extend device selectors to refer to devices by name #162
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Pulled out of PR #158
Attributes are key-value pairs that allow the user to select a device by name, location, or other characteristic. Currently, the only allowed attribute is name, of String type. The AST is more flexible though to support parameter passing (needed to make primitive templates with device names). $? is not supported because it's not very useful - Almond natively asks for which device anyway.
"all" is a boolean; if set, device selection is skipped and the program operates on all devices that match the selector (unset is the same as false)
This allows Genie to do beta-reduction of device attributes in primitive templates
Improve on our existing $__device support. Next step: changing every single Thingpedia device to support this...
To test some parts of the code where, if we fail, we only find out in almond-dialog-agent or genie and then it's pain to fix
Pull Request Test Coverage Report for Build 718
💛 - Coveralls |
So the code coverage does not drop too much. At the same time, it's clear the heuristic used is pretty gross, and we should use the #_[canonical] annotation on the class instead.
Because almond-dialog-agent indirectly does that when typechecking predicates on their own
This was referenced Nov 1, 2019
Otherwise it is annoying to parse the tag to extract the argument name during parameter replacement
Otherwise we cannot beta-reduce parameters in them during Genie generation
sileix
approved these changes
Nov 1, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
} | ||
|
||
toString() { | ||
return `Device(${this.kind}, ${this.id ? this.id : ''}, )`; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no attributes?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
So we can ask "turn on my bedroom lights"
This is a feature asked by @balloob.
This is only part 1. Part 2 is the dialog agent to actually select the device. Part 3 is Genie to train those sentences. Part 4 is every Thingpedia device that would like this functionality should add relevant templates and change their confirmation string.