What is semi-structured data?

Semi-structured data has some organisational structure, such as tags, keys or a hierarchy, but no rigid table schema, with JSON and XML being the classic examples. It sits between fully structured tables and unstructured text, flexible in shape yet still machine-readable and parseable into fields.

Semi-structured data carries its own structure inside the content rather than in a fixed schema. A JSON record can have nested objects and varying fields from row to row; XML uses tags; log files and API responses are often semi-structured too.

Characteristics:

  • Self-describing keys and tags label the values.
  • Flexible schema records need not all have the same fields.
  • Nested and hierarchical objects within objects, arrays of items.

This flexibility is great for applications and APIs but awkward for traditional SQL, which expects flat, uniform tables.

iDBQuery is comfortable with semi-structured sources. It can ingest JSON files and connect to REST APIs, whose responses are typically JSON, flattening and mapping the nested fields so they become queryable alongside your regular tables. Its semantic layer helps interpret the structure so you can ask about it in plain language, and its federation engine lets a semi-structured API feed sit in the same one live model as your relational databases and spreadsheets. Ask a question that combines them, and iDBQuery writes the query, runs it live, and cites the answer back to source, so semi-structured data becomes just another thing you can simply ask about.

Updated 2026-06-22