学术届将web语义化称为Web3.0的核心,目标是将当前的网页提高为计算机可以“理解”和处理的网页。 核心思想是标注网页对象使其对应本体中的实体,并经过逻辑等手段进行自动推理。 做用在于更好整合网络上的资源,使计算机可以处理分布于不一样位置的信息,自动产生问题的解决方案html
简言之,web语义化的目的是提升计算机和人对web代码的可读性。前端
网上的解释不少,我的总结分三个阶段比较容易理解。 一、原始的一些有实际含义的标签订义。浏览器和W3C组织推出的如h1~h六、thead、ul、ol的HTML标签,用于在Web页面中组织对应的内容,如网页标题、表头、无序、有序列表,以达到更方便的协做及传播互联网内容。搜索引擎很好的利用了这些语义化标签抓取内容,又鉴于搜索引擎的巨大流量推荐,Web前端不得不考虑SEO,从而二者实现有益的循环,共同推动着语义化标签的使用。html5
二、前端开发人员自定义的标签。但Web的发展超乎想象,起初定义的HTML语义化标签,不足以实现对Web页面各个部分的功能或位置描述,因此Web前端人员利用HTML标签的id和class属性,进一步对HTML标签进行描述,如对页脚HTML标签添加如id="footer"或者class="footer"的属性(值),以“无声”的方式在不一样的前端程序员或者先后端程序员间实现交流。git
三、在第二步的推进下结合新技术出现的一些标签。W3C组织意识到了以前HTML版本的不足,推出的HTML5进一步推动了Web语义化发展,采用了诸如footer、section等语义化标签,弥补了采用id="footer"或者class="footer"形式的不足,以更好的推进Web的发展。 正所谓:世上本没有路,走的人多了,也便成了路。程序员
什么是语义化?其实简单说来就是让机器能够读懂内容。github
先随便扯扯。对于当前的 Web 而言,HTML 是联系大多数 Web 资源的纽带,也是内容的载体。在 Web 被刚刚设计出来的时候,Tim Berners-Lee 可能不会想到它如今会达到的规模以及深刻到咱们生活的那么多方面。也许起初的想法很简单:用来发布 Web 内容和资源的索引,方便人们查看。可是随着 Web 规模的不断扩大,信息量之大已经不在人肉处理的范围以内了。这个时候人们开始用机器来处理 Web 上发布的各类内容,搜索引擎就诞生了。再后来,人们又设计了各类智能程序来对索引好的内容做各类处理和挖掘。因此让机器可以更好地读懂 Web 上发布的各类内容就变得愈来愈重要。其实 HTML 在刚开始设计出来的时候就是带有必定的「语义」的,包括段落、表格、图片、标题等等,但这些更多地只是方便浏览器等 UA 对它们做合适的处理。但逐渐地,机器也要借助 HTML 提供的语义以及天然语言处理的手段来「读懂」它们从网上获取的 HTML 文档,但它们没法读懂例如「红色的文字」或者是深度嵌套的表格布局中内容的含义,由于太多已有的内容都是专门为了可视化的浏览器设计的。面对这种状况,出现了两种观点:咱们可让机器的理解能力愈来愈接近人类,人能看懂、听懂的东西,机器也能理解;咱们应该在发布内容的时候,就用机器可读的、被普遍承认的语义信息来描述内容,来下降机器处理 Web 内容的难度(HTML 自己就已是朝这个方向迈出的一小步了)。web
<img data-rawheight="382" data-rawwidth="670" src="https://pic2.zhimg.com/01b4d93c152d2a9c2db734065be0f3f5_b.jpg" class="origin_image zh-lightbox-thumb" width="670" data-original="https://pic2.zhimg.com/01b4d93c152d2a9c2db734065be0f3f5_r.jpg">我画的这个图,意思是说,内容的语义表达能力和 AI 的智能程度决定了机器分析处理 Web 内容能力的高低。上面观点 1 的方向是朝着人类水平的人工智能努力,而观点 2 的方向正是万维网创始人 Tim Berners-Lee 爵士提出的美好愿景:语义网。语义网我就很少说了,简单来讲就是让一切内容和包括对关系的描述都成为 Web 上的资源,均可以由惟一的 URI 定义,语义明确、机器可读。显然,两条路都的终极目标都很遥远,第一条路技术上难以实现,而第二条路实施起来障碍太多。我认为咱们当前可以看得见摸得着的 Web 语义化,其实就是在往第二条路的方向上,迈出的一小步,即对已经有的被普遍承认的 HTML 标准作改进。咱们刚开始意识到,咱们必须回归内容自己,将内容自己的语义合理地表述出来,再为不一样的用户代理设计不一样的样式描述,也就是咱们说的内容与样式分离。这样咱们在提供内容的时候,首先要作的就是将内容自己进行合理的描述,暂时不用考虑它的最终呈现会是什么样子。HTML 规范其实一直在往语义化的方向上努力,许多元素、属性在设计的时候,就已经考虑了如何让各类用户代理甚至网络爬虫更好地理解 HTML 文档。HTML5 更是在以前规范的基础上,将全部表现层(presentational)的语义描述都进行了修改或者删除,增长了很多能够表达更丰富语义的元素。为何这样的语义元素是有意义的?由于它们被普遍承认。所谓语义自己就是对符号的一种共识,被承认的程度越高、范围越广,人们就越能够依赖它实现各类各样的功能。HTML5 并不是 Web 语义惟一倚仗的规范,除了 W3C 和 WHATWG 外,还有其它的组织在为扩展、标准化 Web 语义作着贡献。只要有浏览器厂商、搜索引擎原意支持,它们的规范同样能够成为通用的基础设施。例如 microformats 社区以及 http://Schema.org 上都有对 HTML 以及 Microdata(http://www.w3.org/TR/html5/microdata.html) 规范的扩展词汇表,Google、Bing、Yahoo! 等搜索引擎以及各个主流浏览器都不一样程度地接纳了其中定义的语义扩展,并应用在了生产中。下面举两个 Google 应用扩展语义的例子。Google 的搜索结果,能够根据 microformats 的 hCard 语法从抓取的页面识别出人物信息:<img data-rawheight="263" data-rawwidth="616" src="https://pic4.zhimg.com/f8ba9082973b5a7abcbfa969c02e3ce7_b.jpg" class="origin_image zh-lightbox-thumb" width="616" data-original="https://pic4.zhimg.com/f8ba9082973b5a7abcbfa969c02e3ce7_r.jpg">也可经过网页内嵌的 Microdata 数据读取做品评分等信息:<img data-rawheight="135" data-rawwidth="497" src="https://pic1.zhimg.com/3c5b54fb608597a098c13bac9a1b922c_b.jpg" class="origin_image zh-lightbox-thumb" width="497" data-original="https://pic1.zhimg.com/3c5b54fb608597a098c13bac9a1b922c_r.jpg">关于 HTML5 的各个元素语义的描述,我以前作过一份 slides,上面提到的例子都是那里面的,也能够参考一下:Semantic HTML(http://justineo.github.com/slideshows/semantic-html/)。后端