Staticfree Blog

I have been prowling the concrete wilderness for 2 hours, 13 minutes, and 5 seconds. Before that, I was at home.

Mon, 15 Mar 2004

I'm certainly not the first to come up with this idea, but I think it would be pretty swell to have a LojbanRDF converter. (For those playing along at home, unaware of what I'm babbling about, I'll try and make it understandable to as wide an audience as I can).

Lojban and RDF are more alike than you might imagine. One is a constructed spoken language intended to convey ideas clearly and unambiguously, while the other is a machine-readable language for describing things and ideas. Save the "spoken" bit, they're both of the same mindset: create a way to communicate (between people, machines, whatever) without all the crap that makes communication confusing.

There are a few levels to this. First off, to the skeptics: of course one cannot directly translate any arbitrary RDF to Lojban. Both Lojban and RDF provide languages for discussing objects and ideas. However, the meaning of those languages is up to the user to interpret (but is clearly defined in dictionaries and namespace declarations). So, besides the semantics of parsing the two languages, the real meat of a project working with the two is a mapping, a translation.

The best example of this that I can immediately think of is a Lojban mapping of the FOAF namespace. Consider, for example:

RDF


  <foaf:Person rdf:ID="steve">
    <foaf:name>Steve Pomeroy</foaf:name>
    <foaf:knows>
      <foaf:Person>
         <foaf:name>Carolyn</foaf:name>
      </foaf:Person>
    </foaf:knows>
  </foaf:Person>

