Schema.org标记RDFa开始指南

举报
yd_230983759 发表于 2025/11/14 10:37:27 2025/11/14
【摘要】 本文介绍了使用schema.org词汇表通过RDFa为网页添加结构化数据。主要内容包括:1) HTML到RDFa的转换步骤,2) 如何声明schema.org为默认词汇表,3) 为网页添加类型(TechArticle)和相关属性(name/author等),4) 优化属性表达方式,5) 使用meta元素添加隐式属性。文章还展示了奥维数字科技的技术服务矩阵,涵盖数字孪生、AIGC和GEO三大领域。

Schema.org标记RDFa开始指南

在本节课,您将获取一个简单网页,使用schema.org词汇表并通过RDFa属性来表达它。

练习 1:从基础HTML到RDFa:第一步

在本练习中,您将学习为现有网页添加简单RDFa结构化数据所需的基本步骤。

步骤1(a):查看页面源代码HTML

在文本编辑器中打开exercise1.html。您应该看到类似以下的网页HTML源代码:

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title>Structured data with schema.org codelab</title>

</head>

<body>

<h1>Structured data with schema.org codelab</h1>

    <img style="float:right" src="squares.png" />

    <p class="byline">

        By <a href="http://example.com/AuthorName">Author Name</a>,

        January 29, 2014

    </p>

<h2>About this codelab</h2>

<h2>Exercise 1: From basic HTML to RDFa: first steps</h2>

<h2>Exercise 2: Embedded types</h2>

<h2>Exercise 3: From strings to things</h2>

</body>

</html>

注:如有需要,您可以使用浏览器开发工具查看和编辑网页源代码(在Chrome或Firefox中按CTRL-Shift-i,分别在元素检查器标签页中)。

步骤1(b):在HTML中提取和查看结构化数据

有许多RDFa解析器(包括在线和本地可安装的),可以帮助您检查工作结果。将HTML源代码复制并粘贴到以下在线结构化数据提取工具中:

l Google结构化数据测试工具

l Yandex结构化数据验证器

l RDFa Play

l 结构化数据检查器

结果应该会(毫不意外地!)显示该页面目前不包含任何结构化数据。

步骤1(c):添加RDFa词汇表声明

前言

RDFa(属性中的资源描述框架,Resource Description Framework in attributes)使我们能够仅使用少量HTML 属性,在HTML文档中嵌入事物(类型,types)及其属性的描述。

为避免术语混乱(例如有人用author指代作者,有人用writer表示同一概念),类型和属性的集合通常会被标准化并发布为词汇表(vocabulary)(也称为本体(ontology))。

每个类型和属性都应有可解引用的 URI,以便您(或搜索引擎)可以查找词汇表元素的定义并确定其与其他词汇表元素的关系(如果有)。例如,您可以查阅http://schema.org/TechArticle并了解到它是Thing / CreativeWork / Article 层次结构的子类。

你可以为每个词汇表元素使用完整URI,但这会非常繁琐——尤其是对于某些词汇表(如http://rdaregistry.info/Elements/a/countryAssociatedWithThePerson这类长URI)。因此,RDFa提供了@vocab属性:若在HTML元素上添加vocab="http://<词汇表路径>",则其作用域内所有RDFa的@typeof和@property属性都会自动在属性值前拼接该词汇表路径。

将schema.org词汇表声明为您的默认词汇表

我们将在练习中使用schema.org词汇表,因为它包含的类型和属性使我们能够描述许多普遍感兴趣的事物,而无需混合和匹配多个词汇表。在<body>元素上将HTML文档的默认词汇表声明为http://schema.org/。注意:不要忘记末尾的斜杠(/)!

检查点:你的HTML页面现在看起来应该如下:

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title>Structured data with schema.org codelab</title>

</head>

<body vocab="http://schema.org/">

<h1>Structured data with schema.org codelab</h1>

    <img style="float:right" src="squares.png" />

    <p class="byline">

        By <a href="http://example.com/AuthorName">Author Name</a>,

        January 29, 2014

    </p>

<h2>About this codelab</h2>

<h2>Exercise 1: From basic HTML to RDFa: first steps</h2>

<h2>Exercise 2: Embedded types</h2>

<h2>Exercise 3: From strings to things</h2>

</body>

</html>

 

 

通用词汇表与专用词汇表

许多词汇表专注于特定领域,例如:

l Friend-of-a-FriendFOAF):社交关系

