revamp kids section

This commit is contained in:
lingdocs 2022-06-27 16:01:56 -05:00
parent a7645681d7
commit da39eb5a6a
14 changed files with 154 additions and 87 deletions

View File

@ -6,7 +6,7 @@
"@formkit/auto-animate": "^1.0.0-beta.1", "@formkit/auto-animate": "^1.0.0-beta.1",
"@fortawesome/fontawesome-free": "^5.15.4", "@fortawesome/fontawesome-free": "^5.15.4",
"@lingdocs/lingdocs-main": "^0.3.1", "@lingdocs/lingdocs-main": "^0.3.1",
"@lingdocs/pashto-inflector": "^3.1.2", "@lingdocs/pashto-inflector": "^3.1.3",
"@testing-library/jest-dom": "^5.11.4", "@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0", "@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10", "@testing-library/user-event": "^12.1.10",

View File

@ -11,7 +11,7 @@ export function EditIcon() {
return <i className="fas fa-edit" />; return <i className="fas fa-edit" />;
} }
function EditableEPEx({ children, opts, hideOmitSubject }: { children: T.EPSelectionState, opts: T.TextOptions, hideOmitSubject?: boolean }) { function EditableEPEx({ children, opts, hideOmitSubject, noEdit }: { children: T.EPSelectionState, opts: T.TextOptions, hideOmitSubject?: boolean, noEdit?: boolean }) {
const [editing, setEditing] = useState<boolean>(false); const [editing, setEditing] = useState<boolean>(false);
const [eps, setEps] = useState<T.EPSelectionState>(children); const [eps, setEps] = useState<T.EPSelectionState>(children);
function handleReset() { function handleReset() {
@ -19,13 +19,13 @@ function EditableEPEx({ children, opts, hideOmitSubject }: { children: T.EPSelec
setEps(children); setEps(children);
} }
return <div className="mt-2 mb-4"> return <div className="mt-2 mb-4">
<div {!noEdit && <div
className="text-left clickable" className="text-left clickable"
style={{ marginBottom: editing ? "0.5rem" : "-0.5rem" }} style={{ marginBottom: editing ? "0.5rem" : "-0.5rem" }}
onClick={editing ? handleReset : () => setEditing(true)} onClick={editing ? handleReset : () => setEditing(true)}
> >
{!editing ? <EditIcon /> : <i className="fas fa-undo" />} {!editing ? <EditIcon /> : <i className="fas fa-undo" />}
</div> </div>}
{editing {editing
&& <EPPicker && <EPPicker
opts={opts} opts={opts}

View File

@ -11,7 +11,7 @@ export function EditIcon() {
return <i className="fas fa-edit" />; return <i className="fas fa-edit" />;
} }
function EditableVPEx({ children, opts, formChoice }: { children: T.VPSelectionState, opts: T.TextOptions, formChoice?: boolean }) { function EditableVPEx({ children, opts, formChoice, noEdit }: { children: T.VPSelectionState, opts: T.TextOptions, formChoice?: boolean, noEdit?: boolean }) {
const [editing, setEditing] = useState<boolean>(false); const [editing, setEditing] = useState<boolean>(false);
const [vps, setVps] = useState<T.VPSelectionState>(children); const [vps, setVps] = useState<T.VPSelectionState>(children);
function handleReset() { function handleReset() {
@ -22,13 +22,13 @@ function EditableVPEx({ children, opts, formChoice }: { children: T.VPSelectionS
setVps(vpsReducer(vps, { type: "set form", payload: form })); setVps(vpsReducer(vps, { type: "set form", payload: form }));
} }
return <div className="mt-2 mb-4"> return <div className="mt-2 mb-4">
<div {!noEdit && <div
className="text-left clickable mb-2" className="text-left clickable mb-2"
style={{ marginBottom: editing ? "0.5rem" : "-0.5rem" }} style={{ marginBottom: editing ? "0.5rem" : "-0.5rem" }}
onClick={editing ? handleReset : () => setEditing(true)} onClick={editing ? handleReset : () => setEditing(true)}
> >
{!editing ? <EditIcon /> : <i className="fas fa-undo" />} {!editing ? <EditIcon /> : <i className="fas fa-undo" />}
</div> </div>}
{editing {editing
&& <VPPicker && <VPPicker
opts={opts} opts={opts}

View File

@ -17,7 +17,7 @@ export function EP({ text }: { text: string}) {
} }
export function KidsSection({ text }: { text: string}) { export function KidsSection({ text }: { text: string}) {
return <Link to="/phrase-structure/kids-section">{text || "kids' section"}</Link>; return <Link to="/phrase-structure/blocks-and-kids/#the-kids-section">{text || "kids' section"}</Link>;
} }
export function MiniPronoun({ text }: { text: string}) { export function MiniPronoun({ text }: { text: string}) {

View File

@ -36,6 +36,7 @@ import {
equativeGameWouldHaveBeen, equativeGameWouldHaveBeen,
} from "../../games/games"; } from "../../games/games";
import GameDisplay from "../../games/GameDisplay"; import GameDisplay from "../../games/GameDisplay";
import { KidsSection } from "../../components/terms-links";
## Subjunctive Equative ## Subjunctive Equative
@ -165,7 +166,7 @@ This is used for:
</Formula> </Formula>
<div className="small"> <div className="small">
Note: The <InlinePs opts={opts} ps={{ p: "به", f: "ba" }} /> goes in the <Link to="/phrase-structure/kids-section/">kids' section</Link>. Note: The <InlinePs opts={opts} ps={{ p: "به", f: "ba" }} /> goes in the <KidsSection />.
</div> </div>
<EquativeFormChoice <EquativeFormChoice
@ -309,7 +310,7 @@ Like the <Link to="#past-equative">past equative</Link> that it's based on, it's
</Formula> </Formula>
<div className="small"> <div className="small">
Note: The <InlinePs opts={opts} ps={{ p: "به", f: "ba" }} /> goes in the <Link to="/phrase-structure/kids-section/">kids' section</Link>. Note: The <InlinePs opts={opts} ps={{ p: "به", f: "ba" }} /> goes in the <KidsSection />.
</div> </div>
<EquativeFormChoice <EquativeFormChoice

View File

@ -30,6 +30,8 @@ import * as arabicPlurals from "!babel-loader!@lingdocs/mdx-loader!./nouns/arabi
// @ts-ignore // @ts-ignore
import * as bundledPlurals from "!babel-loader!@lingdocs/mdx-loader!./nouns/bundled-plurals.mdx"; import * as bundledPlurals from "!babel-loader!@lingdocs/mdx-loader!./nouns/bundled-plurals.mdx";
// @ts-ignore
import * as BlocksAndKids from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/blocks-and-kids.mdx";
// @ts-ignore // @ts-ignore
import * as NPIntro from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/np.mdx"; import * as NPIntro from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/np.mdx";
// @ts-ignore // @ts-ignore
@ -40,8 +42,6 @@ import * as EPIntro from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/
import * as VPIntro from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/vp.mdx"; import * as VPIntro from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/vp.mdx";
// @ts-ignore // @ts-ignore
import * as ShorteningVPs from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/shortening-vps.mdx"; import * as ShorteningVPs from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/shortening-vps.mdx";
// @ts-ignore
import * as KidsSection from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/kids-section.mdx";
// @ts-ignore // @ts-ignore
import * as verbAspect from "!babel-loader!@lingdocs/mdx-loader!./verbs/verb-aspect.mdx"; import * as verbAspect from "!babel-loader!@lingdocs/mdx-loader!./verbs/verb-aspect.mdx";
@ -157,6 +157,10 @@ const contentTree = [
heading: "Phrase Structure 🧱", heading: "Phrase Structure 🧱",
subdirectory: "phrase-structure", subdirectory: "phrase-structure",
chapters: [ chapters: [
{
import: BlocksAndKids,
slug: "blocks-and-kids",
},
{ {
import: NPIntro, import: NPIntro,
slug: "np", slug: "np",
@ -177,10 +181,6 @@ const contentTree = [
import: ShorteningVPs, import: ShorteningVPs,
slug: "shortening-vps", slug: "shortening-vps",
}, },
{
import: KidsSection,
slug: "kids-section",
},
], ],
}, },
{ {

View File

@ -0,0 +1,127 @@
---
title: Blocks and Kids
---
import {
defaultTextOptions as opts,
InlinePs,
Examples,
} from "@lingdocs/pashto-inflector";
import psmd from "../../lib/psmd";
import Link from "../../components/Link";
import EditableBlock, {
EditIcon,
} from "../../components/phrase-diagram/EditableBlock";
import BasicBlocks from "../../components/BasicBlocks";
import { AP, NP } from "../../components/terms-links";
import EditableVPEx from "../../components/phrase-diagram/EditableVPEx";
import EditableEPEx from "../../components/phrase-diagram/EditableEPEx";
export function BlocksIcon() {
return <i className="mx-1 fas fa-cubes" />;
};
Pashto phrases are built with **blocks** 🧱 and **kids** 👶. It's important to know what these parts are and how they fit together.
## Blocks
Blocks are units of speech like <NP text="NPs" />, <AP text="APs" /> or verbs, etc.
<BasicBlocks blocks={["AP", "NP", "NP", "Verb"]} />
<BasicBlocks blocks={["NP", "NP", "Equative"]} />
Wherever you see an example phrase with a <BlocksIcon /> you can click it to see the blocks that make up the phrase. Try clicking the <BlocksIcon /> to see the blocks that make up the examples below.
<EditableVPEx opts={opts} noEdit>{
{"blocks":[{"key":0.21116655057859535,"block":{"type":"AP","selection":{"type":"adverb","entry":{"ts":1527815160,"i":2394,"p":"پرون","f":"paroon","g":"paroon","e":"yesterday","c":"adv."}}}},{"key":0.3303626365055592,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.03422215123934946,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11610,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"perfectivePast","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":false}}
}</EditableVPEx>
<EditableEPEx opts={opts} noEdit hideOmitSubject>{
{"blocks":[{"key":0.7559632995928578,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}}],"predicate":{"type":"Complement","Complement":{"type":"EQComp","selection":{"type":"adjective","entry":{"ts":1527815306,"i":7595,"p":"ستړی","f":"stúRey","g":"stuRey","e":"tired","c":"adj."}}}},"equative":{"tense":"present","negative":true},"omitSubject":false}
}</EditableEPEx>
<EditableVPEx opts={opts} noEdit>{
{"blocks":[{"key":0.3303626365055592,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.03422215123934946,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11610,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"perfectivePast","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"perfect","transitivity":"transitive","isCompound":false,"voice":"active","negative":true,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":false}}
}</EditableVPEx>
You will see a bunch of different blocks. Don't worry about learning what they all are, but if you want here's a complete list:
<details>
<summary>All the blocks</summary>
<ul>
<li><NP /></li>
<li> <AP /></li>
<li>Complement (adjective/adverb/Complement NP)</li>
<li>Verb</li>
<li>The perfective head of a Verb (a perfective prefix like <InlinePs opts={opts} ps={{ p: "و", f: "oo", e: "" }} />)</li>
<li>Equative</li>
<li>Past Participle (in a perfect verb)</li>
<li>The negative <InlinePs opts={opts} ps={{ p: "نه", f: "nú", e: "not" }} /> or <InlinePs opts={opts} ps={{ p: "مه", f: "mú", e: "don't" }} /></li>
<li>The ability auxilary verb (ie. the <InlinePs opts={opts} ps={{ p: "شي", f: "shee" }} /> in <InlinePs opts={opts} ps={{ p: "کولی شي", f: "shee" }} />)</li>
</ul>
</details>
## The Kids' Section
In Pashto there are a bunch of little particles that we will call **kids**. (<InlinePs opts={opts} ps={{ p: "به", f: "ba" }} />, <InlinePs opts={opts} ps={{ p: "دې", f: "de", e: "" }} />, <InlinePs opts={opts} ps={{ p: "یې", f: "ye", e: "" }} /> etc.) All of these have to go in the **kid's section**.
The **kids' section is always after the first block**.
<BasicBlocks showKidsSection blocks={["AP", "NP", "NP", "Equative"]} />
<BasicBlocks showKidsSection blocks={["NP", "Verb"]} />
<BasicBlocks showKidsSection blocks={["Verb"]} />
<BasicBlocks showKidsSection blocks={["NP", "NP", "Equative"]} />
Click on the <BlocksIcon /> on the following examples to see where the kids' section lies.
<EditableVPEx opts={opts} noEdit>{
{"blocks":[{"key":0.27231313024586834,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.6810015291689175,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11610,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":true}}
}</EditableVPEx>
<EditableEPEx opts={opts} hideOmitSubject noEdit>{
{"blocks":[{"key":0.7559632995928578,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"noun","entry":{"ts":1527815177,"i":2535,"p":"پلار","f":"plaar","g":"plaar","e":"father","c":"n. m. anim."},"gender":"masc","genderCanChange":false,"number":"singular","numberCanChange":true,"adjectives":[],"possesor":{"np":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}},"shrunken":true}}}}}],"predicate":{"type":"Complement","Complement":{"type":"EQComp","selection":{"type":"loc. adv.","entry":{"ts":1527812558,"i":6251,"p":"دلته","f":"dălta","g":"dalta","e":"here","c":"loc. adv."}}}},"equative":{"tense":"future","negative":true},"omitSubject":false}
}</EditableEPEx>
<EditableVPEx opts={opts} noEdit>{
{"blocks":[{"key":0.27231313024586834,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.6810015291689175,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":5,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11610,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"perfectivePast","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"perfect","transitivity":"transitive","isCompound":false,"voice":"active","negative":true,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":true,"shrinkServant":true}}
}</EditableVPEx>
Here are the kids that go in the kids' section, and they always line up **in this order**.
<ul>
<li>The emphatic <InlinePs opts={opts} ps={{ p: "خو", f: "kho" }} /> particle</li>
<li>The <InlinePs opts={opts} ps={{ p: "به", f: "ba" }} /> particle</li>
<li>The jussive <InlinePs opts={opts} ps={{ p: "دې", f: "de", e: "may" }} /></li>
<li><Link to="/pronouns/pronouns-mini/">Mini-pronouns</Link>:</li>
<ul>
<li><InlinePs opts={opts} ps={{ p: "مې", f: "me", e: "1st pers sing" }} /></li>
<li><InlinePs opts={opts} ps={{ p: "دې", f: "de", e: "2nd pers sing" }} /></li>
<li><InlinePs opts={opts} ps={{ p: "مو", f: "mU", e: "1st/2nd pers plur" }} /></li>
<li><InlinePs opts={opts} ps={{ p: "یې", f: "ye", e: "3rd pers" }} /></li>
</ul>
<li><InlinePs opts={opts} ps={{ p: "هم", f: "hUm", e: "also/too" }} /></li>
</ul>
<p><Link to="/pronouns/pronouns-mini/">Mini-pronouns</Link> will always line up in 1st, 2rd, 3rd person order.</p>
**Note**: You'll also see <InlinePs opts={opts} ps={{ p: "خو", f: "kho", e: "but/however" }} /> as a connector or <InlinePs opts={opts} ps={{ p: "هم", f: "hUm", e: "also/too" }} /> *outsite of the kids' section*. But all the other kids have to stay in the kids' section always!
## Connectors
Phrases are connected using conjuctions like:
- <InlinePs opts={opts} ps={{ p: "او", f: "aw", e: "and" }} />
- <InlinePs opts={opts} ps={{ p: "چې", f: "che", e: "that" }} />
- <InlinePs opts={opts} ps={{ p: "خو", f: "kho", e: "but/however" }} />
These **connectors do not count as blocks**. The <Link to="#the-kids-section">kids' section</Link> will always come after the first *block*.
Phrases also might start with little directional words like:
- <InlinePs opts={opts} ps={{ p: "راته", f: "raa-ta", e: "to me/us" }} />
- <InlinePs opts={opts} ps={{ p: "درته", f: "dăr-ta", e: "to you" }} />
- <InlinePs opts={opts} ps={{ p: "ورته", f: "wăr-ta", e: "to him/her/them/it" }} />
- <InlinePs opts={opts} ps={{ p: "راپسې", f: "raa-pase", e: "after me/us" }} />
- <InlinePs opts={opts} ps={{ p: "درپسې", f: "dăr-pase", e: "after you" }} />
These these are often treated as connectors, but they can be blocks or connectors, depending on how they are used.

View File

@ -1,51 +0,0 @@
---
title: The Kids' Section 👦
---
import {
defaultTextOptions as opts,
InlinePs,
Examples,
} from "@lingdocs/pashto-inflector";
import psmd from "../../lib/psmd";
import Link from "../../components/Link";
import BasicBlocks from "../../components/BasicBlocks";
Pashto phrases are built with **blocks** that are <Link to="/phrase-structure/np/">NPs</Link>, <Link to="/phrase-structure/ap/">APs</Link>, or complements, with a verb or equative at the end. Here are some examples of what the phrases can look like.
<BasicBlocks blocks={["NP", "Comp.", "Equative"]} />
<BasicBlocks blocks={["AP", "NP", "NP", "Equative"]} />
<BasicBlocks blocks={["NP", "Comp.", "Equative"]} />
<BasicBlocks blocks={["Verb"]} />
<BasicBlocks blocks={["NP", "NP", "Equative"]} />
**After the first block** in a phrase comes a special place that we'll call the **kids' section**.
<BasicBlocks showKidsSection blocks={["NP", "Comp.", "Equative"]} />
<BasicBlocks showKidsSection blocks={["AP", "NP", "NP", "Equative"]} />
<BasicBlocks showKidsSection blocks={["NP", "Comp.", "Equative"]} />
<BasicBlocks showKidsSection blocks={["Verb"]} />
<BasicBlocks showKidsSection blocks={["NP", "NP", "Equative"]} />
In Pashto we have a bunch of little words that we will treat like little **children**.
<ul>
<li>The emphatic <InlinePs opts={opts} ps={{ p: "خو", f: "kho" }} /> particle</li>
<li>The <InlinePs opts={opts} ps={{ p: "به", f: "ba" }} /> particle</li>
<li>The jussive <InlinePs opts={opts} ps={{ p: "دې", f: "de", e: "may" }} /></li>
<li><Link to="/pronouns/pronouns-mini/">Mini-pronouns</Link>:</li>
<ul>
<li><InlinePs opts={opts} ps={{ p: "مې", f: "me", e: "1st pers sing" }} /></li>
<li><InlinePs opts={opts} ps={{ p: "دې", f: "de", e: "2nd pers sing" }} /></li>
<li><InlinePs opts={opts} ps={{ p: "مو", f: "mU", e: "1st/2nd pers plur" }} /></li>
<li><InlinePs opts={opts} ps={{ p: "یې", f: "ye", e: "3rd pers" }} /></li>
</ul>
</ul>
These little words/particles can't run around anywhere in the sentence. **They have to stay in the kids' section**. They're not allowed to go anywhere else! 🙅‍♂️
Also like well behaved children, these little words have to line up in the right order. There are a few rules for the *inside the kids' seciton*.
- They need to follow the order of the list above
- The <Link to="/pronouns/pronouns-mini/">mini-pronouns</Link> need to line up in order of 1st, 2nd, and 3rd person
- You can't have duplicate mini-pronouns like <InlinePs opts={opts} ps={{ p: "یې یې", f: "ye ye" }} />

View File

@ -14,19 +14,6 @@ import EditableBlock, {
} from "../../components/phrase-diagram/EditableBlock"; } from "../../components/phrase-diagram/EditableBlock";
import BasicBlocks from "../../components/BasicBlocks"; import BasicBlocks from "../../components/BasicBlocks";
Pashto phrases are built with a basic **building blocks** 🧱 like NPs, APs, verbs, and equatives. We can think of phrases in Pashto as a line of blocks like this:
<BasicBlocks blocks={["AP", "NP", "NP", "Verb"]} />
Or like this...
<BasicBlocks blocks={["NP", "NP", "Equative"]} />
In Pashto, it's important to know how these building blocks line up. But first, let's look at what these blocks actually are. In this chapter we'll look at the NP.
## Noun Phrase (NP)
A noun phrase (NP) in Pashto is one of the following three things: A noun phrase (NP) in Pashto is one of the following three things:
- a noun - a noun

View File

@ -16,6 +16,7 @@ import EditableVPEx, { EditIcon } from "../../components/phrase-diagram/Editable
import BasicBlocks from "../../components/BasicBlocks"; import BasicBlocks from "../../components/BasicBlocks";
import InlineInflectionButton from "../../components/InlineInflectionButton"; import InlineInflectionButton from "../../components/InlineInflectionButton";
import VPStructureSummary from "./vp-structure.svg"; import VPStructureSummary from "./vp-structure.svg";
import { KidsSection } from "../../components/terms-links";
export function KingIcon() { export function KingIcon() {
return <i className="mx-1 fas fa-crown" />; return <i className="mx-1 fas fa-crown" />;
@ -92,7 +93,7 @@ Got it? So now we know we can **kill the king**. Since the king controls the ver
{"blocks":[{"key":0.13415526513680676,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.2455033196459333,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":true,"shrinkServant":false}} {"blocks":[{"key":0.13415526513680676,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.2455033196459333,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":true,"shrinkServant":false}}
}</EditableVPEx> }</EditableVPEx>
The other thing we can do is we can **shrink the servant** 🪄 and turn it into a <Link to="/pronouns/pronouns-mini/">mini-pronoun</Link>. The servant here is <InlinePs opts={opts} ps={{ p: "تا", f: "taa", e: "you - 2nd. pers. sing." }} /> so it will get shrunk into the 2nd pers. sing. <Link to="/pronouns/pronouns-mini/">mini-pronoun</Link>, <InlinePs opts={opts} ps={{ p: "دې", f: "de" }} />. Because it's a little mini-pronoun 👶 it has to go in the <Link to="/phrase-structure/kids-section/">kids' section</Link>. (After the first block) The other thing we can do is we can **shrink the servant** 🪄 and turn it into a <Link to="/pronouns/pronouns-mini/">mini-pronoun</Link>. The servant here is <InlinePs opts={opts} ps={{ p: "تا", f: "taa", e: "you - 2nd. pers. sing." }} /> so it will get shrunk into the 2nd pers. sing. <Link to="/pronouns/pronouns-mini/">mini-pronoun</Link>, <InlinePs opts={opts} ps={{ p: "دې", f: "de" }} />. Because it's a little mini-pronoun 👶 it has to go in the <KidsSection />. (After the first block)
<EditableVPEx formChoice opts={opts}>{ <EditableVPEx formChoice opts={opts}>{
{"blocks":[{"key":0.13415526513680676,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.2455033196459333,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":true}} {"blocks":[{"key":0.13415526513680676,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.2455033196459333,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":true}}
@ -122,7 +123,7 @@ Let's go ahead and **kill the king**, which in this case is the *subject*.
{"blocks":[{"key":0.13415526513680676,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.2455033196459333,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"imperfectivePast","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":true,"shrinkServant":false}} {"blocks":[{"key":0.13415526513680676,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.2455033196459333,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"imperfectivePast","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":true,"shrinkServant":false}}
}</EditableVPEx> }</EditableVPEx>
Looks quite different, but we're still following the same rule. Now let's **shrink the servant**. 🪄 This time the servant is the *object* <InlinePs opts={opts} ps={{ p: "ما", f: "maa", e: "I - 1st pers. sing." }} /> so it will get shrunk into the 1nd pers. sing. <Link to="/pronouns/pronouns-mini/">mini-pronoun</Link>, <InlinePs opts={opts} ps={{ p: "مې", f: "me" }} /> and go in the <Link to="/phrase-structure/kids-section/">kids' section</Link>. Looks quite different, but we're still following the same rule. Now let's **shrink the servant**. 🪄 This time the servant is the *object* <InlinePs opts={opts} ps={{ p: "ما", f: "maa", e: "I - 1st pers. sing." }} /> so it will get shrunk into the 1nd pers. sing. <Link to="/pronouns/pronouns-mini/">mini-pronoun</Link>, <InlinePs opts={opts} ps={{ p: "مې", f: "me" }} /> and go in the <KidsSection />.
<EditableVPEx formChoice opts={opts}>{ <EditableVPEx formChoice opts={opts}>{
{"blocks":[{"key":0.13415526513680676,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.2455033196459333,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"imperfectivePast","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":true}} {"blocks":[{"key":0.13415526513680676,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.2455033196459333,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"imperfectivePast","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":true}}
@ -154,7 +155,7 @@ Notice that we cannot **shrink the servant** because there is no servant in a VP
### Other examples ### Other examples
Try shortening these other examples. Notice how the <Link to="/pronouns/pronouns-mini/">mini-pronoun</Link> will always go in the <Link to="/phrase-structure/kids-section/">kids' section</Link> (after the first block), and the <Link to="/phrase-structure/kids-section/">kids' section</Link> changes depending on what's in the phrase. If we start the phrase with an <Link to="/phrase-structure/ap">AP</Link> the mini pronoun will fall right after that first AP. Try shrinking this sentence all the way (click on "both") and see what happens. Try shortening these other examples. Notice how the <KidsSection /> (after the first block), and the <KidsSection /> changes depending on what's in the phrase. If we start the phrase with an <Link to="/phrase-structure/ap">AP</Link> the mini pronoun will fall right after that first AP. Try shrinking this sentence all the way (click on "both") and see what happens.
<EditableVPEx formChoice opts={opts}>{ <EditableVPEx formChoice opts={opts}>{
{"blocks":[{"key":0.5372523258610236,"block":{"type":"AP","selection":{"type":"sandwich","before":{"p":"په","f":"pu"},"after":{"p":"کې","f":"ke"},"e":"in","inside":{"type":"NP","selection":{"type":"noun","entry":{"ts":1527815151,"i":2140,"p":"پارک","f":"paark","g":"paark","e":"park","c":"n. m."},"gender":"masc","genderCanChange":false,"number":"singular","numberCanChange":true,"adjectives":[]}}}}},{"key":0.44012482066169145,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.8184810526278858,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":false}} {"blocks":[{"key":0.5372523258610236,"block":{"type":"AP","selection":{"type":"sandwich","before":{"p":"په","f":"pu"},"after":{"p":"کې","f":"ke"},"e":"in","inside":{"type":"NP","selection":{"type":"noun","entry":{"ts":1527815151,"i":2140,"p":"پارک","f":"paark","g":"paark","e":"park","c":"n. m."},"gender":"masc","genderCanChange":false,"number":"singular","numberCanChange":true,"adjectives":[]}}}}},{"key":0.44012482066169145,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.8184810526278858,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":false}}

View File

@ -1,5 +1,5 @@
--- ---
title: VPs title: VPs (King and Servant)
--- ---
import { import {
@ -39,6 +39,8 @@ For example, if I say:
This is a **VP** built with the verb <InlinePs opts={opts} ps={{ p: "خوړل", f: "khoRul", e: "to eat" }} />. This is a **VP** built with the verb <InlinePs opts={opts} ps={{ p: "خوړل", f: "khoRul", e: "to eat" }} />.
As we explain **VPs** we'll also learn about what the "king" <KingIcon /> and "servant" <ServantIcon /> of these phrases are.
## 3 VP Structures ## 3 VP Structures
Pashto learners often get very confused while because there are **three different ways for how VPs fit together**, depending on what type of verb we have. Pashto learners often get very confused while because there are **three different ways for how VPs fit together**, depending on what type of verb we have.

View File

@ -91,7 +91,7 @@ With non-past transitive verbs, the **object** is the servant <ServantIcon />. H
{"blocks":[{"key":0.9744021270696674,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.68319897242172,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":false}} {"blocks":[{"key":0.9744021270696674,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.68319897242172,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":false}}
}</EditableVPEx> }</EditableVPEx>
We can shrink the servant <NP /> <InlinePs opts={opts} ps={{ p: "تا", f: "taa", e: "you" }} /> into a mini-pronoun and then put it in the <Link to="/phrase-structure/kids-section">kids' section</Link>. We can shrink the servant <NP /> <InlinePs opts={opts} ps={{ p: "تا", f: "taa", e: "you" }} /> into a mini-pronoun and then put it in the <KidsSection />.
<EditableVPEx opts={opts} formChoice>{ <EditableVPEx opts={opts} formChoice>{
{"blocks":[{"key":0.9744021270696674,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.68319897242172,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":true}} {"blocks":[{"key":0.9744021270696674,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.68319897242172,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":2,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11608,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"presentVerb","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"basic","transitivity":"transitive","isCompound":false,"voice":"active","negative":false,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":false,"shrinkServant":true}}

View File

@ -35,7 +35,7 @@ This is used to talk about something happening in the future, while thinking of
<BasicVerbShowCase opts={opts} tense="imperfectiveFuture" /> <BasicVerbShowCase opts={opts} tense="imperfectiveFuture" />
Notice that the <InlinePs opts={opts} ps={{ p: "به", f: "ba" }} /> goes in the <Link to="/phrase-structure/kids-section/">kid's section</Link>. Notice that the <InlinePs opts={opts} ps={{ p: "به", f: "ba" }} /> goes in the <KidsSection />.
## Perfective Future ## Perfective Future

View File

@ -180,7 +180,7 @@ In almost all verbs, the past participle is just the imperfective root plus a <I
<InfoCarousel items={verbs} /> <InfoCarousel items={verbs} />
## About the split in the perfective side ## About the split in the perfective side
In the perfective roots and stems there is a spot where the verb can be broken apart into two blocks. This is important because you can put the <InlinePs opts={opts} ps={{ p: "نه", f: "nú", e: "negative 'not'" }} /> in there or the split can become a <Link to="/phrase-structure/kids-section/">kids' section</Link>. In the perfective roots and stems there is a spot where the verb can be broken apart into two blocks. This is important because you can put the <InlinePs opts={opts} ps={{ p: "نه", f: "nú", e: "negative 'not'" }} /> in there or the split can become a <KidsSection />.
## About inserting <InlinePs opts={opts} ps={{ p: "نه", f: "nu" }} /> ## About inserting <InlinePs opts={opts} ps={{ p: "نه", f: "nu" }} />