Scratchpad: Experiments with trees

A forum for all topics related to constructed languages
Post Reply
User avatar
OTʜᴇB
roman
roman
Posts: 960
Joined: Sat 14 May 2016, 10:59
Location: SW England

Scratchpad: Experiments with trees

Post by OTʜᴇB » Sun 21 Jan 2018, 18:26

As I start just about every one of my conlang projects: I haven't done any in quite a while. A lot of my more recent conlanging adventures were remakes of Dijo, which I'd argue is my best work yet, but I want to do something new this time. I've been looking around for inspiration for a while, and I found something I might find quite interesting. I'm going to try and make a language based around trees - not trees that grow in the ground and comprise forests, but topological trees. I want the language to have some small hints of polysynthesis, but not try to be polysynthetic. I also don't want to make this language try to be realistic as with all my projects. One thing I do want to try is tying it to some very loose idea of a conculture, so I can explore other things and make justifiable decisions about the language (stuff like making a flag, or stylistic choices about writing systems etc.). This conculture will by no means be a significant part of this, but I'll happily start making stuff up about it and elaborating if people are interested.

So, to begin, I'll elaborate on what I mean when I want to base this language around topological trees:

In the unlikely event you're not aware, or you are aware but haven't looked into them in much if any depth, topological trees are a classification of graph (as in graph theory) in which there are no cycles. The tree I imagine most of you will think of first is a Parse Tree (below). The idea of what I want to do is have one clause be one word, then this word will be broken up into this tree based on different grammatical rules. On the one hand, this just sounds like every other language, as they can all be broken up into a tree (just look at parse trees), but on the other, these languages don't explicitly follow a tree. What I want to do to make my language a bit different, is to have this tree be an integral part of the way the language works. There won't just be branches, but there will be different kinds of branch, and the tree will heavy inter-twine with the writing system, so the system can be almost logographic, with each word being a unique symbol, but it being comprised of a large selection of content words, each being comprised of something else. This whole thing would produce an incredibly non-linear system that I think could be really interesting to make and use.

Image

So, that just about covers basic description, let's get into the interesting bit of actually making something. Linking back to the vague idea of a conculture, I want the language to pose as a con-conlang, being made by the people in the conculture. It's not going to be some kind of IAL, but it's going to have some degree of logic to it, and I'm not going to be throwing in irregularities. Phonology-wise, I'm going to make something leaning towards large, but not by far. I want words to be somewhat compact and varied, but not too much. Here's a first draft:

Code: Select all

/ t̪~t d̪~d c ɟ k ɡ / < t d c j k g >
/   n̪~n    ɲ   ŋ  / <  n   ɲ   ŋ  >
/  θ   ð  ç ʝ x ɣ / < _ ð s z x _ >

/ i ɯ / < i u >
/ ɛ ʌ / < e _ >
/ a ɑ / < a _ >
I've put an underscore where I'm not sure how to romanise it yet - the gaps will be filled in eventually. As for phonotactics, this is my first idea:
  • CVN syllable structure
  • No two nasals can be adjacent i.e. a syllable that ends with a nasal may not be proceeded (followed) by one that begins with a nasal
  • The allophony is just optional and not rule-driven. The sounds are relatively similar, and one might be easier to pronounce than the other in certain situations
Any kind of grammar is just random ideas in my head at the moment, but I expect the next thing I'll be adding is some basic grammar rules or concepts to expand upon.
:con: : Current Project

BTW I use Arch
User avatar
Creyeditor
mongolian
mongolian
Posts: 4399
Joined: Tue 14 Aug 2012, 18:32

Re: Scratchpad: Experiments with trees

Post by Creyeditor » Sun 21 Jan 2018, 18:58