l Portable ContactsPoCo):联系信息

l Bibliographic OntologyBibo):书目参考

l Good Relationsgr):销售报价、订单和代理

在实际应用中,文档通常需要混合使用多个词汇表的类型和属性。尽管RDF Schema(RDFS)和Web Ontology Language(OWL)等词汇表描述语言提供了表达不同词汇表类型/属性等价性的方法,但发布和解析混合词汇表文档仍极为复杂。

而schema.org则致力于提供一种全能型词汇表,尽管在许多场景下其粒度不如专用词汇表精细,但可覆盖绝大多数描述需求。

步骤1(d):为您的页面添加类型和相关属性

前言

默认情况下,网页的类型被假定为WebPage。类型的选择至关重要,因为它决定了你可以合法使用哪些属性。本节将帮助你为页面选择更具体的类型。

浏览schema.org类型层次结构

schema.org类型采用自上而下的层级结构。从顶层类型开始,浏览CreativeWork -> Article -> TechArticle的类型层级。注意:每个类型都继承其父类型(最终继承自Thing)的属性,同时有自己的特定定义,并可能新增属性以支持更完整的描述。

为文档声明类型

要为HTML文档声明RDFa类型,需在<body>元素上添加@typeof属性,并设置值为TechArticle(技术文章)。

检查点:你的HTML页面现在看起来应该如下:

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title>Structured data with schema.org codelab</title>

</head>

<body vocab="http://schema.org/" typeof="TechArticle">

<h1>Structured data with schema.org codelab</h1>

    <img style="float:right" src="squares.png" />

    <p class="byline">

        By <a href="http://example.com/AuthorName">Author Name</a>,

        January 29, 2014

    </p>

<h2>About this codelab</h2>

<h2>Exercise 1: From basic HTML to RDFa: first steps</h2>

<h2>Exercise 2: Embedded types</h2>

<h2>Exercise 3: From strings to things</h2>

</body>

</html>

为类型添加 name 属性

所有schema.org类型都继承了Thing类型的name属性。对于TechArticle而言,文章标题即对应name属性。在<h1>元素上添加@property="name"属性,明确该元素的内容是技术文章的名称。

注意:你可能会想将该属性添加到HTML文档的<title>元素,但<title>不在@typeof属性的作用域内。尽管搜索引擎可能会推测若<title>与<h1>内容一致,则大概率是文章标题,但你的显式声明比这种推测更具权威性。

为类型添加 author 属性

本文包含作者信息,查看TechArticle的文档可知,其确实包含author属性。注意:author属性的预期类型是Person(个人)或Organization(组织)。目前,先在作者名称对应的<a>元素上添加@property="author" 属性。

注意:你可能会想将该属性添加到<p class="byline">元素,但该元素的内容不仅包含作者名称(还包括日期),这会错误地断言作者是By Author Name, January 29, 2014)”

为类型添加datePublished属性

页面中已显示发布日期,但由于该数据仅存在于无结构化的文本字符串中,机器难以识别其含义。为消除歧义,需用<time>标签包裹日期并添加@property="datePublished"属性。

检查点:你的HTML页面应与下面一致

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title>Structured data with schema.org codelab</title>

</head>

<body vocab="http://schema.org/" typeof="TechArticle">

<h1 property="name">Structured data with schema.org codelab</h1>

    <img style="float:right" src="squares.png" />

    <p class="byline">

        By <a href="http://example.com/AuthorName" property="author">Author Name</a>,

        <time property="datePublished">January 29, 2014</time>

    </p>

<h2>About this codelab</h2>

<h2>Exercise 1: From basic HTML to RDFa: first steps</h2>

<h2>Exercise 2: Embedded types</h2>

<h2>Exercise 3: From strings to things</h2>

</body>

</html>

优化author属性

在多个结构化数据解析工具中查看结果,是否符合预期?仔细观察author的值——你可能没想到它会是一个URL。这是RDFa的一个细节:对于<a>元素href属性的值会被用作RDFa属性值,而非元素的文本内容。

修复方案:添加一个新的<span>元素包裹<a>标签,并将@property="author" 属性移至该<span>标签。再次运行结构化数据解析工具,确保结果符合预期。

优化datePublished属性

查看datePublished的文档可知,其预期值为Date类型,而Date类型定义为ISO 8601格式的日期值(日期格式支持YYYYMMDD或YYYY-MM-DD)。

