starting EP page

This commit is contained in:
lingdocs 2022-05-27 16:18:57 -05:00
parent b9d74a81fb
commit 4048557c65
7 changed files with 232 additions and 125 deletions

View File

@ -1,6 +1,7 @@
function KidsSectionIllustration({ blocks, showKidsSection }: {
blocks: ("NP" | "AP" | "comp." | "verb" | "equative")[],
function BasicBlocks({ blocks, showKidsSection, large }: {
blocks: (string | { top?: string | JSX.Element, inside?: string | JSX.Element, bottom?: string | JSX.Element })[],
showKidsSection?: boolean,
large?: boolean,
}) {
return <div className="d-flex flex-row justify-content-center">
<div>
@ -20,15 +21,21 @@ function KidsSectionIllustration({ blocks, showKidsSection }: {
</div>
</div>
</div>}
<div className="d-flex flex-row justify-content-center mb-4">
<div className="d-flex flex-row justify-content-center mb-4 align-items-end">
{blocks.map((block, i) => (
<div className="text-center mr-2" key={`blockr-${i}`}>
<div style={{
border: "2px solid black",
height: "2.5rem",
width: "4rem",
}}/>
<div>{block}</div>
<div>{typeof block === "object" ? block.top : <div></div>}</div>
<div
className="d-flex flex-row justify-content-center align-items-center"
style={{
border: "2px solid black",
height: large ? "2.75rem" : "2.5rem",
width: large ? "4.5rem" : "4rem",
}}
>
{(typeof block === "object" && block.inside) ? block.inside : ""}
</div>
<div>{typeof block === "object" ? block.bottom : block}</div>
</div>
))}
</div>
@ -36,4 +43,4 @@ function KidsSectionIllustration({ blocks, showKidsSection }: {
</div>;
}
export default KidsSectionIllustration;
export default BasicBlocks;

View File

@ -0,0 +1,97 @@
import { useState } from "react";
import {
ButtonSelect,
} from "@lingdocs/pashto-inflector";
export function EquativeIllustration() {
const [choice, setChoice] = useState<"p" | "f" | "e">("f");
return (
<div>
<div className="text-center my-3">
<ButtonSelect
options={[
{ label: "Phonetics", value: "f" },
{ label: "Pashto", value: "p" },
{ label: "English", value: "e" },
]}
value={choice}
handleChange={(p) => setChoice(p)}
/>
</div>
{choice === "f" ?
<div className="d-flex justify-content-around mx-auto mb-3" style={{ maxWidth: "400px" }}>
<div className="text-center p-2">
<div className="display-3">A</div>
<div>subject</div>
<div className="h4 mt-3">zu</div>
<div className="h4 mt-3">haghá</div>
<div className="h4 mt-3">moonG</div>
</div>
<div className="text-center p-2">
<div className="display-3">B</div>
<div>predicate</div>
<div className="h4 mt-3">stuRey</div>
<div className="h4 mt-3">dălta</div>
<div className="h4 mt-3">zdakawóonkee</div>
</div>
<div className="text-center p-2" style={{ border: "1px solid black", borderRadius: "10px" }}>
<div className="display-3">=</div>
<div>equative</div>
<div className="h4 mt-3">yum.</div>
<div className="h4 mt-3">dey.</div>
<div className="h4 mt-3">yoo.</div>
</div>
</div>
: choice === "p" ?
<div className="d-flex justify-content-around mx-auto mb-3" style={{ direction: "rtl", maxWidth: "400px" }}>
<div className="text-center p-2">
<div className="display-3">ا</div>
<div>subject</div>
<div className="h4 mt-3">زه</div>
<div className="h4 mt-3">هغه</div>
<div className="h4 mt-3">مونږ</div>
</div>
<div className="text-center p-2">
<div className="display-3">ب</div>
<div>predicate</div>
<div className="h4 mt-3">ستړی</div>
<div className="h4 mt-3">دلته</div>
<div className="h4 mt-3">زدکوونکي</div>
</div>
<div className="text-center p-2" style={{ border: "1px solid black", borderRadius: "10px" }}>
<div className="display-3">=</div>
<div>equative</div>
<div className="h4 mt-3">یم.</div>
<div className="h4 mt-3">دی.</div>
<div className="h4 mt-3">یو.</div>
</div>
</div>
: <div className="d-flex justify-content-around mx-auto mb-3" style={{ maxWidth: "400px" }}>
<div className="text-center p-2">
<div className="display-3">A</div>
<div>subject</div>
<div className="h4 mt-3">I</div>
<div className="h4 mt-3">He</div>
<div className="h4 mt-3">We</div>
</div>
<div className="text-center p-2" style={{ border: "1px solid black", borderRadius: "10px" }}>
<div className="display-3">=</div>
<div>equative</div>
<div className="h4 mt-3">am</div>
<div className="h4 mt-3">is</div>
<div className="h4 mt-3">are</div>
</div>
<div className="text-center p-2">
<div className="display-3">B</div>
<div>predicate</div>
<div className="h4 mt-3">tired.</div>
<div className="h4 mt-3">here.</div>
<div className="h4 mt-3">students.</div>
</div>
</div>}
</div>
);
};
export default EquativeIllustration;

View File

@ -31,107 +31,6 @@ import {
import GameDisplay from "../../games/GameDisplay";
import psmd from "../../lib/psmd";
The [equative](https://en.wikipedia.org/wiki/Equative) might be the most basic way of joining words together. We use it to say that something *is/equals* something else. It's kind of like an equals "=" sign in math.
<div className="d-flex justify-content-around mx-auto mb-3" style={{ maxWidth: "400px" }}>
<div className="text-center p-2">
<div className="display-3">A</div>
<div>subject</div>
<div className="h4 mt-3">I</div>
<div className="h4 mt-3">He</div>
<div className="h4 mt-3">We</div>
</div>
<div className="text-center p-2" style={{ border: "1px solid black", borderRadius: "10px" }}>
<div className="display-3">=</div>
<div>equative</div>
<div className="h4 mt-3">am</div>
<div className="h4 mt-3">is</div>
<div className="h4 mt-3">are</div>
</div>
<div className="text-center p-2">
<div className="display-3">B</div>
<div>complement</div>
<div className="h4 mt-3">tired.</div>
<div className="h4 mt-3">here.</div>
<div className="h4 mt-3">students.</div>
</div>
</div>
But **in Pashto, the word order is different**. Here are those same three sentences, written in Pashto:
export function EquativeIllustration({forms, opts}) {
const [choice, setChoice] = useState("f");
return (
<div>
<div className="text-center my-3">
<ButtonSelect
options={[
{ label: "Phonetics", value: "f" },
{ label: "Pashto Script", value: "p" },
]}
value={choice}
handleChange={(p) => setChoice(p)}
/>
</div>
{choice === "f" ?
<div className="d-flex justify-content-around mx-auto mb-3" style={{ maxWidth: "400px" }}>
<div className="text-center p-2">
<div className="display-3">A</div>
<div>subject</div>
<div className="h4 mt-3">zu</div>
<div className="h4 mt-3">haghá</div>
<div className="h4 mt-3">moonG</div>
</div>
<div className="text-center p-2">
<div className="display-3">B</div>
<div>complement</div>
<div className="h4 mt-3">stuRey</div>
<div className="h4 mt-3">dălta</div>
<div className="h4 mt-3">zdakawóonkee</div>
</div>
<div className="text-center p-2" style={{ border: "1px solid black", borderRadius: "10px" }}>
<div className="display-3">=</div>
<div>equative</div>
<div className="h4 mt-3">yum.</div>
<div className="h4 mt-3">dey.</div>
<div className="h4 mt-3">yoo.</div>
</div>
</div>
:
<div className="d-flex justify-content-around mx-auto mb-3" style={{ direction: "rtl", maxWidth: "400px" }}>
<div className="text-center p-2">
<div className="display-3">ا</div>
<div>subject</div>
<div className="h4 mt-3">زه</div>
<div className="h4 mt-3">هغه</div>
<div className="h4 mt-3">مونږ</div>
</div>
<div className="text-center p-2">
<div className="display-3">ب</div>
<div>complement</div>
<div className="h4 mt-3">ستړی</div>
<div className="h4 mt-3">دلته</div>
<div className="h4 mt-3">زدکوونکي</div>
</div>
<div className="text-center p-2" style={{ border: "1px solid black", borderRadius: "10px" }}>
<div className="display-3">=</div>
<div>equative</div>
<div className="h4 mt-3">یم.</div>
<div className="h4 mt-3">دی.</div>
<div className="h4 mt-3">یو.</div>
</div>
</div>
}
</div>
);
};
<EquativeIllustration />
<!-- **Warning: ⚠** *Often times English speakers learning Pashto will be tempted to just forget the equative at the end because it can feel like they're done the sentence, or it might be hard to remember which equative to use. But don't leave it out, it's a vital part of the sentence!*
The important thing about the equative is that **the equative has to agree with the subject**. Just like it would sound strange to say "I are tired," in Pashto you can't say ❌ <InlinePs opts={defaultTextOptions} ps={{ p: "زه ستړی یو", f: "zu stuRey yoo" }} /> ❌. -->
## Present Equative Form
Here are the **present equative endings** that you have to use depending on the subject. We use this **present equative** form when:

View File

@ -35,6 +35,8 @@ import * as NPIntro from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/
// @ts-ignore
import * as APIntro from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/ap.mdx";
// @ts-ignore
import * as EPIntro from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/ep.mdx";
// @ts-ignore
import * as KidsSection from "!babel-loader!@lingdocs/mdx-loader!./phrase-structure/kids-section.mdx";
// @ts-ignore
@ -161,6 +163,10 @@ const contentTree = [
import: APIntro,
slug: "ap",
},
{
import: EPIntro,
slug: "ep",
},
{
import: KidsSection,
slug: "kids-section",

View File

@ -0,0 +1,98 @@
---
title: EPs
---
import {
defaultTextOptions as opts,
InlinePs,
Examples,
makeNounSelection,
} from "@lingdocs/pashto-inflector";
import psmd from "../../lib/psmd";
import Link from "../../components/Link";
import EditablePhraseDiagram, {
EditIcon,
} from "../../components/phrase-diagram/EditablePhraseDiagram";
import EquativeIllustration from "../../components/EquativeIllustration";
import BasicBlocks from "../../components/BasicBlocks"
**There is no "to be" verb in Pashto**. 🤯 Let that sink in for a second. There's no infinitive "to be" form. You can't say "It's good *to be* here." We can't use "to be" as a verb and make normal verb phrases like we do in other language.
In Pashto, we use a special structure called an **equative phrase (EP)** when we talk about something being something.
Basically with an equative phrase we have three main parts:
- **"A"** a subject (the thing we are talking about)
- **"B"** a predicate (what the thing *is*)
- **"="** an equative at the end to join them together
Notice how the word order is different than it is in English.
<EquativeIllustration />
There are two ways to build an equative phrase:
1. <Link to="/phrase-structure/np/">NP</Link> + <Link to="/phrase-structure/ep/#whats-an-ep-complement">Complement</Link> + Equative
<BasicBlocks large blocks={[
{ bottom: "NP", inside: "A", top: "Subject" },
{ bottom: "Comp.", inside: "B", top: "Predicate" },
{ bottom: "Equative", inside: "=" },
]} />
2. <Link to="/phrase-structure/np/">NP</Link> + <Link to="/phrase-structure/np/">NP</Link> + Equative
<BasicBlocks large blocks={[
{ bottom: "NP", inside: "A", top: "Subject" },
{ bottom: "NP", inside: "B", top: "Predicate" },
{ bottom: "Equative", inside: "=" },
]} />
The equative will **always agree with the last NP** in the phrase. So for #1 it will agree with the *subject* and for #2 it will agree with the *predicate*.
## 1. NP + Complement
<BasicBlocks large blocks={[
{ bottom: "NP", inside: "A", top: "Subject" },
{ bottom: "Comp.", inside: "B", top: "Predicate" },
{ bottom: "Equative", inside: "=" },
]} />
This is the most common phrase you will see for describing what a subject is. With this kind of phrase we use an <Link to="/phrase-structure/ep/#whats-an-ep-complement">EP complement</Link> to describe the subject <Link to="/phrase-structure/np/">NP</Link>.
### What's an EP Complement?
An **EP complement** is one of four things:
- adjective
- location adverb
- sandwich
- complement noun
Let's look at some examples using each of these kinds of complements.
#### With an adjective
An adjective is a word that describes what the subject is like. Notice that it will inflect to agree with the subject.
EXAMPLES COMING...
#### With a location adverb
An adverb is a word that describes the location of the subject. Don't worry, it doesn't inflect.
EXAMPLES COMING...
#### With a sandwich
#### With a complement noun
## 2. NP + NP
<BasicBlocks large blocks={[
{ bottom: "NP", inside: "A", top: "Subject" },
{ bottom: "NP", inside: "B", top: "Predicate" },
{ bottom: "Equative", inside: "=" },
]} />

View File

@ -9,26 +9,26 @@ import {
} from "@lingdocs/pashto-inflector";
import psmd from "../../lib/psmd";
import Link from "../../components/Link";
import KidsSectionIllustration from "../../components/KidsSectionIllustration";
import BasicBlocks from "../../components/BasicBlocks";
import EditablePhraseDiagram, {
EditIcon,
} from "../../components/phrase-diagram/EditablePhraseDiagram";
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.
<KidsSectionIllustration blocks={["NP", "Comp.", "Equative"]} />
<KidsSectionIllustration blocks={["AP", "NP", "NP", "Equative"]} />
<KidsSectionIllustration blocks={["NP", "Comp.", "Equative"]} />
<KidsSectionIllustration blocks={["Verb"]} />
<KidsSectionIllustration blocks={["NP", "NP", "Equative"]} />
<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**.
<KidsSectionIllustration showKidsSection blocks={["NP", "Comp.", "Equative"]} />
<KidsSectionIllustration showKidsSection blocks={["AP", "NP", "NP", "Equative"]} />
<KidsSectionIllustration showKidsSection blocks={["NP", "Comp.", "Equative"]} />
<KidsSectionIllustration showKidsSection blocks={["Verb"]} />
<KidsSectionIllustration showKidsSection blocks={["NP", "NP", "Equative"]} />
<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**.

View File

@ -12,15 +12,15 @@ import Link from "../../components/Link";
import EditablePhraseDiagram, {
EditIcon,
} from "../../components/phrase-diagram/EditablePhraseDiagram";
import KidsSectionIllustration from "../../components/KidsSectionIllustration";
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:
<KidsSectionIllustration blocks={["AP", "NP", "NP", "Verb"]} />
<BasicBlocks blocks={["AP", "NP", "NP", "Verb"]} />
Or like this...
<KidsSectionIllustration blocks={["NP", "NP", "Equative"]} />
<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.