Wow, that really sounds like an interesting idea. So many phoneme charts, but you don't usually see trees in conlangs (there are some notable exceptions though).
Creyeditor
"Thoughts are free."
Produce, Analyze, Manipulate
1 :deu: 2 :eng: 3 :idn: 4 :fra: 4 :esp:
:con: Ook & Omlűt & Nautli languages & Sperenjas
[<3] Papuan languages, Morphophonology, Lexical Semantics [<3]
User avatar
OTʜᴇB
roman
roman
Posts: 960
Joined: Sat 14 May 2016, 10:59
Location: SW England

Re: Scratchpad: Experiments with trees

Post by OTʜᴇB » Mon 22 Jan 2018, 12:14

Creyeditor wrote:
Sun 21 Jan 2018, 18:58
Wow, that really sounds like an interesting idea. So many phoneme charts, but you don't usually see trees in conlangs (there are some notable exceptions though).
Indeed. I'm pleased with the idea, as it's definitely not a common one, so I don't really have any existing languages to inadvertently copy.

Anyway, I've got some basic ideas about the use of trees grammatically.

The root of the tree - by default - is a verb. By itself, this is just either an instruction or an exclamation, such as "(you), eat" or "(they're) playing". This can be branched vertically (more on that in a bit), but the only horizontal branch will be into a Verb and Noun - it is from here that we build complete clauses.

I'm putting branches into two groups: Horizontal and Vertical. Horizontal branches are grammatical ones, and so these will change the meaning of the sentence as a whole. These might be adpositions, more content words, articles, negatives, classes etc. Vertical branches are more descriptive, and will include adjectives, adverbs, some less grammatical classes, and some adpositions. For instance, the sentence "The quick brown fox jumped over the lazy dog" would be visualised a bit like this:

Code: Select all

[jump][DEF][fox][DEF][dog]
⌈over⌉[ quick  ]⌈  lazy  ⌉
⌊    ⌋[ brown  ]⌊        ⌋
Tree (as requested by Creyeditor)

Code: Select all

      _____________S_______
     /              \       \
    V                V       V
   / \              / \     / \
jump over quick-brown H  lazy H
                     / \     / \
                   DEF fox DEF dog
Here, we have our clause broken up into three parts. First, the root is branched into a Verb, Subject, and Object, giving what could be described as VSO word order. Both of our nouns have a horizontal split of a definite article as this provides important information. Both the fox and the dog have adjectives tied to them, so there are vertical splits there. The adposition on the verb is in a vertical split because one could argue that it isn't vital information. All that's needed to know is that a fox did some jumping in relation to the dog - whether it is over, past, around, or through isn't vital to understanding the jist of what happened.

What constitutes a H/V branch here could of course change as I continue to work on the language, but I thought this example made a good demonstration of the tree concept in use. One might also consider putting the vertical splits before the horizontal ones, so our dog section looks more like this:

Code: Select all

⌈DEF⌉[dog ]
⌊   ⌋[lazy]
At the moment, I'll say both of these are allowed and mean the same thing, but "branch order" might become an interesting grammatical rule that can be used to change the meaning. I might also make word order a bit more free, so the speaker/writer can put them in what order he/she wishes, then use noun case to show what bit means what - this is of course just a scratchpad, and I intend to make lots of changes as I go.
Last edited by OTʜᴇB on Mon 22 Jan 2018, 21:25, edited 1 time in total.
:con: : Current Project

BTW I use Arch
User avatar
OTʜᴇB
roman
roman
Posts: 960
Joined: Sat 14 May 2016, 10:59
Location: SW England

Re: Scratchpad: Experiments with trees

Post by OTʜᴇB » Mon 22 Jan 2018, 15:00

Thinking about this tree representation, it occurs to me that there needs to be an order in which to vocalise each component. Some thoughts about ways to do it could include a breadth/depth first traversal of the graph, but this might be difficult to understand.

I think I'm settled on this: A depth-first traversal made a bit easier. By picturing the tree such that both kinds of branch are represented horizontally, and the top of a vertical branch comes before the bottom, each components are read left-to-right in this pictured graph. To refer back to the example I used previously:

Code: Select all

