LINUX.ORG.RU

структура БД англо-русского словаря

 ,


2

3

Где бы стырить? Или, может быть, есть какой-то движок для составления специализированных англо-русских словарей, который можно уже взять в готовом виде и сделать к нему веб-интерфейс? Или даже может быть уже готовый движок с веб-интерфейсом? Интерфейс должен позволять не только читать словарь, но и пополнять его.

И желательно, чтобы пополнять его было не крайне сложной задачей, а постижимой простым ламером.

★★★★★

Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Есть словари в открытых форматах. Есть ли open-source движок, позволяющий их показывать онлайн

Вот этого не скажу. Из свободных онлайн словарей знаю только wiktionary.org, но он не англо-русский и вообще не для переводов.

aureliano15 ★★
()
Ответ на: комментарий от Zmicier

О, господи! Поэтому я вам и говорю, что брать надо *простой текст*, а не XML. В нем почти не может быть грамматических ошибок

У словарной статьи есть структура. Её нужно как-то выразить. Я вижу, по сути, два варианта - либо XML и далее парсер, к-рый сразу показывает косяки, либо жуткий WYSWYG редактор с массой кнопочек. Который я не осилю и который вообще не нужен ввиду неэффективности работы в нём.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73
<abbreviations>
    <abbr_def type="grm"><abbr_k>n.</abbr_k><abbr_v>noun</abbr_v></abbr_def>
    <abbr_def type="knl"><abbr_k>polit.</abbr_k><abbr_v>politics</abbr_v></abbr_def>
    <abbr_def><abbr_k>Av.</abbr_k><abbr_k>Ave.</abbr_k><abbr_v>Avenue</abbr_v></abbr_def>
</abbreviations>

Чтоб вы понимали специфику предметной области. Например, сокращения. Это определённое понятие. Писать его просто в виде текста - вроде поначалу легко пишется, но потом нельзя запросить список всех сокращений. Если формат не будет чётким, продуманным и контролируемым, в результате может получиться только помойка.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

В общем, придётся подождать, пока sourceforge поднимется. Если crossdef не устроит, придётся делать велосипед.

Проглядел стандарт xdxf. Видимо, нужно сделать разбор подмножества этого стандарта, разбирать хотя бы ключи, ссылки на другие слова, область применения, ссылки на внешние ресурсы.

Ну и естественно, нужно все теги русифицировать и перевести само определение формата.

Рендерить всё это в обычный плоский текст с гиперссылками.

Отдельную статью хранить в отдельной записи и отдавать в API по отдельному URI.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Отдельную статью хранить в отдельной записи

Я бы сделал отношение многие ко многим. Тогда можно было бы сделать двунаправленный словарь + список синонимов на исходном языке (как это делается в яндекс.словарях).

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

В xdxf предусмотрено наличие нескольких ключей в статье, так что да, получается много ко многим. Хотя пока на мой взгляд на фоне задачи валидации XML и разумного отображения ошибок это мелочь.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Имхо, структура БД — это не мелочь, а самое главное, т. к. от неё зависит логика и сервера, и клиента. Если не продумать, то потом придётся переделывать всё.

aureliano15 ★★
()
Ответ на: комментарий от den73

Браузерные интерфейсы для него, разумеется, есть

А для xdxf?

А он создан как формат обмена. И он же комплектуется утилитой для конвертации в формат того же dict-а и прочих.

