Canonical Definition & Meaning

In computer science, canonical refers to the standard state or behavior of an attribute. It is conforming to an accepted rule or procedure. This term has been borrowed from mathematics, where it refers to concepts that are unique and/or natural. For example, the canonical way to organize a file system is as a hierarchy.

The term itself is an adjective derived from the word canon. The English word canon originates from a Greek word meaning a rule or measuring stick. In the early church, the canon was the officially chosen set of scriptures.

While what can be referred to as canonical is limitless, it is commonly used in a few settings:

Canonical in programming

In programming, canonical means according to the rules. Non-canonical means not according to the rules. The terms are used to distinguish whether a programming interface follows a particular standard or precedent or whether it departs from it.

Canonical in IP addressing

When referring to IP addressing, canonical refers to the authoritative host name stored in a DNS database that all IP address aliases resolve to. This is sometimes referred to as a CNAME record. A computer hosting a website must have an IP address in order to be connected to the World Wide Web. The DNS resolves the computer’s domain name to its IP address, but sometimes more than one domain name resolves to the same IP address, which is where the CNAME is useful. A machine can have an unlimited number of CNAME aliases, but a separate CNAME record must be in the database for each alias.

Canonical XML

Canonical XML is a normal form of Extensible Markup Language (XML), which allows designers to create customized tags, enabling the definition, transmission, validation, and interpretation of data between applications and between organizations. Canonical XML is intended to allow relatively simple comparisons of pairs of XML documents for equivalence. It removes non-meaningful differences between the documents.

Canonical Ltd.

Canonical Ltd. is a UK-based, privately held computer software company founded by Mark Shuttleworth created to market commercial support and related services for Ubuntu and related projects.

Canonical model

A canonical model is a design pattern used to communicate between different data formats. It aims to present data entities and relationships in the simplest possible form to integrate processes across various systems and databases. Canonical models are typically used among enterprises to create and distribute a common definition of its entire data unit.


Abby Dykes
Abby Dykes
Abby Dykes is a newly-graduated writer and editor for websites such as TechnologyAdvice.com, Webopedia.com, and Project-Management.com. When she’s not writing about technology, she enjoys giving too many treats to her dog and coaching part-time at her local gym.

Top Articles

Huge List Of Texting and Online Chat Abbreviations

From A3 to ZZZ we list 1,559 text message and online chat abbreviations to help you translate and understand today's texting lingo. Includes Top...

How To Create A Desktop Shortcut To A Website

This Webopedia guide will show you how to create a desktop shortcut to a website using Firefox, Chrome or Internet Explorer (IE). Creating a desktop...

The History Of Windows Operating Systems

Microsoft Windows is a family of operating systems. We look at the history of Microsoft's Windows operating systems (Windows OS) from 1985 to present...

Hotmail [Outlook] Email Accounts

  By Vangie Beal Hotmail is one of the first public webmail services that can be accessed from any web browser. Prior to Hotmail and its...

Legacy Code Definition &...

Legacy code refers to source code that has been inherited from a previous...

Unregulated Power Supply Definition...

An unregulated power supply is a system that transforms input voltage into direct...

Cybersecurity Awareness Training Definition...

Cybersecurity awareness training informs employees of the attack surfaces and vectors in their...