[jump][DEF][fox][DEF][dog]
⌈over⌉[ quick  ]⌈  lazy  ⌉
⌊    ⌋[ brown  ]⌊        ⌋
Here, we start by looking at how the tree is formed. This current idea makes it quite simple. On the first level, you have "jump fox dog". The jump is followed by "over", then the fox and dog are preceded by "DEF". Lastly, the DEF.fox and DEF.dog are followed by their respective adjectives. This gives the final sentence being read:

"jump over the fox quick brown the dog lazy"

Looking at this separately, it appears more that we just have a basic VSO language that puts articles before the noun and adjectives after, and that honestly isn't far off. What I want to do to make it more interesting is look into more free word orders. I might add in a first level divide particle that would come between each main section of the clause that would make more complicated clauses easier to parse when listened to. Say the particle is /i/, the clause from before becomes:

"jump over i the fox quick brown i the dog lazy"

This looks a bit iffy with shorter clauses, so I might make this an optional addition to make it easier - a bit like putting dots between what would be words in Japanese so poor learners like me can understand it more easily, only to be used more liberally.

The next problem that one might come across is embedding clauses within other clauses, take this example:

"The squawking bird stomped on the worm"

We have a little clause embedded in the main one. What I'm thinking is putting in a little pause, and just putting the clause in the middle as if it's just another bit of a normal one. If we say our fox from before is smoking a pipe as he jumps, we might put it together like this:

Code: Select all

[jump]|[PROG][smoke][DEF][fox][pipe]|[DEF][dog]
⌈over⌉|[           quick           ]|⌈  lazy  ⌉
⌊    ⌋|[           brown           ]|⌊        ⌋
Which would then be read out like this (including our -i- particle):

"jump over i -smoking the fox- quick brown i the dog lazy"

You can clearly see where the extra clause has been dropped in, and the -i- particle makes it nice and clear where each bit of the clause appears. What are hyphens in the passage above might be represented with another particle, or maybe something like a glottal stop - making it a pause, but not one that would come across like a word boundary, which could become ambiguous.

Another thing I'm noticing is that - when there isn't much description - words basically become long strings, which isn't very space-efficient and lacks the interest that the system is intended to bring. I'm thinking of dividing up these branches into more groups, making a distinction between a split-to-left and a split-to-right. I would need to make specific things only work in one direction to avoid ambiguity with multiple splits along the same axis, but it would definitely make it easier to retain the vertical interest of the system and keep it from being too linear.

The distinction would likely be that the most common but small things would go upwards. These things would include articles, some classes, or negatives. Then important grammatical things that are less common would go in front, like remaining classes. The remaining, more supplemental, grammatical things would come behind - things like plurals for instance. Then below comes description like adjectives and adverbs - and each of those could be split to the left with intensifiers for instance.

With this new information in mind, and adding in a NOM and ACC class to free up word order, we can then remake our main example sentence (with the embedded clause) to look more like this:

Code: Select all

|[smoke][PROG][  DEF   ]|[jump][  DEF   ]
|[     ][    ][NOM][fox]|[    ][ACC][dog]
|[        quick        ]|[over][  lazy  ]
|[        brown        ]|[    ][        ]
Now it looks much more interesting. I think this seems like a good enough basis to work from. Next, I think I'll start working on picking out a selection of articles, cases, and so on, and decide where they'll go.
:con: : Current Project

BTW I use Arch
User avatar
Creyeditor
mongolian
mongolian
Posts: 4399
Joined: Tue 14 Aug 2012, 18:32

Re: Scratchpad: Experiments with trees

Post by Creyeditor » Mon 22 Jan 2018, 19:52

Could you maybe translate the bracket notation into 'real' trees? That would make it easier to understand, at least for me [:$]
Creyeditor
"Thoughts are free."
Produce, Analyze, Manipulate
1 :deu: 2 :eng: 3 :idn: 4 :fra: 4 :esp:
:con: Ook & Omlűt & Nautli languages & Sperenjas
[<3] Papuan languages, Morphophonology, Lexical Semantics [<3]
User avatar
OTʜᴇB
roman
roman
Posts: 960
Joined: Sat 14 May 2016, 10:59
Location: SW England

