What Is Semi-Structured Data?

Semi-structured data is a form of data that doesn’t conform to the traditional tabular structure of data models, but it has struc

 min. read
May 28, 2024
What Is Semi-Structured Data?

Data, though often discussed as if it’s a universal form of information, comes in various degrees of structure. There is structured data, semi-structured, and unstructured. Understanding what each is and how they’re used in the digital space can help businesses boost the efficiency of their workflows and data management.

In this article, we’ll focus on the middle child of the data line-up and break down everything you need to know about semi-structured data – from common sources and file formats to its advantages and disadvantages.

Whether you realize it or not, semi-structured data is everywhere, and knowing how to unlock its potential is crucial for any business trying to process large volumes of information.

To answer the question “What is semi-structured data?”, it’s worth looking at what data structure is in the first place. When data is described as having structure, that means that it conforms to a rigid schema or data model and can be easily categorized as a result. On the opposite end of the scale is unstructured, raw data.

Semi-structured data has some of structured properties and can be considered partially organized, but still includes elements that aren’t strictly rule-bound. It doesn’t require a pre-determined schema definition in the way that structured data does and as such, is far more flexible. As we’ll explain later, this adaptability is both what makes semi-structured so useful and at times, challenging.

A helpful analogy when thinking about data structure types is to think of H20 in its three forms: ice, water, and vapor. Structured data is a solid block of ice with clear edges and organization, while semi-structured data is liquid. It has both structure and fluidity.

From a technical standpoint, here are the key characteristics of semi-structured data:

  • No fixed schema: The data has some structure but does not stick to the rules of a data model.
  • Actual Data Structure: It’s not stored in a flat, tabular format (rows and columns) in the way that structured data is. Instead, the data is organized in groups and hierarchies.

Similar entities within the data are grouped and organized in a hierarchy but entities within the group may not always have the same properties and these group sizes aren’t regular.

  • How it’s Grouped: The data contains tags and metadata which are used to group and describe the semi-structured data when stored.

Some of the most common digital formats make use of semi-structured data. For example, emails contain the structured data of time, date, recipient, etc. alongside unstructured text and images, while also being searchable with keywords.

Sources of semi-structured data include:

  • Zipped files
  • Web pages
  • Emails
  • PDF’s
  • Images
  • Social media
  • IoT (Internet of Things)

Beyond these specific sources, semi-structured data also appears frequently when integrating data from multiple sources. Its in-betweenness means that it integrates well with both structured and unstructured data formats.

Depending on where it’s sourced from, semi-structured data can occur in several formats. These are the most widely used:


Starting with what is perhaps the most popular format on this list, Extensible Markup Language (XML) is a markup language well-liked for its versatility. Any type of data can be expressed using it and XML also makes data readable to both humans and machines.

Another aspect of its versatility is that users can create custom tags and languages with XML required for storing, while also matching the needs of where the data is headed such as the creation of HTML documents. In fact, XML is particularly well suited to HTML for large websites as it eases the exchange of information between sites and other systems.


XML’s most used alternative is JavaScript Object Notation (JSON). JSON is designed to present data for both machines and humans to understand it.

Derived from JavaScript, it is syntactically identical to the kind of code used in the JavaScript, Python, Perl family. The advantage is then that, for anyone who uses those coding languages, JSON is a particularly easy format of semi-structured data to handle.

It collects semi-structured data from things like smartphones and web browsers and then sends them to a central data platform. This ability to bridge the data gap between platforms and systems is why it’s known as a data “interchange”.

Because it’s often compared to JSON, it’s worth taking a moment for the distinguishing features between the two semi-structured data file formats. XML is of a more complex structure and thus has bigger files than JSON which, thanks to its more compact files, offers faster data transmission in comparison.


This open-source data serialization network was developed by Avro Apache to be used as a data exchange service for Apache Hadoop. It uses JSON to define data types and serialize data in a binary format. This binary format is compact enough to be sent to any app or platform at which point it is then deserialized and used.

The unique feature of Avro for semi-structured data use is that while some data exchange services rely on a code generator, Avro doesn’t. It’s also equipped to support “schema evolution” i.e., data schemas that change. It stores data in a row-based format as opposed to columns, which the next two semi-structured data formats on this list use.


Apache Parquet is another demi-structured data format developed for Apache Hadoop but operates very differently from Avro. It is a columnar storage format meaning that it groups data into columns. This makes filtering and selecting data much easier, especially when dealing with big volumes.

It’s largely considered to be much faster to read than CSV, an often-compared data format, and takes up much less space. Parquet is a very speedy, efficient way to store semi-structured data.


ORC is another columnar storage format. It differs from Parquet slightly though in that the former on this list sequentially stores data in column chunks whereas ORC uses more traditional columns. It’s optimized for Hive data and was developed to offer better compression and more efficiency for reading, writing, and transferring data compared to previous Hive format iterations.

Though the multi-faceted nature of semi-structured data has advantages (which we’ll get to), it also has two notable downfalls:

Storage is More Challenging

The lack of a fixed schema can make storing semi-structured data more difficult and expensive than structured data. That said, it is still easier to store than unstructured data and cloud storage has eased this challenge immensely.

Schema and Data are Tied Together

Running queries is generally more challenging with semi-structured data. With semi-structured data, the schema is usually closely tied to the data itself which makes queries less efficient. You have to know what it is you’re looking for before making any queries, especially as a query might update both.

The very things that contribute to the challenges of semi-structured data are also where its biggest advantages lie. Here are some of the benefits of data that balances both structure and flexibility:

Scales and Evolves Over Time

A key characteristic of semi-structured data is that it is not limited by a fixed set of rules. This means that it can evolve over time, both in terms of function and form. It can be adjusted to store any form of data needed and be scaled to accommodate higher volumes of data.

Integrating new types of data into an existing database or pipeline is far easier with semi-structured data than say structured data as the schema is flexible enough for these changes. This is especially useful when data from multiple sources needs to be analyzed and includes varying structures. Combining and analyzing semi-structured data alongside unstructured data is far simpler than, for example, doing the same with structured and unstructured.

Richer Data Analysis

Thanks to aspects such as metadata and tags, semi-structured data often provides more context to information than structured data. This can boost accuracy in data analysis and make for far richer, more relevant insights.

Structured Enough

For all its flexibility, semi-structured data still retains just enough structure to be used in organized workflows.

Adaptable Across Different Sources

Semi-structured data can deal very easily with a “heterogeneity” of sources which essentially means that it can juggle far more than structured data. Data models that rely on semi-structured data can pull from a variety of sources and as mentioned, achieve much deeper data analysis.

The reality is that semi-structured data is everywhere. It’s on your phone every time you click on social media. It’s what makes up emails, PDFs, and webpages for companies relying on IoT and automates workflows, it’s the building blocks of everything they do.

Though storing semi-structured data can be challenging and it offers some issues with queries, its adaptability and flexibility tend to outweigh these issues. Semi-structured data works well when exchanged between platforms and systems and is usually understandable to both humans and machines.

That’s why, at FormX, our AI-powered data extractors is capable of extracting data from all kinds of documents and returning them results in JSON and CSV. It ensures that data is ready for further analysis or workflow automation on a range of platforms, thus allowing for easy integration with whatever software you already have.

Contact us today to see how you can automatically convert various documents into JSON or CSV today.