Початкова сторінка

Микола Жарких (Київ)

Персональний сайт

?

Абстрактні класи

Микола Жарких

Персистентний об’єкт – базовий клас об’єктної СУБД, від якого успадковуються всі інші класи будь-якої предметної області.

Атрибути ТекстОб’єкта

Малюнок 2. Атрибути ТекстОб’єкта

ТекстОб’єкт (скорочення від “Текстовий об’єкт”) – абстрактний клас, який орієнтовано на зберігання інформації в гуманітарній області в цілому. Оскільки для цієї області типовими є різноманітні тексти, які з різних боків характеризують об’єкти, він розрахований на зберігання текстів різного призначення. Його атрибут Коментар (тип даних – збагачене мемо [3]) призначено для зберігання довільної кількості форматованого тексту; цей текст стосується об’єкта в цілому. Атрибут Ключові слова (тип даних – ключові слова) призначено для зберігання ключових слів, які характеризують об’єкт. Атрибут Примітки (тип даних – картотека) призначено для збереження ряду рівноцінних текстів. Кожна картка приміток складається з двох атрибутів: Підпис (тип даних – текст) призначено для того, щоб коротко описати зміст картки (щось на зразок заголовка), Зміст (тип даних – збагачене мемо) – для змісту примітки, яка може бути необмежено довгою.

Оскільки даний клас проектується як абстрактний і ми не збираємось створювати його екземплярів, то можна не журитись тим, що він не має логічного імені. Правила визначення логічного імені будуть визначені для нащадків ТекстОб’єкту.

Атрибути ІмОб’єкта

Малюнок 3. Атрибути ІмОб’єкта

ІмОб’єкт (скорочення від “Іменований об’єкт”) – абстрактний клас, який орієнтовано на зберігання інформації про об’єкти, які мають кілька імен. Цим він протиставляється своєму брату – НазвОб’єкту, який підтримує тільки одне ім’я. Наявність кількох альтернативних імен на позначення одного і того самого об’єкта дуже характерна для гуманітарних наук в цілому і спеціально для історичних наук. Типовим прикладом є населені пункти, які по кілька разів змінювали назви (Луганськ – Ворошиловград, Зміїв – Готвальд, Юзівка – Сталіно – Донецьк і т.д.). Для успішного зберігання інформації про такі об’єкти в базі даних вирішальним є зберігання всіх альтернативних назв.

Атрибут Імена (тип даних – картотека) призначено для збереження всіх альтернативних імен. Його варто зробити обов’язковим, тобто правильно заповнений об’єкт мусить містити принаймні одну картку в картотеці імен. Кожна картка дає докладний опис із семи атрибутів. Атрибут Ім’я (тип даних – текст) містить написання даного імені; цей атрибут є обов’язковим та індексованим. Нагадаємо, що в “Археометриці 2.7” кожен індексований текстовий атрибут автоматично додається до загального списку ключових слів об’єкту, тому всі альтернативні імена є ключовими словами; їх зовсім не треба дублювати в атрибуті “Ключові слова”. Атрибут Є основним (тип даних – виняток) відзначає в картотеці одне з імен, яке користувач хоче зробити основним. Цей виняток може набувати одне з двох значень: “Альтернативне” або “Основне”. Цей атрибут є обов’язковим, тобто в картотеці мусить бути рівно одна картка, для якої встановлене значення “Основне”. Атрибут Тип (тип даних – ієрархічний перелік) містить тип імені [?? чи потрібен]. Атрибут Період дії (тип даних – історична дата) містить відрізок часу, до якого відноситься дане ім’я. Атрибут Зауваження (тип даних – збагачене мемо) призначено для зберігання пояснень щодо імені. Атрибут Джерело (тип даних – вказівник на об’єкт класу Джерело) містить інформацію про основне джерело, з якого взято відомості про дане ім’я (наприклад, про його тип та період дії). Атрибут Деталі джерела (тип даних – текст) містить деталі розміщення цитованих даних всередині джерела великого обсягу. Наприклад, якщо Джерело вказує на енциклопедію, то Деталі джерела можуть містити конкретний том і сторінку. Тобто пара атрибутів Джерело / Деталі джерела, яка буде далі часто зустрічатись, може розглядатись як аналог звичної для гуманітарія бібліографічної примітки. Логічне ім’я ІмОб’єкту формується за таким правилом: з картотеки Імена треба вибрати картку, відзначену як основна (для якої атрибут Є основним має значення “Основне”) і з цієї картки вибрати значення атрибуту Ім’я. Через те, що атрибути Імена та Є основним є обов’язковими, за цим правилом обов’язково буде вибрано якийсь текст.

Атрибути ІсторОб’єкта

Малюнок 4. Атрибути ІсторОб’єкта

