Індекси

Переклад книжки Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein "Introduction to Algorithms". Обговорення, термінологія.
Відповісти
sasha1024
Повідомлень: 64
З нами з: Вів січня 19, 2016 4:42 pm

Індекси

Повідомлення sasha1024 » Сер серпня 29, 2018 9:54 pm

В англійській мові природний порядок слів такий, що часто найсуттєвіші слова автоматично йдуть першими: Strassen's algorithm, Pan's method, divide-and-conquer method, divide step тощо.

В українській мові при природному порядку слів часто першими йдуть другорядні слова: алгоритм Штрассена, метод Пана, метод «розділяй та володарюй», крок розділення тощо. Якщо писати слова в індексі саме в такому порядку, то індекс стає практично непридатним для використання: замість того, щоб відкрити частину індексу на літеру «Ш…» і швиденько знайти там Штрассена, читач спочатку відкриє літеру «М…» (метод Штрассена), потім літеру «П…» (процедура Штрассена), потім літеру «А…» (алгоритм Штрассена) — звісно, йому може пощастити й швидше, а не це не гарантовано (чому Штрассена алгоритм, а Пана метод, а не навпаки, наприклад? чому «розділяй та володарюй» — метод попри те, що при першій згадці в розділі його йменують парадигмою? а розділення — це етап, чи крок, чи стадія, чи фаза, чи ще що?). По-моєму, очевидним рішенням є використовувати в індексах більш зручний для пошуку порядок слів:
- Штрассена алгоритм;
- Пана метод;
- розділення (крок);
- тощо.

Yola запропонував натомість в таких випадках створювати додаткові пункти індексу і, як приклад, навів такий (звідси):

Код: Виділити все

Горнер:
    схема......................17
схема Горнера..................17
Однозначно підтримуючи ідею створення додаткових пунктів/підпунктів в індексі з іншим порядком слів, я, однак, маю два заперечення/спостереження:
  1. Я не бачу причин робити отаку додаткову штуку в індексі: «Горнер!схема» (тобто підпункт «схема» в пункті «Горнер») — в тих випадках, коли в Горнера є лише схема. Тобто якби, припустімо, в книзі були різні штуки Горнера (наприклад, експоненційний алгоритм Горнера, поліноміальний алгоритм Горнера, матриця Горнера, дружина Горнера, коханка Горнера тощо), то ми б отримали пункт індексу «Горнер» з декількома підпунктами, що, по-моєму, нормально. Але робити для кожного такого випадку в індексі пункт з одним підпунктом — по-моєму, це виглядає погано. Я б, коли в книзі є лише щось одне Горнера (в цьому випадку — лише схема Горнера), краще (на додачу до «схема Горнера») створював пункт «Горнера схема», а не пункт «Горнер» із єдиним (безпосереднім) підпунктом «схема».
  2. Проблема також у тому, що в багатьох пунктах є свої підпункти. Наприклад, для методу «розділяй та володарюй» по всій книзі розкидані такі підпункти: багатопотокове сортування злиттям, для вибору, для обернення матриць, для багатопотокового множення матриць, для множення, для множення матриць, для пошуку найближчої пари точок, для швидкого перетворення Фур'є, сортування злиттям, у швидкому сортуванні. Тож якщо робити два пункти для методу «розділяй та володаруй» в індексі (наприклад, «метод розділяй та володарюй» та «розділяй та володарюй (метод)»), то, відповідно, доведеться й дублювати підпункти (що вимагає трішки більше мороки технічно й не факт, що добре виглядає для читача).

    Це можна обійти, якщо вирішити зробити один із варіантів назви пункту основним (і там залишити конкретні номери сторінок і підпункти), а інший — просто з «див. <основна назва>» (наприклад, «метод розділяй та володарюй» матиме номери сторінок і підпункти, а біля «розділяй та володарюй (метод)» буде написано лише «див. метод розділяй та володарюй»). Але тоді треба вирішити, який із стилів назв пунктів має бути основним, а який — лише з «див. туди-то». А також — в яких саме випадках ми робимо такі «неповноцінні» синоніми (з «див. туди-то» замість конкретних сторінок і підпунктів), наприклад: (а) можна піднапружитися й завжди робити повноцінні синоніми; (б) можна робити повноцінні синоніми, лише коли нема підпунктів (а коли є підпункти, то, відповідно робити синонім із «див. туди-то»); (в) можна завжди робити додаткові синоніми лише з «див. туди-то», просто для однотипності).
Я особисто робив би по всій книзі такий стиль індексів:
  • основний стиль назв пунктів: «розділяй та володарюй (метод)», «підстановки метод», «дерев рекурсії метод», «Штрассена алгоритм», «розділення (крок)»;
  • додатково створені синоніми: «метод!розділяй та володарюй», «метод!підстановки», «метод!дерев рекурсії, «алгоритм!Штрассена», «крок!розділення» (знак оклику означає, що перша частина є назвою пункту, а друга — назвою підпункту);
  • додатково створені синоніми робити завжди неповноцінними (з «див. туди-то», а не з номерами сторінок і дублюванням підпунктів оригінального пункту) — навіть коли нема підпунктів (і нема мороки з їх дублюванням), просто для однотипності.
