-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path042_Paradigm_levelling_of_šu_“brother”.qmd
115 lines (102 loc) · 4.52 KB
/
042_Paradigm_levelling_of_šu_“brother”.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
---
title: Paradigm levelling of šu “brother”
author: Nikita Beklemishev
date: 'Last update: `r lubridate::make_datetime(year = 2023, month = 6, day = 24)`'
output:
html_document:
number_sections: false
anchor_sections: true
pandoc_args: --shift-heading-level-by=-1
---
```{r, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message = FALSE, warning=FALSE, fig.width = 9.5)
library(tidyverse)
library(lingtypology)
read_csv('data/database.csv', show_col_types = FALSE) |>
filter(feature_id == 42) ->
db
read_csv('data/villages.csv') |>
filter(!(village %in% c('Kazankulak', 'Novyy Borch', 'Vrush', 'Aran', 'Khnyukh'))) ->
villages
villages |>
filter(!(village %in% c('Tsudik', 'Borch'))) ->
villages4map
```
Umlautization of the stem, e.g. applying the [+front, −back] features to the stem vowels, as a means of marking the PL forms appears not only in verbal stems (see phonology feature [@Vowel fronting in APL]). Something of similar nature is found in paradigm of the lexeme /šu/ ‘brother’ and a few other kin terms in some dialects. While the regular formation would be adding a -bɨr/-mar suffix, actually the suffix -bä (-be, bäˁ, bâ) is added. Moreover, the noun takes a special plural stem /šü/. [@filatovms §8.1 @danielfilatovms §1.3] This feature indicates whether the stem paradigm levells (and by plural or by singular form) or the alternation remains. Preliminary values are vowels in the first syllable of ‘brother.SG’ and the vowels of the first syllabe of ‘brother.PL’. The values u / uˁ in singular with ü / üˁ in plural are grouped together as **alternating** stem, values u / uˁ in both singular and plural are grouped as levelled by **SG stem**. Values where ü / üˁ occurs in both singular and plural are grouped as levelled by **PL stem**. Cases where ‘brother’ forms plural with the reglar affix are marked as **no irregularity**.
## ‘brother’ /šu/, ‘brothers’ /šübe/
::: {.panel-tabset}
### Map
```{r}
db |>
filter(feature_lexeme == '‘brother’ /šu/, ‘brothers’ /šübe/') |>
filter(!is.na(value),
value != 'NO DATA') |>
mutate(value = str_split(value, ' ; ')) |>
unnest_longer(value) |>
distinct(settlement, value) |>
mutate(n = 1) |>
pivot_wider(names_from = value, values_from = n, values_fill = 0) |>
left_join(villages[,c('village', 'lat', 'lon')], c('settlement' = 'village')) |>
mutate(language = 'Rutul') ->
for_map
if(length(for_map) == 5){
map.feature(languages = 'Rutul',
latitude = villages4map$lat,
longitude = villages4map$lon,
label = villages4map$village,
label.position = 'top',
label.hide = FALSE,
width = 10,
color = 'gray',
tile = 'OpenStreetMap.HOT',
opacity = 0.4) |>
map.feature(languages = for_map$language,
latitude = for_map$lat,
longitude = for_map$lon,
label = for_map$settlement,
label.position = 'top',
label.hide = FALSE,
width = 10,
tile = 'OpenStreetMap.HOT',
features = colnames(for_map)[2],
pipe.data = _)
} else {
map.feature(languages = 'Rutul',
latitude = villages4map$lat,
longitude = villages4map$lon,
label = villages4map$village,
label.position = 'top',
label.hide = FALSE,
width = 10,
color = 'gray',
tile = 'OpenStreetMap.HOT',
opacity = 0.4) |>
map.feature(languages = for_map$language,
latitude = for_map$lat,
longitude = for_map$lon,
minichart.data = for_map |> select(-settlement, -lat, -lon, -language),
minichart = 'pie',
width = 3,
tile = 'OpenStreetMap.HOT',
pipe.data = _)
}
```
### Data
```{r}
db |>
filter(feature_lexeme == '‘brother’ /šu/, ‘brothers’ /šübe/') |>
select(settlement, value, stimuli, answer, collected) |>
DT::datatable(class = 'cell-border stripe',
rownames = FALSE,
filter = 'top',
extensions = 'Buttons',
options = list(pageLength = 42,
autoWidth = TRUE,
info = FALSE,
dom = 'fBltp',
buttons = list(list(extend = 'collection',
buttons = c('csv', 'excel', 'pdf'),
text = '<i class="fas fa-download"></i>')),
paginate = TRUE))
```
:::