npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@mapko/nace-osm-taxonomy

v1.12.0

Published

Open multilingual (EN/UK/DE/RU) SMB service taxonomy: 23 categories, 353 subcategories, 1333 templates. NACE Rev.2 + OpenStreetMap + Schema.org + Wikidata anchors. MIT.

Downloads

335

Readme

NACE-OSM Service Taxonomy

An open, multilingual (EN/UK/DE/RU) business service taxonomy that maps NACE Rev.2 statistical codes to OpenStreetMap community tags, enriched with service templates for marketplace use.

Formalized as JSON-LD with @id URIs under https://taxonomy.mapko.net/v1/, anchored in Schema.org LocalBusiness types and Wikidata QIDs. Positioned as an Upper Ontology for SMB discovery platforms — inspired by Schema.org's LocalBusiness vocabulary but with deeper industry coverage (1300+ templates across 23 roots).

Current version: see VERSION · Changelog: CHANGELOG.md · JSON-LD context: context.jsonld

What is this?

A structured classification of businesses and their services, designed for local discovery platforms, marketplaces, and business directories.

NACE Section (statistical standard, EU)
  └── Subcategory (mapped to OSM tag)
        └── Service Template (typical service offered)

Example:

🍽️ Food & Beverage (NACE I56)
  └── Restaurant (OSM: amenity=restaurant)
        ├── Business Lunch
        ├── Banquet
        ├── Takeaway
        ├── Delivery
        └── Catering

Stats

| Metric | Count | |--------|-------| | Root categories | 23 | | Subcategories | 353 | | Service templates | 1333 | | Languages | 4 (EN, UK, DE, RU) |

Categories

| Icon | Category | NACE Code | Subcategories | |------|----------|-----------|---------------| | 🍽️ | Food & Beverage | I56 | Restaurant, Cafe, Bar, Fast Food, Bakery, Ice Cream | | 🏨 | Accommodation | I55 | Hotel, Hostel, Guest House, Apartment Rental | | 🛍️ | Retail & Shopping | G47 | Grocery, Clothing, Electronics, Florist, Pharmacy, Jewelry, Optician | | 💇 | Beauty & Wellness | S96 | Hair Salon, Barbershop, Nail Studio, Spa, Beauty Salon, Tattoo | | 🏥 | Health & Medical | Q86 | General Doctor, Dentist, Physiotherapy, Psychologist, Veterinary | | 🎓 | Education & Training | P85 | Language School, Driving School, Music, Tutoring, Dance, Art | | 🚗 | Auto & Transport | G45+H49 | Car Repair, Car Wash, Tire Service, Car Rental | | 🏠 | Home Services | F43+N81 | Plumber, Electrician, Cleaning, Landscaping, Moving, Locksmith | | 💼 | Professional Services | M69-M74 | Lawyer, Accountant, Notary, Architect, Real Estate, Translator | | 💻 | IT & Digital | J62 | Web Dev, Mobile Dev, IT Consulting, SEO, Design, Photography | | 🏋️ | Sports & Fitness | R93 | Gym, Yoga, Swimming, Martial Arts, Personal Trainer | | 🎭 | Entertainment & Leisure | R90+R92 | Cinema, Theater, Nightclub, Bowling, Escape Room, Event Venue | | 🏦 | Finance & Insurance | K64-K66 | Bank, Currency Exchange, Financial Advisor, Insurance | | 🔧 | Crafts & Repair | S95+C | Phone Repair, Computer Repair, Tailor, Shoe Repair, Watch Repair | | 🌾 | Agriculture & Farming | A01 | Crop Farm, Livestock, Dairy, Beekeeping, Vineyard, Orchard, Greenhouse, Fish Farm | | 🏭 | Manufacturing & Production | C | Food Production, Textile, Woodworking, Metalworking, 3D Printing, Candle/Soap, Brewery | | 🚛 | Logistics & Warehousing | H49+H52+H53 | Courier, Parcel Locker, Freight Forwarder, Customs Broker, Self-Storage, Taxi, Bus Charter, Truck Rental | | 🐾 | Pet Services | M75+S96.09 | Pet Daycare, Dog Walking, Pet Training, Pet Sitting, Grooming Salon, Kennel, Cat Hotel, Pet Photography | | 👶 | Childcare & Kids | Q88.91+P85.10 | Babysitter, Nanny Agency, Kids Parties, Kids Photo, Baby Massage, Lactation Consultant, Prenatal, Kids Dev Center, Kids Club | | 🎁 | Events & Wedding | N82.30 | Wedding Planner, Event Production, DJ, Balloon Decor, Photo Booth, MC, Sound/Lighting/Stage Rental, Fireworks, Florals | | 🎨 | Arts & Handmade | C32+R90 | Pottery, Glass, Sculpture, Jewelry Artisan, Leather, Art Gallery, Artist Studio, Framing, Antiques Restoration | | 🏘️ | Real Estate | L68+F41 | Property Management, Building Co., Developer, Surveyor, Home Staging, Mortgage Broker, Valuator, Leasing | | ⚖️ | Government & Public | O84+R91 | Municipal, Post Office, Social Services, Employment, Registry, Library, Archives, Tax, Passport |

