學術屆將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/)。後端