Re: Scratchpad: Experiments with trees

Post by OTʜᴇB » Mon 22 Jan 2018, 21:16

Creyeditor wrote:
Mon 22 Jan 2018, 19:52
Could you maybe translate the bracket notation into 'real' trees? That would make it easier to understand, at least for me [:$]
I'll certainly give it a go. I wasn't sure how I'd do it though. Doing it in the code block is a bit finicky, and Images can take a really long time. I'll see what I can do.
:con: : Current Project

BTW I use Arch
User avatar
Creyeditor
mongolian
mongolian
Posts: 4399
Joined: Tue 14 Aug 2012, 18:32

Re: Scratchpad: Experiments with trees

Post by Creyeditor » Mon 22 Jan 2018, 21:32

So I think I get your representations now. Maybe I could provide the trees?
Creyeditor
"Thoughts are free."
Produce, Analyze, Manipulate
1 :deu: 2 :eng: 3 :idn: 4 :fra: 4 :esp:
:con: Ook & Omlűt & Nautli languages & Sperenjas
[<3] Papuan languages, Morphophonology, Lexical Semantics [<3]
User avatar
OTʜᴇB
roman
roman
Posts: 960
Joined: Sat 14 May 2016, 10:59
Location: SW England

Re: Scratchpad: Experiments with trees

Post by OTʜᴇB » Mon 22 Jan 2018, 21:36

Creyeditor wrote:
Mon 22 Jan 2018, 21:32
So I think I get your representations now. Maybe I could provide the trees?
If you want to make trees, then by all means go for it. It would be nice to see how these things look when visualised in different ways - and if it makes it easier for people to understand how it's working, then I have no reason to stop you [:D]
:con: : Current Project

BTW I use Arch
User avatar
Creyeditor
mongolian
mongolian
Posts: 4399
Joined: Tue 14 Aug 2012, 18:32

Re: Scratchpad: Experiments with trees

Post by Creyeditor » Mon 22 Jan 2018, 21:54

Are these trees correct?
Spoiler:
Image
Edit: corrected
Image
Spoiler:
Image
Spoiler:
Image
Edit: corrected
Image
Last edited by Creyeditor on Thu 25 Jan 2018, 20:04, edited 1 time in total.
Creyeditor
"Thoughts are free."
Produce, Analyze, Manipulate
1 :deu: 2 :eng: 3 :idn: 4 :fra: 4 :esp:
:con: Ook & Omlűt & Nautli languages & Sperenjas
[<3] Papuan languages, Morphophonology, Lexical Semantics [<3]
User avatar
OTʜᴇB
roman
roman
Posts: 960
Joined: Sat 14 May 2016, 10:59
Location: SW England

Re: Scratchpad: Experiments with trees

Post by OTʜᴇB » Mon 22 Jan 2018, 23:18

Creyeditor wrote:
Mon 22 Jan 2018, 21:54
Are these trees correct?
Spoiler:
Image
Spoiler:
Image
Spoiler:
Image
Almost

On the first one, my ASCII attempt put "quick-brown" in there so it was easier to see, but I'd've made it a 3-way split of "quick", "brown", and the H.

The second one is fine.

The third one is more interesting. The first branch is correct. The second one has the same thing with the "quick-brown" as the first. That big H split would technically be a first H split into 2 H splits and the "pipe", then each of those H splits becomes the "PROG smoke" and "DEF fox", because all 5 of those are not extensions of the one thing, but rather is an embedded clause. I'm tempted to suggest replacing that H with an S because the bit below it is an embedded clause in the word.

The trees look really nice though. How did you make them?
:con: : Current Project

BTW I use Arch
User avatar
Creyeditor
mongolian
mongolian
Posts: 4399
Joined: Tue 14 Aug 2012, 18:32

Re: Scratchpad: Experiments with trees