На абстрактному прикладі покажу стиль, що мені найбільше подобається:

Код: Виділити все

алгоритм:
    Рабіна-Карпа...........................див. Рабіна-Карпа алгоритм
    Штрассена.................................див. Штрассена алгоритм
Горнера схема......................................................17
дерев рекурсії метод...............................................26
матриця:
    Монжа..........................................див. Монжа матриця
    симетрична................................див. симетрична матриця
метод:
    дерев рекурсії..........................див. дерев рекурсії метод
    Пана..............................................див. Пана метод
    розділяй та володарюй..........див. розділяй та володарюй (метод)
Монжа матриця......................................................32
Пана метод.........................................................26
Рабіна-Карпа алгоритм..............................................25
розділяй та володарюй (метод)......................................26
симетрична матриця.................................................32
Штрассена алгоритм.................................................25
Але я розумію, що не лише мені вирішувати стиль індексу, тому виставляю на обговорення.

Підсумовуючи, цікавлять відповіді на такі запитання:
  1. Чи вважаєте ви доречним створювати додаткові пункти в індексі з іншим порядком слів (для спрощення пошуку)?
  2. Якщо відповідь на питання А буде «так», то:
    Чи вважаєте ви ідею Yola — створювати для пункту «схема Горнера» синонім «Горнер!схема» (тобто підпункт «схема» в пункті «Горнер») — доречною навіть тоді, коли це призводить до існування пунктів із єдиним (безпосереднім) підпунктом (бо в книзі немає нічого горнерівського, окрім схеми)? Чи може, в таких випадках (коли в Горнера є лише схема й нічого більше) краще робити синонім по-моєму — «Горнера схема» (щоб запобігти існуванню безлічі «іменних» пунктів, з лише одним (безпосереднім) підпунктом кожен)?
  3. Якщо відповідь на питання А буде «так», то:
    Який вид синонімів краще створювати — повноцінні (з конкретними номерами сторінок та дублюванням підпуктів оригінального пункту, якщо вони наявні) чи неповноцінні (лише з «див. <основна назва>»)? Є щонайменше три варіанти відповіді:
    1. завжди повноцінні;
    2. якщо нема підпунктів — повноцінний, якщо є підпункти — неповноцінний;
    3. завжди неповноцінні.
  4. Якщо відповідь на питання А буде «ні» (тобто немає синонімів), або ж відповідь на питання C буде «b» чи «с» (тобто принаймні частина синонімів будуть вигляду «див. туди-то»), то:
    Якому стилю назв пунктів надавати перевагу: природному (алгоритм Штрассена, метод підстановки, крок розділення) чи легкошуканому (Штрассена алгоритм, підстановки метод, розділення (крок))?
Востаннє редагувалось Чет серпня 30, 2018 11:03 am користувачем sasha1024, всього редагувалось 2 разів.

Yola
Повідомлень: 138
З нами з: Чет квітня 28, 2011 9:25 am

Re: Індекси

Повідомлення Yola » Чет серпня 30, 2018 8:38 am

Треба буде подивитись чи можна у нас робити

Код: Виділити все

Горнер
    схема..........................17
        в алгоритмі Рабіна-Карпа...xxx
схема Горнера......................17
Здається xindy підтримує трирівневі елементи. А ще було б круто зробит зі схема Горнера дивись на Горнер. Мабуть, так і треба.

Я підозрюю, що якщо таких елементів буде 20-30, то нічого страшного. З точки зору підтримності такий варіант кращий.

sasha1024
Повідомлень: 64
З нами з: Вів січня 19, 2016 4:42 pm

Re: Індекси

Повідомлення sasha1024 » Чет серпня 30, 2018 9:45 am

Чим він кращий із точки зору підтримності?

(Навпаки, по-моєму, його важче підтримувати, бо ми в більшої кількості пунктів змінюємо рівень (а не просто перекладаємо назву за якоюсь схемою). Хоча в одній з моїх пропозицій я теж пропонував робити частину синонімів не на своєму рівні («алгоритм!Штрассена»), але це лише для того, щоб згрупувати послідовні пункти з однаковою першою частиною (алгоритм Дейкстри, алгоритм Евкліда, алгоритм Штрассена) — за відсутності бажання їх можна й не групувати (лишати «алгоритм Штрассена»); такі самі послідовні пункти з однаковою першою частиною виникають й у Вашому варіанті. Тобто в будь-якому разі у Вас пересувань між рівнями більше.)

