如何在JSON-LD中定义和使用Schema?兼询与JSONSchema的关联
JSONSchema与JSON-LD的关联及JSON-LD Schema创建验证指南
一、JSONSchema与JSON-LD的关联
两者属于不同技术标准,定位互补:
- JSONSchema:专注结构验证,定义JSON数据的格式规则(如字段类型、必填项、取值范围),确保数据语法合规。
- JSON-LD:专注语义标记,通过
@context给JSON数据添加语义上下文,让机器能理解数据的实际含义(比如区分name是指人名还是产品名)。 - 关联场景:可结合使用——用JSONSchema验证JSON-LD实例的结构正确性,同时借助JSON-LD的语义约束,实现「结构+语义」的双重校验。
二、在JSON-LD中创建Schema并验证实例的步骤
JSON-LD本身无内置Schema定义机制,通常结合RDF Schema(RDFS/OWL) 和JSONSchema实现,分语义定义与结构验证两部分:
1. 定义JSON-LD语义上下文(@context)
先确定数据术语对应的语义URI,可自定义或复用已有标准:
{ "@context": { "name": "http://example.org/ontology#PersonName", "age": "http://example.org/ontology#PersonAge", "Person": "http://example.org/ontology#Person" } }
该上下文将name映射到自定义本体的PersonName属性,Person映射到Person类,明确术语的语义指向。
2. 用RDF Schema定义语义约束
用RDFS/OWL编写类、属性的语义规则(如类的层次、属性的定义域/值域),支持Turtle或JSON-LD格式:
@prefix ex: <http://example.org/ontology#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . ex:Person a rdfs:Class . ex:PersonName a rdf:Property ; rdfs:domain ex:Person ; rdfs:range xsd:string . ex:PersonAge a rdf:Property ; rdfs:domain ex:Person ; rdfs:range xsd:integer .
这段规则定义了Person类,要求PersonName属性只能属于Person类且值为字符串,PersonAge值为整数。
3. 用JSONSchema验证结构合规性
编写JSONSchema规则,校验JSON-LD实例的结构:
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "required": ["@type", "name"], "properties": { "@type": { "const": "Person" }, "name": { "type": "string" }, "age": { "type": "integer", "minimum": 0 } } }
该Schema要求实例必须包含@type且值为Person,name为必填字符串,age为非负整数。
4. 语义验证
使用RDF工具(如Apache Jena、RDF4J)加载RDF Schema和JSON-LD实例,校验语义约束:
- 检查属性是否匹配对应类的定义域(比如给
Person实例添加price属性是否违反规则) - 检查属性值是否符合值域要求(比如
age填字符串是否合法)
三、schema.org的Schema定义方式
schema.org是基于RDF Schema和OWL构建的开放语义Schema,核心实现逻辑:
- 语义定义:用RDFS/OWL定义所有类(如
Person、Product)和属性(如name、email)的层次关系、定义域、值域,并发布为Turtle、JSON-LD等格式的本体文件。 - 上下文复用:提供统一的
@context(https://schema.org),所有术语都映射到schema.org的语义URI,比如"name": "https://schema.org/name",简化语义标记。 - 验证支持:
- 结构层面:可借助社区维护的schema.org JSONSchema校验实例格式。
- 语义层面:用RDF工具验证实例是否符合schema.org的语义约束,比如
price属性仅能用于Product类实例。
内容的提问来源于stack exchange,提问作者Lance Pollard
相关产品推荐
相关产品推荐

