Jump to content

GULP: Difference between revisions

From Meta, a Wikimedia project coordination wiki
Content deleted Content added
Created page with "'''GULP''' (Generic Unified List Processor) is [https://gulp.toolforge.org/ a tool] to collaboratively store, modify, and retrieve lists. == Example == Check out [https://gulp.toolforge.org/#/list/4 a list of Wikidata items and potential images on Commons]. == Data == List columns can be generic (text) or of a specific type (eg Wiki page/item). == Snapshots == Each list can have multiple revisions. A revision is created by taking a ''snapshot'' of the current revision..."
 
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[File:GULP_early_prototype.png|thumb|Early prototype screenshot.]]
'''GULP''' (Generic Unified List Processor) is [https://gulp.toolforge.org/ a tool] to collaboratively store, modify, and retrieve lists.
'''GULP''' (Generic Unified List Processor) is [https://gulp.toolforge.org/ a tool] to collaboratively store, modify, and retrieve lists.


== Example ==
== Examples ==
Check out [https://gulp.toolforge.org/#/list/4 a list of Wikidata items and potential images on Commons].
* [https://gulp.toolforge.org/#/list/4 a list of Wikidata items and potential images on Commons].
* [https://gulp.toolforge.org/#/list/18 a short list of Wikipedia pages and coordinates].


== Data ==
== Data ==
List columns can be generic (text) or of a specific type (eg Wiki page/item).
List columns can be generic (text) or of a specific type (eg Wiki page/item).

Each list row contains a value ("cell") for each column. Rows are internally stored as JSON arrays. Depending on column type, these can be a string, number, ''null'', or JSON. Each row has a row number, to be able to change the value of a specific row. If a row gets deleted, its number will not be given out again, so row numbers are not necessarily sequential.

Rows are unique by content; trying to add a new row with the same cells as an existing row will cause the row to be skipped.


== Snapshots ==
== Snapshots ==
Each list can have multiple revisions. A revision is created by taking a ''snapshot'' of the current revision of the list. Snapshots are "zero cost", that is, creating a snapshot does not duplicate any data; rather, new or altered rows in a revision will be stored in addition to the old revisions. This way, every revision can be accessed later.
Each list can have multiple revisions. A revision is created by taking a ''snapshot'' of the current revision of the list. Snapshots are "zero cost", that is, creating a snapshot does not duplicate any data; rather, new or altered rows in a revision will be stored in addition to the old revisions. This way, every revision remains stable and can be accessed later.


== Status ==
== Status ==

Latest revision as of 19:31, 20 March 2023

Early prototype screenshot.

GULP (Generic Unified List Processor) is a tool to collaboratively store, modify, and retrieve lists.

Examples[edit]

Data[edit]

List columns can be generic (text) or of a specific type (eg Wiki page/item).

Each list row contains a value ("cell") for each column. Rows are internally stored as JSON arrays. Depending on column type, these can be a string, number, null, or JSON. Each row has a row number, to be able to change the value of a specific row. If a row gets deleted, its number will not be given out again, so row numbers are not necessarily sequential.

Rows are unique by content; trying to add a new row with the same cells as an existing row will cause the row to be skipped.

Snapshots[edit]

Each list can have multiple revisions. A revision is created by taking a snapshot of the current revision of the list. Snapshots are "zero cost", that is, creating a snapshot does not duplicate any data; rather, new or altered rows in a revision will be stored in addition to the old revisions. This way, every revision remains stable and can be accessed later.

Status[edit]

  • working: browse and download lists
  • to-do: an interface to upload/update/modify lists, integration with other tools