Kuro5hin.org: technology and culture, from the trenches
create account | help/FAQ | contact | links | search | IRC | site news
[ Everything | Diaries | Technology | Science | Culture | Politics | Media | News | Internet | Op-Ed | Fiction | Meta | MLP ]
We need your support: buy an ad | premium membership

[P]
Japanese for Nerds (II)

By rtmyers in Culture
Fri Mar 26, 2004 at 09:47:27 AM EST
Tags: Culture (all tags)
Culture

This is the second article in the series "Japanese for Nerds". We will introduce a stack-based Japanese computer language, the notion of keyword parameters in Japanese, and give a BNF description of Japanese. We will also present two of the key recursive grammar rules which make Japanese so easy for nerds.


This is the second of a promised three articles. We have a lot to cover, so we will be moving fast. Also, some of the promises we made in the first article we failed to fulfill (such as presenting Japanese using Backus-Naur form), and frankly, we skipped over some things and told a few fibs. So we have to clear those up as well. Thanks to everyone for their constructive comments.

In any case, this series began with the assertion that Japanese has meaningful similarities to computer languages which make it amenable to learning by geeks. I know that this is true. For instance, the author of an early version of Emacs learned the basic structure of Japanese from me in about two hours with the help of a syntax diagram I wrote on the back of an envelope, and was chatting up girls later that evening with the help of a little dictionary. He ended up with a girl who actually found his bushy nose hair attractive.

The Japanese programming language MIND

But there is another good demonstration of how much Japanese is like a computer language, in the form of the amazing Japanese computer language called MIND (warning, site is in Japanese). Here's a sample program:

1 NI 2 WO TASU. INSATSU SURU.

This has been converted into Roman characters, called "romaji" in Japanese. Real MIND programs were written in real Japanese. In any case, this is an actual, speakable, real-world Japanese sentence. On a word-by-word basis, it means

1 to 2 (obj) add. print do.

The alert reader might think of the following dc program:

1 2 + p

Which in fact corresponds exactly to this MIND program. Actually, in MIND the NI, meaning "to" and placed after the word it applies to (in other words, being a "postposition" rather than a "preposition") is ignored as a noise word, as is the WO (object marker), also placed after the word it applies to. The "do" is also treated as noise.

This could just as easily be a FORTH program. Actually, it is a FORTH program. That's what MIND is, just an implementation of FORTH with some syntactic sugar designed to make the programs look and read quite close to actual Japanese. Its very existence proves that Japanese is, in fact, syntactically nearly identical to a stack-based computer language.

MIND, for better or for worse, never caught fire. It was apparently a solution in search of a problem. It was marketed in all the predictable ways, ranging from supposedly being the programming environment for the linuistically-challenged ("If you speak Japanese, now you can program computers!"), to the thinly-veiled nationalistic kamikaze response to the programming languages foisted on Japan by the white devils.

The Japanese do Polish

