ConlangDictionary 0.3 - now phonology parsing is faster

Substantial postings about constructed languages and constructed worlds in general. Good place to mention your own or evaluate someone else's. Put quick questions in C&C Quickies instead.
CaesarVincens
Lebom
Lebom
Posts: 204
Joined: Thu Feb 25, 2010 7:26 pm

Post by CaesarVincens »

Well if it's a pain to code, don't bother. I'll figure out how to work things on my end.
This is a great tool already, and I know you are working to improve it as you can.

User avatar
Torco
Smeric
Smeric
Posts: 2372
Joined: Thu Aug 30, 2007 10:45 pm
Location: Santiago de Chile

Post by Torco »

Okay, decided, I'm gonna make the most awesome documentation for faiuwle's CD 3V3R!!

which will be easy, seeing as there's none :P

anyway, yeah, I'll let you know if/when I need/want anything/have a draft.

User avatar
faiuwle
Avisaru
Avisaru
Posts: 512
Joined: Mon Feb 12, 2007 12:26 am
Location: MA north shore

Post by faiuwle »

Awesome. :D

User avatar
faiuwle
Avisaru
Avisaru
Posts: 512
Joined: Mon Feb 12, 2007 12:26 am
Location: MA north shore

Post by faiuwle »

Ok, so I wound up taking a rather extended vacation from this, but I finally got around to syncing everything and just uploaded a new version. Main difference is that the deleting-phonemes bug is really fixed now, and words will be parsed as CVCV....CV(C) when phonology is off, which looks really ugly. I'll work on getting something nicer implemented, and a more free set of phonology-editing dialogs.

User avatar
Torco
Smeric
Smeric
Posts: 2372
Joined: Thu Aug 30, 2007 10:45 pm
Location: Santiago de Chile

Post by Torco »

kewl. as always, thanx for all your work...

doc is coming slow but steady

Alfar
Sanci
Sanci
Posts: 30
Joined: Wed Oct 14, 2009 4:12 pm
Location: Silkeborg, Denmark
Contact:

Post by Alfar »

Hey,

I finally got around to checking out your app. Looks pretty nice, and I like how it splits my words into syllables. I'm not sure I'm quite enough of a conlanger to get the whole cluster shebang, but my test language seems to work out ok with just an onset, peak and coda setup.

The first thing I did was add a bunch of phonemes, of course, but being the fool I am I actually entered the orthography, so I was slightly bugged by the need to select each phoneme one at a time to delete them. Ended up closing the app and starting over. Minor thing, but I guess it would be nice to be able to select several phonemes to delete or move around.

Good work, keep it up! ;)

User avatar
faiuwle
Avisaru
Avisaru
Posts: 512
Joined: Mon Feb 12, 2007 12:26 am
Location: MA north shore

Post by faiuwle »

Well, there's a button to clear the entire dictionary on the last tab - is that kind of what you wanted?

Alfar
Sanci
Sanci
Posts: 30
Joined: Wed Oct 14, 2009 4:12 pm
Location: Silkeborg, Denmark
Contact:

Post by Alfar »

Not really - I was thinking something like if I had added 40 phonemes, and decided I wanted to move up five of them, one step each. Right now, I have to click one phoneme, click move up, click the next phoneme, click move up etc.

I figured for deleting and moving, it'd be nice to be able to select multiple phonemes in the list and move or delete them with one click. I guess something like QListView::setSelectionMode(QListView::Extended) would help. It's probably a tiny issue for anyone in their right minds, though.

CaesarVincens
Lebom
Lebom
Posts: 204
Joined: Thu Feb 25, 2010 7:26 pm

Post by CaesarVincens »

You can also edit the xtml file which stores the dictionary info directly. That way you could move five phonemes from the bottom to the top in one move.

User avatar
faiuwle
Avisaru
Avisaru
Posts: 512
Joined: Mon Feb 12, 2007 12:26 am
Location: MA north shore

Post by faiuwle »

Well, if you think it would be useful, it's not hard to implement and I can stick it into the next update. It just wasn't really designed for industrial-grade phoneme management, heh.

Alfar
Sanci
Sanci
Posts: 30
Joined: Wed Oct 14, 2009 4:12 pm
Location: Silkeborg, Denmark
Contact:

Post by Alfar »

