1+ /**
2+ * Type definitions for simple statements word order structure in English
3+ */
4+
5+ // Basic sentence component types
6+ export type Who = string ; // Who performs the action
7+ export type Verb = string ; // Action verb
8+ export type What = string ; // Object of the action
9+ export type Where = string ; // Location
10+ export type How = string ; // Manner
11+ export type When = string ; // Time
12+
13+ // Simple statement structure
14+ // Note: According to the material, a simple statement can have six parts, but not every sentence has all of them
15+ // The time adverbial (When) can be placed at the beginning or the end of a statement
16+ export interface SimpleStatement {
17+ who : Who ; // Required: subject of the sentence
18+ verb : Verb ; // Required: action verb
19+ what ?: What ; // Optional: object of the action
20+ where ?: Where ; // Optional: location
21+ how ?: How ; // Optional: manner
22+ when ?: When ; // Optional: time
23+ timePosition ?: 'beginning' | 'end' ; // Where to place the time adverbial, defaults to 'end' if not specified
24+ }
25+
26+ // Example pattern: The policeman arrested the thief.
27+ export type PolicemanArrestedThief = SimpleStatement & {
28+ who : 'The policeman' ,
29+ verb : 'arrested' ,
30+ what : 'the thief'
31+ } ;
32+
33+ // Example pattern: The thief arrested the policeman.
34+ export type ThiefArrestedPoliceman = SimpleStatement & {
35+ who : 'The thief' ,
36+ verb : 'arrested' ,
37+ what : 'the policeman'
38+ } ;
39+
40+ // More complex example with time adverbial at the end
41+ export type StatementWithTimeAtEnd = SimpleStatement & {
42+ who : 'The boy' ,
43+ verb : 'played' ,
44+ what : 'football' ,
45+ where : 'in the park' ,
46+ how : 'happily' ,
47+ when : 'yesterday' ,
48+ timePosition : 'end'
49+ } ;
50+
51+ // Example with time adverbial at the beginning
52+ export type StatementWithTimeAtBeginning = SimpleStatement & {
53+ who : 'the girl' ,
54+ verb : 'reads' ,
55+ what : 'books' ,
56+ where : 'in the library' ,
57+ how : 'quietly' ,
58+ when : 'every day' ,
59+ timePosition : 'beginning'
60+ } ;
61+
62+ // Simple pattern without all optional parts
63+ export type SimpleStatementMinimal = SimpleStatement & {
64+ who : 'The sun' ,
65+ verb : 'rises' ,
66+ where : 'in the east'
67+ } ;
0 commit comments