But what exactly is the nature of the TASU (add) word in the program above? In FORTH terms, it's an operator, and this is the terminology we'll adopt (although in the first article we referred to NA-I, the word meaning "doesn't exist", as a "functor", whatever that was supposed to mean; actually, it's really also a member of this family of operators). It pops some arguments off the stack (two in this case), takes them and does something, and possibly leaves something on the stack itself, in this case the result of the addition. Just like in FORTH-like languages, arguments always are "pushed" onto the stack before the operator that processes them. This is an absolute invariant in Japanese grammar. They were doing reverse Polish four thousand years ago.

Named keywords

In mathematics, addition, of course, is a commutative operation taking just two parameters, so there is no concept of keyword or named parameters. That's why MIND can just strip off the markers on the two arguments to the addition operator. In general, though, Japanese does place markers on arguments. There's a standard order, but using the markers allows non-standard ones as well. We completely neglected to discuss these markers in our first installment, trying to justify doing so with the lame comment that omitting the markers could increase the sexual attractiveness of the speaker, Actually, the markers ideally should not be omitted, although in some cases using them overly zealously can make you sound like have a stick up your ass, which has been known to reduce sexual attractiveness. In any case, there are about five we'll need to learn. One of the major ones is GA, which indicates what in English we'd usually think of as the subject of the sentence; in Fillmore's semantically-oriented "case" logic, it indicates the agent of an action, or the entity whose state is being described:

BOKU GA TASU
tasu (ga=boku)
I add

Another one we used in the example above is WO (pronounced O), for object:

ICHI (1) WO TASU
tasu (wo=ichi)
add one

Or, they can be combined:

BOKU GA ICHI (1) WO TASU
tasu (ga=boku, wo=ichi)
I add one

There's another vital named parameter, which is WA, and specifies the topic and focus of the phrase:

BOKU WA NAI
nai (wa=boku)
On the topic of me, there is none
= I don't have any

And combining WA and GA:

BOKU WA KANE GA NAI
nai (wa=boku, ga=nai)
On the topic of me, money does not exist
= I don't have any money

The alert reader will notice that this NAI is the word introduced in the previous installment, meaning "doesn't exist". Now we are attaching named parameters to it, just like we did to TASU (add). That's right. NAI is a "predicate", describing a state of affairs or an action, just as TASU is, even though in English TASU would usually be considered a verb, while NAI would be considered an adjective. This concept of predicate is key to the BNF grammar we present below.

Review

As a review now, remembering the variations we learned in lesson one, let's translate these sentences into Japanese now:

  1. I didn't have any money
  2. I add the bug [to the list of bugs]
  3. If the program was horrible

1. Recall the Past() transformation applied to words like NAI, making them NAKATTA. The entire sentence is then just BOKU WA KANE GA NAKATTA.

2. Remember the word BAGU (bug) from last lesson. SO this is just BOKU WA BAGU WO TASU.

3. Remember the word HIDOI (horrible), and the If() translation applied to that type of word, making it HIDO-KEREBA. So the whole sentence is simply PUROGURAMU GA HIDOKEREBA.

Summary

To summarize, we've learned:

  1. Japanese predicates come in two flavors. There are the ones ending in -I, like NAI. We learned how to make those negative, and past, and conditional. There are the ones like TASU, which correspond to verbs, which we haven't learned how to transform yet.
  2. Predicates take keyword arguments, all coming before the predicate, and each keyword coming after its value. The important keywords are WA, GA, WO, NI, and DE.

These keywords have a broader semantic span than their English cousins the prepositions--making them that much easier to learn. (In fact, most Japanese words have broad semantic span: Japanese partitions the world coarsely. But that is another article.) NI covers all kinds of temporal and spatial directionality and locality of state. DE covers all kinds of instrumentality and locality of action (Maxwell GA gakkou (school) DE hammer DE).

As an aside, a true nerd would attempt to express the similarity between the facts that predicates/operators are placed after their keyword/value pairs, and the fact that the keyword name is placed after its value, by treating the keyword name as a mini-predicate, which sucks up its value as an argument and leaves on the stack a semantic object giving the role corresponding to the keyword name to the value

In other words, BOKU WA is conceived of as WA(BOKU) and evaluates to [#topic, me]. In this model, the sentence BOKU WA KANE GA NAI is processed as shown below, a new token being pushed onto the stack at each step, and the result if any shown after =>:

  • BOKU
  • BOKU WA => [#topic, me]
  • [#topic, me] KANE
  • [#topic, me] KANE GA => [#topic, me] [#object, money]
  • [#topic, me] [#object, money] NAI => (NOT, {[#topic, me], [#object, money]})

My goodness. It almost looks like we have a machine translation system on our hands here. All that's missing is a simple English sentence generator...

Japanese in Backus-Naur form

Actually, what better way to summarize than to roll out that heaviest of nerdistic heavy artillery, Backus-Naur form. Comments and examples follow each rule:

<noun> ::= boku | kane | bagu | puroguramu | ichi
<keyword> ::= wa | ga | ni | wo | de
<adjective-base> ::= na- | sugo- | hido- | <adjective-negative>

These are just the lexical items we've learned so far, with one exception: the negativization of an adjective, such as NAKU NA-I, that we learned last time, is itself an adjective and subject to all the normal ways to transform it.

<verb> ::= tasu

The only lexical item in this category we've learned so far.

<adjective-present> ::= <adjective-base> I

NAI (doesn't exist), SUGOI (amazing), HIDOI (horrible).

<adjective-conditional> ::= <adjective-base> KEREBA

NAKEREBA (if it doesn't exist), SUGOKEREBA (if it's amazing), HIDOKEREBA (if it's horrible).

<adjective-past> ::= <adjective-base> KATTA

NAKATTA (it didn't exist), SUGOKATTA (was amazing), HIDOKATTA (was horrible).

<adjective-negative> ::= <adjective-base> KU NA

After adding the final I, this rule generates words like NAKU NA-I (didn't not exist), SUGOKU NA-I (wasn't amazing), HIDOKU NA-I (wasn't horrible).

<adjective> ::= <adjective-present> | <adjective-past>

NAI (doesn't exist), NAKATTA (didn't exist). The adjectival form that can be a whole sentence by itself (predicate).

<predicate-head> ::= <adjective> | <verb>

NAI (doesn't exist), TASU (add).

<role> = <noun> <keyword>
<rolelist> ::= NULL | <role> | <role> <rolelist>
<predicate> ::= <rolelist> <predicate-head>

This final rule generates all the example sentences presented so far in this series.

The heart of Japanese grammar

But we've left out a couple of the most interesting things in Japanese:

<noun> ::+ <predicate> KOTO

The ::+ notation indicates that this is another way to create a noun. In other words, we can take any predicate and simply by adding KOTO on the end, THING-ize it and make it into a noun. Let's take an example:

BOKU WA KANE GA NAI KOTO WA HIDOI

Parsing:

((BOKU-WA KANE-GA NAI) KOTO)-WA HIDOI
HIDOI ([#topic, THING (NOT ([#topic, me], #subject, money])))

This is not hard--it just means "It's horrible that I don't have any money." "The fact that I don't have any money is horrible." Voila: instant relative phrases and gerundal phrases.

Finally, an even more interesting rule, which could be said to be the pre-eminent grammar rule in Japanese:

<noun> ::+ <predicate> <noun>

In other words, any predicate can modify any noun to create a noun phrase. Of course, a simple sentence like AOI INU is a perfectly good example of this rule, but that just means "GREEN DOG". More interestingly:

BAGU GA NAI PUROGURAMU
(BAGU-GA NAI) PUROGURAMU
PUROGURAMU ([#mod, NOT(#subject, BAGU)])
That's right: the program without any bugs. In other words, once you have learned to say there are no bugs, you can immediately use this to describe something, in the form the there-are-no-bugs program. Imagine the possibilities. Consider the I-wrote-today K5 article, or the I-saw-on-the-I-always-walk-street dog.

Homework

We will leave you with the homework assignment to translate this sentence into English:

BAGU GA NAI PUROGURAMU WA NAI

We will give the answer in the third and final installment, where we will deal with:

  1. the highly regular system of Japanese verbs
  2. particles that go on the end of sentences to show questioning or emphasis
  3. quoting, the way to talk about what people are saying or thinking
  4. how to use English words in Japanese
  5. using NO, the all-purpose noun combiner

and, in general, pull everything together.

Sponsors

Voxel dot net
o Managed Hosting
o VoxCAST Content Delivery
o Raw Infrastructure

Login

Related Links
o first article
o MIND (warning, site is in Japanese)
o dc
o Backus-Nau r form
o Also by rtmyers


Display: Sort:
Japanese for Nerds (II) | 87 comments (78 topical, 9 editorial, 2 hidden)
OHIO..... HAI! (1.00 / 27) (#2)
by Hide The Hamster on Thu Mar 25, 2004 at 07:00:04 AM EST

OOooooh, Mista Eddie fatha, would you to preese teacha Eddie resson? I heva to smokes my opium and prepare Eddie runch! I drive car very poor-ry to grocery store! Me do karate and put shrimp fried rice over bed of rettus! -_-

       A
   _,-' `-._
_-'_________`-_
``---\_ _/---``
    (_ - _)
     \_._/ 8
     __H__  8
    \  |  /  8
    |\ | /|  8
   _|_|||_|_8
  `-,/   \,-'8.
     |   |    `8{
     |   |
     |-,-|
     '-'-'



Free spirits are a liability.

August 8, 2004: "it certainly is" and I had engaged in a homosexual tryst.

Hm. (2.75 / 4) (#4)
by BJH on Thu Mar 25, 2004 at 08:52:15 AM EST

This one's more interesting than part 1, for sure.

One thing: in the "BOKU WA KANE GA NAI KOTO WA HIDOI" construction, the initial 'wa' would normally be a 'ga' (actually, an even more normal construction would be to omit it). Having a 'wa' in there makes the 'boku' seem rather unconnected to the following phrase.

--
Roses are red, violets are blue.
I'm schizophrenic, and so am I.
-- Oscar Levant

Quiet fool (1.41 / 31) (#5)
by Stick on Thu Mar 25, 2004 at 09:11:03 AM EST

You'll incur the wrath of the yellow hordes for speaking their secrets so openly.


---
Stick, thine posts bring light to mine eyes, tingles to my loins. Yea, each moment I sit, my monitor before me, waiting, yearning, needing your prose to make the moment complete. - Joh3n
Do Japanese write Java script (2.40 / 5) (#10)
by Pop Top on Thu Mar 25, 2004 at 02:05:15 PM EST

in Japanese?

Holy crap (3.00 / 11) (#14)
by ZorbaTHut on Thu Mar 25, 2004 at 06:07:30 PM EST

I took Japanese for about a year, and did horribly. I never noticed it was stack-based. If my teachers had mentioned that ONCE, I would have done *so* much better.

Can I give this +2fp? Please?

I don't know.. forth? (none / 2) (#16)
by Mysidia on Fri Mar 26, 2004 at 01:19:15 AM EST

With all the strange glyphs used in the Japanese alphabets, a better analogy might be uh... machine language, except with 100x as many instructions as the x86 and without the benefit of assembly language mnemonics for everything



replicate this (none / 2) (#18)
by Highlander on Fri Mar 26, 2004 at 04:44:45 AM EST

Can you post this somewhere else too so that it doesn't get lost or deleted when rusty decides the database is too big ? This is cool enough it should be replicated, maybe on wikipedia or E2. Or did I miss the "Eternal Hall Of Fame" that kuro5hin has somewhere :-)

Moderation in moderation is a good thing.
Yeah, and English is the same as C++! (1.77 / 9) (#19)
by ant0n on Fri Mar 26, 2004 at 06:28:12 AM EST

1. This is just plain silly. It's as if someone were to say: 'English is the same as C++! Both languages use the words if, exit and while!'.
Japanese has, of course, not more similarities with any programming language, than any other human language also has. And these similarities are very few. Programming languages have a syntax and a grammar, yes, and they are 'languages' in the sense that humans can express something with them. But comparing the grammar of a human language with the grammar of a computer language, at least in the sense you do it, is naive.
If your article were meant as a joke, I'd propably only critisize that it is a bit too long for a joke. But I fear that you are dead serious.

2. BNF is by far not the 'heaviest of nerdistic heavy artillery', it's just a very simple (and boring) way of describing the grammar of a programming language. BNF is the stuff they teach you in a very first course on computer science.

this series is (2.25 / 4) (#22)
by circletimessquare on Fri Mar 26, 2004 at 09:55:53 AM EST

otaku-rific!

The tigers of wrath are wiser than the horses of instruction.

uhm.. (1.75 / 4) (#25)
by AnalogBoy on Fri Mar 26, 2004 at 12:00:44 PM EST

Bah weep gra na weep ninny-bong.

--
Save the environment, plant a Bush back in Texas.
Religous Tolerance (And click a banner while you're there)
More interesting than the last one (2.80 / 5) (#26)
by poyoyo on Fri Mar 26, 2004 at 12:32:24 PM EST

But you need to stop pretending that this description accurately describes Japanese grammar --- I'm not sure to what extent you're serious with this, but languages are much more complex and nuanced than you make it sound. Natural languages are not context-free. When you only know the introductory textbook subset of Japanese grammar, I suppose it might look this simple, but real-life Japanese is full of irregularities and exceptions.

It is not true that "arguments" always appear before the "operator", as you claim so strongly. In fact it happens often, in conversation or as a trick of literary style, that they'll come after, and this is perfectly understandable to a Japanese speaker. Your blanket statements oversimplify the reality, and you should at least acknowledge this.

That said, you are right on target with your "pre-eminent rule of Japanese grammar". I remember that back when I was studying my beginner's textbook and this rule was introduced around lesson 20, it hit me like a bombshell: suddenly everything fell together. However, I'm not sure how pertinent it is to explain it right away to someone with no previous background in Japanese; its full power only becomes evident when you are already familiar with all the different types of "predicates". Since the predicates superficially have wildly different forms (some end with "-i", some with "-ru", and even "-na" and "-no" since, although you call "no" a "noun combiner", these two particles can also be viewed as a variant of the copula "desu"), it may only lead to confusion. However, I agree that this is a point probably not emphasized enough in traditional Japanese curriculums.

(spoiler) Reminds me of Yoda (none / 1) (#27)
by TuringTest2002 on Fri Mar 26, 2004 at 12:52:02 PM EST

Bug-free program there is not.

AOI INU (none / 1) (#28)
by piter on Fri Mar 26, 2004 at 12:53:02 PM EST

means blue dog. midori no inu is "green dog"
"That that is is not not that that is not is not." Jacques Derrida
Reaction on "Japanese for Nerds" (2.12 / 8) (#29)
by japanologist on Fri Mar 26, 2004 at 01:05:48 PM EST

みなさん、今日は!  Hello everyone! It is so interesting how people really react on your brilliant observings of the Japanese language. Someone wrote you couldn't compare Japanese to a computer language as you can't compare English to a computer language. True. And wrong. You can't compare English to Japanese. Right: languages are more than a set of rules, and Japanese has its own really fun flavours of slangyness and spoken dialects. But for the written, formal way of the language, it sticks very much to extremely tight rules - so tight a comparison with a computer language (where this "thightness to the rules" is simply called "syntax") can perfectly be made. You cannot do this with English. "MIND" is a perfect example. It is a great programming language that can be read like perfect Japanese. However I know of no computer language (even if most - if not all - make use of English TERMS) reads out like Standard American Written English (SAWE), which could be compared to standard written Japanese in a way that it has a stricter syntax than the normal written or even spoken language. Again, I find it most interesting to see how much people seem to dislike your chain of thoughts. They are really true. Yes, some of you are right: there is more to a language then rules. Righto. There are things to can say (and maybe you can write) in Japanese, that won't fit into this description. However, if you do so, you drift off into slang, sociolect or dialect. And yes, Japanese has at least as many ways as any other language to say things between the lines. But somehow, this can be accomplished by means of remarks in programming languages too. This "between the lines" thing is typical to human nature and as such it has just as well found its way into programming. The other day I was going through some CSS definitions of a large web site when I found - between the lines - a comment that really amused me. This was a project where a former table-layout was transformed into a CSS layout for speed and accessibility reasons. The underlying content management system seemed to have outputed some element in form of some layout table. The programmer commented on this: // my workaround to bypass this nasty // tables generated by XXX Portal Server. See, noone teaches a programmer HOW to write a comment. They just do it. And this happens in the Japanese language too. However, the major part of it can be described just as in this great article series "Japanese for Nerds"!
凄いわねぇぇぇ!
Error in example? (none / 3) (#32)
by lordpixel on Fri Mar 26, 2004 at 04:02:55 PM EST

I can't speak Japanese, but I think I can read BNF, so, is there an error in this example?

"After adding the final I, this rule generates words like NAKU NA-I (didn't not exist), SUGOKU NA-I (wasn't amazing), HIDOKU NA-I (wasn't horrible)."

I'm missing why this is past tense. HIDOKU NAI should surely be 'isn't horrible'. 'Wasn't horrible' would be 'HIDOKU NAKATTA' ?

Following the grammar:

<adjective> ::= <adjective-present> | <adjective-past>

<adjective-past> ::= <adjective-base> KATTA

We want past tense, so we have: <adjective-base> KATTA>

<adjective-base> ::= na- | sugo- | hido- | <adjective-negative>

We want a negative, so we have: <adjective-negative> KATTA

<adjective-negative> ::= <adjective-base> KU NA

Giving: <adjective-base> KU NA KATTA

and finally we choose HIDO for <adjective-base> giving:

HIDOKU NAKATTA - wasn't horrible

As far as I can see, either the article has a typo and HIDOKU NAI means 'isn't horrible' or the author needs to go back to the drawing board with his BNF Grammar.

Any way you look at it, this is neat to play with :)

I am the cat who walks through walls, all places and all times are alike to me.

rebol dialecting (none / 1) (#43)
by pantagruel on Sat Mar 27, 2004 at 03:01:38 AM EST

base languages could perhaps be implemented as DSLs; thinking specifically of Rebol dialects:


quick description of dialecting
some sample dialects
the alien dialect

As Rebol's parse is bnf based this might be a good example to use for building a human language dialect .



Japanese syntax (3.00 / 15) (#47)
by harkonen on Sat Mar 27, 2004 at 12:43:25 PM EST

you might want to consider checking out 'A Dictionary of Basic Japanese Grammar' by Seiichi Makino and Michio Tatsui published by The Japan Times for reference on your nihongo programming project

Useful (none / 3) (#52)
by Julian Morrison on Sat Mar 27, 2004 at 03:14:08 PM EST

Maybe this method might not capture the true flexibility of the language. (It can't -- all languages upon humans are based who the grammar may play hob with for reasons various). But still, it could easily bootstrap the learner to a sufficient understanding to be able to self-teach the subtleties.

Saiyaku ! (1.33 / 6) (#53)
by Cardenio on Sat Mar 27, 2004 at 03:38:47 PM EST

Just stop with this please ! LOL. Everything about this is wrong. This not Japanese. Where is this guy getting this ? " Barrons : Japanese - Master the Basics " or something else even worse ? Look the idea is fun, but this not Japanese. Since this is all ' let's pretend ' , why don't you make up a language ! Or take an already made up language ( I'd suggest ' Vulcan ' The Vulcan language would be ' like a computer language ' wouldn't it ) and make that into ' the nerd language '

A bug in the bug example? (none / 1) (#55)
by BlckKnght on Sat Mar 27, 2004 at 05:11:46 PM EST

I may be misunderstanding this, but shouldn't the translation of "I add the bug [to the list of bugs]" use GA instead of WA: BOKU GA BAGU WO TASU instead of BOKU WA BAGU WO TATSU?

Also, I'm suprised nobody has mentioned Project LRNJ, which teaches recognition of Japanese characters (katakana, hiragana and 1000 basic kanji) in the context of a computer role-playing game. The prototype game, Slime Forest Adventure, is free to download.

-- 
Error: .signature: No such file or directory


I'm studying Chinese (none / 1) (#56)
by zephc on Sat Mar 27, 2004 at 05:14:57 PM EST

I'm studying Chinese (at the intro level) and would love to see a BNF for (Mandarin) Chinese.

Excellent (none / 1) (#64)
by tetsuwan on Sun Mar 28, 2004 at 11:02:23 AM EST

I will use this. Of course it overly simplifies everything, but that's the point of all introductory grammars. First pidgin grammar to have something to stand on, then tackle the advanced later on.

Njal's Saga: Just like Romeo & Juliet without the romance

Description of "NAI"... (none / 0) (#69)
by marcmengel on Mon Mar 29, 2004 at 10:49:47 AM EST

It seems to me the way you describe "nai" and the way you translate it don't quite match up.

I think from they way you translate it that
  nai(wa=x,ga=y:default "the universe")
means
  y does not have x
which when y is defaulted, means "the universe does not have x", or it doesn't exist.

But of course, I'm generalizing from a very few, very simple examples you have shown...

Why the complaints? (none / 0) (#70)
by mveloso on Mon Mar 29, 2004 at 03:41:02 PM EST

It's so funny reading the comments about this set of articles. The fluent are horrified at the brutal simplification of the language, whereas the illiterate are happy to be able to understand even a little bit.

If you are fluent, realize that anyone speaking in the manner described in this article will immediately be branded a foreigner, and the listeners' will adjust accordingly. It's baby talk - it gets you understood, but there's a lot that you can't say. The goal isn't to hold high-level negotiations about weighty subjects. The goal is to be amusing and somewhat interesting in a social situation.

How do you post in Japanese? (none / 0) (#77)
by fuchikoma on Tue Mar 30, 2004 at 07:37:03 PM EST

Every time I try to post in Japanese on K5, it comes out as a row of question marks or random gomibake... what's the secret? O_o;

Recursive? (none / 0) (#84)
by bkhl on Mon Apr 05, 2004 at 12:56:34 PM EST

Um, all natural languages have recursive grammars. They wouldn't be very useful otherwise...

when the hell is number three (none / 1) (#85)
by pantagruel on Tue Apr 20, 2004 at 11:25:14 AM EST

I've been waiting patiently...

Japanese for Nerds (II) | 87 comments (78 topical, 9 editorial, 2 hidden)
Display: Sort:

kuro5hin.org

[XML]
All trademarks and copyrights on this page are owned by their respective companies. The Rest © 2000 - Present Kuro5hin.org Inc.
See our legalese page for copyright policies. Please also read our Privacy Policy.
Kuro5hin.org is powered by Free Software, including Apache, Perl, and Linux, The Scoop Engine that runs this site is freely available, under the terms of the GPL.
Need some help? Email help@kuro5hin.org.
My heart's the long stairs.

Powered by Scoop create account | help/FAQ | mission | links | search | IRC | YOU choose the stories!