RDFa需严格嵌入完整RDF三元组:主语须用resource/about显式声明;谓词优先通过vocab简化schema.org URI;宾语需依content/datatype精确控制类型;vocab与prefix不可混用以防URI解析冲突。

RDFa 标记不是给 HTML“加点语义修饰”就行,它本质是往页面里嵌入一条条 RDF 三元组(主语–谓词–宾语),每条都必须完整、明确、可解析。写错一个关键属性,搜索引擎就可能完全忽略整段数据。
必须显式声明主语:用 resource 或 about
很多人只写 property="name",却没指定“谁的名字”——此时解析器会默认用当前网页 URL 当主语,结果常与预期不符。正确做法是:
- 用
resource指向页面内某个实体,比如<div resource="#product1"> - 或用
about(效果等价),如<div about="#author"> - 若描述的是整个页面本身(如网站信息),可用
about=""表示主语就是当前文档
谓词要写对:优先用 vocab 简化 schema.org
property 的值必须是合法 URI。直接写 property="https://schema.org/name" 没问题,但易出错、难维护。更推荐:
- 在根元素(如
<html>或<body>)设vocab="https://schema.org/" - 之后所有
property就能简写为property="name"、property="price",自动拼成完整 URI - 注意:
vocab对typeof同样生效,比如typeof="Product"会自动解析为https://schema.org/Product
宾语要可控:内容、content 属性或 datatype 配合使用
宾语不等于“标签里的文字”。它由三部分共同决定:
立即学习“前端免费学习笔记(深入)”;
- 纯文本节点(如
<span property="name">iPhone 15</span>)会被当字符串字面量 - 需要精确类型时(如日期、数字),得配合
content属性和datatype:<meta property="datePublished" content="2024-09-01" datatype="xsd:date"> - 不可见数据(如价格、库存)建议用
<meta>标签,避免干扰视觉结构
别混用 vocab 和 prefix,作用域容易失控
两者都能缩写 URI,但机制不同:
-
vocab是“默认前缀”,对所有无冒号的property和typeof生效 -
prefix是“命名空间映射”,必须显式带冒号使用,如prefix="foaf: http://xmlns.com/foaf/0.1/"→property="foaf:name" - 如果父容器用了
vocab,又在子元素里用prefix定义同名前缀(如schema:),可能导致同一property="name"在不同位置解析出两个完全不同 URI



