The English equivalent would be something like, "I am describing a person (#steve). #steve's name is Steve Pomeroy. #steve knows a person named Carolyn.". The next step is to do a similar mapping into Lojban. For this, we will use the Lojban "se slabu" (which translates to "is old/familiar/well-known to", "prenu" which means "is a person" and "cmene" for name. For convenience, I'm translating the RDF identifier rdf:ID="steve" (which can be expressed as "#steve") to the Lojban "la stiv".

Lojban

la stiv. prenu .ije la stiv.se cmene zoi gy. Steve Pomeroy gy. .ije la stiv. se slabu da .ije da prenu .ije da se cmene zoi gy. Carolyn gy.

This parses, using the ever-handy jbofihe, to:

[1(2[prenu1 (person(s)) :] la stiv. [NAME])2 [is, does] <<3prenu being person(s)>>3]1 .i `.' je and [4(5[cmene2 (named thing(s)) :] la stiv. [NAME])5 [is, does] <<6se cmene being named>>6 (7[cmene1 (name(s)) :] zoi gy Steve Pomeroy gy ?)7]4 .i `.' je and [8(9[slabu2 (observer) :] la stiv. [NAME])9 [is, does] <<10se slabu being observer(s) of familiarity>>10 (11[slabu1 (familiar thing(s)) :] da X)11]8 .i `.' je and [12(13[prenu1 (person(s)) :] da X)13 [is, does] <<14prenu being person(s)>>14]12 .i `.' je and [15(16[cmene2 (named thing(s)) :] da X)16 [is, does] <<17se cmene being named>>17 (18[cmene1 (name(s)) :] zoi gy Carolyn gy ?)18]15

You should be able to see that this isn't any where as optimized a way of saying it as possible (it doesn't make use of Lojban's subject context), but it conveys the exact same information as the RFD encoding (keeping things like "#steve" ≡ "la stiv." in mind).

The first step is to create a framework for creating direct translations between the two. Starting out with simple namespaces that can be directly mapped, as was shown above. Mappings should probably be encoded in RDF in order to please the sick and twisted. Eventually, features of Lojban and RDF will have to be taken into account and then translated/transformed. Logical constructors could be used for sequences, subjects can be omitted when redundant, etc.

trackback enabled :: 5 comments

Mon, 05 Jan 2004

I just recently discovered a language blog that seems to have some rather wonderful content on it. Mark Liberman wrote a wonderful piece, Divine Ambiguity, that pokes fun at Pat Robertson's recent [mis]use of the word, "like". Mark does well: it is a piece of absolutely hilarious and subtle wit.

trackback enabled :: 2 comments

Tue, 22 Apr 2003

Singing computers rule.

So much so that I decided the lojban text-to-speech that I'm working on needed to be able to sing. Well, it turns out that festival 1.4.3 has a cute little .scm file that lets you create XML files marked up with musical notes and durations for singing. With a little bit of poking around, I was able to convince our lojban voice to want to sing. With a little more poking around and about an hour trying to translate, I put together: "Daisy" (as in the song HAL9000 sings when Dave kills him in 2001).

Continuing the same theme, I was pointed out this project (which I had tried first, but which failed miserably): Flinger. Some of the examples are amusing, not in their badness, but in their resemblance to the pop music's tendency to use vocal distortions on actual singers.

Also, if you've never heard them before, a geek or two put together this impressive 386dx singing computer. They even have a hard-core music video!

trackback enabled :: leave a comment

Thu, 20 Feb 2003

I got frustrated with the lack of a Lojban text to speech voice for Festival last night, so I put one together. It took a bit of research, but I've grown to like Festival's engine. It's all lisp with a C++ core. As Lojban has an entirely phonetic textual representation, it was easy to hack together a phoneme mapping an existing diphone collection for Lojban. (in other words, I didn't have to record myself speaking to make it go).

In stopping by the Lojban IRC channel, I found out that someone has recorded some diphones for Lojban (albeit with a French accent). Best yet, the recordings are indexed by phoneme-pair. With a bit of work (listening to 1186 wav files and labeling where the key parts of the waveform are) we can have a Lojban text-to-speech that's got its own voice! Of course, I don't have this much time to spend on such, but who knows. Maybe my 16h of bus riding will prove to be productive.

trackback enabled :: leave a comment

Fri, 07 Feb 2003

Way back in elementary school, in what must have been chorus, I learned one of my favorite songs. It's a simple, beautiful song: goodnight in many different languages. I've finally found it, it's called Dreams of Harmony by Joanne Hammil. Here is an encoded version of the lyrics:

Good night, bonne nuit, お休みなさい,
buenas noches, lala salama, 晚安,
Спокойной ночи, Gute Nacht, לילת טוב.

Where ever you rest your head tonight
we are all one family, let's hold tight
and fill the world with dreams of harmony tonight.

Except for the Swahili (which I can't find any encodings for) the above should be correct in the language's native characters. Mouse-over to see the phonetic pronunciation.

trackback enabled :: leave a comment

Tue, 05 Nov 2002

I've finally figured out how to type in japanese, hebrew, greek and a variety of other useful character sets using emacs. In emacs21, the "mule" system is remarkably powerful. Simply specify the input mode with A-x set-input-method. Pick one, then do A-x describe-input-method and it'll show you a nice mapping of the keys. This now means that I can write ひらがなと カタカナ right from within the editor :-) I can now also typeset that beautiful Hebrew phrase from the Bible (Song of Solomon 6:3)

אבי לדזדי זדזדי

In english "I am my beloved's and my beloved is mine."

And in attempting to post this blog entry, I found out the hard way that you need the mule-ucs system in order to make it so you can write those characters to a UTF-8 encoded file. Debian has a package for it suchly named.

trackback enabled :: leave a comment

Thu, 27 Jun 2002

My learning of lojban is coming along well. It really is amazingly easy to learn. The best part about it, is that all the tools to speak / write it (and most importantly, write it well) are freely available on the web. I mean, there're grammar checkers in debian's apt (jbofihe) which let you verify your sentences against the grammar and see what it thinks you were trying to say. So far i havn't even tried to understand arbitrary spoken lojban, but i need to learn quite a bit of grammar first. I have a lot of respect for languages that essentially build emoticons into the language.

My tests at Children's the other day went well. I had a fun echo cardiogram (honestly fun... i could see my heart beating and stuff) and a rather unfun stress test. Stress tests consist of running on a treadmill, with an increasing level of difficulty, while you have many electrodes stuck to your chest. You walk/run until you can't any longer. So, out of shape as i am, lasted only 18 minutes. ah well, at least i bike regularly.

I've also just put my GnuPG public key on a public keyserver, as well as my own page. Now i'm all 1337 and crypto-enabled. I should really learn more about how public-key encryption works, though - it seems quite nifty.

mi nelci la latci'o .u'i ("i like kittens :-)")

trackback enabled :: leave a comment

Wed, 05 Jun 2002

I've always been interested in constructed languages (conlangs) and how languages evolve and interplay. Some day, i might even try and learn something of linguistics. Until then, I can be amused by Lojban and such. Maybe i'll try and learn some of the grammar, although a potentially spoken language based on predicate logic sounds a bit ... convoluted. At least they claim it's easy to learn.
trackback enabled :: leave a comment

Mon, 22 Apr 2002

Bad Rob. Don't send me links to really interesting etymology pages when I have assembly homework to do.
trackback enabled :: leave a comment

Wed, 17 Apr 2002

Si tu poter leger ce ci, tu [can read interlingua]. Ok, so it's easier to read than it is to write. I wonder if babelfish or Google will make a translator for it. You can use Google with it, anyhow.

Oh and artists who toy with society are cool.

trackback enabled :: leave a comment

Tue, 16 Apr 2002

Rob just showed me Interlingua. It's not quite french, not quite spanish and fairly distant to english... yet it's oddly readable. Cool.

On a related note, I have recently installed a barrage of Unicode fonts on my system. One particular one, Microsoft's TTF Arial, is 23MB in size. Sadly, X 4.1's modular TTF renderer gets quite slow when reading from it. It doesn't crash, but expect 10 seconds for a page to display that uses it.

trackback enabled :: leave a comment

Recent Comments

Categories

B6 d+ t++ k+ s u- f- i+ o++ x++ e++ l c-- (decode)

Archive by date

May
Sun Mon Tue Wed Thu Fri Sat
       
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
2008
Months
MayJun
Jul Aug Sep
Oct Nov Dec
If you can read this text, you're either on a browser that doesn't support CSS or one that supports it badly. You've probably noticed that my layout is a bit choppy and perhaps even ugly. My layout here is designed to work in all browsers that support CSS 1 and 2 and was designed by reading the W3C CSS recommendations. It was tested in the most CSS-compliant browser I know of, Firefox. If you want this page (and others too!) to look nice, I reccomend trying Firefox - it's completely free and can also block those annoying popup ads out-of-the-box.

Powered by Blosxom Atom RSS 1.0 RSS 1.1 RSS 1.0 no comments Technorati Profile GeoURL Valid XHTML 1.0! Valid CSS!

Creative Commons License
All original sound, text and graphics on this site (staticfree.info) are licensed under a Creative Commons License.