Для изначального dictd есть db-плагин Но по умолчанию сервер собирается без него. И последние лет 10 это видимо никого не колышет:( Как переосмысление проблемы написали javadict поверх postgres. И возможно тоже забили.

antares0 ★★★★
()
Ответ на: комментарий от den73

или это будут куски XML - дело десятое.

И в принципе xmlbd и всякие документные придуманы для более-менее оптимального хранения такой информации. Реалициоки для более табличных данных по идее?

antares0 ★★★★
()
Ответ на: комментарий от antares0

Может быть, но я знаю SQL, а по постгресу есть вакансии. Поэтому буду затаскивать сюда постргрес, даже если он неоптимален. Думаю, всё будет ок, если я осилю добить вуй.

den73 ★★★★★
() автор топика

Написал я под андроид русско-китайский словарь, примерно с 3.5 млн.слов. sqlite справился на ура, но только с fts4, с хитрой выборкой селект отрабатывает за секунду, при учете что он ищет еще по пиньиню, а там по запросу shi может выдать десятки результатов.

AUX ★★★★
()
Последнее исправление: AUX (всего исправлений: 1)
Ответ на: комментарий от den73

Может быть, но я знаю SQL, а по постгресу есть вакансии. Поэтому буду затаскивать сюда постргрес,

Постгрес умеет xml, хотя аналогичный json он ИМХО умеет оптимальнее. Для MySQL/MariaDB это тоже заявлено.

antares0 ★★★★
()
Последнее исправление: antares0 (всего исправлений: 1)
Ответ на: комментарий от AUX

Спасибо. Да ясно, что SQL справится.

Но я понял, что формат xdxf неправильный. Он не даёт первичного ключа. Т.е. невозможно даже нормально организовать «редактирование отдельной статьи». По сути, можно редактировать только словарь целиком.

Мне кажется на данный момент, что нужен формат, в котором статья раскрывает только один смысл слова или словосочетания. Т.е. первичный ключ в таблице словарных статей - это совокупность из написания слова, части речи/предложения и разъяснённого смысла. Такой ключ требует искусства при поддержании базы. Легко наделать дубликатов из-за того, что смыслы можно объяснить разными словами.

Но это - минимум того, что будет правильным решением. А теперь вопрос тебе, ЛОР, на засыпку. Есть ли такие форматы и такие словари?

Как это вообще называется?

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Sqlite не справится, особенно на телефоне, а вот с костылем от гугла fts4, справляется.

Голый sqlite по запосу shi или 马 думает 10 секунд, а с fts около 1 секунды, но это при учете что запрос оптимизирован.

AUX ★★★★
()
Ответ на: комментарий от den73

Мне кажется на данный момент, что нужен формат, в котором статья раскрывает только один смысл слова или словосочетания.

Есть буржуйский omg/[url=]https://en.wikipedia.org/wiki/Semantics_of_Business_Vocabulary_and_Business_R... который дословно повторяет твои размышнеия о проблеме. Но по области он сильно больше словаря

Как это вообще называется?

Онтологии. Как условно-попсовый пример - owl. Стандарты на подобные словари есть, хотя точных сссылок я с ходу не найду.

antares0 ★★★★
()
Ответ на: комментарий от antares0

Спасибо, будем посмотреть.

den73 ★★★★★
() автор топика
Ответ на: комментарий от antares0

Пока ещё не смотрел эти ссылки. Но вопрос такой. Смысл слова - это некая фраза на языке оригинала. Я понял, что фразу использовать в качестве ключа плохо. Желательно иметь ещё и сокращённую версию смысла. Т.е., допустим,

{ запись: "statement";
  смысл: "an element of programming language definition, e.g. loop statement";
}
Это - плохой ключ, т.к. в принципе по мере развития словаря может понадобиться его уточнить. Нужен суррогатный ключ. Он мог бы быть каким-то таким:
{ запись: "statement";
  смысл: "an element of programming language definition, e.g. loop statement";
  код: "programming.language.statement"
}
При этом ключём, идентифицирующим смысл, является не полная фраза, а поле «код». Тогда если вдруг появится новый смысл, его можно будет обозначить как «programming.language.statement.1», а поле «смысл» при этом в формулировку смысла можно внести уточнение.

Соответственно, вопрос: есть ли уже подобная система кодирования смыслов?

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Тут на самом деле не всё так просто ,т.к. смыслы в базе могут развиваться со временем. Например, был один смысл, а потом его расщепили. При этом старый ключ не должен сломаться, иначе все док-ты, к-рые его используют, сломаются.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Нужен суррогатный ключ.

Это называется «контекстом». :-)

есть ли уже подобная система кодирования смыслов?

В каком смысле «система»? Есть ли форматы и программы для них? Ну, в том же GNU Gettext’е, например: msgid и msgctxt.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от den73

ответственно, вопрос: есть ли уже подобная система кодирования смыслов?

За базу кодирования смыслов обычно берут RDF. Это примерно уровень символов и списков лиспа. Выше я говорил об owl - он вот так сказать уже пакет макросов. Данные описаные с помощью RDF можно загрузить Virtuoso(gpl2) и довольно шустро манипулировать ими с помощью sparql и гибридно в одной базе сопрягать с реляционными и прочими xml-ями.
Если кто знаком с prolog-ом - то это вот современное развитие его идей. С уже взрослыми БД и прочим.

antares0 ★★★★
()
Ответ на: комментарий от den73

Тут вобщем-то вопрос в том что ты хочешь от такой системы кодирования получить. Само по себе вышеописаное обслуживает интересы узкого и страшно далекого от народа подвида спецов. Из точки зрения Postgres/JS знание всего это почти пустой груз

antares0 ★★★★
()
Последнее исправление: antares0 (всего исправлений: 2)
Ответ на: комментарий от den73

книжный либез о нужности и причинах появления вышеперечисленой зауми для храбрых и любопытных:) А.ЛЕВЕНЧУК «СИСТЕМНОИНЖЕНЕРНОЕ МЫШЛЕНИЕ»
Business Objects: Re-Engineering for Re-Use

antares0 ★★★★
()
Последнее исправление: antares0 (всего исправлений: 1)
Ответ на: комментарий от antares0

