Skip to main content

Software taxonomy

Each catalog points at a software definition via software.id / software.name. Definitions live in data/software/ and export to data/datasets/software.jsonl.

Identity​

FieldRule
software.idLowercase, matches filename (ckan.yaml → ckan)
software.nameDisplay name (CKAN)
Unknown / bespoke sitesid: custom (see data/software/custom.yaml)

Canonical IDs: data/reference/software_ids.yaml.

Category and subtype​

Software records declare:

  • category — domain family, aligned with catalog types for dissemination platforms; Statistical production software is explicitly not a catalog type
  • subtype — product form, for cross-category comparison

Typical subtypes:

subtypeUse for
data_portal_platformSelf-hosted open-data CMS (CKAN, DKAN, EKAN, uData, PortalJS, Idra, OpenGDC, ResourceContracts, ODWeb, OpenSpending, Datasette, Datadex, IUDX Catalogue, Aid Management Platform)
scientific_repository_platformDataverse, DSpace, Invenio, Figshare, HAL, OPUS, Omeka S, Fedora, Esploro, PHAIDRA, RADAR, Yoda, Converis, Archipelago, LabKey, DABAR, OpenScience.si, Synapse, XNAT, Shanoir, LORIS, OMERO, Kadi4Mat, e!DAL, META-SHARE, Gen3, TR32DB, DLCM, easydb, NMRShiftDB2, Chemotion Repository, Renku, mediaTUM, Index Data Keystone, SBS Digital Collection
geospatial_catalog_platformGeoNetwork, GeoNode, Geonodo, Palapa, ArcGIS Hub, ArcGIS Experience Builder, ArcGIS Web AppBuilder, ArcGIS Instant Apps, gvSIG Online, VertiGIS WebOffice, Geocortex Essentials, VertiGIS Studio Web, GeoMedia WebMap, disy Cadenza, Mapbender, mviewer, G3W-SUITE, Cadcorp SIS WebMap, Hexagon M.App Enterprise, Trimble Locus IMS, Spatial Suite, Spectrum Spatial Analyst, Exponare, Hajk, Origo, Tailormap, myCarta, AddSpatial, ScalarGIS, CartoMapas, MapFusion, GISMAT, GEUSMAP, GC2, ISY Map, Avinet Adaptive, MAP+, MapGuide, SIGimWeb, VKOMAP, HyG Mapgis, Dobles Visor de Mapas, WSP NetGIS Runtime, GEOVAP Marushka, VC Map, JMap, p.mapper, Weave, OVIE, SOFTPRO, MxSIG, KAZGISA RGIS, eKMap Cloud, GT Map, SHK Kent Bilgi Sistemi, Sputnik Web, Geocad GSEE, ZuluGIS Online, GeoNature, Geotrek, TerraVisu, vMap2, web-mapviewer, GAUSS WebCity, IP SYSCON MapSolution, kvwmap, LocalGIS, IGiS, WebGIS Cloud, rmDATA GeoWeb
microdata_catalog_platformNADA, NESSTAR, REDATAM, IPUMS
indicators_data_platformPxWeb, PxStat, OpenSDG, SDG Index, Knoema, DHIS2, Envista Web, FENIX, TabNet, Beyond 20/20, StatPlanet, IMF NSDP, Istat Data Browser, eDatos, DGBAS Web, WebMain, TerriSTORY, DUVA, Géoclip, InstantAtlas, MATS, iMonitoring, KS Open Budget, JAXI, Health Data Center, KOSIS, SOPORTAL, e-Stat, SIDRA, Fingertips, UNdata, UN Comtrade Plus, Our World in Data, Klimadashboard Münster, Fusion Data Browser
metadata_registry_platformFAIR Data Point, Aristotle MDR, Fusion Registry, Metadata Browser, DataHub, CEDAR Workbench, CBD Clearing-House, WMO OSCAR
protocol_or_api_serverSTAC, THREDDS, OPeNDAP, SPARQL endpoints, openEO, FROST-Server, 52°North SOS
geospatial_service_middlewareGeoServer, MapServer, MapTiler Server, deegree, rasdaman, QGIS Server, SuperMap iServer, MapGIS IGServer, CubeWerx CubeSERV
cms_or_app_frameworkWordPress, Drupal, Liferay, ComunWeb, Gosweb used as a catalog
managed_saas_serviceSocrata, OpenDataSoft, Azure API Management, CONTENTdm, vendor-hosted Hub, Isogeo, OpenAIRE, Astun iShare, StatMap Earthlight, IntraMaps Public, LocalMaps, Sentinel Hub, Landfolio, GISApp, GisMaster, GeoPortale.cloud, GeneGIS PAGIS, LDP SIT, GFMaplet, SilverBrowser, SmartMap, SmartGIS, Geolonia 스마트맵, SonicWeb, GeDA-Public, ALANDIS+, EnviMAP, PISO, GDi Visios, SeaSketch, XY Maps, SparkMap, NieuwlandGeo Onemap, WebGIS Publisher, R3GIS, Lightship Works, KaartViewer, GeoApps, SITMUN, data.world, DataPortal.AI, Centurion, Gobierto Datos, LinkData, PA-Online Open Data, Mendeley Data, Guangxi, RDF Online Repository, Redivis, SEDOO Catalogue, hale»connect, Cancer-Rates.info, Conduent HCI, Virtual LMI, IHK-Fachkräftemonitor, ATM Maggioli, Visor Urbano, GeoNube, Geopixel Cidades, Geodados SaaS, MapMap, CTMGEO SigWEB, DRZ WebGIS, GAUSS WebGIS, dmCity, DMAPS, InfoGIS, Geo-IT GIS, Zeljko GIS, OpenGov, T-MAPY GISPLAN, T-MAPY mOBEC, CORA GEO CG WebGIS, Geodeticca WEB GIS, Geoportál GEPRO, TopGis GisOnline, MK Consult K5 MapServer, Georeal, Mapotip, ibb giscity, vianovis touvia.MAPS, INGRADA online, CAIGOS Globe, EOMAP KOVGIS EVALD, terGIS, Go GIS, TerraWeb, SOGEFI Mon Territoire Carto, Pozi, GIS Cloud, MRF Web Map, MuniSight, GIS Quadrat PublicMaps, SIT WebGis, CommunityView, MS-GIS, DIGITAL TWIN CLOUD, brain-GeoCMS, Geocentriq, GeoCentralis, SIGALE, Геопортал RuMap, Guadaltel G·GIS, Dielmo Maps, Viavansi Open Government, Orhitec ERP/GIS
domain_data_infrastructureDomain-specific stacks (GBIF IPT, SciCat, Breedbase, Tripal, VEuPathDB, MassBank, ioChem-BD, ESGF, ESIMO, Symbiota, Biodiv, BIMS, InterMine, GRIN-Global, PlutoF, SARV, JGI, cBioPortal, NOMAD, High-Throughput Toolkit, Pathogens Portal Node, ESA Science Archive, BirdMap Africa, CLLD, TalkBank, Pathway Tools, PANGAEA, USGS ScienceBase, DEIMS-SDR, METSIS, EPOS Data Portal, Fairdata, EPOS GLASS, IBDC, MINERVA, Nextstrain, Materials Cloud, OpenKIM, ChecklistBank, ProteoSAFe, CyVerse, Hugging Face, Kaggle, OpenAlex, Wikibase, DBpedia Databus, MGnify, MetaboLights, BioStudies, Reactome, WikiPathways, UCSC Genome Browser, FlyBase, WormBase, iDigBio, iNaturalist, CodaLab, Codabench, Grand Challenge, EvalAI, JACQ, Korp, DANDI Archive, CELLxGENE Discover, HydroShare, Brainlife, Open Context, BioDare2, TemplateFlow, GIGWA, PanelApp, Liverpool Drug Interactions, CAMD-Web, Protwis)
general_softwareCatch-all, including custom
statistical_processing_systemCollection, editing and tabulation workflows (CSPro)
confidential_analysis_systemControlled federated analysis of sensitive data (DataSHIELD)

