CityTapNYC Open Data on tap

Ontology

What each column means, column by column, with the evidence that settled it. Pick a subject and take the whole mapping away in the format your own tools read.

Choose what to map

  • zhrf-jnt6zhrf-jnt6

Search by name, or paste an address. Up to 25 at a time so the result stays something you can paste.

    How much of this has been looked at

    Bound
    0
    A term was established for the column.
    Refused
    0
    Someone looked and found the column carries no shared term.
    Not enough evidence
    0
    Someone looked, and the material needed to decide is not in the catalogue yet.
    Not yet looked at
    0
    Nobody has looked at this column yet.

    Four counts, never one percentage. “Looked at and found nothing shared” and “not yet looked at” are different facts, and a single ratio reports them as the same one.

    Across the whole catalogue: 12,642 of 56,681 columns bound.

    Column mapping

    One row per column in your selection, bound or not. A column with no term is shown with the reason, never dropped.

    Every row carries how it was decided. Filter on “Read the column” to set your own bar rather than taking ours.

    No columns matched that selection.

    The shared vocabulary

    Every term citytap can bind a column to. A column binds to one of these or to nothing.

    59 terms

    Every term citytap can bind a column to. A column binds to one of these or to nothing.
    TermOutcome
    actor.agency — City agencyA New York City government agency, office or authority, named as the owner of a record, the responder to a request, or the publisher of a dataset. Value convention: resolve the published value to catalog.agencies.agency_id through the reviewed crosswalk catalog.agency_crosswalk, keyed on catalog.agency_match_key(value); join on the id, never on the raw cell.
    actor.organization — OrganizationA named organisation that is not a city agency: a business, a landlord entity, a licensee, a vendor, a non-profit. The published thing is the name, and no stable key accompanies it.
    actor.person — PersonA natural person. Almost never an identified row in NYC open data; appears overwhelmingly as the population of a count rather than as an entity with a key.
    actor.person_name — Person nameThe name of a natural person as the publisher recorded it, whole or in part. It names a person and it is not a person: two spellings of one name are two values, one name is worn by many people, and nothing joins on it.
    actor.person_name.family — Family nameThe surname or family-name part of a person's name. A name PART on the same terms as the given name, and the part most often mistaken for an identifier because it repeats.
    actor.person_name.given — Given nameThe personal or first-name part of a person's name. A name PART: on its own it identifies nobody, and it is not conformable across datasets in any direction.
    category.boolean_flag — Boolean flagA two-valued predicate asserted about the row — present or absent, permitted or not, observed or not. What is being asserted lives in the column, and the cell carries only the truth value.
    category.classification — Publisher classificationA label that sorts the row into one of a set of kinds the publisher defined — a complaint type, an offence type, a record type, a demographic category. The set is local to its dataset.
    category.race_ethnicity — Race or ethnicityThe racial or ethnic category recorded for the person the row describes, on the publisher's own category set and, where the description says so, self-identified.
    category.status — Workflow statusWhere the case, permit, request, project or inspection the row describes stands in its own workflow, on a value set the publisher defines and rarely publishes.
    time.world_event — Something happenedA point in world time at which the thing a row describes actually happened, entered the city's system, or ended. The root of everything a "what happened on this day" query may read.
    time.world_event.closed — Closing timeWhen the case, request, permit or spell the row describes ended. A second event about the same subject, never a substitute for the first.
    time.world_event.observed — Observation timeWhen an inspection, sample collection or measurement was performed. The event IS the observing: 43nn-pn8j.inspection_date, y6ax-c86r.sample_date.
    time.world_event.occurred — Occurrence timeWhen the event a row describes took place in the world. h9gi-nx95.crash_date: "Occurrence date of collision".
    time.world_event.reported — Report timeWhen the city was TOLD, which is not when it happened. erm2-nwe9.created_date is the moment a 311 request was filed; the underlying condition has no column in that dataset at all, so any alignment against an occurrence time carries that caveat as data.
    geometry.area — Areal geometryThe polygon or multipolygon outline of the area a row describes. This is the boundary itself, never a code that names a boundary — those are the eleven conformed place families.
    geometry.latitude — LatitudeThe north-south half of a coordinate pair, in decimal degrees. On its own it locates nothing: it is one limb of a point, and the datum it is stated in is usually absent.
    geometry.line — Linear geometryThe line or multiline shape a row describes — a street centreline, a route, a shoreline segment. An extent that has length and encloses no area.
    geometry.location — Spatial locationWhere the thing a row describes is, given as coordinates rather than as the code of a named area. The root of the spatial subtree: a query that wants geometry collects everything under this term instead of matching column names.
    geometry.longitude — LongitudeThe east-west half of a coordinate pair, in decimal degrees. Meaningless without its sibling latitude column, and a sign error in it puts a New York row in China.
    geometry.point — Point geometryA single coordinate pair carried whole in one column, in the portal's own Point or MultiPoint storage. It locates the row by itself and needs no sibling column to be read.
    geometry.projected_coordinate — Projected coordinateA coordinate on a plane projection rather than on the globe: a distance from a projection's own origin, in that projection's own linear unit, which in this catalogue is the survey foot of the New York State Plane Long Island zone. NOT a latitude and NOT a longitude, and comparable with one only after a reprojection nothing in this system performs.
    geometry.projected_coordinate.easting — EastingThe east-west axis of a projected coordinate, measured from the projection's false origin. Spelled x_coordinate throughout this catalogue, and a positive number in the hundreds of thousands where a longitude would be a small negative one.
    geometry.projected_coordinate.northing — NorthingThe north-south axis of a projected coordinate, measured from the projection's false origin. Spelled y_coordinate throughout this catalogue, and a positive number in the hundreds of thousands where a latitude would be about forty.
    identifier.school_dbn — School DBNThe Department of Education District Borough Number: the community school district digits, a borough letter and the school number, concatenated. It identifies one school.
    time.personal_date — Personal or vital dateA birth date or similar attribute of a person, not an event of the city. 0160's birth-month refusal, as a queryable term.
    time.record_lifecycle — Record lifecycle timeA timestamp about the FILE rather than about the city — when an extract ran, when a row was last touched upstream. Never eligible for a world-time query, enforced by CHECK and by the paired reference on catalog.dataset_observations.
    time.record_lifecycle.extracted — Extract timeWhen the publisher ran the extract that produced this row. Constant or near-constant per snapshot, which is also its value-level signature.
    time.record_lifecycle.row_modified — Row update timeWhen the row last changed upstream. erm2-nwe9.resolution_action_updated_date: "Date when responding agency last updated the SR."
    time.obligation — Obligation timeA target or deadline, which may lie in the future and may never be met. erm2-nwe9.due_date: "Date when responding agency is expected to update the SR. This is based on the Complaint Type and internal Service Level Agreements (SLAs)." Counting it as "what happened" reports SLA arithmetic as civic events.
    time.fiscal_period — Fiscal or school periodA budget, fiscal-year or school-year label. NOT a calendar interval and never conformable to one: NYC FY2024 month 7 is July 2023, and the DOE school year "2023-24" spans two of them. 0160's four false friends, promoted from that family's notes to their own term.
    time.period.end — Period endThe closing endpoint of a reporting interval. report_date x15, period_end_date x6 and year_ending x11 all land here.
    time.period.month — MonthThe calendar month a record belongs to, as a first-of-month DATE. First day of month, DATE — one axis type. date_trunc('month', <event timestamp>) on the timestamp side; make_date(<year>::int, <month>::int, 1) on the year+month-pair side. Never a YYYY-MM text label: string-formatted periods are the more fragile form once year/month are confirmed numeric on the pair side.
    time.period.start — Period startThe opening endpoint of a reporting interval, not an instant. Interval semantics only, so a day query must not read it as an occurrence.
    time.period.year — Calendar yearThe calendar year a record belongs to, as an interval and not an instant. Asking what happened on a given day of a year-grained row is the same category error time.period.end guards against.
    place.bbl — Borough-Block-LotTax lot identifier (10-digit borough+block+lot). Value convention: 10-char TEXT zero-padded; joins PLUTO.
    place.bin — Building Identification NumberDOB building id (7-digit, boro-prefixed). Value convention: 7-char TEXT; 1000000*boro + serial; millions series = placeholder.
    place.borough — BoroughOne of the five boroughs. Value convention: Conform names ("Manhattan"), 1-5 codes, 2-letter abbrevs to catalog.boroughs.code.
    place.census_tract — Census TractCensus tracts, multiple vintages. Value convention: Vintage-aware; boro_ct 7-char composite preferred; federal GEOID kept.
    place.community_district — Community District / BoardThe 59 community districts + JIAs. Value convention: borocd = borough*100 + district (e.g. 101 = Manhattan CD1).
    place.council_district — City Council DistrictThe 51 council districts. Value convention: smallint 1-51; vintage-aware (redistricting).
    place.nta — Neighborhood Tabulation AreaDCP neighborhood tabulation areas. Value convention: Vintage-aware codes (2010 BK09-style, 2020 BK0101-style).
    place.precinct — NYPD PrecinctThe 77 police precincts. Value convention: smallint precinct number.
    place.school_district — Community School DistrictThe 32 community school districts. Value convention: smallint 1-32.
    place.street_address — Street addressA street address of the thing the row describes, written as the publisher wrote it. Free text rather than a conformed key: it joins to nothing until it is geocoded, and two spellings of one address are two values.
    place.zip — ZIP CodeUSPS ZIP / ZCTA / MODZCTA. Value convention: TEXT 5-digit zero-padded, never integer.
    quantity.duration — DurationHow long something lasted, took, or remained in a state, as a magnitude rather than a calendar position. The unit lives in the value or in the column, never in this term.
    quantity.floor_area — Floor areaThe floor area of a structure, or of one use within a structure. Almost always square feet in this catalogue and almost never said so in a field the schema can read.
    quantity.money — Monetary amountA sum of money the row records: a fee, a fine, a payment, a salary, a budget line, a fare, an expenditure. Comparable across datasets only when both sides state the same unit.
    quantity.observations — Observation countOne row of the frame. The implicit measure of an observation set that publishes no explicit quantity, which is most of them — it is what makes "311 requests per day" and "collisions per day" the same kind of number.
    quantity.persons — Count of personsA non-negative count of people over a stated population and a stated outcome. The population and outcome limbs are what make ten separate numeric columns one comparable family.
    quantity.persons.injured — Persons injuredCount of people recorded as injured by the event the row describes.
    quantity.persons.killed — Persons killedCount of people recorded as killed by the event the row describes.
    quantity.persons.pedestrians_injured — Pedestrians injuredCount of pedestrians recorded as injured by the event the row describes.
    quantity.persons.pedestrians_killed — Pedestrians killedCount of pedestrians recorded as killed by the event the row describes.
    text.free_text — Free text noteProse a person wrote for another person to read — a note, a comment, a remark, a narrative. It carries no closed value set, and grouping or joining on it produces nothing.
    thing.elapsed_time — Elapsed timeA span of time treated as a substance that can be accumulated and compared, rather than as a position on the calendar. The referent behind any duration-denominated measure.
    thing.floor_space — Floor spaceEnclosed floor surface inside a structure — the thing a floor-area measure sums. Not the structure itself and not the land parcel underneath it.
    thing.money — MoneyA sum of money, in a currency the column has to name before the number means anything. Measured in this catalogue: 435 columns declare United States dollars, 16 declare Canadian dollars, and every other monetary column declares no currency at all.

    About this bundle

    • citytap runs no triple store and no SPARQL endpoint. This document SERIALISES a graph; it does not host one.
    • A binding whose method carries investigated=false was derived from the column's name or its type, not from reading its own evidence. Filter on that field to set your own trust threshold rather than inheriting citytap's.
    • Nothing in this bundle authorises a join by itself. catalog.dataset_columns.dimension_key does, and only a reviewed migration writes it.