Post by Creyeditor » Tue 23 Jan 2018, 19:07

Thanks for your feedback. I'll correct it, when I find the time. The feedback on the last tree was really important for my understanding. I used Miles Chang's online syntax tree generator, see here.
Creyeditor
"Thoughts are free."
Produce, Analyze, Manipulate
1 :deu: 2 :eng: 3 :idn: 4 :fra: 4 :esp:
:con: Ook & Omlűt & Nautli languages & Sperenjas
[<3] Papuan languages, Morphophonology, Lexical Semantics [<3]
User avatar
OTʜᴇB
roman
roman
Posts: 960
Joined: Sat 14 May 2016, 10:59
Location: SW England

Re: Scratchpad: Experiments with trees

Post by OTʜᴇB » Tue 23 Jan 2018, 21:54

Ok, time for some proper grammatical content: Here is the first draft set of noun classes to use in the language, all marked with a branch direction (U/D/L/R):

Location
  • Apudessive "beside" (R)
  • Inessive "inside" (U)
  • Intrative "between" (literally between the two nouns)
  • Locative "at" (R)
  • Pertingent "against/touching" (R)
  • Postessive "behind" (R)
  • Subessive "below" (D)
  • Superessive "above" (U)
See what I did with these? The branch direction is based on what the class means wherever possible. While a tad irregular compared to the rest of the system in its current form, I think it adds a nice level of intuition to it, which I hope to take advantage of in other places later on.

Motion
  • Ablative/Initiative "from; starting at" (R)
  • Elative "out of" (R)
  • Lative/Terminative "to; ending at" (L)
  • Illative "into" (L)
  • Perlative/Prolative "through/via" (U)
This tries to use the intuitive aspect of the previous set. I've merged several of these as they have a relatively similar meaning that can be discerned through context, and I'll just about always take an opportunity not to have to come up with more grammatical words and things [:P] . With a motion verb in the clause, one could also use location cases - using the Superessive for instance for "over".

Time
  • Accusative "for _ (time)" (R)
  • Essive/Temporal "at" (U)
  • Limitative "due by; until" (L)
Morfofo
  • Accusative (subject) (U)
  • Instructive "by means of" (U)
  • Instrumental "using" (U)
  • Nominative (object) (U)
I've never done a free-word-order-type-thing before, so I'm kind of new to this kind of case use, and I want to come up with some kind of rules to determine what order to use. It might be order of emphasis, with the topic being first and least important bit of information being last, but I'm not too sure yet. Suggestions are open there. I can imagine the Instructive case will be placed on an embedded clause, so having it be in a vertical split might help as it almost then acts as a heading to it.

Relation
  • Benefactive/Dative "for" (U)
  • Causal "because" (U)
  • Comitative "accompanied by" (agent above case above company)
  • Distributive "for each" (U)
  • Possessive "owned by" (possessor above case above possessee)
Here are some examples where there would be multiple things being affected by the case. I want to follow a theme of trying to group things in columns, so things like showing something is owned by something else or accompanied by something else would fit nicely as little columns.

I'd say that's a fair amount to start with at least. Now let's apply it to our example sentence, and throw in some more things to demonstrate things. I'll use:

"the quick brown fox smoking Jeff's pipe jumped over the lazy dog until dusk"

Now, I'll just spend half an hour putting that together /s:

Code: Select all

