In JSON-LD serialization, the @id keyword assigns a unique Internationalized Resource Identifier (IRI) to a specific node, distinguishing it from all other entities in a knowledge graph. This identifier acts as a primary key, allowing other nodes to reference it via @type relationships or properties without ambiguity, preventing entity duplication during parsing.
Glossary
@id

What is @id?
The @id keyword is a fundamental JSON-LD mechanism that assigns a globally unique Internationalized Resource Identifier (IRI) to an entity, enabling unambiguous node identification and relationship linking within a structured data graph.
When implementing Schema.org markup, using a consistent @id value across multiple pages enables search engines to merge disparate data points about the same Thing into a unified entity. This is critical for entity linking and establishing a coherent Graph topology, ensuring AI-driven search engines correctly disambiguate and consolidate information about an Organization or Product.
Key Characteristics of @id
The @id keyword is the fundamental mechanism for assigning a globally unique Internationalized Resource Identifier (IRI) to an entity within a JSON-LD structured data block, enabling unambiguous node identification and graph linking.
Unambiguous Node Identification
The @id keyword assigns a unique IRI to a specific node within a JSON-LD document. This prevents entity disambiguation errors by ensuring that every subject—whether a Person, Organization, or Product—is treated as a distinct, identifiable object. Without an @id, nodes are considered blank nodes, which are anonymous and cannot be directly referenced or linked externally.
Graph Linking Mechanism
@id serves as the connective tissue of a knowledge graph. By referencing a previously defined @id as the value of another property, you create a directed, labeled edge between two nodes. This allows parsers to traverse relationships—such as a creator or subjectOf link—without duplicating entity data, maintaining a clean, normalized graph structure.
External Authority Alignment
Using a dereferenceable HTTP IRI as the @id value aligns your local entity with external authoritative sources. Common targets include:
- Wikidata entries (e.g.,
https://www.wikidata.org/wiki/Q42) - Wikipedia canonical URLs
- DBpedia resources This practice strengthens entity reconciliation and reinforces the SameAs property for search engines.
Top-Level Graph Organization
When using the @graph keyword to define multiple top-level entities in a single JSON-LD block, each node must have an @id to be referenced by other nodes within that graph. This allows for self-contained, complex data structures where relationships between entities—such as an Organization and its WebSite—are explicitly mapped without relying on the HTML DOM structure.
Fragment Identifier Usage
For entities that do not have a real-world canonical URL, a local fragment identifier is the standard convention. This is typically a relative IRI using a hash (#) prefix, such as #author-1 or #main-entity. This creates a local, document-scoped identifier that can be referenced within the same JSON-LD block to establish internal relationships without requiring an external HTTP endpoint.
Frequently Asked Questions
Clear answers to the most common technical questions about the @id keyword in JSON-LD structured data and its role in knowledge graph entity disambiguation.
@id is a JSON-LD keyword that assigns a globally unique Internationalized Resource Identifier (IRI) to an entity, enabling unambiguous node identification and linking across a knowledge graph. It functions as the primary key for a specific entity within a structured data document, ensuring that every Thing—whether a Person, Organization, or Product—has a distinct, machine-readable address. When a parser encounters an @id, it treats all subsequent properties as belonging to that specific node, preventing entity merging or confusion. For example, "@id": "https://example.com/entity#john-smith" definitively separates one person from another with a similar name. This mechanism is foundational for entity reconciliation, where multiple mentions of the same real-world object across different pages are consolidated into a single, authoritative knowledge graph entry by search engines like Google.
Practical Use Cases for @id
The @id keyword is the backbone of unambiguous entity identification in JSON-LD. By assigning a globally unique IRI to every node, you transform a flat list of data points into a traversable, machine-readable knowledge graph.
Unambiguous Node Identification
The primary function of @id is to assign a unique Internationalized Resource Identifier (IRI) to a node. This prevents entity disambiguation errors where an AI might confuse two distinct entities with the same name.
- Mechanism: A node representing a specific person, like 'John Smith', is assigned a URI such as
https://example.com/people#john-smith. - Result: All subsequent references to that URI are understood to be about that exact entity, not a different 'John Smith'.
Graph-Based Entity Linking
@id enables the creation of a directed graph by allowing one node to reference another. This is the core of building a semantic web of relationships.
- Example: A
Productnode can link to itsmanufacturerby referencing the manufacturer's @id, rather than duplicating the manufacturer's data. - Benefit: This creates a single source of truth. If the manufacturer's phone number changes, you update it in one place, and all products linking to that @id are implicitly updated.
Connecting to External Knowledge Bases
Use @id to explicitly link your local entities to their canonical counterparts in public knowledge graphs like Wikidata or DBpedia.
- Implementation: Set the @id of your
Organizationnode to its Wikidata IRI (e.g.,https://www.wikidata.org/wiki/Q95for Google). - SEO Impact: This provides a powerful entity reconciliation signal, helping AI-driven search engines merge your data with their existing world knowledge, solidifying your entity's identity and authority.
Structuring the @graph Array
The @id keyword is essential when using the top-level @graph array to define multiple top-level entities in a single JSON-LD block.
- Function: Each object within the
@grapharray must have a unique @id to serve as its node identifier. - Interconnection: You can then use these local @ids to define relationships between the entities within the same script block, creating a self-contained, coherent knowledge graph fragment on a single page.
Preventing Data Redundancy
By using @id to reference a node, you avoid embedding the same complex object multiple times. This keeps your structured data payload lean and maintainable.
- Scenario: An
Articlehas anauthorand apublisher. Both are the sameOrganization. - Solution: Define the
Organizationnode once with an @id. Both theauthorandpublisherproperties can then simply reference that single @id string, eliminating redundant data and reducing the risk of inconsistencies.
Enabling Rich Result Nesting
Search engines like Google use @id connections to understand the depth of relationships for rich result eligibility.
- Example: A
Recipewith an @id can be linked to aHowToguide. AReviewcan be linked to aProductvia its @id. - Outcome: This explicit nesting helps search engines parse complex, multi-faceted content and generate more informative rich results, such as a product carousel with aggregate ratings directly in the SERP.
@id vs. Other Node Identification Methods
A technical comparison of mechanisms used to uniquely identify and reference nodes within a JSON-LD knowledge graph or linked data structure.
| Feature | @id (IRI) | @type (Class) | SameAs (Equivalence) |
|---|---|---|---|
Primary Function | Assigns a globally unique identifier to a specific node instance | Defines the class or category a node belongs to | Links a node to its external canonical URI on another authority |
Uniqueness Guarantee | |||
Enables Internal Graph Linking | |||
Resolves Entity Disambiguation | |||
Required by Schema.org | |||
Syntax Format | Compact URI or absolute IRI (e.g., '#author-1') | Text string matching Schema vocabulary (e.g., 'Person') | Absolute URL (e.g., 'https://www.wikidata.org/wiki/Q42') |
Risk of Identifier Collision | Low (if using absolute IRIs) | Not applicable | None (relies on external authority) |
Typical Use Case | Connecting a Person node to the author property of an Article node | Telling a parser that a node represents an Organization vs. a Person | Asserting that a local Organization entity is the same as the Wikidata entry for that company |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Mastering the @id keyword requires understanding its role within the broader Schema.org ecosystem. These related terms define how entities are typed, linked, and contextualized within a knowledge graph.
@type
A fundamental property that assigns a class to an entity node. While @id provides a unique identifier, @type defines what the entity is—such as Person, Organization, or Product. An entity must have both an @id and an @type to be a valid node in a knowledge graph. Common types include:
- Thing: The top-level ancestor of all Schema.org types
- CreativeWork: For articles, videos, and media
- Event: For scheduled occurrences with a location and time
SameAs Property
A critical Schema.org property that establishes external equivalence between your local @id and canonical URIs on authoritative knowledge bases. By linking your entity to its corresponding Wikidata, Wikipedia, or official website URL, you perform entity reconciliation—telling search engines that your node represents the same real-world thing. This is a cornerstone of entity salience optimization and brand authority signaling.
Graph
A top-level JSON-LD construct that encapsulates multiple interconnected nodes within a single structured data block. Instead of defining isolated entities, a @graph array allows you to declare several @id nodes and link them via properties like author, publisher, or subjectOf. This creates a self-contained knowledge graph that parsers can ingest atomically, reducing ambiguity and ensuring relationship integrity.
MainEntity
A Schema.org property used to disambiguate the primary topic of a web page. When a page contains multiple entities, mainEntity points to the single most prominent @id. This helps search engines understand that, for example, a product page's central subject is the Product node, not the Organization or Review nodes also present. It directly influences AI-generated summaries and featured snippets.
Entity Linking
The computational process of identifying and disambiguating textual mentions of real-world objects. In the context of @id, entity linking connects a string like 'Elon Musk' to a canonical IRI such as https://www.wikidata.org/wiki/Q317521. This disambiguation is essential for generative engines to avoid conflating entities with similar names and to ground their outputs in factual, verifiable nodes within the global knowledge graph.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us