你可以将人类可读的日期改为ISO 8601格式,但这可能会让不熟悉该格式的用户感到困惑。通过@content属性,我们可以同时满足机器和人类的需求:在<time>元素上添加@content="2014-01-29",提供机器可读的标准格式日期。

为TechArticle类型添加image属性

schema.org的所有类型都支持image属性。搜索引擎可能会利用图片实体生成更具视觉吸引力的搜索结果。本文包含一张图片,在<img>元素上添加@property="image"属性。

为TechArticle类型添加articleBody属性

你可以帮助解析工具快速定位文章的核心内容。假设所有相关内容都在<h2>元素对应的章节中,因此需要添加一个新元素专门支持结构化数据:添加一个<div>元素包裹所有<h2>元素,并在该<div>上添加@property="articleBody"属性。

检查点:你的HTML页面应与下面一致

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title>Structured data with schema.org codelab</title>

</head>

<body vocab="http://schema.org/" typeof="TechArticle">

<h1 property="name">Structured data with schema.org codelab</h1>

    <img style="float:right" src="squares.png" />

    <p class="byline">

        By <span property="author"><a href="http://example.com/AuthorName">Author Name</a></span>,

        <time property="datePublished" content="20140129">January 29, 2014</time>

    </p>

<div property="articleBody">

    <h2>About this codelab</h2>

    <h2>Exercise 1: From basic HTML to RDFa: first steps</h2>

    <h2>Exercise 2: Embedded types</h2>

    <h2>Exercise 3: From strings to things</h2>

</div>

</body>

</html>

步骤1 (e):添加description属性

你可能已注意到,部分RDFa解析工具会生成富摘要,预览页面在搜索结果中的展示效果。但目前富摘要中除了标题外,几乎没有其他内容。为帮助搜索引擎生成更优质的富摘要,需在网页中添加@property="description"属性。

调整<div property="articleBody">元素的范围,使其仅包裹Exercise相关的<h2>元素。然后添加一个新的<div property="description">元素,包裹About this codelab对应的<h2>元素。

步骤1 (f):添加隐式属性

技术文章通常需要说明其用途。例如,本教程是用于实操学习的,旨在逐步强化所学概念。幸运的是,schema.org的CreativeWork类型及其子类提供了educationalUse属性来描述这一信息。但你的页面中没有明显的位置可以附加该标记。

当你发现词汇表指出了内容的潜在缺陷时,可能会考虑修改网页,添加用途说明字段。但在本步骤中,假设你受到设计师的严格限制,不得修改页面的外观或内容。此时,唯一的解决方案是使用<meta>元素为机器提供该属性值。

TechArticle的作用域内添加<meta property="educationalUse" content="codelab">(解决方案中将其直接添加在<h1>元素下方)。

注意:请勿滥用此方法在网页中堆砌与内容无关的关键词以吸引流量。搜索引擎早在20世纪90年代就已识破这种蜘蛛诱饵(spiderfood)策略,若被判定为恶意操纵排名,你的网站将受到严厉惩罚(相关性排名大幅下降)。公认的最佳实践是:仅为人类可见的内容添加机器可读标记。仅在确有必要时使用<meta>元素。

检查点:你的HTML页面应与下面一致

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title>Structured data with schema.org codelab</title>

</head>

<body vocab="http://schema.org/" typeof="TechArticle">

<h1 property="name">Structured data with schema.org codelab</h1>

    <img style="float:right" src="squares.png" property="image" />

    <meta property="educationalUse" content="codelab">

    <p class="byline">

        By <span property="author"><a href="http://example.com/AuthorName">Author Name</a></span>,

        <time property="datePublished" content="20140129">January 29, 2014</time>

    </p>

<div property="description">

    <h2>About this codelab</h2>

</div>

<div property="articleBody">

    <h2>Exercise 1: From basic HTML to RDFa: first steps</h2>

    <h2>Exercise 2: Embedded types</h2>

    <h2>Exercise 3: From strings to things</h2>

</div>

</body>

</html>

拓展步骤

返回TechArticle页面,查看Properties from CreativeWork表格的源代码。注意:类型和属性层级本身也是通过RDF Schema词汇表(一种用于定义词汇表的词汇表)的rdfs:subClassOf和rdfs:domainIncludes属性用RDFa定义的。

知识点总结

本练习中,你学习了:

