semantic 如何理解 web 語義化?

2021-09-08 14:31:05 字數 1701 閱讀 3945

lync.in

什麼是語義化?其實簡單說來就是讓機器可以讀懂內容。

先 隨便扯扯。對於當前的 web 而言,html 是聯絡大多數 web 資源的紐帶,也是內容的載體。在 web 被剛剛設計出來的時候,tim berners-lee 可能不會想到它現在會達到的規模以及深入到我們生活的那麼多方面。也許起初的想法很簡單:用來發布 web 內容和資源的索引,方便人們檢視。

但是隨著 web 規模的不斷擴大,資訊量之大已經不在人肉處理的範圍之內了。這個時候人們開始用機器來處理 web 上發布的各種內容,搜尋引擎就誕生了。再後來,人們又設計了各種智慧型程式來對索引好的內容作各種處理和挖掘。所以讓機器能夠更好地讀懂 web 上發布的各種內容就變得越來越重要。

其實 html 在剛開始設計出來的時候就是帶有一定的「語義」的,包括段落、**、、標題等等,但這些更多地只是方便瀏覽器等 ua 對它們作合適的處理。但逐漸地,機器也要借助 html 提供的語義以及自然語言處理的手段來「讀懂」它們從網上獲取的 html 文件,但它們無法讀懂例如「紅色的文字」或者是深度巢狀的**布局中內容的含義,因為太多已有的內容都是專門為了視覺化的瀏覽器設計的。面對這種情況,出 現了兩種觀點:

我們可以讓機器的理解能力越來越接近人類,人能看懂、聽懂的東西,機器也能理解;

我們應該在發布內容的時候,就用機器可讀的、被廣泛認可的語義資訊來描述內容,來降低機器處理 web 內容的難度(html 本身就已經是朝這個方向邁出的一小步了)。

我認為我們當前能 夠看得見摸得著的 web 語義化,其實就是在往第二條路的方向上,邁出的一小步,即對已經有的被廣泛認可的 html 標準做改進。我們剛開始意識到,我們必須回歸內容本身,將內容本身的語義合理地表述出來,再為不同的使用者**設計不同的樣式描述,也就是我們說的內容與樣 式分離。這樣我們在提供內容的時候,首先要做的就是將內容本身進行合理的描述,暫時不用考慮它的最終呈現會是什麼樣子。

html 規範其實一直在往語義化的方向上努力,許多元素、屬性在設計的時候,就已經考慮了如何讓各種使用者**甚至網路爬蟲更好地理解 html 文件。html5 更是在之前規範的基礎上,將所有表現層(presentational)的語義描述都進行了修改或者刪除,增加了不少可以表達更豐富語義的元素。為什麼這 樣的語義元素是有意義的?因為它們被廣泛認可。所謂語義本身就是對符號的一種共識,被認可的程度越高、範圍越廣,人們就越可以依賴它實現各種各樣的功能。

html5 並非 web 語義唯一倚仗的規範,除了 w3c 和 whatwg 外,還有其它的組織在為擴充套件、標準化 web 語義做著貢獻。只要有瀏覽器廠商、搜尋引擎原意支援,它們的規範一樣可以成為通用的基礎設施。例如 microformats 社群以及

上都有對 html 以及 microdata(

) 規範的擴充套件詞彙表,google、bing、yahoo! 等搜尋引擎以及各個主流瀏覽器都不同程度地接納了其中定義的語義擴充套件,並應用在了生產中。

下面舉兩個 google 應用擴充套件語義的例子。

google 的搜尋結果,可以根據 microformats 的 hcard 語法從抓取的頁面識別出人物資訊:

也可通過網頁內嵌的 microdata 資料讀取作品評分等資訊:

WEB面試 如何理解href 和src的區別

往往越簡單的問題越能體現乙個人學習功底是否紮實,src和href在html頁面中太常見了吧。今天我們來分析下這個有可能面試會遇到的問題!首先,我先翻譯下它們各英文縮寫 src 是source的縮寫,翻譯過來為資源的意思 在html中通常用於把資源插入到文件當前的節點中,標籤有img script i...

web 服務的理解

hypertext transfer protocol,超文字傳輸協議 是用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示 如文字先於圖形 等。tcp ip是 tr...

web標準的理解

結構化標準語言主要包括html和xhtml以及xml,在頁面body裡面我們寫入的標籤都是為了頁面的結構。表現標準語言主要包括css cascading style sheets 層疊式樣式表,通過css樣式表,w3c建立css標準的目的是以css取代html 式布局 幀和其他表現的語言,通過css...