mirror of
https://github.com/SamyRai/tercul-frontend.git
synced 2025-12-27 04:51:34 +00:00
Populate the platform with sample literary data and analysis features
Adds sample author data, text content, analysis results and annotation entities to JSON storage. Replit-Commit-Author: Agent Replit-Commit-Session-Id: cbacfb18-842a-4116-a907-18c0105ad8ec Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/39b5c689-6e8a-4d5a-9792-69cc81a56534/32264298-034a-445f-8b51-86b6180c466c.jpg
This commit is contained in:
parent
9d24f47e68
commit
07e354075e
@ -81,6 +81,18 @@
|
|||||||
"portrait": "https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Vasily_Perov_-_Портрет_Ф.М.Достоевского_-_Google_Art_Project.jpg/800px-Vasily_Perov_-_Портрет_Ф.М.Достоевского_-_Google_Art_Project.jpg",
|
"portrait": "https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Vasily_Perov_-_Портрет_Ф.М.Достоевского_-_Google_Art_Project.jpg/800px-Vasily_Perov_-_Портрет_Ф.М.Достоевского_-_Google_Art_Project.jpg",
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z",
|
"createdAt": "2025-01-01T00:00:00.000Z",
|
||||||
"createdBy": 1
|
"createdBy": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"name": "Leo Tolstoy",
|
||||||
|
"slug": "leo-tolstoy",
|
||||||
|
"birthYear": 1828,
|
||||||
|
"deathYear": 1910,
|
||||||
|
"country": "Russia",
|
||||||
|
"biography": "Count Lev Nikolayevich Tolstoy, usually referred to in English as Leo Tolstoy, was a Russian writer who is regarded as one of the greatest authors of all time. He received nominations for the Nobel Prize in Literature every year from 1902 to 1906 and for the Nobel Peace Prize in 1901, 1902, and 1909. Born to an aristocratic Russian family, he wrote novels and short stories, but also plays, essays, and philosophical works. His most famous works include the novels 'War and Peace' (1869) and 'Anna Karenina' (1877), often cited as pinnacles of realist fiction.",
|
||||||
|
"portrait": "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/L.N.Tolstoy_Prokudin-Gorsky.jpg/800px-L.N.Tolstoy_Prokudin-Gorsky.jpg",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z",
|
||||||
|
"createdBy": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
@ -93,7 +105,7 @@
|
|||||||
"year": 1832,
|
"year": 1832,
|
||||||
"type": "novel",
|
"type": "novel",
|
||||||
"language": "Russian",
|
"language": "Russian",
|
||||||
"content": "Sample content of Eugene Onegin in the original Russian...",
|
"content": "Мой дядя самых честных правил,\nКогда не в шутку занемог,\nОн уважать себя заставил\nИ лучше выдумать не мог.\nЕго пример другим наука;\nНо, боже мой, какая скука\nС больным сидеть и день и ночь,\nНе отходя ни шагу прочь!\nКакое низкое коварство\nПолуживого забавлять,\nЕму подушки поправлять,\nПечально подносить лекарство,\nВздыхать и думать про себя:\nКогда же черт возьмет тебя!",
|
||||||
"description": "A novel in verse that follows the life of the eponymous character, a disaffected aristocrat who travels from the sophisticated city of St. Petersburg to the provincial countryside. Considered Pushkin's masterpiece, it is a classic of Russian literature.",
|
"description": "A novel in verse that follows the life of the eponymous character, a disaffected aristocrat who travels from the sophisticated city of St. Petersburg to the provincial countryside. Considered Pushkin's masterpiece, it is a classic of Russian literature.",
|
||||||
"createdBy": 1,
|
"createdBy": 1,
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
@ -106,7 +118,7 @@
|
|||||||
"year": 1833,
|
"year": 1833,
|
||||||
"type": "poem",
|
"type": "poem",
|
||||||
"language": "Russian",
|
"language": "Russian",
|
||||||
"content": "Sample content for The Bronze Horseman...",
|
"content": "На берегу пустынных волн\nСтоял он, дум великих полн,\nИ вдаль глядел. Пред ним широко\nРека неслася; бедный чёлн\nПо ней стремился одиноко.\nПо мшистым, топким берегам\nЧернели избы здесь и там,\nПриют убогого чухонца;\nИ лес, неведомый лучам\nВ тумане спрятанного солнца,\nКругом шумел.",
|
||||||
"description": "A narrative poem depicting the equestrian statue of Peter the Great in Saint Petersburg and the great flood of 1824, widely considered one of Pushkin's masterpieces.",
|
"description": "A narrative poem depicting the equestrian statue of Peter the Great in Saint Petersburg and the great flood of 1824, widely considered one of Pushkin's masterpieces.",
|
||||||
"createdBy": 1,
|
"createdBy": 1,
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
@ -119,7 +131,7 @@
|
|||||||
"year": 1834,
|
"year": 1834,
|
||||||
"type": "story",
|
"type": "story",
|
||||||
"language": "Russian",
|
"language": "Russian",
|
||||||
"content": "Sample content for The Queen of Spades...",
|
"content": "Однажды играли в карты у конногвардейца Нарумова. Долгая зимняя ночь прошла незаметно; сели ужинать в пятом часу утра. Те, которые остались в выигрыше, ели с большим аппетитом; прочие, в рассеянности, сидели перед пустыми своими приборами. Но шампанское явилось, разговор оживился, и все приняли в нем участие.\n\n— Что ты сделал, Сурин? — спросил хозяин.\n\n— Проиграл, по обыкновению. Надобно признаться, что я несчастлив: играю мирандолем, никогда не горячусь, ничем меня с толку не собьешь, а все проигрываюсь!",
|
||||||
"description": "A short story about human avarice, telling the tale of a young officer seeking the secret of an elderly countess's success at faro, a card game.",
|
"description": "A short story about human avarice, telling the tale of a young officer seeking the secret of an elderly countess's success at faro, a card game.",
|
||||||
"createdBy": 1,
|
"createdBy": 1,
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
@ -145,10 +157,23 @@
|
|||||||
"year": 1866,
|
"year": 1866,
|
||||||
"type": "novel",
|
"type": "novel",
|
||||||
"language": "Russian",
|
"language": "Russian",
|
||||||
"content": "Sample content for Crime and Punishment...",
|
"content": "В начале июля, в чрезвычайно жаркое время, под вечер, один молодой человек вышел из своей каморки, которую нанимал от жильцов в С-м переулке, на улицу и медленно, как бы в нерешимости, отправился к К-ну мосту.\n\nОн благополучно избегнул встречи с своею хозяйкой на лестнице. Каморка его приходилась под самою кровлей высокого пятиэтажного дома и походила более на шкаф, чем на квартиру. Квартирная же хозяйка его, у которой он нанимал эту каморку с обедом и прислугой, помещалась одною лестницей ниже, в отдельной квартире, и каждый раз, при выходе на улицу, ему непременно надо было проходить мимо хозяйкиной кухни, почти всегда настежь отворенной на лестницу. И каждый раз молодой человек, проходя мимо, чувствовал какое-то болезненное и трусливое ощущение, которого стыдился и от которого морщился.",
|
||||||
"description": "A novel that explores the moral dilemmas of Raskolnikov, an impoverished ex-student who formulates a plan to kill an unscrupulous pawnbroker for her money.",
|
"description": "A novel that explores the moral dilemmas of Raskolnikov, an impoverished ex-student who formulates a plan to kill an unscrupulous pawnbroker for her money.",
|
||||||
"createdBy": 1,
|
"createdBy": 1,
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"title": "War and Peace",
|
||||||
|
"slug": "war-and-peace",
|
||||||
|
"authorId": 3,
|
||||||
|
"year": 1869,
|
||||||
|
"type": "novel",
|
||||||
|
"language": "Russian",
|
||||||
|
"content": "— Eh bien, mon prince. Gênes et Lucques ne sont plus que des apanages, des поместья, de la famille Buonaparte. Non, je vous préviens que si vous ne me dites pas que nous avons la guerre, si vous vous permettez encore de pallier toutes les infamies, toutes les atrocités de cet Antichrist (ma parole, j'y crois) — je ne vous connais plus, vous n'êtes plus mon ami, vous n'êtes plus мой верный раб, comme vous dites. Ну, здравствуйте, здравствуйте. Je vois que je vous fais peur, садитесь и рассказывайте.\n\nТак говорила в июле 1805 года известная Анна Павловна Шерер, фрейлина и приближенная императрицы Марии Феодоровны, встречая важного и чиновного князя Василия, первого приехавшего на ее вечер. Анна Павловна кашляла несколько дней, у нее был грипп, как она говорила (грипп был тогда новое слово, употреблявшееся только редкими).",
|
||||||
|
"description": "The epic novel that chronicles the history of the French invasion of Russia and the impact of the Napoleonic era on Tsarist society through the stories of five Russian aristocratic families.",
|
||||||
|
"createdBy": 1,
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
@ -160,7 +185,7 @@
|
|||||||
"language": "English",
|
"language": "English",
|
||||||
"year": 1964,
|
"year": 1964,
|
||||||
"title": "Eugene Onegin (Nabokov Translation)",
|
"title": "Eugene Onegin (Nabokov Translation)",
|
||||||
"content": "Sample content of Nabokov's English translation of Eugene Onegin...",
|
"content": "My uncle has most honest principles:\nwhen he was taken gravely ill,\nhe forced one to respect him\nand nothing better could invent.\nTo others his example is a lesson;\nbut, good God, what a bore to sit\nby a sick person day and night,\nnot stirring a step away!\nWhat base perfidiousness\nthe half-alive one to amuse,\nadjust for him his pillows,\nsadly present him his medicine,\nsigh—and think inwardly\nwhen will the devil take you?",
|
||||||
"description": "Vladimir Nabokov's renowned literal translation that focuses on precision and accuracy at the expense of poetic form.",
|
"description": "Vladimir Nabokov's renowned literal translation that focuses on precision and accuracy at the expense of poetic form.",
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
},
|
},
|
||||||
@ -171,7 +196,7 @@
|
|||||||
"language": "English",
|
"language": "English",
|
||||||
"year": 2008,
|
"year": 2008,
|
||||||
"title": "Eugene Onegin (Modern Translation)",
|
"title": "Eugene Onegin (Modern Translation)",
|
||||||
"content": "Sample content of a modern English translation of Eugene Onegin...",
|
"content": "My uncle, man of firm conviction,\nWhen falling seriously ill,\nCompelled one to feel deep respect:\nHe found the finest means, he did.\nA lesson to all men around him;\nBut Lord above! the boredom found in\nSitting day-long by one who's ill,\nNot daring to be half a step away!\nAnd what low cunning—pleasing\nSomeone who's barely half alive,\nTo now and then adjust his pillow,\nWith mournful mien his drugs to proffer,\nTo sigh—while thinking to oneself:\nWhen will the devil take your soul?",
|
||||||
"description": "A modern translation that attempts to balance accuracy with poetic rhythm and flow.",
|
"description": "A modern translation that attempts to balance accuracy with poetic rhythm and flow.",
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
},
|
},
|
||||||
@ -182,7 +207,7 @@
|
|||||||
"language": "French",
|
"language": "French",
|
||||||
"year": 1960,
|
"year": 1960,
|
||||||
"title": "Eugène Onéguine",
|
"title": "Eugène Onéguine",
|
||||||
"content": "Sample content of French translation of Eugene Onegin...",
|
"content": "Mon oncle a les plus stricts principes ;\nQuand il tomba sérieusement malade,\nIl se fit respecter,\nEt ne pouvait rien imaginer de mieux.\nSon exemple est une leçon pour les autres ;\nMais, bon Dieu, quel ennui\nDe rester assis près d'un malade jour et nuit,\nSans s'éloigner d'un pas !\nQuelle basse perfidie\nQue de divertir un quasi mourant,\nDe lui arranger ses oreillers,\nDe lui présenter tristement ses remèdes,\nDe soupirer - et de penser en soi-même :\nQuand donc le diable t'emportera-t-il ?",
|
||||||
"description": "A French translation that captures the spirit and elegance of Pushkin's original verse novel.",
|
"description": "A French translation that captures the spirit and elegance of Pushkin's original verse novel.",
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
},
|
},
|
||||||
@ -196,6 +221,39 @@
|
|||||||
"year": 2018,
|
"year": 2018,
|
||||||
"notes": "Translated by John Fenwick in 2018. This translation attempts to preserve the rhyme scheme (ABAB CDCD) and structure of the original while conveying the tender sentiment of Pushkin's lyric.",
|
"notes": "Translated by John Fenwick in 2018. This translation attempts to preserve the rhyme scheme (ABAB CDCD) and structure of the original while conveying the tender sentiment of Pushkin's lyric.",
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"workId": 4,
|
||||||
|
"title": "Je vous aimais",
|
||||||
|
"language": "French",
|
||||||
|
"content": "Je vous aimais, peut-être cet amour\nDans mon âme n'est pas tout à fait éteint;\nMais ne vous en troublez en aucun jour;\nJe ne veux vous causer aucun chagrin.\nJe vous aimais, muet, sans espérance,\nTantôt timide et tantôt jaloux;\nJe vous aimais avec tant de constance—\nQue Dieu vous fasse aimer ainsi par un autre.",
|
||||||
|
"translatorId": 3,
|
||||||
|
"year": 1990,
|
||||||
|
"description": "A French translation of Pushkin's renowned lyric poem.",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"workId": 5,
|
||||||
|
"title": "Crime and Punishment",
|
||||||
|
"language": "English",
|
||||||
|
"content": "At the beginning of July, during an extremely hot spell, towards evening, a young man left his little room in Stolyarny Lane, went out to the street, and slowly, as if indecisively, headed for the Kokushkin Bridge.\n\nHe had safely avoided meeting his landlady on the stairs. His closet was under the roof of the high five-storied house, and was more a cupboard than a room. As for the landlady, from whom he rented this closet with dinner and service, she lived one flight below, in a separate apartment, and every time he went out he was obliged to pass by her kitchen, the door of which almost always stood open to the stairs. And each time the young man walked by, he felt a sickly, timid sensation that made him wince and brought a feeling of shame to his face.",
|
||||||
|
"translatorId": 3,
|
||||||
|
"year": 1993,
|
||||||
|
"description": "A modern English translation of Dostoevsky's masterpiece.",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7,
|
||||||
|
"workId": 6,
|
||||||
|
"title": "War and Peace",
|
||||||
|
"language": "English",
|
||||||
|
"content": "Well, Prince, so Genoa and Lucca are now just family estates of the Buonapartes. But I warn you, if you don't tell me that this means war, if you still try to defend the infamies and horrors perpetrated by that Antichrist—I really believe he is Antichrist—I will have nothing more to do with you and you are no longer my friend, no longer my 'faithful slave,' as you call yourself! But how do you do? I see I have frightened you—sit down and tell me all the news.\n\nIt was in July, 1805, and the speaker was the well-known Anna Pavlovna Scherer, maid of honor and favorite of the Empress Marya Fedorovna. With these words she greeted Prince Vasili Kuragin, a man of high rank and importance, who was the first to arrive at her reception. Anna Pavlovna had had a cough for some days. She was, as she said, suffering from la grippe; grippe being then a new word in St. Petersburg, used only by the elite.",
|
||||||
|
"translatorId": 4,
|
||||||
|
"year": 2005,
|
||||||
|
"description": "A modern English translation of Tolstoy's epic novel.",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
@ -241,22 +299,83 @@
|
|||||||
"name": "History",
|
"name": "History",
|
||||||
"type": "subject",
|
"type": "subject",
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8,
|
||||||
|
"name": "Psychological",
|
||||||
|
"type": "genre",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 9,
|
||||||
|
"name": "Epic",
|
||||||
|
"type": "form",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10,
|
||||||
|
"name": "Realism",
|
||||||
|
"type": "movement",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 11,
|
||||||
|
"name": "Love",
|
||||||
|
"type": "subject",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12,
|
||||||
|
"name": "War",
|
||||||
|
"type": "subject",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
"workTagsRelations": {
|
"workTagsRelations": {
|
||||||
"1": [4, 5, 6],
|
"1": [4, 5, 6, 11],
|
||||||
"2": [3, 7],
|
"2": [3, 7, 4],
|
||||||
"3": [1, 2],
|
"3": [1, 2, 8],
|
||||||
"4": [3, 4],
|
"4": [3, 4, 11],
|
||||||
"5": [1, 5]
|
"5": [1, 5, 8, 10],
|
||||||
|
"6": [1, 5, 9, 10, 12, 7]
|
||||||
},
|
},
|
||||||
|
|
||||||
"blogPostTagsRelations": {
|
"blogPostTagsRelations": {
|
||||||
"1": [3, 4]
|
"1": [3, 4],
|
||||||
|
"2": [10, 7, 1]
|
||||||
},
|
},
|
||||||
|
|
||||||
"bookmarks": [],
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"userId": 5,
|
||||||
|
"workId": 1,
|
||||||
|
"note": "Beautiful novel in verse. Need to finish reading chapter 4.",
|
||||||
|
"createdAt": "2025-01-05T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"userId": 5,
|
||||||
|
"workId": 4,
|
||||||
|
"note": "One of my favorite Pushkin poems.",
|
||||||
|
"createdAt": "2025-01-06T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"userId": 5,
|
||||||
|
"workId": 5,
|
||||||
|
"note": "Fascinating psychological study.",
|
||||||
|
"createdAt": "2025-01-10T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"userId": 3,
|
||||||
|
"workId": 1,
|
||||||
|
"note": "Reference for translation studies.",
|
||||||
|
"createdAt": "2025-01-07T00:00:00.000Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
"comments": [
|
"comments": [
|
||||||
{
|
{
|
||||||
@ -270,14 +389,226 @@
|
|||||||
"entityId": 1,
|
"entityId": 1,
|
||||||
"parentId": null,
|
"parentId": null,
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"content": "I appreciate the emphasis on maintaining poetic form across translations.",
|
||||||
|
"userId": 3,
|
||||||
|
"workId": null,
|
||||||
|
"translationId": null,
|
||||||
|
"lineNumber": null,
|
||||||
|
"entityType": "blogPost",
|
||||||
|
"entityId": 1,
|
||||||
|
"parentId": null,
|
||||||
|
"createdAt": "2025-01-02T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"content": "This opening stanza brilliantly sets the ironic tone for the entire novel.",
|
||||||
|
"userId": 4,
|
||||||
|
"workId": 1,
|
||||||
|
"translationId": null,
|
||||||
|
"lineNumber": 1,
|
||||||
|
"entityType": "work",
|
||||||
|
"entityId": 1,
|
||||||
|
"parentId": null,
|
||||||
|
"createdAt": "2025-01-03T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"content": "Notice how Pushkin subverts the expectation of family devotion in the very first lines.",
|
||||||
|
"userId": 2,
|
||||||
|
"workId": 1,
|
||||||
|
"translationId": null,
|
||||||
|
"lineNumber": 3,
|
||||||
|
"entityType": "work",
|
||||||
|
"entityId": 1,
|
||||||
|
"parentId": null,
|
||||||
|
"createdAt": "2025-01-04T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"content": "Nabokov's translation prioritizes precision over maintaining the rhythm and rhyme of Pushkin's original.",
|
||||||
|
"userId": 3,
|
||||||
|
"workId": null,
|
||||||
|
"translationId": 1,
|
||||||
|
"lineNumber": 1,
|
||||||
|
"entityType": "translation",
|
||||||
|
"entityId": 1,
|
||||||
|
"parentId": null,
|
||||||
|
"createdAt": "2025-01-05T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"content": "I find this modern translation strikes a better balance between accuracy and poetic form.",
|
||||||
|
"userId": 5,
|
||||||
|
"workId": null,
|
||||||
|
"translationId": 2,
|
||||||
|
"lineNumber": 1,
|
||||||
|
"entityType": "translation",
|
||||||
|
"entityId": 2,
|
||||||
|
"parentId": null,
|
||||||
|
"createdAt": "2025-01-06T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7,
|
||||||
|
"content": "The simplicity and emotional honesty of this poem are what make it so timeless.",
|
||||||
|
"userId": 4,
|
||||||
|
"workId": 4,
|
||||||
|
"translationId": null,
|
||||||
|
"lineNumber": null,
|
||||||
|
"entityType": "work",
|
||||||
|
"entityId": 4,
|
||||||
|
"parentId": null,
|
||||||
|
"createdAt": "2025-01-07T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8,
|
||||||
|
"content": "Raskolnikov's internal conflict is introduced brilliantly in these opening lines.",
|
||||||
|
"userId": 2,
|
||||||
|
"workId": 5,
|
||||||
|
"translationId": null,
|
||||||
|
"lineNumber": 2,
|
||||||
|
"entityType": "work",
|
||||||
|
"entityId": 5,
|
||||||
|
"parentId": null,
|
||||||
|
"createdAt": "2025-01-08T00:00:00.000Z"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
"likes": [],
|
"likes": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"userId": 5,
|
||||||
|
"entityType": "comment",
|
||||||
|
"entityId": 3,
|
||||||
|
"createdAt": "2025-01-03T01:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"userId": 3,
|
||||||
|
"entityType": "comment",
|
||||||
|
"entityId": 3,
|
||||||
|
"createdAt": "2025-01-03T02:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"userId": 1,
|
||||||
|
"entityType": "comment",
|
||||||
|
"entityId": 5,
|
||||||
|
"createdAt": "2025-01-05T01:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"userId": 5,
|
||||||
|
"entityType": "work",
|
||||||
|
"entityId": 4,
|
||||||
|
"createdAt": "2025-01-06T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"userId": 4,
|
||||||
|
"entityType": "work",
|
||||||
|
"entityId": 1,
|
||||||
|
"createdAt": "2025-01-04T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"userId": 2,
|
||||||
|
"entityType": "blogPost",
|
||||||
|
"entityId": 1,
|
||||||
|
"createdAt": "2025-01-02T00:00:00.000Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
"collections": [],
|
"collections": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"title": "Russian Poetry Classics",
|
||||||
|
"slug": "russian-poetry-classics",
|
||||||
|
"description": "A collection of essential Russian poems spanning the 19th century.",
|
||||||
|
"userId": 5,
|
||||||
|
"isPublic": true,
|
||||||
|
"createdAt": "2025-01-02T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"title": "Pushkin's Greatest Works",
|
||||||
|
"slug": "pushkins-greatest-works",
|
||||||
|
"description": "A curated selection of Alexander Pushkin's most significant literary contributions.",
|
||||||
|
"userId": 4,
|
||||||
|
"isPublic": true,
|
||||||
|
"createdAt": "2025-01-03T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"title": "Russian Psychological Fiction",
|
||||||
|
"slug": "russian-psychological-fiction",
|
||||||
|
"description": "Exploring the depth of human psychology through Russian literature.",
|
||||||
|
"userId": 2,
|
||||||
|
"isPublic": true,
|
||||||
|
"createdAt": "2025-01-04T00:00:00.000Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
"collectionItems": [],
|
"collectionItems": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"collectionId": 1,
|
||||||
|
"workId": 4,
|
||||||
|
"order": 1,
|
||||||
|
"note": "One of Pushkin's most famous love poems, showcasing his emotional depth.",
|
||||||
|
"createdAt": "2025-01-02T01:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"collectionId": 1,
|
||||||
|
"workId": 2,
|
||||||
|
"order": 2,
|
||||||
|
"note": "A powerful narrative poem with historical significance.",
|
||||||
|
"createdAt": "2025-01-02T02:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"collectionId": 2,
|
||||||
|
"workId": 1,
|
||||||
|
"order": 1,
|
||||||
|
"note": "Pushkin's crowning achievement, a novel in verse.",
|
||||||
|
"createdAt": "2025-01-03T01:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"collectionId": 2,
|
||||||
|
"workId": 2,
|
||||||
|
"order": 2,
|
||||||
|
"note": "Demonstrates Pushkin's skill at narrative poetry.",
|
||||||
|
"createdAt": "2025-01-03T02:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"collectionId": 2,
|
||||||
|
"workId": 3,
|
||||||
|
"order": 3,
|
||||||
|
"note": "Shows Pushkin's talent for psychological storytelling.",
|
||||||
|
"createdAt": "2025-01-03T03:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"collectionId": 2,
|
||||||
|
"workId": 4,
|
||||||
|
"order": 4,
|
||||||
|
"note": "A perfect example of Pushkin's lyrical abilities.",
|
||||||
|
"createdAt": "2025-01-03T04:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7,
|
||||||
|
"collectionId": 3,
|
||||||
|
"workId": 5,
|
||||||
|
"order": 1,
|
||||||
|
"note": "Dostoevsky's masterpiece of psychological fiction.",
|
||||||
|
"createdAt": "2025-01-04T01:00:00.000Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
"timelineEvents": [
|
"timelineEvents": [
|
||||||
{
|
{
|
||||||
@ -307,10 +638,178 @@
|
|||||||
{
|
{
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"authorId": 1,
|
"authorId": 1,
|
||||||
|
"year": 1824,
|
||||||
|
"title": "Exile and Early Poetry",
|
||||||
|
"description": "During his exile in Mikhailovskoye, wrote some of his finest lyric poetry including 'To***' ('I remember a wonderful moment')",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"authorId": 1,
|
||||||
|
"year": 1825,
|
||||||
|
"title": "Boris Godunov",
|
||||||
|
"description": "Completed his historical drama 'Boris Godunov'",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"authorId": 1,
|
||||||
|
"year": 1829,
|
||||||
|
"title": "I Loved You",
|
||||||
|
"description": "Wrote the poem 'I Loved You'",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7,
|
||||||
|
"authorId": 1,
|
||||||
|
"year": 1830,
|
||||||
|
"title": "Belkin Tales",
|
||||||
|
"description": "Wrote 'The Tales of the Late Ivan Petrovich Belkin', his first prose fiction",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8,
|
||||||
|
"authorId": 1,
|
||||||
|
"year": 1833,
|
||||||
|
"title": "Eugene Onegin completed",
|
||||||
|
"description": "Finished his masterpiece 'Eugene Onegin' after working on it for more than seven years",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 9,
|
||||||
|
"authorId": 1,
|
||||||
|
"year": 1833,
|
||||||
|
"title": "The Bronze Horseman",
|
||||||
|
"description": "Wrote narrative poem 'The Bronze Horseman'",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10,
|
||||||
|
"authorId": 1,
|
||||||
|
"year": 1834,
|
||||||
|
"title": "The Queen of Spades",
|
||||||
|
"description": "Published the short story 'The Queen of Spades'",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 11,
|
||||||
|
"authorId": 1,
|
||||||
"year": 1837,
|
"year": 1837,
|
||||||
"title": "Death",
|
"title": "Death",
|
||||||
"description": "Died in St. Petersburg from wounds received in a duel with Georges d'Anthès",
|
"description": "Died in St. Petersburg from wounds received in a duel with Georges d'Anthès",
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12,
|
||||||
|
"authorId": 2,
|
||||||
|
"year": 1821,
|
||||||
|
"title": "Birth",
|
||||||
|
"description": "Born in Moscow at the Mariinsky Hospital for the Poor",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 13,
|
||||||
|
"authorId": 2,
|
||||||
|
"year": 1849,
|
||||||
|
"title": "Arrest and Sentencing",
|
||||||
|
"description": "Arrested and sentenced to death for his involvement with the utopian socialist Petrashevsky Circle, later commuted to exile in Siberia",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 14,
|
||||||
|
"authorId": 2,
|
||||||
|
"year": 1861,
|
||||||
|
"title": "Early Novels",
|
||||||
|
"description": "Published 'Humiliated and Insulted' and 'The House of the Dead'",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 15,
|
||||||
|
"authorId": 2,
|
||||||
|
"year": 1866,
|
||||||
|
"title": "Crime and Punishment",
|
||||||
|
"description": "Published 'Crime and Punishment', considered one of his greatest psychological novels",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 16,
|
||||||
|
"authorId": 2,
|
||||||
|
"year": 1869,
|
||||||
|
"title": "The Idiot",
|
||||||
|
"description": "Published 'The Idiot'",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 17,
|
||||||
|
"authorId": 2,
|
||||||
|
"year": 1872,
|
||||||
|
"title": "Demons",
|
||||||
|
"description": "Published 'Demons' (also translated as 'The Possessed')",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 18,
|
||||||
|
"authorId": 2,
|
||||||
|
"year": 1880,
|
||||||
|
"title": "The Brothers Karamazov",
|
||||||
|
"description": "Published 'The Brothers Karamazov', his final novel",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 19,
|
||||||
|
"authorId": 2,
|
||||||
|
"year": 1881,
|
||||||
|
"title": "Death",
|
||||||
|
"description": "Died in Saint Petersburg from a pulmonary hemorrhage",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 20,
|
||||||
|
"authorId": 3,
|
||||||
|
"year": 1828,
|
||||||
|
"title": "Birth",
|
||||||
|
"description": "Born at Yasnaya Polyana, his family estate in the Tula region",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 21,
|
||||||
|
"authorId": 3,
|
||||||
|
"year": 1852,
|
||||||
|
"title": "Literary Debut",
|
||||||
|
"description": "Published his first work, the autobiographical 'Childhood'",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 22,
|
||||||
|
"authorId": 3,
|
||||||
|
"year": 1869,
|
||||||
|
"title": "War and Peace",
|
||||||
|
"description": "Completed and published 'War and Peace'",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 23,
|
||||||
|
"authorId": 3,
|
||||||
|
"year": 1877,
|
||||||
|
"title": "Anna Karenina",
|
||||||
|
"description": "Published 'Anna Karenina'",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 24,
|
||||||
|
"authorId": 3,
|
||||||
|
"year": 1899,
|
||||||
|
"title": "Resurrection",
|
||||||
|
"description": "Published his final novel 'Resurrection'",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 25,
|
||||||
|
"authorId": 3,
|
||||||
|
"year": 1910,
|
||||||
|
"title": "Death",
|
||||||
|
"description": "Died at Astapovo railway station after leaving home in his final days",
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
@ -324,8 +823,262 @@
|
|||||||
"excerpt": "Exploring how digital platforms can help preserve and promote the rich tradition of Russian poetry in the modern age.",
|
"excerpt": "Exploring how digital platforms can help preserve and promote the rich tradition of Russian poetry in the modern age.",
|
||||||
"publishedAt": "2025-01-01T00:00:00.000Z",
|
"publishedAt": "2025-01-01T00:00:00.000Z",
|
||||||
"createdAt": "2025-01-01T00:00:00.000Z"
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"title": "The Psychological Depth of Russian Fiction",
|
||||||
|
"slug": "psychological-depth-russian-fiction",
|
||||||
|
"content": "# The Psychological Depth of Russian Fiction\n\nRussian literature is renowned for its profound psychological insights and exploration of the human condition. From Dostoevsky's tormented characters to Tolstoy's complex moral dilemmas, Russian writers have excelled at depicting the depths of human consciousness and the struggles of the soul.\n\n## Pioneers of Psychological Fiction\n\nFyodor Dostoevsky stands as perhaps the greatest psychological novelist in world literature. His works like 'Crime and Punishment' and 'The Brothers Karamazov' delve into the minds of characters caught in moral crises, exploring themes of guilt, redemption, and existential angst. Dostoevsky's characters are not mere literary constructs but fully realized human beings with contradictory impulses and complex motivations.\n\nLeo Tolstoy, while often celebrated for his epic historical narratives, was equally adept at psychological portraiture. In 'Anna Karenina,' he traces the psychological deterioration of a woman trapped by social conventions and her own passionate nature. What makes Tolstoy remarkable is his ability to depict both the social forces that shape his characters and their internal psychological responses.\n\n## Psychological Realism in Russian Literature\n\nWhat distinguishes Russian psychological fiction is its commitment to realism—not just in depicting external circumstances but in portraying the inner workings of the human mind with unflinching honesty. These writers understood that people are not governed solely by reason but are driven by unconscious desires, irrational fears, and contradictory impulses.\n\n## Legacy and Influence\n\nThe psychological insights of Russian writers anticipated many of the discoveries of modern psychology. Dostoevsky's understanding of the irrational aspects of human behavior predated Freud's theories of the unconscious. The Russians' willingness to portray characters in all their contradictory complexity continues to influence fiction writers today.\n\nOn the Tercul platform, we're committed to highlighting these psychological dimensions through enhanced annotations and contextual information, helping readers appreciate the revolutionary nature of these works and their continuing relevance to understanding human psychology.",
|
||||||
|
"authorId": 2,
|
||||||
|
"excerpt": "Examining how Russian novelists pioneered psychological fiction and anticipated modern understandings of human consciousness.",
|
||||||
|
"publishedAt": "2025-01-10T00:00:00.000Z",
|
||||||
|
"createdAt": "2025-01-08T00:00:00.000Z"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
"readingProgresses": []
|
"readingProgresses": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"userId": 5,
|
||||||
|
"workId": 1,
|
||||||
|
"translationId": null,
|
||||||
|
"progress": 0.35,
|
||||||
|
"lastReadAt": "2025-01-05T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"userId": 5,
|
||||||
|
"workId": 5,
|
||||||
|
"translationId": null,
|
||||||
|
"progress": 0.20,
|
||||||
|
"lastReadAt": "2025-01-10T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"userId": 4,
|
||||||
|
"workId": 1,
|
||||||
|
"translationId": null,
|
||||||
|
"progress": 0.90,
|
||||||
|
"lastReadAt": "2025-01-07T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"userId": 5,
|
||||||
|
"workId": 1,
|
||||||
|
"translationId": 1,
|
||||||
|
"progress": 0.50,
|
||||||
|
"lastReadAt": "2025-01-08T00:00:00.000Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"analysisResults": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"workId": 1,
|
||||||
|
"type": "sentiment",
|
||||||
|
"data": {
|
||||||
|
"overall": {
|
||||||
|
"positive": 0.35,
|
||||||
|
"negative": 0.15,
|
||||||
|
"neutral": 0.5
|
||||||
|
},
|
||||||
|
"sections": [
|
||||||
|
{ "section": "Chapter 1", "positive": 0.25, "negative": 0.2, "neutral": 0.55 },
|
||||||
|
{ "section": "Chapter 2", "positive": 0.4, "negative": 0.1, "neutral": 0.5 },
|
||||||
|
{ "section": "Chapter 3", "positive": 0.3, "negative": 0.2, "neutral": 0.5 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"workId": 4,
|
||||||
|
"type": "sentiment",
|
||||||
|
"data": {
|
||||||
|
"overall": {
|
||||||
|
"positive": 0.25,
|
||||||
|
"negative": 0.25,
|
||||||
|
"neutral": 0.5
|
||||||
|
},
|
||||||
|
"sections": [
|
||||||
|
{ "section": "Stanza 1", "positive": 0.35, "negative": 0.15, "neutral": 0.5 },
|
||||||
|
{ "section": "Stanza 2", "positive": 0.15, "negative": 0.35, "neutral": 0.5 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"workId": 1,
|
||||||
|
"type": "linguistics",
|
||||||
|
"data": {
|
||||||
|
"partOfSpeech": {
|
||||||
|
"nouns": 120,
|
||||||
|
"verbs": 95,
|
||||||
|
"adjectives": 65,
|
||||||
|
"adverbs": 40,
|
||||||
|
"pronouns": 75
|
||||||
|
},
|
||||||
|
"readability": {
|
||||||
|
"fleschKincaid": 8.5,
|
||||||
|
"wordCount": 5600,
|
||||||
|
"averageSentenceLength": 14.2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"workId": 4,
|
||||||
|
"type": "linguistics",
|
||||||
|
"data": {
|
||||||
|
"partOfSpeech": {
|
||||||
|
"nouns": 14,
|
||||||
|
"verbs": 9,
|
||||||
|
"adjectives": 6,
|
||||||
|
"adverbs": 3,
|
||||||
|
"pronouns": 10
|
||||||
|
},
|
||||||
|
"readability": {
|
||||||
|
"fleschKincaid": 6.8,
|
||||||
|
"wordCount": 58,
|
||||||
|
"averageSentenceLength": 7.3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"workId": 1,
|
||||||
|
"type": "themes",
|
||||||
|
"data": {
|
||||||
|
"primaryThemes": ["love", "society", "identity", "boredom", "social change"],
|
||||||
|
"themeDistribution": {
|
||||||
|
"love": 0.25,
|
||||||
|
"society": 0.22,
|
||||||
|
"identity": 0.18,
|
||||||
|
"boredom": 0.15,
|
||||||
|
"social change": 0.12,
|
||||||
|
"other": 0.08
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"workId": 4,
|
||||||
|
"type": "themes",
|
||||||
|
"data": {
|
||||||
|
"primaryThemes": ["unrequited love", "selflessness", "memory", "longing"],
|
||||||
|
"themeDistribution": {
|
||||||
|
"unrequited love": 0.35,
|
||||||
|
"selflessness": 0.30,
|
||||||
|
"memory": 0.20,
|
||||||
|
"longing": 0.15
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7,
|
||||||
|
"workId": 1,
|
||||||
|
"type": "poetic",
|
||||||
|
"data": {
|
||||||
|
"meter": "iambic tetrameter",
|
||||||
|
"rhymeScheme": "AbAbCCddEffEgg",
|
||||||
|
"stanzaForm": "sonnet variant (Onegin stanza)",
|
||||||
|
"soundPatterns": {
|
||||||
|
"alliteration": 0.15,
|
||||||
|
"assonance": 0.12,
|
||||||
|
"consonance": 0.10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8,
|
||||||
|
"workId": 4,
|
||||||
|
"type": "poetic",
|
||||||
|
"data": {
|
||||||
|
"meter": "iambic tetrameter",
|
||||||
|
"rhymeScheme": "ababcdcd",
|
||||||
|
"stanzaForm": "octave",
|
||||||
|
"soundPatterns": {
|
||||||
|
"alliteration": 0.10,
|
||||||
|
"assonance": 0.15,
|
||||||
|
"consonance": 0.12
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"annotations": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"workId": 1,
|
||||||
|
"translationId": null,
|
||||||
|
"lineNumber": 1,
|
||||||
|
"content": "The opening line introduces Onegin's uncle, immediately establishing the ironic tone that will characterize much of the novel.",
|
||||||
|
"type": "context",
|
||||||
|
"userId": 2,
|
||||||
|
"createdAt": "2025-01-01T00:00:00.000Z",
|
||||||
|
"isOfficial": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"workId": 1,
|
||||||
|
"translationId": null,
|
||||||
|
"lineNumber": 14,
|
||||||
|
"content": "The closing lines of the first stanza reveal the narrator's true feelings—impatience with the social obligation of tending to the sick relative, exposing hypocrisy in social customs.",
|
||||||
|
"type": "analysis",
|
||||||
|
"userId": 4,
|
||||||
|
"createdAt": "2025-01-02T00:00:00.000Z",
|
||||||
|
"isOfficial": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"workId": 4,
|
||||||
|
"translationId": null,
|
||||||
|
"lineNumber": 1,
|
||||||
|
"content": "The poem begins with a direct statement of past love that is immediately qualified by the suggestion that the feeling may still persist.",
|
||||||
|
"type": "analysis",
|
||||||
|
"userId": 2,
|
||||||
|
"createdAt": "2025-01-03T00:00:00.000Z",
|
||||||
|
"isOfficial": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"workId": 4,
|
||||||
|
"translationId": null,
|
||||||
|
"lineNumber": 8,
|
||||||
|
"content": "The final line offers a selfless wish that the beloved find greater happiness with someone else, showing the speaker's ultimate concern for the other's well-being over his own desires.",
|
||||||
|
"type": "analysis",
|
||||||
|
"userId": 2,
|
||||||
|
"createdAt": "2025-01-03T00:00:00.000Z",
|
||||||
|
"isOfficial": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"workId": 1,
|
||||||
|
"translationId": 1,
|
||||||
|
"lineNumber": 1,
|
||||||
|
"content": "Nabokov's translation prioritizes literal accuracy. Note the deliberate awkwardness of 'has most honest principles', which reflects his commitment to semantic precision over poetic flow.",
|
||||||
|
"type": "translation",
|
||||||
|
"userId": 3,
|
||||||
|
"createdAt": "2025-01-04T00:00:00.000Z",
|
||||||
|
"isOfficial": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"workId": 1,
|
||||||
|
"translationId": 2,
|
||||||
|
"lineNumber": 1,
|
||||||
|
"content": "This modern translation attempts to create a more natural English verse while still conveying the meaning. Note how 'man of firm conviction' provides a smoother opening than Nabokov's more literal rendering.",
|
||||||
|
"type": "translation",
|
||||||
|
"userId": 3,
|
||||||
|
"createdAt": "2025-01-04T00:00:00.000Z",
|
||||||
|
"isOfficial": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -7,7 +7,8 @@ import {
|
|||||||
ReadingProgress, InsertUser, InsertAuthor, InsertWork,
|
ReadingProgress, InsertUser, InsertAuthor, InsertWork,
|
||||||
InsertTranslation, InsertTag, InsertBookmark, InsertComment,
|
InsertTranslation, InsertTag, InsertBookmark, InsertComment,
|
||||||
InsertLike, InsertCollection, InsertCollectionItem, InsertTimelineEvent,
|
InsertLike, InsertCollection, InsertCollectionItem, InsertTimelineEvent,
|
||||||
InsertBlogPost, InsertReadingProgress
|
InsertBlogPost, InsertReadingProgress, AnalysisResult, InsertAnalysisResult,
|
||||||
|
Annotation, InsertAnnotation
|
||||||
} from '../shared/schema';
|
} from '../shared/schema';
|
||||||
|
|
||||||
export class JsonStorage implements IStorage {
|
export class JsonStorage implements IStorage {
|
||||||
@ -27,6 +28,8 @@ export class JsonStorage implements IStorage {
|
|||||||
timelineEvents: Map<number, TimelineEvent>;
|
timelineEvents: Map<number, TimelineEvent>;
|
||||||
blogPosts: Map<number, BlogPost>;
|
blogPosts: Map<number, BlogPost>;
|
||||||
readingProgresses: Map<string, ReadingProgress>;
|
readingProgresses: Map<string, ReadingProgress>;
|
||||||
|
analysisResults: Map<number, AnalysisResult>;
|
||||||
|
annotations: Map<number, Annotation>;
|
||||||
};
|
};
|
||||||
|
|
||||||
private counters: {
|
private counters: {
|
||||||
@ -43,6 +46,8 @@ export class JsonStorage implements IStorage {
|
|||||||
timelineEventId: number;
|
timelineEventId: number;
|
||||||
blogPostId: number;
|
blogPostId: number;
|
||||||
readingProgressId: number;
|
readingProgressId: number;
|
||||||
|
analysisResultId: number;
|
||||||
|
annotationId: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
private dataFilePath: string;
|
private dataFilePath: string;
|
||||||
@ -65,6 +70,8 @@ export class JsonStorage implements IStorage {
|
|||||||
timelineEvents: new Map<number, TimelineEvent>(),
|
timelineEvents: new Map<number, TimelineEvent>(),
|
||||||
blogPosts: new Map<number, BlogPost>(),
|
blogPosts: new Map<number, BlogPost>(),
|
||||||
readingProgresses: new Map<string, ReadingProgress>(),
|
readingProgresses: new Map<string, ReadingProgress>(),
|
||||||
|
analysisResults: new Map<number, AnalysisResult>(),
|
||||||
|
annotations: new Map<number, Annotation>(),
|
||||||
};
|
};
|
||||||
|
|
||||||
this.counters = {
|
this.counters = {
|
||||||
@ -81,6 +88,8 @@ export class JsonStorage implements IStorage {
|
|||||||
timelineEventId: 1,
|
timelineEventId: 1,
|
||||||
blogPostId: 1,
|
blogPostId: 1,
|
||||||
readingProgressId: 1,
|
readingProgressId: 1,
|
||||||
|
analysisResultId: 1,
|
||||||
|
annotationId: 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
this.loadDataFromFile();
|
this.loadDataFromFile();
|
||||||
@ -261,11 +270,35 @@ export class JsonStorage implements IStorage {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Load analysis results
|
||||||
|
if (jsonData.analysisResults) {
|
||||||
|
jsonData.analysisResults.forEach((result: AnalysisResult) => {
|
||||||
|
this.data.analysisResults.set(result.id, {
|
||||||
|
...result,
|
||||||
|
createdAt: new Date(result.createdAt)
|
||||||
|
});
|
||||||
|
this.counters.analysisResultId = Math.max(this.counters.analysisResultId, result.id + 1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load annotations
|
||||||
|
if (jsonData.annotations) {
|
||||||
|
jsonData.annotations.forEach((annotation: Annotation) => {
|
||||||
|
this.data.annotations.set(annotation.id, {
|
||||||
|
...annotation,
|
||||||
|
createdAt: new Date(annotation.createdAt)
|
||||||
|
});
|
||||||
|
this.counters.annotationId = Math.max(this.counters.annotationId, annotation.id + 1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
console.log('Data loaded successfully');
|
console.log('Data loaded successfully');
|
||||||
console.log(`Users: ${this.data.users.size}`);
|
console.log(`Users: ${this.data.users.size}`);
|
||||||
console.log(`Authors: ${this.data.authors.size}`);
|
console.log(`Authors: ${this.data.authors.size}`);
|
||||||
console.log(`Works: ${this.data.works.size}`);
|
console.log(`Works: ${this.data.works.size}`);
|
||||||
console.log(`Translations: ${this.data.translations.size}`);
|
console.log(`Translations: ${this.data.translations.size}`);
|
||||||
|
console.log(`Analysis Results: ${this.data.analysisResults.size}`);
|
||||||
|
console.log(`Annotations: ${this.data.annotations.size}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error loading data from file:', error);
|
console.error('Error loading data from file:', error);
|
||||||
}
|
}
|
||||||
@ -296,7 +329,9 @@ export class JsonStorage implements IStorage {
|
|||||||
collectionItems: Array.from(this.data.collectionItems.values()),
|
collectionItems: Array.from(this.data.collectionItems.values()),
|
||||||
timelineEvents: Array.from(this.data.timelineEvents.values()),
|
timelineEvents: Array.from(this.data.timelineEvents.values()),
|
||||||
blogPosts: Array.from(this.data.blogPosts.values()),
|
blogPosts: Array.from(this.data.blogPosts.values()),
|
||||||
readingProgresses: Array.from(this.data.readingProgresses.values())
|
readingProgresses: Array.from(this.data.readingProgresses.values()),
|
||||||
|
analysisResults: Array.from(this.data.analysisResults.values()),
|
||||||
|
annotations: Array.from(this.data.annotations.values())
|
||||||
};
|
};
|
||||||
|
|
||||||
fs.writeFileSync(this.dataFilePath, JSON.stringify(jsonData, null, 2), 'utf8');
|
fs.writeFileSync(this.dataFilePath, JSON.stringify(jsonData, null, 2), 'utf8');
|
||||||
|
|||||||
@ -281,3 +281,29 @@ export type BlogPost = typeof blogPosts.$inferSelect;
|
|||||||
|
|
||||||
export type InsertReadingProgress = z.infer<typeof insertReadingProgressSchema>;
|
export type InsertReadingProgress = z.infer<typeof insertReadingProgressSchema>;
|
||||||
export type ReadingProgress = typeof readingProgress.$inferSelect;
|
export type ReadingProgress = typeof readingProgress.$inferSelect;
|
||||||
|
|
||||||
|
// Analysis results interface for linguistic/sentiment analysis and other analytics
|
||||||
|
export interface AnalysisResult {
|
||||||
|
id: number;
|
||||||
|
workId: number;
|
||||||
|
type: string; // 'sentiment', 'linguistics', 'themes', 'poetic', etc.
|
||||||
|
data: any;
|
||||||
|
createdAt: Date;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InsertAnalysisResult = Omit<AnalysisResult, 'id' | 'createdAt'>;
|
||||||
|
|
||||||
|
// Annotations interface for line-by-line notes, context, and analysis
|
||||||
|
export interface Annotation {
|
||||||
|
id: number;
|
||||||
|
workId: number;
|
||||||
|
translationId: number | null;
|
||||||
|
lineNumber: number | null;
|
||||||
|
content: string;
|
||||||
|
type: string; // 'context', 'analysis', 'translation', etc.
|
||||||
|
userId: number;
|
||||||
|
isOfficial: boolean;
|
||||||
|
createdAt: Date;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InsertAnnotation = Omit<Annotation, 'id' | 'createdAt'>;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user