⎡   ⎤⎡    ⎤[         ACC        ][  SUPE   ][NOM ]
⎢   ⎥⎢    ⎥⎛[ ACC ][PROG ][Jeff]⎞⎡   ⎤⎡    ⎤[DEF ]
⎢LIM⎥⎢dusk⎥⎢[ DEF ]⎡     ⎤[POS ]⎥⎢   ⎥⎢    ⎥⎡    ⎤
⎢   ⎥⎢    ⎥⎢[ fox ]⎢smoke⎥⎡    ⎤⎥⎢PST⎥⎢jump⎥⎢dog ⎥
⎢   ⎥⎢    ⎥⎢[quick]⎢     ⎥⎢pipe⎥⎥⎢   ⎥⎢    ⎥⎣    ⎦
⎣   ⎦⎣    ⎦⎝[brown]⎣     ⎦⎣    ⎦⎠⎣   ⎦⎣    ⎦[lazy]
Wow, that took quite a while, but it actually looks quite beautiful (not in the variable-width font though). Some points to make about the layout: In cases where vertical stretching happens, I am always preferencing the main content word. I'm also trying to follow some kind of arbitrary hierarchy, for instance where branching for the superessive case on the verb before the past tense marker. I'm still not too sure how I want to do that ordering, or if it should change meaning, but for now, I'm preferencing vertical splits, as I like the look of wide boxes in the current layout - that might change though as I start to look into writing systems (kind of want to go logographic, but I gave up very quickly last time I tried that).

I'm starting to find that this box layout feels much nicer to work with than actually visualising it as a tree. It still has this tree of branches heavily ingrained into it, but the tree itself isn't really something I can see myself wanting to use to visualise it, as the boxes feel much more intuitive to me (feel free to disagree Crey [:)] ). It looks very akin to the way a :wikip: tiling window manager looks and feels, which would make sense seeing as I use one and so have developed an intuition for that kind of layout.

That then brings me on to rethink the way it is read. I'm thinking a system of reading in columns (top-to-bottom; left-to-right) would work well. Where in the embedded clause or verb section, a column is split part way through, each of those smaller columns is read in order. This would mean that the abomination above would be read as this:

"LIM dusk i ACC -ACC DEF fox quick brown i PROG smoke i Jeff POS pipe- i SUPE PST jump i NOM DEF dog lazy"

I made a little diagram showing the path through the text too if it is of any use to people:
Image

Overall, I'm pretty pleased with how this project is coming along. I'll continue working on grammatical content for now, and I'll get on to phonologies and words and things later on, at which point the language could start becoming reeeeeaaaly interesting, as I could finally start to see how the language looks and feels.

One concern I have though, is translating from the language back to English or even just a gloss. It wouldn't be too hard when looking at the language when written down, but if you heard a passage of it, how would you be able to discern the order of branches and so on? I feel like the language would be very much a primarily written language, but I feel like attempts to make it properly understandable when spoken could require introducing piles of particles to mark splits and so on. The writing no longer stores the speech; the speech describes the writing.

Now, I've been working on this one post on and off all afternoon, so it has become really rather long, but since starting the post, I've had more ideas. I want the layout to try and follow the columns strictly. By always having at least one "header" box at the top of each column, column boundaries become almost trivial. I think, when modifying a single block, vertical comes first, so you get stuff like this:

Code: Select all

[          ]
[          ]
[ ][*][ ][ ]
[          ]
Where the one with the asterisk is the block being modified. This is easy to follow, and makes sense considering the more column-based reading order.

I think I'm going to stop myself here as I've been sitting on this one post for hours. It would probably be better to try and break it up more. Next, I'll work on more list-based items. I'm thinking articles first, then tense and aspect. I might look into moods, but I'm not sure yet. I've got a relatively good idea about how to expand possibilities for verbs though - but that can wait for another time.
:con: : Current Project

BTW I use Arch
User avatar
eldin raigmore
fire
fire
Posts: 6158
Joined: Sat 14 Aug 2010, 18:38
Location: SouthEast Michigan

Re: Scratchpad: Experiments with trees

Post by eldin raigmore » Wed 18 Apr 2018, 05:01

This is intriguing!
User avatar
eldin raigmore
fire
fire
Posts: 6158
Joined: Sat 14 Aug 2010, 18:38
Location: SouthEast Michigan

Re: Scratchpad: Experiments with trees

Post by eldin raigmore » Wed 18 Apr 2018, 18:25

OTʜᴇB wrote:
Tue 23 Jan 2018, 21:54
  • Intrative "between" (literally between the two nouns)
Might there be a better-formed name for this case?
Post Reply