Я всего лишь хочу получить способ надёжно редактировать словари коллективно. Рассмотрим operator. В программировании у него два смысла: оператор (присваивания) и операция (сложения). Я хочу, чтобы любой пользователь моего словаря мог бы ввести свой перевод каждого из этих смыслов по отдельности. Я не строю искусственный интеллект :) Формулировка смысла делается на человеческом языке и не предназначена для чтения компьютером.

И вот, я мечтаю, чтобы где-то была глобальная и стандартизованная БД, в которой каждому из этих смыслов был присвоен свой код. Не более того.

И это не касается знаний Postgres/JS - это всего лишь вопрос, как правильно формализовать предметную область, чтобы проблемы по мере роста базы данных не росли, как снежный ком.

Когда я попытался представить, как работать с форматом xdxf, я сразу заметил отсутствие первичного ключа. Это нежизнеспособно.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Я всего лишь хочу получить способ надёжно редактировать словари коллективно.

А это видел? ruwiki/Семантическая вики. Оно на концепциях того же rdf.

Я не строю искусственный интеллект :)

Я пока и не предлагал

Формулировка смысла делается на человеческом языке и не предназначена для чтения компьютером.

Текст на веб-страничке тоже не для компьютера, однакож http/html/css/uri ... :( Ссылки которые я кидаю, они все про непротиворечивое связывание данных. Уровень html где-то

И вот, я мечтаю, чтобы где-то была глобальная и стандартизованная БД

Ну для примера

вопрос, как правильно формализовать предметную область, чтобы проблемы по мере роста базы данных не росли, как снежный ком.

Business Objects (см. выше) по идее должен отвечать на такие вопросы, включая еще не осознаные:) Но страниц много, да.

antares0 ★★★★
()
Последнее исправление: antares0 (всего исправлений: 1)
Ответ на: комментарий от nihirash

Некий г-н Фейнман уже изобретал свои значки для математических операций, ибо решил, что его нотация удобнее, но позже осознал, что ему необходимо взаимодействовать с людьми и нужен общий набор знаков и определений.

Где про это можно прочитать побольше?

Einstok_Fair ★★☆
()
Ответ на: комментарий от Einstok_Fair

В какой-то из Лейтоновских биографий Фейнмана, кажется, в самой первой и знаменитой: «Вы, конечно, шутите...»

Zmicier ★★★★★
()
Ответ на: комментарий от Einstok_Fair

Ути-пути, какие мы беспомощные.

C-s nota
Failing I-search: nota
C-s sym
    <p>While I was doing all this trigonometry, I didn’t like the symbols for sine, cosine, tangent, and so on. To me, “sin f” looked like s times i times n times f! So I invented another symbol, like a square root sign, that was a sigma with a long arm sticking out of it, and I put the f underneath. For the tangent it was a tau with the top of the tau extended, and for the cosine I made a kind of gamma, but it looked a little bit like the square root sign.</p>
    <p>Now the inverse sine was the same sigma, but left-to-right reflected so that it started with the horizontal line with the value underneath, and then the sigma. <emphasis>That</emphasis> was the inverse sine, NOT sink f—that was crazy! They had that in books! To me, sini meant i/sine, the reciprocal. So my symbols were better.</p>
    <p>I didn’t like f(x)—that looked to me like f times x. I also didn’t like dy/dx—you have a tendency to cancel the d’s—so I made a different sign, something like an & sign. For logarithms it was a big L extended to the right, with the thing you take the log of inside, and so on.</p>
    <p>I thought my symbols were just as good, if not better, than the regular symbols—it doesn’t make any difference <emphasis>what</emphasis> symbols you use—but I discovered later that it <emphasis>does</emphasis> make a difference. Once when I was explaining something to another kid in high school, without thinking I started to make these symbols, and he said, “What the hell are those?” I realized then that if I’m going to talk to anybody else, I’ll have to use the standard symbols, so I eventually gave up my own symbols.</p>
Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Zmicier

Круто! Фейнман уже в школе заметил, как плоха алгебраическая нотация. Я тоже это заметил, но только при разработке Яра. В школе мне не хватило самостоятельности мышления для этого. Действительно, f(x) и sinx порождают опасные неоднозначности в грамматике. В Си это вообще становится не смешным. Глупые разработчики ЯП нагружают скобки ещё и другими смыслами (например, кортежи из них делают или лямбды).

В итоге в Яре для вызова функции используется f(x), а для группировки выражений - f * (: x + 1 :) . Не факт, что удастся это впарить населению, но шанс есть, если уж баш живёт.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Прямо интересной оказалась тема обработки ЕЯ, и в то же время много каких-то, на вид, глупостей. Но вся эта деятельность сворачивается. Т.е. если есть желание у кого-то сделать такой словарь (а затея, по-моему, интересная и может найти массу применений), то я готов поучаствовать в обсуждении ТЗ. Моя заготовка ТЗ - здесь

https://bitbucket.org/budden/ppr/src/380b861c15cca4bde1e39b0bf7a20dde506eb6b3...

Всем большое спасибо за ликбез!

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.