Your own table of places: CSV, GeoJSON or a workbook¶
Many projects keep their places in a table of their own: a spreadsheet, as an Excel or OpenDocument workbook or saved as CSV, with a column for the name, one for latitude, one for longitude and so on, or a GeoJSON file of features exported from a GIS. Such a table is not yet in PLATO’s shape, but most of what it holds has a place there.
PLATO tools reads such a table, works out which column holds what, lets you correct that, and turns each row into evidence in PLATO’s shape, which you can then check, convert to the spreadsheet tables or to Linked Places Format, and add to.
What it reads¶
A CSV file (or a tab-separated file ending
.tsvor.tab) that is not one of the sheets of PLATO’s own spreadsheet tables. Files named after those sheets (places.csv,names.csvand the rest) are read as the tables, as before; a single file of that name whose first column is not the sheet’s own (aplaces.csvof your own that does not begin withplace_id) is read as a table of places. Several CSV files not named after the sheets are not read together: choose one at a time.A workbook (
.xlsxor.ods) that is not PLATO’s own spreadsheet tables, one sheet at a time: see A workbook of your own.Plain GeoJSON: a FeatureCollection, or a single Feature, that is not Linked Places Format. Each feature’s properties are read as the columns of a row, its
idas one more column, and its geometry is carried if it is well formed.A list of names, pasted into Or paste a list of names, under the drop zone on the page: one name a line. It is read as a table of places with one column,
name. On the command line, save the list as a CSV file headedname.
A IIIF Georeference Annotation, as Allmaps makes them, is refused if it is dropped on its own, and the message says why: it places a map image on the earth, and is a map’s georeference, not a dataset of places.
A CSV file must be well formed. A quotation mark that opens a cell and is
never closed, or a stray one inside a quoted cell (one there is written twice,
""), stops the file, naming the line: after it, where rows begin and end
cannot be told. Two columns with the same heading are each known by the
heading and their place, such as name (column 3), in the matching and in
the notes, and the report warns you once. Give each column a heading of its
own to be sure which is which.
Coordinates must be decimal degrees of longitude and latitude (WGS 84), as GeoJSON requires. A GeoJSON file that names another coordinate reference system is refused, rather than read as degrees it is not. The one exception is a column of British or Irish grid references, which are converted (see Grid references).
A workbook of your own¶
A workbook is read as PLATO’s spreadsheet tables, as
before, when its sheets are named after the tables’ sheets: two or more of
them, or a single one that begins as that sheet does (a places sheet whose
first column is place_id). Any other .xlsx or .ods workbook is a table of
places, and its columns are matched as a CSV file’s are.
One sheet is read. It is the first sheet that is not hidden, unless you
choose another. On the page, choose it in Sheet to read, above the table
of columns: its columns are then read and guessed afresh. On the command
line, give --sheet NAME to check, convert or preview; a name the
workbook does not have is refused, and the message names the sheets it has.
The report names the sheets not read. To read several, read each in turn, or
put their rows on one sheet.
The report also names
a hidden sheet, whether or not it is the one read. Only an Excel workbook’s hidden sheets are known: an OpenDocument (
.ods) workbook’s are not marked as hidden when it is read, so a hidden first sheet is the one read. Check the report’s read “…” line;a formula saved without its value, as a program that does not calculate may save it. The cell is read as empty. Open the workbook in a spreadsheet program, let it calculate, and save it again;
a cell holding an error, such as
#DIV/0!,#N/Aor#REF!. It carries nothing: it is read as empty, never as the error’s text;an empty sheet, which is an error: choose the sheet that holds the table.
Each cell is read as it is stored, not as the workbook shows it, exactly as the spreadsheet tables reader reads a workbook:
In the workbook |
Read as |
|---|---|
A coordinate formatted to show |
every digit it has: |
A very small or very large number |
written out in full, never with an exponent: |
A percentage shown as |
the number, |
A date |
an ISO date, |
A date with a time of day |
|
A time of day alone |
|
Text, such as |
the text as it is: |
A workbook is read whole into memory, and one over 50 MB is warned of: save a very large sheet as CSV (UTF-8), which is read a row at a time.
For example, a workbook sites.xlsx made for this guide has three sheets: a
hidden one, Old list; Sites; and Notes. Sites is
id |
name |
latitude |
longitude |
surveyed |
finds |
|---|---|---|---|---|---|
bath |
Aquae Sulis |
51.38 |
-2.36 |
1990-05-06 |
120 |
york |
Eboracum |
53.96 |
-1.08 |
1991-07-02 10:30 |
|
wroxeter |
Viroconium |
52.6744 |
|
1992-04-01 |
|
with the coordinates of the first two rows formatted to show two decimal
places. Checked with the base https://example.org/survey/, Sites is read,
as the first sheet not hidden, and gives three places. Aquae Sulis has its
point at every digit stored, 51.381088, -2.359019, and the notes “surveyed:
1990-05-06” and “finds: 120”; Eboracum’s note is “surveyed:
1991-07-02T10:30:00”. The report says:
sites.xlsx: read "Sites"; not read "Old list", "Notes"
"Old list" in sites.xlsx, not read
row 4, column "longitude", cell D4: #N/A
row 4, column "finds", cell F4: #DIV/0!
cell F3 of "Sites", column "finds": =F2*2
row 4: latitude 52.6744 with no longitude
Saved as sites.ods, the same workbook reads Old list first, as its hidden
flag is not known, and --sheet Sites reads Sites.
Plain GeoJSON or Linked Places Format?¶
Linked Places Format
(LPF) is itself GeoJSON, with members of its own for names, dates and
identifiers. PLATO tools reads a file as LPF, with LPF’s own reader, only when
it shows LPF’s structure near its start: it names LPF’s @context, or a
feature has a names list whose items have a toponym, a when with
timespans, or an @id of its own, beside its type and geometry.
Anything else is plain GeoJSON, read as a table of places as this page
describes. A property that is merely called toponym, timespans or @id,
inside a feature’s properties, does not make a file LPF.
Matching the columns¶
PLATO tools guesses which column holds what from the column headings (case,
accents, spaces and punctuation do not count, so Place Name, place_name
and PLACENAME are the same) and from the values in the first 50 rows. A
column headed lat counts as latitude only if it holds numbers; a column
headed wikidata counts as the place’s web address only if it holds web
addresses. Every column is matched to exactly one of these:
Choice |
What it means |
|---|---|
Name |
The place’s name: its label, and a name the table attests |
Alternative names |
Other names; several in one cell separated by |
Latitude, Longitude |
A point, in decimal degrees |
Point or shape, as WKT text |
A geometry in Well-Known Text |
Point or shape, as GeoJSON |
A GeoJSON geometry written out in the cell |
Grid reference (Ordnance Survey, Irish Grid) |
A grid reference, such as |
Place id |
The place’s own identifier in the table, from which its web address is made |
Place’s web address |
The place’s address in a gazetteer (Wikidata, Pleiades, GeoNames, WHG…) |
Kind of place |
A type; several in one cell separated by |
Language of the name |
A language code, such as |
Source |
The source the row comes from: a title, or a web address |
Date, as the source writes it |
The date in the source’s own words |
Earliest date, Latest date |
A year (such as |
Region it lies in |
A region the place lies in, such as its parish or county, at a level (see The regions a place lies in) |
Regions, to split into levels |
Several regions in one cell, such as “Rotherhithe, Surrey, England” |
Keep as a note |
Carried in the attestation’s notes, as “column: value” |
Don’t carry over |
Left out, and named in the report |
A column the tools do not recognise is kept as a note. It is never turned into one of PLATO’s properties: all that is known of it is its heading, and a property would claim the source said something PLATO defines.
On the page, before anything is checked or converted, PLATO tools shows a table, Which column holds what: each column, three examples from the file, what it will be read as, and why. Change any choice that is wrong. Warnings follow your choices: for instance, that the places will have no web addresses, or that there is a latitude column with no longitude. Save this matching keeps your choices as a small JSON file, and Use a saved matching… applies it again, to this file or another like it.
On the command line, the guess is printed with each table, one line for each column with its reason, and then as JSON:
{"id":"id","name":"name","latitude":"latitude","longitude":"longitude", …, "description":"note"}
Save that line to a file, correct it, and give it back with
--columns FILE. It is the same JSON the page saves. The fields are named in
it as name, alternativeNames, latitude, longitude, wkt, geometry,
gridref, id, address, type, language, source, date, start,
end, within and split, or note and skip. A column of a gazetteer’s ids, made into web addresses
with a pattern, is written
{"field": "address", "pattern": "https://pleiades.stoa.org/places/{id}"} in
place of the field’s name (see A column of gazetteer ids).
A column the file names that the table does not have, or a column the file
leaves out, is reported, and a column left out is kept as a note.
Previewing the first records¶
Before you check or convert a whole file, you can see what its first records become. On the page, choose Preview the first 10 records, once the columns are matched (for a TEI edition, once the file is chosen). On the command line, give
plato-tools preview --limit 3 my-places.csv
with --limit N for how many records (10 if you leave it out), and the same
--columns, --sheet, --base and reading options a conversion would take.
The records are shown in PLATO JSON, as a conversion reads them, with what was
lost from them so far, grouped as the report groups it. On the command line,
the records go to the standard output, one a line, and the rest to the
standard error; --json prints it all as one JSON object.
A preview is made of a table of places (a CSV file, plain GeoJSON or a sheet of a workbook), a TEI edition, or annotations from Recogito. Any other format is refused, since the first part of a set of spreadsheet tables or of a PLATO JSON file could be taken for the whole.
It writes nothing, and checks nothing as a whole: a problem further on, such as an id used again after the records shown, is not found. If the file cannot be read past a problem among the first records, the preview stops there, and says why.
It stops early. Reading stops at the first record past the limit, so a preview of a large file is quick.
It says how many records there are only when it has read them all. The line above the records says first 3 of 3 records only when the whole file was read; otherwise the first 3 records read; the rest not read, as a file is never read to its end to count it.
It also says why the records shown may not be all there are, or not in the
order a conversion writes them: the rest of the file was not read; a
conversion gathers attestations by the place each is about once the whole
file is read; places made from rows that share an id are made only at the end
(so none is shown); and in a TEI edition, a place name that points to a
<place> later in the file, or that may be in the editors’ words, waits, and
is not shown.
For example, plato-tools preview --limit 2 --base https://example.org/survey/ sites.xlsx,
with the workbook above, prints Aquae Sulis and
Eboracum as two places, and says
sites.xlsx: a table of places (the sheet “Sites” of a workbook), its columns matched to PLATO (place-centric): the first 2 records read; the rest not read; nothing checked or written
Reading stopped after the first 2 records: the rest of the file was not read, so nothing after them, and no problem in it, is shown.
with, as losses so far, the sheets not read, the hidden sheet and the formula
saved without its value, but not the error cells of row 4, which was not
read. Without --limit, it reads all three rows, and the line says first 3 of
3 records.
Places, or evidence about places¶
What each row becomes depends on whether a column holds places’ web addresses.
With a column of web addresses (matched as Place’s web address), each row is evidence about the place at that address: an attestation about it, with the row’s names, location, type and dates. Two rows with the same address are two attestations about one place. A row whose address cannot be used becomes a new place of its own if it has an id and a name, and is otherwise reported and left out.
Without one, each row is a place of your own, with one attestation holding what the row says of it.
Place ids and the base address¶
A place of your own needs a permanent web address, and PLATO tools makes it
exactly as the spreadsheet tables do from place_id: the base address,
then place/, then the id. With the base https://example.org/roman-britain/,
the place with id bath is https://example.org/roman-britain/place/bath.
The id itself is kept too, as the place’s own identifier. Choose a base you
control and will keep, and give it with --base on the command line, or in
Options on the page; without one, a stand-in base is used and the report warns
that the addresses are not permanent. See
Say what the dataset is
for how to choose a base.
No id column: the places have no web addresses at all, and the report says so once. They can be checked and converted, but not published or linked to until they have ids. No address is ever made from a row’s number or its name, since it would change whenever the table did. Add a column of ids that will not change, or match an existing column as the id.
A row with no id in the id column: that place has no web address, with a warning.
Two rows with the same id: refused, unless you choose to read them as one place (see Rows that share an id). Each id becomes a place’s address, so reading stops at the second row, the report names the id and both rows, and you correct the duplicate, match another column as the id, or choose that reading option.
A column headed as an id that holds web addresses, such as Pleiades addresses, is guessed to be the places’ web addresses instead.
A column of gazetteer ids¶
A table may hold a gazetteer’s ids, not its web addresses: a column
pleiades_id of numbers such as 579885. An id is not an address, and the
same number can mean different places in different gazetteers, so such a
column is kept as a note until you say which gazetteer it is. PLATO tools
suggests a pattern when the column’s heading names Pleiades, GeoNames or
Wikidata and at least half its values have the shape of that gazetteer’s ids:
Gazetteer |
Its ids |
The pattern suggested |
|---|---|---|
Pleiades |
digits |
|
GeoNames |
digits |
|
Wikidata |
|
|
A suggestion is never used until you confirm it. On the page, tick Make
web addresses in the column’s row of the table of columns. On the command
line, the guess and a note print the pattern; give it back in the file for
--columns, as
"pleiades_id": {"field": "address", "pattern": "https://pleiades.stoa.org/places/{id}"}.
Once confirmed, the column is read as the places’ web addresses: each id
replaces {id}, each row becomes an attestation about the place at that
address, and its notes say how the address was made.
You may also write a pattern of your own for another gazetteer. It must hold
{id} once, after the address’s host, and make a web address (http or
https); its ids may hold only letters, digits and . _ ~ -. A pattern for
the World Historical Gazetteer is refused, as WHG’s short codes do not name
one record, and whg: followed by a number is never made into an address.
A value of the wrong shape (not digits, for Pleiades) makes no address, and is reported; the row is then read without it, so with an id it becomes a place of its own, keeping the value in its notes. A value that is already a full web address is read as one.
For example, PLATO tools’ test file
gazetteer-ids.csv
is
id,name,pleiades_id
1,Athenae,579885
2,Roma,423025
3,Ostia,422995
4,Somewhere,whg:12345
5,Bad id,57-9885
6,No address,
Checked as it is, the column pleiades_id is kept as a note, with the
suggestion: “3 of its 5 sampled values have the form of Pleiades ids, so it
can be read as the place’s web address, made with the pattern
https://pleiades.stoa.org/places/{id}, once you confirm that pattern”. With
the pattern confirmed, Athenae is an attestation about
https://pleiades.stoa.org/places/579885, with the note “Place address made
from the value 579885 in the column “pleiades_id” with the pattern
https://pleiades.stoa.org/places/{id}”, and so are Roma and Ostia. whg:12345
and 57-9885 are reported as not the shape of a Pleiades id, and rows 4, 5
and 6, which have ids of their own, become places of their own under the base
address.
World Historical Gazetteer addresses¶
Addresses of the World Historical Gazetteer are
treated as in a TEI edition: a
reconciliation id (place:gn:2988507) or an entity page is written as
https://w3id.org/whg/id/place:…, with a note giving what the table said,
and a /places/<number>/portal/ address holding a database record, or an
address on WHG’s staging copy, is refused and reported.
Pleiades, GeoNames and Wikidata addresses¶
So that one place does not become two addresses, an address of Pleiades,
GeoNames or Wikidata is written in the one form that gazetteer gives it, as
in a TEI edition:
http://pleiades.stoa.org/places/579885 becomes
https://pleiades.stoa.org/places/579885, a Wikidata page
https://www.wikidata.org/wiki/Q90 becomes
http://www.wikidata.org/entity/Q90, and so on. The attestation’s notes give
what the table said, the rule, and the version of the rules, such as “Place
address given as https://www.wikidata.org/wiki/Q90 (rule wikidata-page,
hermes-addresses 1)”. An address made from an id through a pattern follows
the same rules. A Pleiades address that names part of a place’s record, or
ends #this, is carried as written and reported.
The regions a place lies in¶
Many tables give, beside each place, the regions it lies in: a column for the parish, one for the county, one for the country. PLATO tools can read these as a chain of regions, each inside the next.
Each such column is matched as Region it lies in, with a Level beside it.
Levels are numbered from the widest: 1 is the widest region (the country,
say), 2 the next (the county), and so on. PLATO tools guesses these columns
from their headings (country, county, shire, parish, township,
admin1 and the like) and puts them in order, widest first. Check the order,
and change a level if it is wrong. Two columns cannot share a level. A column
of numbers under such a heading (admin1 holding 12) is taken to be codes,
not names, and is kept as a note.
Several regions in one cell. Some tables write the whole chain in one cell, narrowest first: “Rotherhithe, Surrey, England”. Match that column as Regions, to split into levels, and say what separates the parts (here a comma), which level each part goes to, and whether The first part is the place’s name. A row with fewer parts leaves its widest levels empty. Parts beyond the levels you gave are named in the report.
With a base address of your own (see
Place ids and the base address), each
region becomes a place in your dataset, with its name as the table gives it.
Each region is plato:ContainedIn the next wider one, and each row’s place is
ContainedIn its narrowest region. One region is made for each whole chain,
not for each name: a parish called Newton in Lancashire and one in Cheshire
are two regions, never merged. Each region cites the file and the row where it
was first met. This is the shape described in
Regions matched to a gazetteer,
which also says how to record, separately, that one of your regions is a
gazetteer’s region.
Without a base address, no region can be given a web address, so none is made and no relation is written. Each attestation instead gets a note giving the chain, widest first, then the place’s name, such as “Within (as the source gives it): England > Surrey > Rotherhithe”, and the report says so once.
On the command line, a region column is written in the file for
--columns as {"field": "within", "level": 2}. A column to split is given
with --split, such as
--split 'Place=, :name,3,2,1'
which splits the column Place at each comma, gives its first part as the
place’s name, and its other parts to levels 3, 2 and 1, narrowest first.
Without the levels, there are as many as the most parts in the first rows.
Grid references¶
A table may give its locations as grid references of the Ordnance Survey
National Grid of Great Britain (TQ 33760 80560, SU1234) or of the Irish
Grid (O 15 34): letters, then digits, with or without spaces. PLATO tools
reads them when a column is matched as Grid reference. It guesses such a
column from its heading (grid ref, NGR, OS grid, Irish grid and the
like), or from its values when at least half are references of a 1 km square
or finer.
A grid reference names a square, not a point. Each is converted to latitude
and longitude (WGS 84) at the centre of its square, and its precision is set
from the number of digits: a four-figure reference such as SU1234 is a 1 km
square, a ten-figure one a 1 m square. The conversion uses a Helmert
transformation: the Ordnance Survey’s for Great Britain, good to about 3.5 m,
and, for the Irish Grid, EPSG 1641, good to about 1 m. Where the
transformation is less exact than the square, the precision given is the
transformation’s. OSTN15, the Ordnance Survey’s more exact transformation, is
not used. The reference is kept as written beside the point, and the
attestation’s notes say which transformation was used.
If a row also has a latitude and longitude, or a point written as WKT or GeoJSON, that is its location, and the grid reference is kept in the notes. If the two are farther apart than the square and the transformation allow, the report warns.
A cell holding
NA,N/A,NULL, a dash or the like is read as empty, with nothing reported. (NAis otherwise a 100 km square of the National Grid, in the Atlantic.)A reference of letters alone, such as
SU, is read as a 100 km square, with a warning, since a column of them may be codes rather than references. A reference that cannot be read is reported, with its value.Irish Transverse Mercator coordinates, which are numbers with no letters, are not read.
On the command line, the field is written gridref in the file for
--columns.
Grouping similar spellings¶
A table often writes one name several ways: Rotherhithe, Rotherhith,
ROTHERHITHE.. Before the places are looked up in a gazetteer, PLATO tools
can propose grouping such spellings, so that each group is looked up by one
spelling.
On the page, Group similar spellings…, below the Reading options, proposes
groups for the column you choose. There are three ways of grouping: case,
accents, punctuation, spacing and word order not counting (the default, so
Newton, Upper and upper newton are one); the same pairs of letters, which
groups more, some wrongly; and names that sound alike, which groups the
most, some wrongly (to it, Rotherhithe and Redruth sound alike). Each
group lists its spellings, with how many rows have each, and suggests the
commonest as the spelling to look it up by, which you can change.
Nothing is grouped unless you tick it. Every group starts unticked, and only the groups you tick are used. Your ticked groups are saved with the matching (Save this matching), and come back ticked when it is used again.
The source’s spelling is always kept. In PLATO, each row’s name is written as the source spells it. The chosen spelling is used only for looking the place up, and the row’s attestation gets a note such as “Grouped for lookup with: Rotherhith, ROTHERHITHE. (spelling chosen: Rotherhithe)”.
On the command line, plato-tools cluster --column name places.csv prints the
proposed groups as JSON, for review, and applies nothing; --method chooses
fingerprint (the default), ngram-fingerprint or phonetic. Keep the
groups you want, and give them back with --clusters FILE to check,
convert or preview. The file may be a matching saved on the page with
groups ticked, or the groups alone. Groups in a file given only as
--columns are not used, and the command says so: they are never applied
without being asked for.
What each column becomes¶
Matched as |
In PLATO |
|---|---|
Name |
The place’s label, and a name of the attestation |
Alternative names |
Further names of the attestation |
Latitude and longitude |
A location, made exactly as the locations sheet makes one |
WKT, GeoJSON geometry, or a GeoJSON feature’s own geometry |
A location with that shape |
Grid reference |
A location at the centre of its square, with a precision from its size |
Place id |
The place’s address, under the base address, and its own identifier |
Place’s web address |
What the attestation is about, in its gazetteer’s one form |
A gazetteer’s ids, with a pattern you confirmed |
What the attestation is about, made from the id |
Kind of place |
A type (with its address, when the value is a web address) |
Language of the name |
The name’s language |
Source |
The citation’s source; with no source, the file is cited, with the row (“row 2”, “feature 3”) as the locator |
Date; earliest and latest dates |
The timespan: the date in the source’s words, the earliest start, the latest end |
Region it lies in, or regions split into levels |
With a base address, regions of your own, and a ContainedIn relation to the narrowest; without one, a note |
Anything else |
The attestation’s notes |
The full mapping, for developers, is beside PLATO tools’ CSV and GeoJSON test files.
What is left out, and why¶
Each of these is named in the report, with the row or feature where it happened.
A column you chose not to carry over, once, by name.
A location that cannot be read: a latitude with no longitude (or the reverse), a coordinate that is not a number in decimal degrees (degrees, minutes and seconds must be converted first), or one off the earth’s range, often a sign that the two are the wrong way round. The rest of the row is carried.
A geometry that is not well formed, in a GeoJSON feature or written out in a cell: a position that is not two or three numbers, or is off the earth’s range; a line of fewer than two positions; a ring of a polygon of fewer than four, or one that does not end where it begins; or anything that is not a GeoJSON Point, LineString, Polygon or one of their Multi forms. The report says what is wrong, that geometry is left out, and the rest of the row is carried.
A GeometryCollection, which PLATO does not accept. Give each of its geometries as a feature of its own.
An earliest or latest date that is not a year or an ISO date, such as “c. 75”. Match the column as Date, as the source writes it instead to keep it in the source’s words. A year of fewer than four digits is padded, so
71becomes0071.A language that is not a language code, such as “Latin (classical)”: the name is carried without a language.
A row with no name (and no alternative name) and no web address, which has nothing to be a place or to be about. With a column of web addresses, a row with a name but no usable address, and no id, is left out too.
A workbook’s error cells, and formulas saved without their values, which are read as empty: see A workbook of your own.
Cells beyond the last column of a CSV row, and members of a GeoJSON feature besides its
type,id,geometryandproperties, such as abbox.
Two examples¶
These are small files made up for PLATO tools’ tests.
A table of places with ids. This CSV file has an id column and no web addresses:
id,name,latitude,longitude,type,start,end,language,description
bath,Aquae Sulis,51.3811,-2.3590,spa,0060,0410,la,Roman baths
york,Eboracum,53.9590,-1.0815,fortress,71,,la,
Every heading is recognised except description, which is kept as a note.
With the base address https://example.org/roman-britain/, the first row
becomes the place https://example.org/roman-britain/place/bath, labelled
“Aquae Sulis”, with one attestation: the name Aquae Sulis in Latin, a point
at 51.3811, -2.3590, the type “spa”, a timespan from 0060 to 0410, the file
cited with “row 2” as the locator, and the note “description: Roman baths”.
York’s start, 71, is written 0071.
Rows about gazetteer places. This CSV file has odd headings and a column of Wikidata addresses:
Place Name,LAT,Long,wikidata,Feature Type,Alt. names,Source,Remarks
Roma,41.8933,12.4829,https://www.wikidata.org/wiki/Q220,city,Rome; Urbs,Itinerarium Antonini,the capital
Lutetia,48.8566,2.3522,https://www.wikidata.org/wiki/Q90,settlement,Paris,,
Lutetia Parisiorum,48.85,2.35,https://www.wikidata.org/wiki/Q90,,,,a second row about the same place
Place Name, LAT, Long, Feature Type and Alt. names are recognised
despite their case and punctuation; wikidata holds web addresses, so each
row is an attestation about the place at its address, written in Wikidata’s
own form, http://www.wikidata.org/entity/Q220. Roma’s attestation has the
names Roma, Rome and Urbs, a point, the type “city”, the
Itinerarium Antonini as its source, and the notes “Remarks: the capital”
and “Place address given as https://www.wikidata.org/wiki/Q220 (rule
wikidata-page, hermes-addresses 1)”. The two Lutetia rows are two attestations
about one place, http://www.wikidata.org/entity/Q90. Because the rows give
names but not labels for Wikidata’s places, the report warns that each place’s
address is used as its label.