Official Everybody Edits Forums

Do you think I could just leave this part blank and it'd be okay? We're just going to replace the whole thing with a header image anyway, right?

You are not logged in.

#1 Before February 2015

Hexagon
Member
Joined: 2015-04-22
Posts: 1,213

[Alpha] Penguin; send commands in English

This project was inspired by http://www.eeforumify.com/viewtopic.php?id=31334

Big thanks to UgotPwned who ported the Applescript version to C#!

This project allows users to send everybody edits commands in plain English. The reason why this project was not merged into the aforementioned was because I want to be able to send multiple commands per message and to use "if" statements as well as chaining messages in sub-messages. Moreover, Penguin allows a bit more portability because it is compiled into an intermediate language (Iceberg).

It currently exists in AppleScript but it is being converted into C# (which is why the GitHub repo is currently empty). I'm looking for phrases that you would expect to work with Penguin. Very subjective phrases (delete everything except the art) would be very difficult to implement, for example. However, "delete everything except my layer" would be acceptable, because a layer is a valid object. Something like "delete everything that I wrote in the last 30 seconds" would also be appropriate.

Complicated phrases like "please remove all of the grey basic blocks and replace them with blue keys if there are no red keys" are encouraged. Simple phrases are good too. Pretend that you are talking to someone on EE and giving them instructions. If you would like to contribute, simply PM me or post to this topic with a list of phrases.

Planned/partially implemented features:
- Undo (in terms of time, blocks and layers)*
- Fill
- Erase*
- Replace*
- Lines, circles
- Move
- Resize
- Ambiguity helper (what do you mean by "grey?" Grey basic blocks?)*
- If statements (and reverse if statements)
- Cancelling*
- Multiple commands per message (do this and this)*
- Remove unauthorized edits to your creation (within a certain boundary)*
- "Here" (find the current position of the player and use that as the anchor point)
-- Allow the player to move to another location and set another anchor point
- Number-word detection ("fifteen", "one")*

