How do you store your lexicon?
How do you store your lexicon?
I'm pretty sure a number of threads on this topic have sprung up recently, but searching couldn't find them so my apologies for creating a duplicate thread if I have done so.
How do you store your conlang's lexicon?
I'm up to the stage with my Qevesa grammar that I need to start building up a lexicon so I can participate in TCs to further refine the grammar. Problem is, I've got no idea how to store it, or even where to start; I've experimented with Text Documents or CSVs in OpenOffice, XHTML definition lists, plain text files, and none of them are satisfactory. Faiuwle's ConlangDictionary looks interesting but I'm not sure if it would work well with what I have in mind.
Ideally I'd like to create a searchable database accessible from my browser, using a SQLite or similar backend, that's simple to maintain and extensible. I quite like Guitarplayer's dictionary for Ayeri on his TayBenung site, and there's a few others I've seen that look like a well-designed interface (although I have no idea how well they work internally).
The main problem is that as Qevesa is based around consonantal roots, so I really need a means of storing all the derivative forms, and searching them all, as well as being able to edit them with ease. The resulting system could be visualised as a 3D table (X=vowel patterns / Y=roots / Z=meanings), so a database would probably be ideal, but trying to develop this is a seemingly insurmountable task. Where should I start?
How do you store your conlang's lexicon?
I'm up to the stage with my Qevesa grammar that I need to start building up a lexicon so I can participate in TCs to further refine the grammar. Problem is, I've got no idea how to store it, or even where to start; I've experimented with Text Documents or CSVs in OpenOffice, XHTML definition lists, plain text files, and none of them are satisfactory. Faiuwle's ConlangDictionary looks interesting but I'm not sure if it would work well with what I have in mind.
Ideally I'd like to create a searchable database accessible from my browser, using a SQLite or similar backend, that's simple to maintain and extensible. I quite like Guitarplayer's dictionary for Ayeri on his TayBenung site, and there's a few others I've seen that look like a well-designed interface (although I have no idea how well they work internally).
The main problem is that as Qevesa is based around consonantal roots, so I really need a means of storing all the derivative forms, and searching them all, as well as being able to edit them with ease. The resulting system could be visualised as a 3D table (X=vowel patterns / Y=roots / Z=meanings), so a database would probably be ideal, but trying to develop this is a seemingly insurmountable task. Where should I start?
Re: How do you store your lexicon?
Aw do we have to have that thread A G A I N ? (Sorry!) What you may want to have a look at is SQL syntax, Codd's 12 Rules, and how inner joins work. Also, how to make queries and fetch them with e.g. PHP. Yes, it requires some work, but it's not unworkable.
- Aurora Rossa
- Smeric
- Posts: 1138
- Joined: Mon Aug 11, 2003 11:46 am
- Location: The vendée of America
- Contact:
Re: How do you store your lexicon?
I use a Microsoft Word file with lists of lexemes, place names, personal names, and so forth.
"There was a particular car I soon came to think of as distinctly St. Louis-ish: a gigantic white S.U.V. with a W. bumper sticker on it for George W. Bush."
- Risla
- Avisaru
- Posts: 800
- Joined: Sun Mar 25, 2007 12:17 pm
- Location: The darkest corner of your mind...
Re: How do you store your lexicon?
Google Docs spreadsheet. I've also got a notebook where I write down new words, but the spreadsheet is much easier to organize.
-
- Lebom
- Posts: 196
- Joined: Tue May 11, 2010 5:50 pm
- Location: Berlin, Germany
- WeepingElf
- Smeric
- Posts: 1630
- Joined: Wed Mar 08, 2006 5:00 pm
- Location: Braunschweig, Germany
- Contact:
Re: How do you store your lexicon?
A simple but well-formatted HTML file, in which each lexeme sits on a line for itself.
...brought to you by the Weeping Elf
Tha cvastam émi cvastam santham amal phelsa. -- Friedrich Schiller
ESTAR-3SG:P human-OBJ only human-OBJ true-OBJ REL-LOC play-3SG:A
Tha cvastam émi cvastam santham amal phelsa. -- Friedrich Schiller
ESTAR-3SG:P human-OBJ only human-OBJ true-OBJ REL-LOC play-3SG:A
Re: How do you store your lexicon?
Google Docs spreadsheet, since it's a collaborative project. You can have multiple pages in one spreadsheet file, which is handy for organization.
Re: How do you store your lexicon?
For a long time I used Excel, but I'm currently in the process of migrating everything to Lexique Pro.
At, casteda dus des ometh coisen at tusta o diédem thum čisbugan. Ai, thiosa če sane búem mos sil, ne?
Also, I broke all your metal ropes and used them to feed the cheeseburgers. Yes, today just keeps getting better, doesn't it?
Also, I broke all your metal ropes and used them to feed the cheeseburgers. Yes, today just keeps getting better, doesn't it?
-
- Smeric
- Posts: 1258
- Joined: Mon Jun 01, 2009 3:07 pm
- Location: Miracle, Inc. Headquarters
- Contact:
Re: How do you store your lexicon?
Pages or Numbers.
[bɹ̠ˤʷɪs.təɫ]
Nōn quālibet inīquā cupiditāte illectus hoc agō
Yo te pongo en tu lugar...
Taisc mach Daró
Nōn quālibet inīquā cupiditāte illectus hoc agō
Yo te pongo en tu lugar...
Taisc mach Daró
Re: How do you store your lexicon?
I use to use 3x5 cards for the few words I had but now I am going to Lexique Pro.
- Foolster41
- Lebom
- Posts: 129
- Joined: Wed Oct 28, 2009 5:55 pm
- Location: Pacific Northwest
- Contact:
Re: How do you store your lexicon?
I have a word doc, and a dictonary on my wiki.
-
- Lebom
- Posts: 112
- Joined: Sat Aug 02, 2008 2:23 pm
- Location: Fast i mitt eget huvud.
Re: How do you store your lexicon?
Open Office at the moment. I believe the have a similar thing to excel in it as well.
Current Conlang Project: Karuslnko. http://karuslnkoconlang.wordpress.com
Re: How do you store your lexicon?
In smallish glass jars. I find almond vinegar preserves it best.
Zompist's Markov generator wrote:it was labelled" orange marmalade," but that is unutterably hideous.
Re: How do you store your lexicon?
As for me, I use a Numbers file. I don't need anything more complicated.
I took a course in SQL a while back, but I didn't find it particularly useful. I don't think you would need anything like that for your problem.
I might be able to help you, if you can a) explain exactly what you need, and b) run Perl programs.
I'm not sure why you would need a rank 3 array. I would have guessed roots on one axis, patterns on one axis, and for each entry the English word (and the conlang word, if that's not completely obvious from root+pattern). Then you could search for either an English word, a conlang word, or a root+pattern, and see all matching entries, or you could search for a root, and see a list of all patterns which are possible with that root (and perhaps their whole entries).
Is that what you need, or are there any other searches you need to be able to do?
I took a course in SQL a while back, but I didn't find it particularly useful. I don't think you would need anything like that for your problem.
I might be able to help you, if you can a) explain exactly what you need, and b) run Perl programs.
I'm not sure why you would need a rank 3 array. I would have guessed roots on one axis, patterns on one axis, and for each entry the English word (and the conlang word, if that's not completely obvious from root+pattern). Then you could search for either an English word, a conlang word, or a root+pattern, and see all matching entries, or you could search for a root, and see a list of all patterns which are possible with that root (and perhaps their whole entries).
Is that what you need, or are there any other searches you need to be able to do?
Re: How do you store your lexicon?
Chuma, I think you're suggesting basically what a Join does, except you'd deal with dynamically generated results instead of a static list:
Something like this. At least that's kind of what I'm doing for my database. And for the purpose of a dictionary IMNSHO a properly set-up relational database is not useless or overkill. And you can generate derivative lists in different formats easily.
Code: Select all
SELECT root, pattern, translation
FROM tbl_root, tbl_pattern, tbl_translation
WHERE root LIKE "x-y-z"
AND tbl_root.root_id = tbl_pattern.root_id
AND tbl_root.rood_id = tbl_translation.root_id;
Re: How do you store your lexicon?
in individual text files for easy feeding to IPA Zounds
scientists have discovered a capsule that makes you not a gullible fucktard!
Re: How do you store your lexicon?
That's exactly what I'm looking to do, now that I've got an unlimited net connection I'm going to start reading up on SQLite so I don't have the overhead of something as big as mySQL or whatever. Basically, the table keys would be root (c1-c2-c3) × pattern (v0-v1-v2-v3), and the translation and information in the matrix cells (the 3rd dimension could list fields such as conlang word, pronunciation, English meaning(s), etc), although the actual conlang word could be generated on the fly from some basic regex, I guess.Chuma wrote:I'm not sure why you would need a rank 3 array. I would have guessed roots on one axis, patterns on one axis, and for each entry the English word (and the conlang word, if that's not completely obvious from root+pattern). Then you could search for either an English word, a conlang word, or a root+pattern, and see all matching entries, or you could search for a root, and see a list of all patterns which are possible with that root (and perhaps their whole entries).
Is that what you need, or are there any other searches you need to be able to do?
That's the idea. Presumably I could use a SQLite DB for the backend, and generate static lists as I need for export, extracting the useful information I want.Guitarplayer wrote:Chuma, I think you're suggesting basically what a Join does, except you'd deal with dynamically generated results instead of a static list:Something like this. At least that's kind of what I'm doing for my database. And for the purpose of a dictionary IMNSHO a properly set-up relational database is not useless or overkill. And you can generate derivative lists in different formats easily.Code: Select all
SELECT root, pattern, translation FROM tbl_root, tbl_pattern, tbl_translation WHERE root LIKE "x-y-z" AND tbl_root.root_id = tbl_pattern.root_id AND tbl_root.rood_id = tbl_translation.root_id;
The trick is to keep this whole scheme simple (i.e. KISS principle) but extensible and easy-to-maintain.
Re: How do you store your lexicon?
Oh, I see. Yeah, that could be thought of as a third dimension in a table, depending on the application.Zoqaeski wrote:the 3rd dimension could list fields such as conlang word, pronunciation, English meaning(s), etc
Looks sensible.Guitarplayer wrote:Something like this.
Phew, I feel like I've forgot all about SQL. Let's see... what tables might we have?
tbl_root (root_id, root)
tbl_pattern (pattern_id, pattern)
tbl_translation (translation_id, translation, root_id, pattern_id)
Then you should be able to do
Code: Select all
SELECT root, pattern, translation
FROM tbl_root NATURAL JOIN tbl_pattern NATURAL JOIN tbl_translation
WHERE root = "x-y-z"
Anyway, that should work, but it doesn't sound like the simplest way to me. Not sure how clever the SQL interpreter is, but if you do a straight join it would have a huge list to look through, so that's hardly effective (not that it should matter unless you have a really huge lexicon).
Basically all you need is one ordinary table. I also assume that you have a finite constant number of patterns, which makes things easier if you store the table in a file. You just make a list, where each line has the different patterns for a single root. That seems much easier to me than making an SQL database just for this one wordlist. But hey, do as you like.
Re: How do you store your lexicon?
You wouldn't happen to know how to get Lexique Pro to treat capital letters the same as lowercase when it sorts, would you? I have proper nouns in my wordlist, and they sort before the ones that aren't capitalized.personak wrote:Lexique Pro is great.
Soî yelî sanoralî er verdî dormü gurišece.
Se vŕeȥe ili buz orarn dŕmn gulregi.
Economic Left/Right: -5.62
Social Libertarian/Authoritarian: -4.92
Se vŕeȥe ili buz orarn dŕmn gulregi.
Economic Left/Right: -5.62
Social Libertarian/Authoritarian: -4.92
Re: How do you store your lexicon?
Both biliteral and triliteral roots are permissible, and there are 22 consonant phonemes. So that makes 22^2 + 22^3 = 11132 possible roots... not that I think I'll use all of them, of course. I'm only going to store nominal and adjectival forms and the verbal infinitive, because that will keep the number of patterns down to a manageable level. Besides, there's no point in having a dictionary entry for every aspectual conjugation, is there?Chuma wrote: Phew, I feel like I've forgot all about SQL. Let's see... what tables might we have?
tbl_root (root_id, root)
tbl_pattern (pattern_id, pattern)
tbl_translation (translation_id, translation, root_id, pattern_id)
Then you should be able to doI'm not sure I understand your way of doing it - why does tbl_pattern have a root_id?Code: Select all
SELECT root, pattern, translation FROM tbl_root NATURAL JOIN tbl_pattern NATURAL JOIN tbl_translation WHERE root = "x-y-z"
Anyway, that should work, but it doesn't sound like the simplest way to me. Not sure how clever the SQL interpreter is, but if you do a straight join it would have a huge list to look through, so that's hardly effective (not that it should matter unless you have a really huge lexicon).
Basically all you need is one ordinary table. I also assume that you have a finite constant number of patterns, which makes things easier if you store the table in a file. You just make a list, where each line has the different patterns for a single root. That seems much easier to me than making an SQL database just for this one wordlist. But hey, do as you like.
What I don't really understand is whether I can actually store the database as a table reminiscent of an addition or multiplication table, because logically root + pattern = word. If I give IDs to every root and pattern, the cells could be identified by some kind of mathematical relationship, and each cell could then consist of a "document" containing the necessary information fields.
EDIT: Reading some of the SQLite (and SQL in general) documentation, it seems that the best idea will be to have separate tables for roots and patterns, and searching performs a join. The earlier idea of having a table with a column for each pattern might be impossible to implement, because the actual table will need to resize, and I don't think that's possible.
Re: How do you store your lexicon?
What the...sano wrote:
EXCEL 97 !!?
At, casteda dus des ometh coisen at tusta o diédem thum čisbugan. Ai, thiosa če sane búem mos sil, ne?
Also, I broke all your metal ropes and used them to feed the cheeseburgers. Yes, today just keeps getting better, doesn't it?
Also, I broke all your metal ropes and used them to feed the cheeseburgers. Yes, today just keeps getting better, doesn't it?
Re: How do you store your lexicon?
That's pretty much it, yeah. In some languages you would need numerical IDs to identify the roots, in others you could use the root itself as key. But that's all pretty basic programming, and won't affect the finished program.Zoqaeski wrote:What I don't really understand is whether I can actually store the database as a table reminiscent of an addition or multiplication table, because logically root + pattern = word. If I give IDs to every root and pattern, the cells could be identified by some kind of mathematical relationship, and each cell could then consist of a "document" containing the necessary information fields.
Yes, that would be the normal way to do things in SQL, I think. Not in other programs.Zoqaeski wrote:Reading some of the SQLite (and SQL in general) documentation, it seems that the best idea will be to have separate tables for roots and patterns, and searching performs a join.