Download: GET /api/0.6/changeset/#id/download
Returns the OsmChange document describing all changes associated with the changeset.

AkMeR, откуда вообще взялась фраза “скачать changeset”??

Можно скачать теги сеанса: http://wiki.openstreetmap.org/wiki/API_v0.6#Read:GET.2Fapi.2F0.6.2Fchangeset.2F.23id
можно скачать diff сеанса: http://wiki.openstreetmap.org/wiki/API_v0.6#Download:GET.2Fapi.2F0.6.2Fchangeset.2F.23id.2Fdownload

Сам сеанс вроде бы никто и не даёт “скачать”.

Changeset - объект OSM, логически и по времени группирующий edit-ы конкретного пользователя. В зависимости от контекста может обозначать как сеанс загрузки edit-ов на сервер (create - upload diff - close), так и сам набор этих edit-ов (get, view).

Я хорошо представляю как всё работает, но всё-таки склонен рассматривать changeset как объект.

Там где “скачать теги” написано так:

Upliner, тогда уже есть смысл спорить :slight_smile:
Итак чем же changeset отличается от сеанса внесения правок в базу?

Ну, от обычных сеансов(вроде сессий на этом форуме) changeset отличается хотя бы тем, что хранит в себе полезную нагрузку. Я считаю, Ilis здесь прав – сам сеанс и объект, хранящий информацию о сеансе(текущем, прошедшим или будущем) – это разные вещи.
Сходство с сеансами получается, так как сейчас операции с changeset-ами практически всегда производятся “вживую” в базе. Но и в этом случае их правильнее сравнивать с commit-ами в cvs(там они не атомарны).

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

Сам по себе сеанс (реальный процесс) и объект БД, хранящий информацию об этом процессе - это естественно, разные вещи. Но вроде как их принято называть одним словом.


Changeset - объект ОСМ, хранящий информацию о сеансе внесения правок в базу.

Так лучше? :slight_smile:

Changeset без базы существовать и не может, он тогда превратится в обыкновенный diff (вот его уже можно назвать “набором изменений”).
Смысл changeset-а именно в том, что его правки внесены в базу.

Прошу прощения за занудство, и за то, что прерываю учёную беседу. Нол меня интересует конкретика - как вписать перевод в базу данных локализации. Я внимательно следил за вашими интересными доказательствами. Пробую очередную итерацию. Как вам этот вариант (вариант не чисто мой - это отчасти и ваши переводы):
перевод фраз, содержащих “changeset” (Вариант 3)
Close open changesets - Закрыть сеанс
Downloading open changesets… - Скачивание правок открытого сеанса
Changeset closed - Сеанс закрыт
Show changeset - Показать правки сеанса
Close the selected open changesets. - Закрыть отмеченные сеансы
Please enter a comment for this upload changeset (min. 3 characters) - Введите комментарий для данного сеанса

Нет, тут случай другой. Полезная нагрузка changeset-а – это теги и ID пользователя(а не diff-данные). А посты на форуме в большинстве движков даже не имеют ссылок на сессию, в которой они были созданы.

Об объекте как правило речи не идёт. Но даже когда заходит – он не хранит в себе ничего, кроме данных о сеансе, и как правило неразрывно и двусторонне с ним связян.

Когда идёт группировка по времени – тут действительно получается сеанс. А когда речь идёт о логической группировке – здесь есть простор для фантазии.
Грубо говоря вот так:


<osm>
   <!-- many nodes inserted -->    
   <way action="modify" id="-1" changeset="-1">
      <tag k="railway" v="rail"/>
      <!-- many noderefs -->    
   </way>
   <way action="modify" id="-2" changeset="-2">
      <tag k="waterway" v="river"/>
      <!-- many noderefs -->    
   </way>
   <changeset action="modify" id=-1">
      <tag k="comment" v="traced railway" />
   </changeset>
   <changeset action="modify" id=-2">
      <tag k="comment" v="traced river" />
   </changeset>
</osm>

Уже есть повод написать свой скрипт для upload-а ;))

Короче: есть данные о сеансе(открытие-закрытие, uid), которые имеют смысл только в БД, а есть теги, которые позволяют группировать логически, и они имеют смысл в любом месте. И сеансы уже тут совсем не причём.

<changeset action=“modify” id=-2"> - это что-то внутриджосмовское.

В этот момент реально никаких changeset-ов ещё не существует.
Идёт планирование сеансов загрузки.

Ну почему? Данные о логическом разбиении в виде changeset-ов существуют с тех пор, как их “нарисовали”. Да, в них отсутствуют данные о сеансах(по причине их отсутствия), но зато используются возможности changeset-ов как объектов.

Если это то собщение, которое джосм показывает, пока скрипит интернетом, то должно быть так:

*Cкачиваются правки открытого сеанса *

Кстати, а почему так переводится? У вас ведь вроде разные changeset-ы это разные сеансы. И соответственно должно переводиться как “Скачиваются открытые сеансы”.

Так хуже. Changeset хранит информацию о том, кто, чем, когда и какие правки сделал.

И вообще, мы обсуждаем список терминов, а Вы уже в само определение термина пытаетесь вставить перевод. К чему тогда обсуждение, и тем более голосование?

Upliner,
мне всё-таки кажется, что API первичнее по отношению к Josm-у.
И поэтому термины стоит определять именно по отношению к API.
А там нет никаких , там есть /changeset/create и changeset/…/close

Вообще, давай попробуем снизу. :slight_smile:
Что у нас имеется:

  1. Edit - атомарная правка, изменение свойств одного объекта с изменением его версии на 1.
  2. osmDiff - набор едитов
  3. Внесение этого диффа в базу, и применение его едитов (снабжённое комментариями).

С этим спорим? :slight_smile:

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

Это что? Атомарные операции, поддерживаемые непосредственно в API? Таковыми являются только первые две.

Это вообще все единицы изменений.
Атомарная - только первая.

А, ну понял. В Если сравнивать с теми же CVS/SVN, то список будет таким:

  1. Добавление/Удаление строки (обозначаемые в diff-файле как + и -)
  2. diff-файл, состоящий из множества операций удаления/добавления
  3. Commit – применение всех правок, снабжённое комментариями.

Однако, мало кто назовёт commit сеансом. Он конечно предполагает некий сеанс передачи данных, но такой же сеанс открывается например при скачивании, и название не отражает сути…

Ну, если не придираться к мелочам, то примерно да.

Едем дальше.
C 1-м уровнем (edit) вроде вопросов нет, это одна операция создать/изменить/удалить ноду/вей/релейшен.

2-й уровень (osmDiff) - это набор edit-ов, без всяких дополнительных тегов. В API используется для:

Вот этот diff, имхо, и стоило бы называть “набором правок”, просто потому что он представляет собой именно набор правок.

Тут нам есть о чём спорить? :slight_smile: