Lynx
Lynx is a tool for working with Smart Data Models, NGSI-LD, and JSON-LD. It helps you create, manage, and use data models and contexts without getting lost in the details. Run it as a service, call its API, or use it to host your models for others.
Overview
Building IoT and smart city applications with FIWARE often requires schema inference, JSON-LD context generation, validation, and a place to serve models and contexts. Lynx provides these capabilities in a single service: infer schemas from sample data, generate and manage JSON-LD contexts, compact or expand documents, validate entities against models, and host models and contexts at predictable URLs.
Key Features
-
Schema inference — Turn JSON samples into proper data models with FIWARE conventions (shared definitions for location, address, etc.)
-
Context generation — Generate
@contextfrom schemas; support both NGSI-LD and JSON-LD styles -
Compact and expand — Expand compact JSON-LD to full URIs or compact verbose documents to short terms
-
Entity validation — Validate NGSI-LD entities against stored schemas with clear error messages
-
Model hosting — Serve data models and JSON-LD contexts as static files at predictable URLs
-
API-first — Integrate into pipelines, scripts, or tools via REST
Capabilities
Turn Sample Data Into Data Models
You have JSON examples (sensor readings, device data) and need a proper schema. Lynx infers the structure from your samples, enriches it with FIWARE conventions, and produces a ready-to-use data model with schema, OpenAPI spec, and JSON-LD context.
Useful when: Prototyping, migrating legacy data, or creating new models from real-world examples.
Generate JSON-LD Contexts
You have a schema and need a @context so your JSON-LD documents work correctly. Lynx generates contexts from schemas, supports both NGSI-LD and JSON-LD styles, and handles standard vocabularies (FIWARE, Schema.org) automatically.
Useful when: Publishing linked data, integrating with NGSI-LD brokers, or needing compact vs expanded forms.
Compact and Expand JSON-LD
You receive or produce JSON-LD in one form and need the other. Lynx can expand compact documents to full URIs or compact verbose documents to short terms. It resolves remote contexts and handles NGSI-LD quirks.
Useful when: Debugging, transforming data between systems, or normalizing formats for storage or display.
Validate Entities
You have NGSI-LD entities and want to check they match your model. Lynx validates entities against stored schemas and returns clear error messages when something is wrong.
Useful when: Ingesting data, testing integrations, or ensuring data quality before it reaches a broker.
Host Models and Contexts
You need a place to serve your data models and JSON-LD contexts so other systems can reference them. Lynx serves them as static files at predictable URLs.
Useful when: Sharing models across projects, publishing to the Smart Data Models catalog, or providing contexts for external consumers.
Who Is It For?
-
Developers — Building IoT or smart city applications with FIWARE
-
Data modelers — Turning sample data into proper schemas
-
Integrators — Working with NGSI-LD and JSON-LD who need validation or transformation
-
Teams — Needing a central place to store and serve data models and contexts
Acknowledgments
-
The
@contextgeneration logic draws on concepts and approaches from the FIWARE tutorial: Understanding NGSI-LD @context. -
Generating OpenAPI specs for data model schemas is inspired by the Smart Data Models utils.
Next Steps
-
API Reference — Endpoints for models, contexts, workbench, and static serving