Chuvash Toponymy Database v.0.1

Check-in [fbda0e251e]
Login

Check-in [fbda0e251e]

Overview
Comment:2025 Feb 11 transfer TOPFORMS column to linguistic table
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: fbda0e251e127a50c3b455e0ead963326b30710824d9c9ba24e7f77c45d25ba3
User & Date: sisrahtak on 2025-02-11 13:17:10
Other Links: manifest | tags | edit
Context
2025-02-11
13:22
2025 Feb 11 add three aspect database v0.2 check-in: a7ec7e6650 user: sisrahtak tags: trunk
13:17
2025 Feb 11 transfer TOPFORMS column to linguistic table check-in: fbda0e251e user: sisrahtak tags: trunk
2025-02-10
17:32
2025 Feb 10 add database documentation for v0.2 check-in: 9d5675a10d user: sisrahtak tags: trunk
Changes
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
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







+
-
+



















-








### **Columns:**
- **`ID`** *(int, PK)*: Unique identifier for each toponym entry, independent from the spatial table.
- **`SPATID`** *(int, FK → Spatial.ID)*: Links the toponym to its corresponding spatial object.
- **`DOUSPAT`** *(int, nullable)*: Certainty of name relation to the spatial object (empty = "I'm sure", 1 = "The spatial link is doubtful").
- **`MAINID`** *(int, FK → Linguistic.ID)*: Represents the "main" name in a "nest" of interconnected toponyms (sometimes grouping is necessary, many sources give several somehow connected names for a single spatial object and we want to reflect this connections in database).
- **`TOPONYM`** *(string)*: The attested name as recorded from sources.
- **`TOPFORMS`** *(text, nullable)*: Holds different attested spelling variations of the name from multiple sources.
- **`DOUTOPO`** *(int, nullable)*: Certainty of the given orthographic form (empty = "I'm sure", 1 = "It is doubtful").
- **`DOUTOPO`** *(int, nullable)*: Certainty of the given **`TOPONYM`** form (empty = "I'm sure", 1 = "It is doubtful").
- **`LANG`** *(string)*: The language of the toponym, following the predefined codes.
- **`DOULANG`** *(int, nullable)*: Certainty of the language of the toponym (empty = "I'm sure", 1 = "It is doubtful").
- **`PRONUNC`** *(text, nullable)*: Reserved for pronunciation information (format yet to be decided).
- **`DOUPRON`** *(int, nullable)*: Certainty of the pronunciation information (empty = "I'm sure", 1 = "It is doubtful").
- **`ETYM`** *(text, nullable)*: Etymological explanation of the name's origin. It is always doubtful.
- **`ORIGIN`** *(string, nullable)*: Language from which the name originated (e.g., `CHU`, `RUS`, `TAT`, `OTH`, `UNK`). This one is always doubtful too.
- **`COMMENTS`** *(text, nullable)*: Free-text notes.
- **`OTHER`** *(text, nullable)*: Reserved for future use.

---

## **3. Temporal Table**

### **Purpose:**
This table records historical changes in toponyms, tracking their usage over time.

### **Columns:**
- **`ID`** *(int, PK)*: Unique identifier for each temporal record.
- **`LINGID`, `LINGNAME`** *(Composite FK → Linguistic (ID, TOPONYM))*: Together, these fields reference a specific toponym in the linguistic table.
- **`TOPFORMS`** *(text, nullable)*: Holds different attested spelling variations of the name from multiple sources.
- **`START`** *(int)*: Earliest recorded use of the name (source text goes to **`FULLTEXT`** column).
- **`DOUSTART`** *(int)*: Certainty level for the `START` date (empty = "I'm sure", 1 = "It is doubtful").
- **`END`** *(int, nullable)*: The last recorded use of the name. If the object still exists, this field remains empty. The source text is stored in the **FULLTEXT** column.
- **`DOUEND`** *(int, nullable)*: Certainty level for the `END` date (empty = "I'm sure", 1 = "It is doubtful").
- **`EVENT`** *(string)*: Categorization of historical change, with predefined values:
  - `MERGEIN`: The object was absorbed into another.
  - `ACTIVE`: The name is still in use.
85
86
87
88
89
90
91
92

93
85
86
87
88
89
90
91

92








-
+
-
- **`LINGID` (Temporal) → `ID` (Linguistic)** and **`LINGNAME` (Temporal) → `TOPONYM` (Linguistic)**: Tracks historical changes of a specific name.
- **`OBJID` (Temporal) → `ID` (Linguistic)** and **`OBJNAME` (Temporal) → `TOPONYM` (Linguistic)**: Records specifically name changes or mergers.

---

## **Next Steps**
- Finalize the format for the `PRONUNC` field.

- Make a separate table for the list of written sources

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
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







+

















-














CREATE TABLE linguistic (
    ID INT PRIMARY KEY,
    SPATID INT NOT NULL,
    DOUSPAT INT CHECK (DOUSPAT IN (1)) NULL,
    MAINID INT,
    TOPONYM TEXT NOT NULL,
    TOPFORMS TEXT,
    DOUTOPO INT CHECK (DOUTOPO IN (1)) NULL,
    LANG VARCHAR(3) NOT NULL,
    DOULANG INT CHECK (DOULANG IN (1)) NULL,
    PRONUNC TEXT,
    DOUPRON INT CHECK (DOUPRON IN (1)) NULL,
    ETYM TEXT, -- Always doubtful
    ORIGIN VARCHAR(3), -- Always doubtful
    COMMENTS TEXT,
    OTHER TEXT,
    FOREIGN KEY (SPATID) REFERENCES spatial(ID),
    FOREIGN KEY (MAINID) REFERENCES linguistic(ID)
);

CREATE TABLE temporal (
    ID INT PRIMARY KEY,
    LINGID INT NOT NULL,
    LINGNAME TEXT NOT NULL,
    TOPFORMS TEXT,
    START INT NOT NULL,
    DOUSTART INT CHECK (DOUSTART IN (1)) NULL,
    END INT,
    DOUEND INT CHECK (DOUEND IN (1)) NULL,
    EVENT TEXT CHECK (EVENT IN ('MERGEIN', 'ACTIVE', 'RENAME', 'CEASE')),
    OBJID INT,
    OBJNAME TEXT,
    FULLTEXT TEXT NOT NULL,
    COMMENTS TEXT,
    OTHER TEXT,
    FOREIGN KEY (LINGID, LINGNAME) REFERENCES linguistic(ID, TOPONYM),
    FOREIGN KEY (OBJID, OBJNAME) REFERENCES linguistic(ID, TOPONYM)
);