Install

npm install @mapko/nace-osm-taxonomy

Then in Node / TypeScript:

import {
  loadTaxonomy,
  findSubcategoryBySlug,
  findByOsmTag,
  findByNaceRef,
  findByWikidataId,
} from '@mapko/nace-osm-taxonomy';

const taxonomy = loadTaxonomy();
const hairSalon = findSubcategoryBySlug('hair-salon');
const restaurants = findByOsmTag('amenity=restaurant');

Or consume JSON directly (any language):

import taxonomy from '@mapko/nace-osm-taxonomy/taxonomy.jsonld';
import beauty from '@mapko/nace-osm-taxonomy/categories/beauty-wellness.json';

How to use

JavaScript / TypeScript

const taxonomy = require('./taxonomy.json');
const categories = taxonomy;

const beauty = categories.find(c => c.slug === 'beauty-wellness');
console.log(beauty.subcategories.map(s => s.names.en));

Python

import json
with open('taxonomy.json') as f:
    taxonomy = json.load(f)
for cat in taxonomy:
    for sub in cat['subcategories']:
        print(f"{cat['icon']} {sub['names']['en']} → {sub.get('osmTag', 'N/A')}")

Data format

Each category file is a JSON object. Since v1.1.0 it carries additional fields for use as an ontology (URIs, Schema.org / Wikidata links, attribute schemas, linguistic hints). All new fields are additive — old consumers of v1.0.0 continue to work.

See categories/beauty-wellness.json for a fully-enriched blueprint.

Field reference (v1.1.0)

| Field | Level | Purpose | |---|---|---| | @id | all | stable URI for cross-reference from downstream graphs | | @context | root | JSON-LD context (points to context.jsonld) | | altLabels | category/sub/template | synonyms per language, critical for entity linking | | schemaOrgType | subcategory | Schema.org LocalBusiness subtype for LD-JSON export | | wikidataId | subcategory/template | Wikidata QID for cross-lingual / cross-system reference | | naceRef | any | NACE Rev.2 code | | osmTag | subcategory/template | OSM tag at the most specific applicable level | | attributes.{required,optional,schema} | template | typed schema for instances (price, duration, enums) | | expectedRelations | subcategory | relation hints for downstream entity linker | | linguisticHints.{triggers,antiTriggers,adjacentTemplates} | template | LLM classifier disambiguation hints | | crossLinks | template | DAG edges between related templates |

Contributing

See CONTRIBUTING.md.

Attribution

Inspired by and anchored in public industry standards:

  • NACE Rev.2 (Eurostat, public domain) — statistical classification backbone
  • OpenStreetMap tag conventions — community naming vocabulary for geo-tagging
  • Schema.org LocalBusiness vocabulary (CC-BY-SA 3.0) — type mappings
  • Wikidata QIDs (CC0) — cross-lingual anchors

No proprietary taxonomy content from Foursquare, Google My Business, Yelp, or any closed commercial source was imported or copied.

License

MIT License — Created by Mapko

See LICENSE for details.