ІсторОб’єкт (скорочення від “Історичний об’єкт”) – абстрактний клас, який орієнтовано на зберігання інформації про об’єкти, які мають свою власну історію. Атрибут Факти (тип даних – картотека) призначено для збереження всіх фактів, які стосуються даного об’єкту. Кожна картка складається з семи атрибутів. Атрибут Дата (тип даних – історична дата) містить дату факту.

1. Факт особи

1.1. Основні події

1.1.1. Народження

1.1.2. Смерть

1.2. Сімейні події

1.2.1. Шлюб

1.2.2. Розрив шлюбу

1.2.3. Народження дитини

2. Факт установи

2.1. Створення

2.2. Реорганізація

2.3. Ліквідація

3. Факт геооб’єкта

3.1. Формування

3.2. Розпад

3.3. Факт орооб’єкта

3.3.1. Стихійне лихо

3.3.1.1. Пожежа

3.3.1.2. Пошесть

3.3.1.3. Повінь

3.3.2. Історична подія

3.3.2.1. Напад ворога

4. Факт пам’ятки

Малюнок 5. Організація ієрархічного переліку “Суть” (основні рівні)

Атрибут Суть (тип даних – ієрархічний перелік) містить формалізоване визначення того, що сталося. Атрибут Дотичний об’єкт [??Причина] (тип даних – вказівник на екземпляр класу ІсторОб’єкт) вказує на інший об’єкт, який є причиною даного факту. Атрибути Зауваження, Джерело, Деталі джерела є ідентичними з одноіменними атрибутами картотеки Імена. Атрибут Ключові слова (тип даних – ключові слова) містить ключові слова, які характеризують даний факт. Оскільки “Археометрика 2.7” формує єдиний список ключових слів для об’єкту, незалежно від джерел походження цих слів, то ефект заповнення ключових слів факту є таким самим, як ефект заповнення атрибуту Ключові слова самого об’єкту (цей атрибут успадковано від ТекстОб’єкту). Мета розподілу загального списку ключових слів на ключові слова об’єкта в цілому і ключові слова фактів полягає у зручності користувача, який матиме змогу бачити, з яких міркувань внесено ті чи інші ключові слова. Вираз Сумарна дата формується за таким правилом: з картотеки Факти треба вибрати значення атрибуту Дата і сформувати з цього набору дат об’єднану дату. Таким чином, дата об’єкта в цілому в такій системі не задається користувачем безпосередньо, а обчислюється на підставі фактів, які відомі для даного об’єкту. Такий спосіб може видатись трохи химерним, але його зручність полягає в тому, що по мірі нагромадження нових фактів Сумарна дата переобчислюється автоматично. [?? Користь сумнівна! Корисніше було б вибирати факти з певною Суттю і формувати вирази типу Період функціонування, Період дослідження – для пам’яток, скажімо]

Ієрархічний перелік Суть призначено для узагальненої і формалізованої класифікації фактів. Оскільки він не є обов’язковим, його можна взагалі не використовувати, скажімо, в тих випадках, коли йдеться про щось справді унікальне або факт має риси, які не мають спільного кореня в дереві ієрархії. Чотири кореневих вершини відповідають чотирьом основним конкретним класам – нащадкам ІсторОб’єкту. Кожна з цих вершин об’єднує факти, які можуть стосуватись об’єктів певних класів. Ієрархічний перелік не забороняє вживати значення, які не відповідають класу об’єкта, але таке вживання здебільшого позбавлене сенсу. Для вершини “Факт особи” ми як приклад пропонуємо дві підпорядковані гілки, які є самодокументованими. [А взагалі це тема окремого повідомлення]

Нагадаємо, що ієрархічний перелік у такому вигляді, як він реалізований в “Археометриці 2.7”, є дуже гнучким інструментом, який дозволяє створювати нові елементи (рівні вже існуючим або підпорядковані ним), не заторкуючи при цьому даних, що були введені раніше. Тому в міру розростання потреб користувачів деталізація переліку може продовжуватись. Наприклад, для вершини “Факт особи / Основні Події / Смерть” можна утворити підпорядковані вершини “Природна смерть”, “Насильницька смерть”, “Самогубство”, “Нещасний випадок” і вказувати саме їх, якщо рід смерті відомий, або зупинитись на родовому понятті “Смерть” якщо цей рід невідомий або вказувати його небажано.

Сховище – абстрактний клас, який є основою для формування класів-нащадків. Ніяких власних атрибутів він не має.

ЛогОсоба (скорочення від “Логічна особа”) – абстрактний клас, який є основою для формування класів-нащадків. Ніяких власних атрибутів він не має.

Примітки

3. Проектуючи типи даних, ми використовуємо множину типів програми Археометрика 2.7.