Created
May 24, 2015 17:37
-
-
Save L3viathan/21175e9e710ae0f481f0 to your computer and use it in GitHub Desktop.
Request for Comments: Rules and Operators for multi-level chat communication
This file contains hidden or 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
| [version 1.1] | |
| Chatting happens in different levels, which allows for multi-threaded conversations. | |
| The different conversation levels are marked with a number of parantheses. | |
| Example 1: | |
| A: How are you? | |
| A: (And how is your family?) | |
| B: Fine (and fine, too). | |
| The longer a conversation lasts, the more complicated this can become. | |
| Example 2: | |
| A: ((I know)) | |
| A: (((Why not? (Oh, from home.)))) | |
| B: (((Because it's too far away.))) | |
| B: ((((yeah.)))) | |
| As evident from Ex.2, when conversation threads die, they often still remain implicitly, | |
| because switching paranthesis levels is not intuitive. We therefore propose the | |
| following operators: | |
| OPERATOR NAME | |
| <<n left shift | |
| >>n right shift | |
| ^<n> level correction | |
| All operators are unary. n always defaults to 1 and can (should) be ommitted (when it | |
| is in fact 1). A left shift decreases paranthesis level of all conversation threads by | |
| n. | |
| Example 3: | |
| A: ((Why did the chicken cross the Moebius strip?)) | |
| A: (Didn't you want to have left by now?) | |
| B: << | |
| B: Oh shit. (To get to the same side.) | |
| When a conversation thread is currently on level 0, it is removed from the conversation. | |
| A left shift is supposed to be used when low-level threads have died out. In contrast, a | |
| right shift operator, which *increases* paranthesis level, makes space for new important | |
| threads. | |
| Example 4: | |
| A: I'm so bored. | |
| B: >>2 | |
| B: Did you hear about the election results? (How's your flesh wound doing?) | |
| B: ((Go watch tv.)) | |
| Ex. 4 also illustrates how to use the optional argument n. | |
| When a message was falsely sent without (or with not enough) parantheses, the level | |
| correction operator can help: | |
| Example 5: | |
| A: (So what about the cake?) | |
| B: I ate it. | |
| B: ^<> | |
| This also works the other way around, leading to conversations such as the one in | |
| Ex. 6. While this seems to be of only theoretical nature, it is useful when a remark | |
| is made carefully (in parantheses) but immediately afterwards is deemed to not fit in | |
| them. | |
| Example 6: | |
| A: What's for dinner tonight? | |
| B: (Cake? :D) | |
| B: ^<-1> | |
| Finally, we also propose a shorthand notation for opening and closing multiple parantheses | |
| by prepending the opening paranthesis with an integer. As usual, 1 is implied: | |
| Example 7: | |
| A: (What's up?) | |
| A: ((I'm pretty bored)) | |
| B: (Not much) | |
| B: 2(Me too) | |
| A closing paranthesis always decreases the level by as much as its paired opening paranthesis | |
| opened. So for example, in Ex.8 "foo" *has* to be on level 3, no less (and no more, either). | |
| Example 8: | |
| A: 3(This 2(is a test) foo.) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment