DefinedTerm
DefinedTerm is an Intangible type for words, phrases, acronyms, or concepts with formal definitions: glossary entries, taxonomy terms, classification codes, subject categories. It has 3 properties of its own: inDefinedTermSet (which glossary or taxonomy it belongs to), termCode (a code or identifier), and about (the thing the term describes). DefinedTerm appears as a value type on many properties across schema.org: teaches, variesBy, keywords, occupationalCategory.
The type hierarchy is Thing → Intangible → DefinedTerm. Use DefinedTerm for glossary pages, taxonomy pages, or anywhere you define a term formally. A DefinedTermSet is the collection (the glossary); DefinedTerm is each entry.
Full example of schema.org/DefinedTerm json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "DefinedTerm",
"name": "JSON-LD",
"description": "JavaScript Object Notation for Linked Data. A method of encoding linked data using JSON syntax. The recommended format for embedding schema.org structured data in web pages.",
"url": "https://xoocode.com/glossary/json-ld",
"inDefinedTermSet": {
"@type": "DefinedTermSet",
"name": "Xoo Code Structured Data Glossary",
"url": "https://xoocode.com/glossary"
},
"termCode": "JSON-LD",
"sameAs": "https://en.wikipedia.org/wiki/JSON-LD"
}
</script>inDefinedTermSet
inDefinedTermSet links the term to its parent glossary or taxonomy. It takes a DefinedTermSet object or URL. For example, a medical term might be in a MeSH (Medical Subject Headings) term set, or a job code in the O*NET taxonomy.
termCode
termCode is a code or identifier for the term within its term set: an O*NET code ("15-1252.00"), an ICD code ("E44.1"), a NAICS code. Not every term has a code. Glossary definitions typically do not; classification systems do.
Minimal valid version
The smallest markup that still produces a valid DefinedTerm entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "DefinedTerm",
"name": "JSON-LD",
"description": "JavaScript Object Notation for Linked Data.",
"inDefinedTermSet": { "@type": "DefinedTermSet", "name": "Xoo Code Glossary" }
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsNo dedicated rich result
Common DefinedTerm mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Using plain text instead of DefinedTerm where schema.org expects it
Wrong"teaches": "JSON-LD structured data"Right"teaches": { "@type": "DefinedTerm", "name": "JSON-LD structured data" }Many schema.org properties accept DefinedTerm or Text. Using a DefinedTerm object lets Google match the concept to its knowledge graph. This is especially useful for skills, subjects, and occupational categories.
- 02
DefinedTerm without inDefinedTermSet
WrongDefinedTerm with name and description but no inDefinedTermSetRight"inDefinedTermSet": { "@type": "DefinedTermSet", "name": "..." }inDefinedTermSet connects the term to its parent glossary or taxonomy. Without it, the term is a floating definition with no context. Google uses the term set to understand the scope and authority of the definition.
Schema properties in this example
Also mentioned in 3 other examples
DefinedTerm also appears in CategoryCode, DefinedTermSet, and FinancialIncentive. See the full DefinedTerm schema page for every reference.
About the example data
A glossary entry for "JSON-LD" from the Xoo Code structured data glossary.
Comments
Loading comments...