Human-readable category notes: data/software/types.yaml. Allowed category / subtype lists: data/schemes/software.json. Per-id category and subtype live on each YAML record; MAP_SOFTWARE_OWNER_CATALOG_TYPE is loaded from those files (custom is excluded so catalogs can keep any catalog_type).

Layout​

data/software/
├── opendata/ckan.yaml
├── opendata/idra.yaml
├── geo/geonetwork.yaml
├── geo/mapserver.yaml
├── scientific/dataverse.yaml
├── scientific/opus.yaml
├── indicators/opensdg.yaml
├── microdata/nada.yaml
├── metadata/fairdatapoint.yaml
├── statistical/cspro.yaml
├── statistical/datashield.yaml
└── custom.yaml

What a software record contains​

Beyond id / name / category, records may include:

  • has_api, has_bulk, datatypes
  • metadata_support (CKAN API, DCAT, CSW, OAI-PMH, STAC, SDMX, …)
  • pid_support (DOI)
  • rights_management
  • repository_url, documentation_url, website

Quality checks flag catalogs whose software implies endpoints that are missing (SOFTWARE_EXPECTED_ENDPOINTS_MISSING_*) on the enrichment track — they do not fail CI by themselves.

validate-software coverage gates for version and repository_url apply to installable OSS subtypes (data_portal_platform, scientific_repository_platform, geospatial_service_middleware, protocol_or_api_server, plus repo coverage for domain/indicator stacks). They do not require a public git tag on managed_saas_service or municipal GIS viewers.

