You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: user-stories/components.md
+14-2Lines changed: 14 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,20 +1,23 @@
1
1
# Components
2
2
3
3
## Language Verification Logic
4
+
4
5
**What it does:** Verifies that the text is in Latin
5
6
**Inputs:** A `.txt` or `.xml` file
6
7
**Outputs:** True or false (true if text is Latin, false otherwise)
7
8
**Components:** Reader that verifies that the text is in Latin, likely against Logeion (online Latin dictionary site).
8
9
**Side effects?** Will work as part of the larger Data Validation Logic
9
10
10
11
## Data Validation Logic
11
-
**What it does:** Verfies the text is in latin, in a txt or xml.file, and reads as poetry.
12
+
13
+
**What it does:** Verfies the text is in Latin, in a .txt or xml.file, and reads as poetry.
12
14
**Inputs:** Must be able to read the file and have be able to create a xml or txt.file copy/version of the file.
13
15
**Outputs:** Outputs results to another file xml or txt format that is downloadable to the user.
14
16
**Components:** A verification reader that helps verify the language is latin. This will come from an external database (aka the dictionary site we referred back to).
15
-
**Side effects?** Not sure.
17
+
**Side effects?** Not sure.
16
18
17
19
## File Parser
20
+
18
21
**What it does:** Converts the input .txt or .xml file into a structured, machine-readable format for further analysis. Ensures the file is properly segmented into lines of text, identifies headers or metadata, and formats content for compatibility with the scansion function.
19
22
**Inputs:** A .txt or .xml file containing Latin text (validated by the Data Validation Logic).
20
23
**Outputs:** A structured file or object containing parsed lines of text (e.g., a list or data frame where each line is an element).
Side effects? If the input file has formatting issues, parsing errors may occur, requiring fallback mechanisms or error messages for the user.
26
29
27
30
## Scansion Function
31
+
28
32
**What it does:** Given a file of dactylic hexameter, returns the scansion and feet of each line
29
33
**Inputs:** A parsed Latin file
30
34
**Outputs:** Another file that shows the original text and the scansion
31
35
**Components:** This is one of the functions that we will write as part of the package. Needs to be able to read lines from a parsed file and apply the scanning algorithm to determine the placement of long and short syllables.
32
36
**Side effects?** Probably will not affect other functions, but is dependent on proper parsing and verification
37
+
38
+
## Alliteration Function
39
+
40
+
**What it does:** Given a line of hexameter, returns any instances of alliteration
41
+
**Inputs:** A parsed Latin file
42
+
**Outputs:** A data structure mapping the alliterated letter and its occurrences
43
+
**Components:** This is one of the functions that we will write as part of the package. Needs to be able to read lines from a parsed file and apply the alliteration algorithm to detect words that begin with the same initial letter
44
+
**Side effects?** Similar to the scansion function, this will probably not affect other functions, but is dependent on proper parsing and verification
**User:** Dr.Julia is a univerisity professor specializing in Latin literature.
5
-
**Goal:** Dr. Julia wants to analyze the meter of verses in the Aeneid to teach students about the usage of dactylic hexameter.
6
-
**Needs and Desires:** Dr. Julia needs a reliable and precise tool for metrical analysis that can automatically identify and parse dactylic patterns. She values accuracy, and the ability to generate detailed, exportable reports for classroom examples.
7
-
**Skill Level:** She's an expert in Latin poetry with intermediate programming skills, familiar with Python but not advanced with NLP libraries.
8
-
9
-
## Story #2
10
-
**User:** Sonia is a graduate student in Classics.
11
-
**Goal:** Sonia wants to use Carmina to analyze the meter in several latin poetry pieces specifically looking at deviations from traditional dactylic hexameter.
12
-
**Needs and Desires:** Sonia wants a flexible tool that can identify metrical variations and provide simple visualizations for research presentations. She values a user-friendly interface and documentation that explains the function of a parameter.
13
-
**Skill Level:** She is proficient in Latin, beginner in programming, with limited experience in NLP and Python packages.
14
-
15
-
## Story #3
16
-
**User:** Maria is a high school Latin teacher.
17
-
**Goal:** Maria wants Carmina to help her demonstrate metrical patterns of poetry of Ovid to her students as part of an introductory Latin poetry course.
18
-
**Needs and Desires:** She wants a straightforward tool that provides clear outputs such as labeling each foot in a line of poetry. She values simplicity over complexity, preferring a few well-documented functions over extensive customization.
19
-
**Skill Level:** Maria is proficient in Latin, minimal programming experience; requires a tool that works with simple commands and minimal setup.
20
-
21
-
## Story #4
22
-
**User:** Dr. Roberto is a digital humanities researcher focused on Latin poetry.
23
-
**Goal:** Dr. Roberto wants to conduct metrical analysis on Latin poetry collections to identify broader trends in meter across authors.
24
-
**Needs and Desires:** He needs a tool that allows for batch processing of texts, with customizable parameters for different poetic meters. Dr. Roberto values customization and the ability to integrate Carmina’s outputs with other data analysis tools.
25
-
**Skill Level:** Advanced user with strong programming skills, familiar with Python and NLP concepts.
26
-
27
-
## Story #5
28
-
**User:** Sarah is an undergraduate majoring in Classics and minoring in Data Science.
29
-
**Goal:** Sarah wants to analyze metrical patterns in selected poems for her final project, aiming to understand the influence of meter on thematic elements in Latin literature.
30
-
**Needs and Desires:** She needs a tool that offers guided usage with example datasets and has an intuitive API that makes it easy to analyze smaller sections of text. She values accessible documentation and error messages that provide clear troubleshooting information.
31
-
**Skill Level:** Intermediate Latin knowledge, beginner Python skills, familiar with basic functional programming but not object-oriented programming.
32
-
33
-
## 1. Metrical Analysis of Latin Verses
34
-
As a Classics researcher
35
-
I want to automatically identify the meter and foot structure of Latin verses
36
-
So that I can perform metrical analysis on poems without manually scanning each line.
37
-
38
-
## 2. Rhythm Pattern Mapping Across Stanzas
39
-
As a Classics researcher interested in rhythmic variation
40
-
I want a tool that maps rhythm and stress patterns across multiple stanzas
41
-
So that I can identify rhythmic shifts and recurring patterns that contribute to the poem’s overall structure and mood.
42
-
43
-
## 3. Visualizing Rhythm and Stress Patterns
44
-
As a Latin poetry researcher interested in auditory analysis
45
-
I want a feature to visualize the rhythm and stress patterns of a poem
46
-
So that I can understand the poem’s auditory impact and perform better prosodic analysis.
47
-
48
-
## 4. Comparative Metrical Analysis Across Poems
49
-
50
-
As a Latin poetry scholar
51
-
I want to compare metrical patterns across multiple poems or authors
52
-
So that I can analyze stylistic variations in metrical choices and determine if certain meters correlate with specific themes or genres.
53
-
54
-
## 5. Foot Structure Visualization and Analysis
55
-
As a student learning Latin poetry structure
56
-
I want to visualize each foot’s structure within a line
57
-
So that I can better understand the function and rhythm of different feet in Latin meter.
3
+
The following are some user stories to illustrate potential use cases and users for the `carmina` functionality.
58
4
59
5
## Undergrad student
60
6
@@ -66,12 +12,12 @@ Cicero is working on his PhD. He wants to use the `carmina` package to track ins
66
12
67
13
## DH Scholar
68
14
69
-
Vitruvius is interested in looking at alliteration across dactylic hexameter. He doesn't know much Latin, but he does know how to use Python for text analysis. He's done alliteration studies in other natural languages.
15
+
Vitruvius is interested in looking at alliteration across dactylic hexameter. He doesn't know much Latin, but he does know how to use Python for text analysis. He's done alliteration studies in other natural languages. He would like to use `carmina` to break down alliteration across several lines of hexameter.
70
16
71
17
## DH Scholar 2
72
18
73
-
Hypatia is working with Vitruvius's lab, but she's more interested in looking at alliterative figures within the same line. She's better versed in Latin and Python.
19
+
Hypatia is working with Vitruvius's lab, but she's more interested in looking at alliterative figures within the same line. She knows more Latin, but she's new to Python. She will need an intuitive guide to use `carmina`'s alliteration analysis functions in each line of interest.
74
20
75
21
## New Latin Student
76
22
77
-
Julius is new to Latin epic, but he doesn't know a lot about scansion. However, his Latin class has a scansion assignment due tomorrow, and he doesn't know how to do it! On the other hand, he does know some Python, and he's familiar enough with Latin to know how to read it. He'll try to use the hexameter scansion function from `carmina` to finish his homework.
23
+
Martial is new to Latin epic, but he doesn't know a lot about scansion. However, his Latin class has a scansion assignment due tomorrow, and he doesn't know how to do it! On the other hand, he does know some Python, and he's familiar enough with Latin to know how to read it. He'll try to use the hexameter scansion function from `carmina` to finish his homework.
0 commit comments