Navigation: Main page | Reference | Sentences | Chat
A sentence is simply a sequence of Tokens. On this webpage, each sentence has an id for the sake of ease of reference. The id is in the format "Month-Day-Letter" for example the third sentence made on August 11th would have the id 0811c.
1012a. s:req is b:eq(eatery(Korean)(sen:1010a), (sen:1005a))
sen: is the Namespace that holds all Xinyuyan sentences with an id. We could save a lot of typing by referring to something already said before in a clear manner.
I extend your recently proposed abbreviation to nouns, and I make a modification that the ( ) be kept while the repeated Token is removed. The ( ) serves as a cue that something has been omitted here.
1010a. s:imply(b:hungry(I) && b:eat(time=-1d, at=eatery Korea), eatery !Korea)
1010a. I'm hungry now. I ate at a Korean eatery yesterday. These imply that I ate at a eatery today, but not at that Korean eatery.
While it's good to adopt concepts from math and compsci, I don't think it's always good to adopt syntax from programming languages into Xinyuyan, because Xinyuyan and programming languages are very different, even though they could appear similar. For example, you use the logical AND for joining two Expressions. That would imply both Expression has a clear-cut value of either true or false like a boolean expression. In real life, this is not always the case.
I would retain the "fuzziness" of everyday communication thus: instead of A && B, write {A, B} ; instead of A || B (as used in 0921b), write one_of{A, B}
It's true that your syntax uses only 3 Tokens while my syntax uses 5, but I would not sacrifice correctness for brevity.
1007a. s:dup(b:hit, 3)(hand my, table)
1007b. s:dup(c:pass, 4)(time=0d, rs:cau(b:transport({workman, sheet(steel)}, >means=e:car), ib:noise, c:wake(I, time=night -1d)))
When a Basis is missing required arguments but no s:req is in the sentence, it only indicates the speaker lacks the information for the missing arguments.
It helps to narrow down e: Namespace Tokens in the translation, based on the surrounding context. For example, if I mention "e:gun" and afterwards "place=pocket", you may translate that instance of "e:gun" as "pistol". Same applies for the e:car here.
s:dup(Token, Number, manner=Manner) means the Token is repeated Number times in some Manner (repeated without rest, repeated with consistent interval, repeated seemingly randomly, etc.) Everything except the Number and Manner in a s:dup Expression is duplicated, including the Parameters of that Token. This allows interesting new ways to say "each". s:dup can be thought as a Transform on a Basis/Composite. So for a Basis taking two Parameters B(P1, P2), repeating it with s:dup would be s:dup(B, Number)(P1, P2).
c:pass(Thing) => b:move(Thing, nearness=[far, near, far]) Recall that [ ] is an ordered list. I use it in this way to indicate that the nearness of Thing changes from far, to near, then to far again.
The time= Parameter has a two-part format to refer to a point in time. For example, 0d is today up until this moment, -1d is yesterday, -20min is twenty minutes ago.
1005a. (1)rc:live(I, >apartment) b:transport(I, \1, \2) (2)rb:eat(I, >eatery(style=Korea))
1002a. b:like(time=past, rb:annoy(>rs:cau(c:ren-ai(>friend my, (1)girl weird), b:make_noise(friend my, time=night, location=apartment shared, means=phone_call(partner=\1))), me, time=present))
c:ren-ai(Human, Human) .. To engage in romantic relationship. Derived from the Japanese phrase ren-ai.
Return Value obeys the Chain Rule and the Regression Rule. Under the Chain Rule, a Token can be returned across multiple layers, and the Return Value is always the inner most layer's Token, similar to the C++ semantics a=b=c where a and b are both set to c. Under the Regression Rule, a Basis from the Derived Namespace rb keeps searching towards inner layers until the first > mark is encountered.
1002b. b:transport(I, (from, to)=rc:live(I, >apartment), rb:eat(I, >eatery(style=Korea)))
1003c. l:more(eatery(range=Nanjing), eatery(range=Ann Arbor), aspect=count)
1003d. b:eat(I, l:xor(rice, noodle), dinner)
1003e. b:eat(I, rl:xor(>rice, noodle, selection=rice), dinner)
0926a. b:annoy(I, rs:contrib(b:need(eatery barbecue, money), >c:emit(music, means=loudspeaker)))
0926b. b:close_down(rb:need(>eatery barbecue, money), time=20260701)
b:annoy(Animal, Thing) .. Animal is affected by Thing so that it appears restless and likely feels irritated
c:emit(Source, Thing) => b:produce(Source, Thing(state=one_of{gas, sound, light, smoke}), manner=continuous)
0923a. c:ignite(p:spark_plug, mixture{gasoline, air})
0923b. b:move(r:car, place=r:fast_lane)
0923c. b:have(I, !e:car) b:plan*(I, b:buy(r:car motorcycle))
0921a. s:during(b:transport(I, ic:place(Japan), ic:place(the US)), b:eat(I, bread(small, taste=bad)))
0921b. s:cau(b:expensive(ic:car(origin=Germany)), b:plan(friend(classmate(my)), b:buy(ic:car(SUV, origin=Japan || the US))))
0921c. b:plan(friend classmate my, b:buy s:cau(b:expensive ic:car Germany, ic:car(SUV, Japan || the US)))
0918a. b:move( (1)car(white)) b:move( (2)car(black), speed=\1, direction=\1, position=b(\1))
0918b. s:cau(c:decel(\1, mode=fast), c:decel(\2, mode=fast), nb:hit(almost, \2, \1))
Notes:
In the "position" Parameter, relative positions are expressed with the initial letter of the positional relation, for exmaple "f(thing)" is "in front of thing".
lt(X) .. a Value that is less than X, assuming the comparison is valid
0904-context. W := website(topic=xinyuyan, url=http://xinyuyan.w10.site)
0904a. b:make(I, W) b:have(W, definition{t:b:make, t:s:suggest, etc})
0904b. s:suggest(is_able b:write(you, data, place=W, means=ftp), b:comm({I, you}, means=W))
0903a. s:req b:eat(Bob)
0903b. s:req b:eat(, cake)
0903c. s:req b:eat_s(cake)
0903d. s:req b:eat(Bob, req_info, time=req_info)
0901a. True
0901b. s:req b:eat(you, is_cake)
0901c. s:req(Alice, Bob, b:eat(Bob, req_info))
0831a. s:req is_ended b:tired(you, cause=b:transport(Japan, the US, means=air))
0830a. b:eat(I, cake(only))
0830b. b:eat(only, I, cake)
0829a. b:move(ball, t=0) b:hit(ball, I, t=dt)
0829b. b:move(ball, t=0) b:dodge(I, ball, t=1) b:frightened(I, t=1)
0829c. s:imsuc(b:move(ball), b:hit(ball, I))
0829d. s:then(b:move(ball), {b:dodge(I, ball), b:frightened(I)})
0828a. b:eat(I, !cake)
0828b. nb:eat(I)
0828c. nb:eat(I, cake)
0825a. cau(b:kick(I, ball), b:move(ball, direction=away))
0825b. cor(b:sunset(), b:traffic_jam(chang2-jiang1-da4-qiao2), exception=weekend)
0825c. contrib(b:sunset(), b:thoughtful(I))
0825d. b:hungry(I) b:hungry(Alice)
0824a. b:hungry(I), b:hungry(Alice)
0824b. b:eat(I, food, negate), b:hungry*(I)
0824c. b:eat(I, food), b:eat*(Alice, food, negate)
0824d. b:hungry*(I), b:hungry*(Alice)
0824e. b:eat(I, food), b:hungry^O(I)
0824f. b:eat(I, food), b:hungry*(I)
0814a. b:have(I, {pencil(c=2), pen(c=3), paintbrush})
0811a. b:transport(I, jiang1-bei3, mai4-gao1-qiao2, means=bus)
0811b. b:eat(I, apple, amount=1)
0811c. b:move(cloud(color=gray), direction=b:north, speed=slow)
0811d. b:write(I, code(function=project 2), time=night), then b:sleep(I)
To contact the owner of this webpage, send an email to clydehuang-AT-disroot-DOT-org.
Content of this webpage is available under CC0 1.0.