Adding a software definition​

  1. Confirm the product is shared (not a one-off site). One-off sites keep software.id: custom.
  2. Pick id: lowercase letters/digits, matching the filename (data/software/{category}/{id}.yaml).
  3. Set type: Software, name, category (aligned with catalog types), and subtype from the table above.
  4. Fill has_api, metadata_support, website, and documentation_url when known. See data/software/opendata/ckan.yaml.
  5. Run python scripts/builder.py sync-software-maps so data/reference/software_ids.yaml lists the new id.
  6. Run python scripts/builder.py validate-software and python scripts/builder.py build.

Do not create a new software id for an unnamed one-off .gov root. Add an id when several independent installations exist or a first-party product page / vendor deployment list establishes a reusable product (even with one or two registry rows) — then run the instance hunt in the same change. Custom-geoportal reviews on 7 September 2026 used that second path for CartoVista, IGO2, InfoMap, Flood Intelligence Portal, and similar branded viewers.

When the product is a discovery target (shared platform with live installations), add fingerprints and search queries to the matching guide: discovery-opendata.md, discovery-geoportals.md (SDI, viewers), discovery-scientific.md (domain), discovery-metadata.md, discovery-indicators.md, or discovery-other.md. Add a harvest recipe (keep vs drop, list URL, grain) on the matching harvest page in the same change. Both guides MUST include a unique ## Name (id) {#id} heading so software-index.md can link it. Regenerate the index with python scripts/docs_software_coverage.py. Do not document a software.id in harvest/discovery as if it were live until the YAML exists in data/software/ and software_ids.yaml. CI fails unless both guides have that unique {#id} heading (tests/test_docs_software_coverage.py).

Products under data/software/statistical/ are not catalog discovery targets. Do not add fictitious discovery or harvest recipes for them. Their software-index entry links to official product documentation instead.

Querying software usage​

SELECT software.id AS sid, count(*) AS n
FROM catalogs
GROUP BY 1
ORDER BY n DESC
LIMIT 20;

Matching a live site to a software.id: discovery.md. Per-platform Google, Censys, and FOFA queries: discovery-opendata.md, discovery-geoportals.md, discovery-scientific.md, discovery-metadata.md, discovery-indicators.md, discovery-other.md. FOFA as a Censys alternative: discovery-search-tools.md. After YAML exists: apidetect.md.