Адресация по трём словам

Забавный способ адресации: http://what3words.com/
Теперь можно посылать не на три буквы, а на три слова.
Статья на хабре: http://habrahabr.ru/company/what3words/blog/249131/
Сервис из Англии… это случайно не то, что Стив Кост имел ввиду под решением проблемы адресации? :slight_smile:

Это 1) олд ньюс, 2) закрытые данные, 3) никак не связано с osm, и едва ли будет поддерживаться в поиске на osm.org.

Пост не претендует на 1 и не спорит со 2.
Вы не правы на счёт 3. У технологии адресации есть связь с осм.

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

Самое плохое что это закрытые данные, а не опубликованный алгоритм+словарь.

Какое то время с этим поиграются, потом сайт закроется, и где были эти трехсловные адреса уже никто не узнает.

Вообще было бы интересно придумать алгоритм, который бы по каждой букве уточнял положение, и любая достаточно длинная фраза указывала бы на конкретное место. А проприетарным сервисом мог бы быть подбор слов (фразы) по координате.

Дак Hilbert Curve Geo Hash. Каждый следующий двоичный разряд увеличивает точность координаты. Дальше вопрос как перевести integer в человекозапоминаемый вид.

Адресация по четырем словам:
Считаем хеш, получаем 32бит целое
делим его на 4 октета
каждому из 256 возможных значений октета сопоставляем слово из словаря. Можно поделить не на октеты и для каждой группы разрядов брать словарь побольше/поменьше. Кароче на 1 чашку чая задачка.

Хорошо, таже задача, но без словаря. Каждой букве алфавита должно быть приписано некое значение, которое прямо по фразе (например мама.мыла.раму )позволяет вычислить хэш и следовательно координату.

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

Пока словарь и алгоритм закрыты, проект неинтересен, и даже вреден.

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

То, что ты Кирилл хочешь, не взлетит.

Нужен не словарь, а из букв как-то получать цифры. А затем брутфорсом к нужным цифрам подбирать слова. По аналогии как алфавит написали на клавиатуре телефона.

Очень хорошо. Нужно ее перевести в координату.

Такая фраза запоминается даже лучше.

Я пока не вижу почему.

Мне на хабре в коментах понравился адрес Джигурды, но автора заминусовали.

Ну тогда тебе нужно 256 определений
Красный, синий, пьяный, желтый, вонючий, шустрый, слепой, хромой, убогий, заскорузлый…
256 подлежащих
Троль, Маг, Лесник, Мясник, Ученый, Король, Нищий…
256 сказуемых
Гнет Держит Пилит Рубит…
256 обстоятельств
Мясо Ель Лес корову штору…

А или тебя смущает то, что нужен словарь?

Если дело в словаре, то как говорит freeExec можно взять 2 первых буквы например + окончание например будет шифровать октет, тогда слова можно будет в фразе переставлять местами.

  1. Ещё у нас есть вот такая штука http://wiki.openstreetmap.org/wiki/Shortlink
    Там модифицированный base64, причем произвольной длины - чем больше букв, тем точнее координаты

  2. 57 триллионов адресов это чуть меньше 46 бит информации.
    Чтобы кодировать 3 словами, нужно ~38500 слов в словаре. ИМХО, вполне реально набрать такой.
    Вот тут 40000 обещают: http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists#Project_Gutenberg

UPD.
Собрал экспериментальный калькулятор в Excel-е. Координаты взял из тайла, привёл к zoom level 23.
Получил адреса вида entertain.autocracy.akela и icelander.hookah.great-great-grandfather
Ладно, думаю, все частые слова около нуля, перемешал. visited.otitis.importune и hanger-on.myopic.policeman :slight_smile:

UPD2.
Взял древний файл ewords.txt, выбрал оттуда слова от 2 до 8 букв (набралось 55900)
Теперь адреса получаются вида fautor.nostrae.affects и sensate.churr.lilied

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

Я кстати думаю, что как система адресации это не нужно. А вот джиперам бы пригодилось. Сейчас если надо найтись в лесу, народ диктует друг-другу координаты. Продиктовать 3-4 слова удобнее и надежнее чем координаты.

Чем плоха адресация по словам.

Близкие точки должны как-то близко звучать. А тут две точки на расстоянии десяти метров друг от друга имеет совершенно разный набор слов.

Можно сделать и так. Упорядочить биты обеих координат по возрастанию, в этом случае при сдвиге на соседний квадрат меняться будет лишь последнее слово (в большинстве случаев). Если словарь упорядочить по алфавиту - слова тоже будут довольно близкие.
Получится как нарезка карты на квадранты - О36 и т.д. Первое слово кодирует глобальный квадрант, второе - внутри него, третье - внутри второго уровня.
Завтра поэкспериментирую.