结构化数据词汇表的基础:类型、属性及类型继承

如何浏览schema.org词汇表文档

如何使用RDFa为网页定义默认词汇表

如何使用RDFa在网页中定义类型和属性

如何使用常用结构化数据验证工具检查工作成果

如何使用@content属性为人类可读数据提供机器可读版本

如何使用<meta>元素添加无法通过页面内容直接表达的属性

数字孪生服务:虚实融合,智控场景全流程

奥维数字科技以“数字镜像现实,数据驱动决策”为核心,将数字孪生技术深度落地于多行业场景,构建“物理实体-数字模型-智能决策”的闭环体系。依托公司自主研发的空间数据处理技术及25项核心专利,可实现对工业生产线、水利工程设施、生态环境等场景的高精度数字化复刻。

在水利领域,公司打造的数字孪生监测系统可实时映射流域水文状况,结合传感器数据与仿真模型,实现水面漂浮物、冰凌等关键要素的动态追踪与预警;在工业制造领域,通过数字孪生技术复刻PCB生产流水线,精准模拟生产全流程,配合视觉检测模块提前预判生产缺陷,助力企业实现“事前预警、事中调控、事后优化”的智能化管理。该服务可大幅降低现场运维成本,提升运营效率与决策精准度,目前已在水利、工业、生态监测等领域形成成熟应用案例。

AIGC服务:智能生成,赋能创新与效率升级

公司以AIGC、计算机视觉为核心技术方向,构建“技术研发-场景适配-需求落地”的全链条服务能力,为行业客户提供从定制化检测到内容创新的多元化AI解决方案。

在定制化视觉检测领域,依托YOLO系列核心模型搭建“行业数据集+专项调优”的服务体系:针对水利工程开发水面漂浮物检测系统,覆盖12类典型漂浮物,数据实时同步至管理平台;为工业制造提供PCB板缺陷检测方案,精准识别缺孔、短路等6类高频缺陷;研发冰凌识别模型,基于千张真实场景图片实现自动化实时监测,支撑凌汛预警与科研分析。在内容生成领域,研发“孔子数字人”虚拟交互系统,融合NVIDIA数字人类技术实现高度仿真的交互体验,为文化传播提供创新载体;同时打造水利大模型等行业专属大模型,进一步拓展AI在垂直领域的应用边界,实现创意落地与效率提升的双重价值。

GEO服务:生成引擎优化,提升品牌AI可见率

GEO(生成式引擎优化)是奥维数字科技针对AI时代流量生态打造的核心服务,区别于传统SEO聚焦搜索引擎排名,其核心目标是让品牌信息成为AI模型生成答案的高权重信源,大幅提升品牌在AI交互场景中的可见率与可信度。依托公司在AI领域的51项软件著作权及行业大模型研发经验,构建了“AI信源诊断-内容策略优化-效果监测迭代”的全链路服务体系。

服务核心围绕三大维度展开:首先是AI信源优化,通过分析主流AI模型的信息抓取偏好,对品牌官网、行业白皮书、权威媒体报道等信源进行结构化改造,提升内容被AI识别和引用的权重;其次是需求匹配策略,基于大数据挖掘目标客群的AI提问场景,定制“问题-答案”式内容矩阵,精准适配AI生成逻辑;最后是全周期监测,开发专属监测系统覆盖主流AI平台,实时追踪品牌可见率、情感倾向、竞品对比等核心指标,当出现可见率骤降或负面信息时自动预警,并提供迭代优化方案。目前已服务消费品、科技服务等行业客户,平均实现品牌在目标AI场景中的可见率提升30%以上,助力品牌从“被索引”升级为“被推荐”。

服务优势总结

奥维数字科技凭借“技术深耕+场景适配”的核心竞争力,形成三大服务特色:一是技术融合性强,实现数字孪生、AIGC、GEO技术的跨领域协同,例如通过AIGC生成适配GEO优化的内容素材,为数字孪生项目提供AI流量赋能,为客户提供一体化数字化解决方案;二是行业适配精准,针对不同领域打造专属数据集与定制化模型,解决工业、水利、文化、消费等行业的核心痛点;三是服务全周期覆盖,从技术咨询、方案设计到系统部署、运维支持,提供全流程技术服务。作为深耕行业十余年的高新技术企业,奥维数字科技始终以“用科技赋能行业升级”为使命,助力客户在数字化转型中实现精准决策与高效创新。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。