Та й з точки зору читача (принаймні в мене) багаторівневість індексів (навіть дворівневість) — це trouble, особливо, коли підсписки довгі й рівень пункту ніяк не позначено (тобто коли кожен підпункт рівня N не починається з (N-1) зірочки/риски/абощо). Бо ти йдеш по списку, шукаючи щось (припустімо, «мереживо»): «в… д… ж… к… н… як це н? тобто мережива немає?», а потім такий — «а, дідько, це ж підсписок був! я зараз узагалі увесь час усередині п був! то мені в зворотній бік іти треба».

Та й у будь-якому разі такий спосіб творення індексів («автор!творіння») вирішує проблему лише частково. Проблема з пошуком пунктів, названих не чиїмсь іменем (метод підстановок, метод дерев рекурсії, крок розділення, крок об'єднання, матриця суміжності, алгоритм чогось), не зникає.

Не кажу вже про речі, які названі парою чи навіть трійкою імен (алгоритм Флойда — Воршелла), а не з окремим іменем (не будете ж Ви робити пункт «Флойд — Воршелл» з підпунктом «алгоритм»).

pasichna
Повідомлень: 46
З нами з: Чет грудня 12, 2013 8:33 pm

Re: Індекси

Повідомлення pasichna » Чет серпня 30, 2018 11:39 am

а) нема потреби робити додаткові записи в предметному покажчику з іншим порядком слів, якщо додатком чи означенням є прізвище.
Я не знайшов такої традиції в математичних книжках, виданих в Україні за останні 10 років (глибше не рився по своїй бібліотеці). Інакше кажучи, ніхто не створює Штрассена алгоритм чи Штрассен алгоритм. Структури названі на честь науковців у покажчиках скрізь в такому вигляді:
„Назва структури (теорема, лема, алгоритм) Прізвище в родовому відмінку“
Тобто на пункт А) відповідь ні.
Зважаючи на моє пояснення, на пункт D) відповідь „природний порядок“.

Але якщо із власними назвами є чітка простежувана закономірність, то певна невизначеність панує зі словосполученнями „означення підмет“ (наприклад, двійкове дерево). У книжках використовують як гніздову систему покажчика (тобто дерево - двійкове, кістякове, ... інакше кажучи переставили місцями прикметник та іменник), так і алфавітну систему - орієнтований граф, планарний граф. Водночас в багатьох словниках існує алфавітно-гніздова система слів. Згідно з цієї системи терміни, що складаються з визначень та слів, що визначає термін, варто шукати за провідними термінами.
Тому пропоную дотримуватися алфавітно-гніздової системи, тобто розміщувати в алфавітному порядку провідні слова, які виступатимуть гніздом для словосполучень.

Якщо певні гнізда вийдуть надто великими, то можна буде згодом їх розділити на два типи „означення підмет“ та „головне слово - характеристика“ чи „підмет - додаток“ (наприклад, двійкове дерево, але дерево - порядок обходу чи дерево - граматичного розбору). Звісно таким поділом варто зайнятися у самому кінці підготовки книжки, а не зараз під час перекладу, бо не видно усієї картини предметного покажчика.

sasha1024
Повідомлень: 64
З нами з: Вів січня 19, 2016 4:42 pm

Re: Індекси

Повідомлення sasha1024 » Чет серпня 30, 2018 2:30 pm

pasichna писав:
Чет серпня 30, 2018 11:39 am
Але якщо із власними назвами є чітка простежувана закономірність, то певна невизначеність панує зі словосполученнями „означення підмет“ (наприклад, двійкове дерево). У книжках використовують як гніздову систему покажчика (тобто дерево - двійкове, кістякове, ... інакше кажучи переставили місцями прикметник та іменник), так і алфавітну систему - орієнтований граф, планарний граф. Водночас в багатьох словниках існує алфавітно-гніздова система слів. Згідно з цієї системи терміни, що складаються з визначень та слів, що визначає термін, варто шукати за провідними термінами.
Тому пропоную дотримуватися алфавітно-гніздової системи, тобто розміщувати в алфавітному порядку провідні слова, які виступатимуть гніздом для словосполучень.

Якщо певні гнізда вийдуть надто великими, то можна буде згодом їх розділити на два типи „означення підмет“ та „головне слово - характеристика“ чи „підмет - додаток“ (наприклад, двійкове дерево, але дерево - порядок обходу чи дерево - граматичного розбору). Звісно таким поділом варто зайнятися у самому кінці підготовки книжки, а не зараз під час перекладу, бо не видно усієї картини предметного покажчика.
Тобто я правильно зрозумів, що мені зараз взагалі немає сенсу вовтузитися з, припустімо, «розділення (крок)», «об'єднання (крок)» і хай буде природний порядок «крок розділення», «крок об'єднання»?

pasichna
Повідомлень: 46
З нами з: Чет грудня 12, 2013 8:33 pm

Re: Індекси

Повідомлення pasichna » Чет серпня 30, 2018 2:50 pm

Авжеж. Усе правильно.

Відповісти

Повернутись до “Переклад "Introduction to Algorithms"”