Well, if you think it would be useful, it's not hard to implement and I can stick it into the next update. It just wasn't really designed for industrial-grade phoneme management, heh.
Bah. Like I said, it's a terribly little nit to pick. I figured it'd be pretty simple to do, but it's more an if-you-don't-have-anything-better-to-do thing ;)

I wonder if I could make WordBuilder export to your dictionary format.

A thing that might be cool is to be able to interface your app with other apps - like, say, if I made a mono-compatible command line version of WordBuilder, having a way to run it from your app (preferably in a generic/configurable way so it's not tied directly to WordBuilder) would be a pretty sweet way for me to stop worrying about making a dictionary system ;)

Oh, and do you publish the source? (If you've said it upthread, I missed it) I used to code a bit in C++, I reckon it's like riding a bike. I'd love to take a peek under the hood, maybe learn some Qt for future work.

User avatar
faiuwle
Avisaru
Avisaru
Posts: 512
Joined: Mon Feb 12, 2007 12:26 am
Location: MA north shore

Post by faiuwle »

Alfar wrote:I wonder if I could make WordBuilder export to your dictionary format.
Probably, it's just XML - although as I understand your program, it doesn't record all of the syllable-level info that CD does, which would make it hard to import word phonologies, if that's what you had in mind.
A thing that might be cool is to be able to interface your app with other apps - like, say, if I made a mono-compatible command line version of WordBuilder, having a way to run it from your app (preferably in a generic/configurable way so it's not tied directly to WordBuilder) would be a pretty sweet way for me to stop worrying about making a dictionary system ;)
Sure, I've done that kind of thing before, although IIRC in Windows there were weirdnesses with directory names containing spaces and quotes around them not translating, and someone had to write a batch file, but if the command-line arguments are pretty simple it shouldn't be a problem.
Oh, and do you publish the source? (If you've said it upthread, I missed it) I used to code a bit in C++, I reckon it's like riding a bike. I'd love to take a peek under the hood, maybe learn some Qt for future work.
Yeah, in the OP there should be a link to the zip with the sources in it. If it got deleted somehow it's here.

Alfar
Sanci
Sanci
Posts: 30
Joined: Wed Oct 14, 2009 4:12 pm
Location: Silkeborg, Denmark
Contact:

Post by Alfar »

Probably, it's just XML - although as I understand your program, it doesn't record all of the syllable-level info that CD does, which would make it hard to import word phonologies, if that's what you had in mind.
I haven't thought enough about it, but it might be possible to generate the words with syllable info in them. Might be easier to export to text file, as it seems you support importing those. I'll definately have to take a look at the format again.
Sure, I've done that kind of thing before, although IIRC in Windows there were weirdnesses with directory names containing spaces and quotes around them not translating, and someone had to write a batch file, but if the command-line arguments are pretty simple it shouldn't be a problem.
That does sound kinda weird, but I still think it might be worth-while. Let me see if I can get a command line thingie running before you do anything crazy, tho ;)

Looking forward to poring through the source tonight.

Bristel
Smeric
Smeric
Posts: 1258
Joined: Mon Jun 01, 2009 3:07 pm
Location: Miracle, Inc. Headquarters
Contact:

Post by Bristel »

faiuwle wrote:Not that I know of. You shouldn't have to know anything about programming to do it, though - I think it's just a matter of installing Qt, unzipping source files, and typing things into the command line.
Ok, I'll try doing that one more time, once my roommate (who knows coding) gets back from Australia.

I'll let you know what problems come up, in case that is helpful.
[bɹ̠ˤʷɪs.təɫ]
Nōn quālibet inīquā cupiditāte illectus hoc agō
Yo te pongo en tu lugar...
Taisc mach Daró

User avatar
faiuwle
Avisaru
Avisaru
Posts: 512
Joined: Mon Feb 12, 2007 12:26 am
Location: MA north shore

Post by faiuwle »

Sure - awesome!

User avatar
Torco
Smeric
Smeric
Posts: 2372
Joined: Thu Aug 30, 2007 10:45 pm
Location: Santiago de Chile

Post by Torco »

Here's the documentation I came up with; it's not proofread, it's probably got bad spelling, and it's probably incomplete, but I wanted to run it by you [and any other reviewer, of course] before setting everything right.

Help file for faiuwle's ConlangDictionary 0.2
Documentation written by T. Boncompte

Preface

ConlangDictionary, or CD for short, is an open source C++ program written by faiuwle [no idea your real name], and released under the GPL designed to help conlangers keep track of their lexicons, although I guess a real linguist could use it to keep track of the lexicon of real languages he's documenting. CD runs under Windows and Linux and it probably could run on a Mac as well, but there's no executable file at this point. The point of CD is to let you, the user, manage dictionaries based on their phonology instead of their orthography while still allowing you, the user, to use your orthography for all intents and purposes, thus saving you the hassle of working with IPA. You're gonna need Qt 4.4+ installed in your system to run ConlangDictionary, which you can get here [http://faiuwle.pbwiki.com/f/QtLibraries.zip] if you're running Linux and here [http://faiuwle.pbwiki.com/f/QtLibraries-Windows.zip] if you're running windows, which is most likely the case, sadly.

What? how do I start the program? I don't need to tell you how to run it, right? Just click on the executable file! if it doesn't run you probably don't have the proper Windows .dll files [they need to be in the _same_ folder as the rest of CD] or something.

Entering Phonemes:

Okay, so evidently you need to tell the program what your phonology looks like before you can do anything else with the program; every phoneme has two bits of info you need to tell the program about, first; phonology and orthography. It's recommended to use either the IPA or X-SAMPA [or any derivative of it] phonetic scripts to describe what your phonemes look like, but I guess you could use any other notation you're confortable with. The Phoneme's name should be it's IPA or XSAMPA symbol, and you can assign multiple spellings to different phonemes. While it doesn't really matter what alphabetic order you assign to the phonemes you're gonna use, the parsing order is. When you have confusing spellings, like having a phoneme which you write down as <s> and another for which you use the digraph <sh> and yet another phoneme you spell as <h> you need to decide what the program is going to interpret when it sees a "sh"; if the <sh> phoneme is listed higher than the <s> on the parsing order list any "sh" string is going to get interpreted as two phonemes; <s> + <h>, while if <sh> is listed above <s>, "sh" strings are going to get interpreted as <sh>. Same applies for digraphic vowels [or trigraphic, or even more, if you're into that sort of thing]. Fiddle around until you have the phoneme inventory you want to have, and don't worry about adding extra phonemes to represent your tones, stress, gemination, long vowels or any other suprasegmental feature you might have; there's a whole tab for that.

Suprasegmentals:

It's pretty straightforward; decide on the name of the suprasegmental, enter how the orthography represents it, and then how you want it to look like in the phonemic representation. As pretty as they are, you can't use any accents, macrons, circunflexes and umlauts on consonants, and, as with the phoneme tabs that you should have just read, the parsing order of suprasegmentals is important... although it's probably not going to be very relevant unless you have a whole bunch of them.

Phonotactics:

Okay, it's time to teach the computer how he's supposed to parse words into syllables. Every syllable has an onset [Go, STRength, SHore, CoCoa], a peak [gO, shORE, strEnght, cOcOa], and a coda [streNGTH, shoRE, faiR, laMP], and you need to tell the program what particular strings can be each one of them; most likely, you want vowels to be able to become peaks, and consonants or clusters of consonants to be able to become codas and onsets; there's languages which allow for very complicated codas, very complicated onsets, both, or neither. Look up phonotactics in wikipedia or something if you don't know what I'm talking about. It's not possible to use phoneme classes with the current version, so you can't enter, say, C(C)V(glide) into the phonotactics section. You're gonna have to enter viable onsets and codas by hand.

Entering single phonemes, which are likely to make up a significant part of the actual onsets, peaks and codas of the actual words of your language, is very straightforward: just click "Add Onset/Peak/Coda" where appropriate, select the phonemes you want to add to that particular field, and you're done! for adding clusters to any field you need to make the clusters first, selecting the possible phonemes you want to combine, and then clicking "Make clusters and add them to[...]" being careful to select the proper field to want to add them to.

Bear in mind that you can also make clusters and _remove_ them from a particular field, should you need to. When you are done, just click "Save Phonotactics". You must click the box next to "Update the phonologies of all words" if you want any changes made here to affect words you've already entered... okay, you probably haven't entered anything yet, but, unless you don't get the point of ConlangDictionary, you're gonna. Also consider that you don't need to describe your phonology perfectly to the software, you might want to keep things simple and contrasting, which is why the program operates only at the phonemic level, instead of the phonetic [that means no allophony support].

Remember that you can turn off phonotactics at any time, if you don't want to deal with parsing and the such.

Words:

Finally! you've defined your phonology, as far as the program cares, at the very least, and you're ready to start doing the horribly tedious but incredibly important job you actually want faiuwle's CD for in the first place; you get to input words. You need to get a lock on the "Add Word" button and then click the text field right next to it, you go and input the orthography of the word, and the program automagically converts your orthography into a phonemic representation of the word. You can assign categories to the words, as in verbs, nouns, prepositions, etcetera, and sub-categories, as in transitive verbs, first declension nouns, or somesuch. These categories, of course, are only defined by [your description of] the language you're working with. Also, don't remember to add a definition to the word, which is kind of the point.

Load/Save:

Okay, this is all pretty straightforward, save for the fact that CD requires that you keep all dictionary files in the very same folder as the executable. Other than this, there's the most common features, like save, load, and whatnot. You can name your 'lang, if you feel like it. One of the most interesting features that have been recently added are the ability to import partial wordlists and the useful ability to export your dictionaries to a text file.

Exporting and Importing:

It's _you_, the user, who gets to choose what to export and in what order. It's likely you want to make a spreadsheet out of your lexicon: Although it's not the only way to, you can use the following formula

"/w","/p","/t","/s","/d" [ Yes, with all those commas and slashes and stuff ]

to produce an excel-readable file. If you want to fiddle around and produce your own export formulas, know that anything you enter without a "/" before it will be written verbatim at every dictionary entry for your dictionary. The arguments that an exporting formula can take are:

/w - the orthography of the word
/t - the type of the word
/s - the subtype of the word
/p - the phonology of the word, that is, the particular phoneme string associated with it
/d - the definition

So, for instance, if you were to give the export field this formula: ["/w" (/p): /d] you'd end up with entries such as these:

"go" (goU): a game which is played on a board, typically with black and white pebbles which the players take turns placing

Importing works precisely the same, so be sure to make any text files you want to import into ConlangDictionary really regular and make sure to get the formula right.

Final Notes:

You're probably going to want some feature which the program doesn't want: I know this because a) the program's not finished, b) needs are endless. Anyway, the source code is available, so you can make them happen, provided you know C++ [the programming 'lang in which SC is written]. Be sure to send any upgrade upstream so the author can see about incorporating it. There's tons of things that the program could do and that it doesn't, but don't hesitate to suggest features, although don't expect them to be incorporated overnight. This program is released under the GPL. Enjoy

Known Bugs:

[known bugs go here]
[report any bugs to here@here.w0t]

User avatar
faiuwle
Avisaru
Avisaru
Posts: 512
Joined: Mon Feb 12, 2007 12:26 am
Location: MA north shore

Post by faiuwle »

Cool! Here's some factual notes for you:
faiuwle [no idea your real name]
Just faiuwle is fine - no one online knows my IRL name anyway. :P
You're gonna need Qt 4.4+ installed in your system to run ConlangDictionary, which you can get here [http://faiuwle.pbwiki.com/f/QtLibraries.zip] if you're running Linux and here [http://faiuwle.pbwiki.com/f/QtLibraries-Windows.zip] if you're running windows, which is most likely the case, sadly.
Slight technical nitpicking - you only need the Qt libraries (.dll's for Windows or .so's for Linux) - actually installing Qt (which is more than just copying over a few libraries) is only necessary if you want to compile from the source. Also, it's technically 4.3+ (although it really doesn't matter all that much, and may well compile with just 4.0 anyway).
a peak [gO, shORE, strEnght, cOcOa],
Just as a suggestion, using "shore" as an example here is probably not great, since whether or not it has a coda is based on what dialect you speak (and whether you want to interpret syllable-final r as /r\/ or /V`/.
It's not possible to use phoneme classes with the current version, so you can't enter, say, C(C)V(glide) into the phonotactics section. You're gonna have to enter viable onsets and codas by hand.
You don't have to put this in there or anything, but for some reason I didn't think about implementing this for when I put in the feature system. Thanks for pointing it out - I've been too focused on the far distant future uses for it.
Importing works precisely the same,
except that /p is not an option when importing. There's also the Load Partial Wordlist function, for loading in wordlists from other .cdic files - not actually very interesting at the moment, but there's a lot of widgets on the last tab that don't actually do anything yet, and I'd like to clearly distinguish them from the ones that do, so that I don't get bug reports like "the XHTML export doesn't work!" (Or maybe the list of things that don't work yet should just be in the known issues section.)
[report any bugs to here@here.w0t]
Several options:
1. PM me here
2. Contact page on my wiki
3. Email (dragonflykes AT gmail DOT com)
4. Post in this thread

Either way, I'll get a message in my inbox.

Otherwise pretty nice, given some proof-reading. Thanks! :)

User avatar
faiuwle
Avisaru
Avisaru
Posts: 512
Joined: Mon Feb 12, 2007 12:26 am
Location: MA north shore

Post by faiuwle »

So, I have a question for people who think they might want to turn off phonotactics. due to having extreme numbers of possible clusters and the like.

I'm fixing up the phonology-editing dialogs (the ones that you get when you select a word and click "Edit Phonology"). What would be the simplest way to allow full control over manually defining the phonology? This would be in the syllable-editor, probably. I'm thinking either:
1. Type in the sequence you want to use as the onset/peak/coda. This might be more convenient, but you'd have to type in phoneme names (which might not be on your keyboard) and it'd be annoying for me to deal with user errors.
2. Add and remove phonemes to the onset/peak/coda one by one, using drop-down boxes. No user error issues, and no keyboard issues, but it feels kind of clunky.
3. Something else?

I'm also anticipating that you might want to fix something that got misparsed only in that the syllable divisions and onset/peak/coda divisions are wrong (but the actual phonemes are correct) so I'm probably going to add < and > buttons under each syllable in the word-level editor, and under each section in the syllable-level editor, allowing you to throw individual phonemes over the boundaries. Does that sound usable?

I can think of at least one thing that would be much more intuitive than either of these - something where you have buttons for all of your phonemes, and you click them in order and the text appears in a view (sort of like this). That would involve writing another dialog, though, which I'm not sure I want to do, especially when it's probably only going to be useful in this instance. On the other hand, if I could tweak it so that it could be used even when phonotactics is turned on, that would be pretty ideal.

What do you guys think?
It's (broadly) [faɪ.ˈjuw.lɛ]
#define FEMALE

ConlangDictionary 0.3 3/15/14 (ZBB thread)

Quis vult in terra stare,
Cum possit volitare?

User avatar
Qwynegold
Smeric
Smeric
Posts: 1606
Joined: Thu May 24, 2007 11:34 pm
Location: Stockholm

Post by Qwynegold »

faiuwle wrote:2. Add and remove phonemes to the onset/peak/coda one by one, using drop-down boxes. No user error issues, and no keyboard issues, but it feels kind of clunky.
Please not that!!!
faiuwle wrote:I'm also anticipating that you might want to fix something that got misparsed only in that the syllable divisions and onset/peak/coda divisions are wrong (but the actual phonemes are correct) so I'm probably going to add <and> buttons under each syllable in the word-level editor, and under each section in the syllable-level editor, allowing you to throw individual phonemes over the boundaries. Does that sound usable?
Yes, for me at least.
faiuwle wrote:I can think of at least one thing that would be much more intuitive than either of these - something where you have buttons for all of your phonemes, and you click them in order and the text appears in a view (sort of like this). That would involve writing another dialog, though, which I'm not sure I want to do, especially when it's probably only going to be useful in this instance. On the other hand, if I could tweak it so that it could be used even when phonotactics is turned on, that would be pretty ideal.
Speaking for myself, I have an IPA layout, but then I need to switch between that and normal layout all the time when editing both the phonetic transcription and the spelling. The best would maybe be a combination of that IPA-picker thing and keyboard input, so that you can use the keyboard for those phonemes that are represented by ASCII letters. But don't do it if it's too much hassle. I could do just as well with just keyboard input.
Image
My most recent quiz:
Eurovision Song Contest 2018

Alfar
Sanci
Sanci
Posts: 30
Joined: Wed Oct 14, 2009 4:12 pm
Location: Silkeborg, Denmark
Contact:

Post by Alfar »

How about a virtual keyboard that you can configure yourself, so you have a bunch of buttons and you can decide which character is inserted when you click each button.

Also, if you layout the buttons to resemble a real keyboard, it'd be cool to switch to real-keyboard-mapping mode, so the regular keys on the keyboard trigger the buttons you've set up.
[url=http://whee.dk]WordBuilder[/url]

User avatar
faiuwle
Avisaru
Avisaru
Posts: 512
Joined: Mon Feb 12, 2007 12:26 am
Location: MA north shore

Post by faiuwle »

Well, I implemented a mutant version of the sequence-chooser dialog that works like the IPA picker, and it shouldn't be hard to add keyboard inputs to it, too, and I could probably restrict the input with regexps... And I learned that QSignalMapper is awesome.

Alfar, the main issue with that is that not everyone has the same keyboard. Also, this sounds sort of like defining an application-specific input method, which I think should really be an OS-level thing, as I imagine that what I'd do might interfere in strange ways with actual OS-level input methods and keyboard layout options, especially in Windows.

By the way, I'm also thinking about something like, you spell your words with . to mark syllable boundaries and | to mark onset/peak/coda boundaries, and then the phonology parser can get everything right the first time and erase all the . and | from the spelling of your word afterwards. I don't know if that might wind up just being more of a pain, though, or at least unnecessary with the new dialog stuff. I guess either way, you'd have to go through and make manual changes to the whole dictionary, but it might be good for adding new words. (And of course, this would only work if the phonotactics were turned off, as the main FSM isn't broke and I'm not fixing it.)
It's (broadly) [faɪ.ˈjuw.lɛ]
#define FEMALE

ConlangDictionary 0.3 3/15/14 (ZBB thread)

Quis vult in terra stare,
Cum possit volitare?

User avatar
Qwynegold
Smeric
Smeric
Posts: 1606
Joined: Thu May 24, 2007 11:34 pm
Location: Stockholm

Post by Qwynegold »

faiuwle wrote:By the way, I'm also thinking about something like, you spell your words with . to mark syllable boundaries and | to mark onset/peak/coda boundaries, and then the phonology parser can get everything right the first time and erase all the . and | from the spelling of your word afterwards. I don't know if that might wind up just being more of a pain, though, or at least unnecessary with the new dialog stuff. I guess either way, you'd have to go through and make manual changes to the whole dictionary, but it might be good for adding new words. (And of course, this would only work if the phonotactics were turned off, as the main FSM isn't broke and I'm not fixing it.)
It depends on the language. I have a couple of conlangs where that (or at least the .) would be really useful.

Can't it be optional then? That if you leave out all the . and | the program will divide the word up into syllables the best it can. Oh, but then there's of course the problem that it might put syllable breaks where you don't want there to be any syllable break at all.
Image
My most recent quiz:
Eurovision Song Contest 2018

User avatar
Torco
Smeric
Smeric
Posts: 2372
Joined: Thu Aug 30, 2007 10:45 pm
Location: Santiago de Chile

Post by Torco »

Pretty good idea

User avatar
faiuwle
Avisaru
Avisaru
Posts: 512
Joined: Mon Feb 12, 2007 12:26 am
Location: MA north shore

Post by faiuwle »

Qwynegold wrote:Can't it be optional then? That if you leave out all the . and | the program will divide the word up into syllables the best it can. Oh, but then there's of course the problem that it might put syllable breaks where you don't want there to be any syllable break at all.
Yeah, it would be. Basically, something like this:

If the word contains no . , it's analyzed as onset-peak-onset-peak-onset-peak(-coda) (the way it is now).
If a syllable designated by .s contains no |, the first third of the phonemes are assumed to be the onset, and the last third are the coda, and the rest the peak.
If there is only one |, it's assumed to separate the onset and the peak. (If you want an onsetless syllable, you have to start it with a |, e.g. ".|a|m.".
It's (broadly) [faɪ.ˈjuw.lɛ]
#define FEMALE

ConlangDictionary 0.3 3/15/14 (ZBB thread)

Quis vult in terra stare,
Cum possit volitare?

User avatar
Colzie
Sanci
Sanci
Posts: 22
Joined: Mon Jan 29, 2007 1:37 am
Location: University of Chicago / Alcuniti &#346;ikagos
Contact:

Post by Colzie »

I like the idea behind this development, but I'm not sure I see the point of all the | notation. Wouldn't just a . be enough to syllabify things properly, or am I missing something?
[quote="Octaviano"]Why does one need to invent an implausible etymology when we've got other linguistic resources to our avail? [/quote]

Post Reply