Compiler/language planned/partially implemented features:
- Tokenization of block descriptions (able to recognize descriptions from regular text)*
- Partial tokenization (when a block description is not precise, is misspelled or is separated by a useless word)
- Command extensions (append "+" at the end to add more)*
- Line orphan detection (when a line doesn't end properly "remove") prompt the user to fix it
-- Allow the orphan to be resolved if possible ("replace all of the purple switches with find all red keys that are not here")
--- Here, "with" is an orphan but is then the second expression is resolved and so with is not an orphan
- Useless message detection ("hey bot how are you?") and "make a red line here no nevermind"
- Optimization (combine and rearrange commands to reduce load on server)*
-- Moving blocks off of the map, replacing the same blocks twice, adding the same blocks twice that already exist
- Context aware (using "move these blocks left", "move the left blocks left")
-- Try to know when users are talking with the bot by analyzing messages for commands (could be very difficult)
- Search functionality*
- Chained statements (if this and if this)
- Localizations
- "them", "those", "it", "that" object resolution ("move all of the red blocks left and then replace them with orange ones")*
-- Here, "them" refers to "red blocks"*
- Ambiguous object detection ("move the red keys left and erase the red candy blocks then resize the red ones")
-- "Red" is ambiguous because it could refer to red keys or red candy blocks. However by default Penguin would select the token with matching ambiguity (but would still prompt).

If Penguin is not allowed to access the map, Iceberg's functionality will be limited. For example, the fill command in Iceberg:
FILL:100,232->122 (begin at coordinate 100,232 and fill it with 122 blocks) will be sent instead of being expanded into create block commands. This means that your application will have more work to do.

Last edited by Hexagon (Aug 7 2014 7:24:36 am)

Offline

#2 Before February 2015

ugotpwned
Member
Joined: 2015-02-16
Posts: 376

Re: [Alpha] Penguin; send commands in English

Have you already started? Sounds like something I would like contribute to.

Offline

#3 Before February 2015

Hexagon
Member
Joined: 2015-04-22
Posts: 1,213

Re: [Alpha] Penguin; send commands in English

UgotPwned wrote:

Have you already started? Sounds like something I would like contribute to.

I have already started. Feel free to contribute on GitHub after I've finished porting it to C#

Offline

#4 Before February 2015

Muftwin
Guest

Re: [Alpha] Penguin; send commands in English

could you make an icelandic version it would be nice 1ntnj.png

#5 Before February 2015

Hexagon
Member
Joined: 2015-04-22
Posts: 1,213

Re: [Alpha] Penguin; send commands in English

Muftwin wrote:

could you make an icelandic version it would be nice 1ntnj.png

I definitely could add localizations (that's actually a very good idea) however I would need translators.

Last edited by Hexagon (Aug 6 2014 2:03:24 pm)

Offline

#6 Before February 2015

ewoke
Member
Joined: 2015-02-20
Posts: 412

Re: [Alpha] Penguin; send commands in English

if you need dutch translation pm me //forums.everybodyedits.com/img/smilies/smile


if you can read this....good for you

Offline

#7 Before February 2015

hummerz5
Member
From: wait I'm not a secret mod huh
Joined: 2015-08-10
Posts: 5,853

Re: [Alpha] Penguin; send commands in English

I really like this idea, I'm glad some people are looking to implement it.

The biggest problem I'd find is the lack of flexibility. The need to insert every single phrase (like a command system) doesn't seem appealing to me. "Delete the red that <USER> placed"
What is red? For how long? Do I avoid the rest? what about orange?
"erase/delete/remove/revert/undo/fix what <USER> did/placed/trolled/drew" but for everything is a task for someone with more patience/skill than I. Unless I'm overthinking this.

Offline

#8 Before February 2015

Hexagon
Member
Joined: 2015-04-22
Posts: 1,213

Re: [Alpha] Penguin; send commands in English

hummerz5 wrote:

I really like this idea, I'm glad some people are looking to implement it.

The biggest problem I'd find is the lack of flexibility. The need to insert every single phrase (like a command system) doesn't seem appealing to me. "Delete the red that <USER> placed"
What is red? For how long? Do I avoid the rest? what about orange?
"erase/delete/remove/revert/undo/fix what <USER> did/placed/trolled/drew" but for everything is a task for someone with more patience/skill than I. Unless I'm overthinking this.

I agree. However this is a very difficult challenge to solve (as most of the "command-words" need to be implemented). It's difficult to tell a computer something vague since it doesn't know English.
There are a few partial solutions to this problem including stemmers (removes the endings from words so less commands have to be specified) and English language parsers (detecting sentence composition and what words are talking about each other and so forth) which help. Crowd-sourcing common commands might help but the command system still has to be used.

Regarding "Delete the red that <USER> placed" in an optimal scenario it would ask for clarification to limit it to a specific block id (by suggesting keywords for you to search for). However this makes the task a little more complicated since if the user just drew red basic blocks the computer should just know that that's red.

Last edited by Hexagon (Aug 6 2014 4:15:07 pm)

Offline

#9 Before February 2015

hummerz5
Member
From: wait I'm not a secret mod huh
Joined: 2015-08-10
Posts: 5,853

Re: [Alpha] Penguin; send commands in English

I suppose that's true as well. The user might have something useless like please/bot/now/again or even include extra clauses... though I question why they would try conversation with a bot. (I guess I'm not them)

Offline

#10 Before February 2015

Hexagon
Member
Joined: 2015-04-22
Posts: 1,213

Re: [Alpha] Penguin; send commands in English

hummerz5 wrote:

I suppose that's true as well. The user might have something useless like please/bot/now/again or even include extra clauses... though I question why they would try conversation with a bot. (I guess I'm not them)

Users can do anything (well, pretty much anything). However if you have an alternate solution I would be interested in it, if you have one.

Offline

#11 Before February 2015

Koya
Fabulous Member
From: The island with those Brits
Joined: 2015-02-18
Posts: 6,310

Re: [Alpha] Penguin; send commands in English

Hexagon wrote:
Muftwin wrote:

could you make an icelandic version it would be nice http://i.imgur.com/1ntnj.png

I definitely could add localizations (that's actually a very good idea) however I would need translators.

If you need Welsh... bah - nobody needs Welsh

Did a bit anyway, even though nobody will use it:

English		Welsh  Undo		Cefn Fill		Llenwch Erase		Dileu (Cael gwared ar - if you want to remove a certain object rather than general) Replace		Newid Line 		Llinell Lines		Llinellau Circle		Cylch Circles		Cylchoedd Move		Hwb Resize		Newid Maint Cancel		Diddymu Stop		Arosiadau Here		Yma And		a

Last edited by Metatron (Aug 6 2014 4:59:57 pm)


Po9cnQh.png

PLNQVL8.png
Thank you eleizibeth ^

1SYOldu.png

I stack my signatures rather than delete them so I don't lose them
giphy.gif

WfSi4mm.png

Offline

#12 Before February 2015

Hexagon
Member
Joined: 2015-04-22
Posts: 1,213

Re: [Alpha] Penguin; send commands in English

As long as there are translators, I can add as many languages as needed. Some of the lesser-used languages may be accessible through a command to activate, however.

There will be a bit of command text to translate (for example "Your search returned <number> results"). The 2000+ block descriptions might take a bit more time (but there is some duplication, which might make it easier).

Offline

Hexagon1423758160203272

Board footer

Powered by FluxBB

[ Started around 1732707001.6713 - Generated in 0.313 seconds, 13 queries executed - Memory usage: 1.57 MiB (Peak: 1.75 MiB) ]