Schema.org标记RDFa开始指南
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-Friend(FOAF):社交关系
l Portable Contacts(PoCo):联系信息
l Bibliographic Ontology(Bibo):书目参考
l Good Relations(gr):销售报价、订单和代理
在实际应用中,文档通常需要混合使用多个词汇表的类型和属性。尽管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流量赋能,为客户提供一体化数字化解决方案;二是行业适配精准,针对不同领域打造专属数据集与定制化模型,解决工业、水利、文化、消费等行业的核心痛点;三是服务全周期覆盖,从技术咨询、方案设计到系统部署、运维支持,提供全流程技术服务。作为深耕行业十余年的高新技术企业,奥维数字科技始终以“用科技赋能行业升级”为使命,助力客户在数字化转型中实现精准决策与高效创新。
- 点赞
- 收藏
- 关注作者
评论(0)