乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使 HTML5 微數(shù)據(jù)發(fā)揮作用,第 2 部分: 利用微數(shù)據(jù)實現(xiàn)新一代聚合

       看見就非常 2015-04-24

      簡介

      大型組織往往會投資開發(fā)那些大型的、集中的、標準化的 IT 系統(tǒng),例如整體 CMS,然后竭盡所能讓所有人都能夠使用這樣的系統(tǒng)。遺憾的是,保證所有人按照正確的方式使用系統(tǒng)是一項艱巨的挑戰(zhàn)。投資開發(fā)一刀切的方法很難交付承諾的生產力收益。標準化或者控制松散耦合的組織尤為艱難,因為這種組織中的團隊很少交互,往往分別制定決策。松散耦合的組織示例包括:

      • 大學中的各院系
      • 開源社區(qū)中的企業(yè)和個人
      • 業(yè)余體育聯(lián)賽中的隊伍

      在本系列的 使 HTML5 微數(shù)據(jù)發(fā)揮作用,第 1 部分:在微數(shù)據(jù)之上使用 jQuery 中,我們學習了如何在微數(shù)據(jù)的基礎之上使用通用腳本。我們編寫了一個 HTML 片段,提供交互式事件地圖,并使 Google、Bing 和 Yahoo 能夠使用 Rich Snippet 在搜索結果中更好地顯示您的頁面。

      常用縮寫

      • RDF:資源描述框架
      • RSS 2.0:簡易聚合

      在本文中,您將學習如何利用微數(shù)據(jù),支持協(xié)作小組輕松將其站點掛接到一個集中的小組站點上,并共享內容。通過商定在 HTML 標記中設置的一組屬性,松散耦合的組織便可維護其信息系統(tǒng)的獨立性,同時仍然能夠構建聯(lián)合項目。

      回頁首

      場景:為 Drupal 創(chuàng)建一個分散的文檔系統(tǒng)

      許多開放源碼項目都難以為其軟件維護健壯的、最新的文檔。與此同時,項目的貢獻者利用博客文章分享具體的技術說明,這些博客文章往往在 Planet 中聚合。Planet 就是一種博客聚合器,能夠獲取選定作者的博客文章(請參見 參考資料 部分)。

      Planet 是參與社區(qū)最新活動和討論的有效方法,但無法發(fā)揮作為協(xié)作技術的潛力。它難以篩選 Planet 文章的存檔,因為其中包含大量原始結構化數(shù)據(jù)。即使聚合文章確實包含有用的結構化數(shù)據(jù)(如標簽),來自不同站點的文章往往也不會共享相同的術語,它們或許會使用術語的不同拼寫方法。因此,無法有效地對文章進行排序。

      通過創(chuàng)建獲取博客文章及有關文章的額外重要信息的聚合器,可以解決這樣的問題??梢允褂镁酆掀鱽頌g覽文章,并將其放置在項目主站點內的相關位置。

      假想的系統(tǒng)將歸檔 Drupal。我們的博客文章中充分說明了某些廣泛應用的子系統(tǒng)(在 Drupal 中稱為模塊),但 Drupal.org 手冊中缺少良好的文檔。我們的目標在于將 Planet 中的出色文檔轉入 Drupal.org 便捷的可搜索結構之中。

      回頁首

      規(guī)劃系統(tǒng)

      第一項任務是確定希望將博客文章中的哪些信息傳遞到中心歸檔系統(tǒng)。例如,您希望指明該文章討論的是哪些模塊。通常情況下,模塊的各主要版本往往會采用不同的工作方式,因此最好指明教程是否與特定的模塊版本相關。

      Drupal 中有多種角色,從內容編輯到后臺開發(fā)。指明哪些角色認為文章有幫助是非常有價值的。圖 1 中的文檔記錄顯示了標題、讀者和相關模塊。

      圖 1. 示例文檔記錄
      示例文檔記錄的屏幕截圖

      該場景中的數(shù)據(jù)共享需求非常簡單。您僅需將源博客文章中的以下信息傳遞到站點即可:

      • 標題
      • 摘要段落
      • URL
      • 目標讀者
      • 模塊

      標題、摘要和 URL 已經通過 RSS 實現(xiàn)了結構化的格式。您需要找到一種解決方案,獲取有關目標讀者和模塊的結構化數(shù)據(jù)。為此,可以使用微數(shù)據(jù)。開始使用微數(shù)據(jù)之前,您需要設置測試使用的源和目標站點。

      回頁首

      源站點

      為了解析和處理傳入的文章,您需要使用 Microdata Import 模塊。該模塊接收一個源 URL,因此源必須能夠輸出 RSS 或者 Atom。

      可以使用 Drupal 這樣的 CMS,其中包含的工具能夠自動化放置微數(shù)據(jù),您也可以選擇使用另外一個博客系統(tǒng)(只要該系統(tǒng)不會刪除微數(shù)據(jù)屬性即可)。對于 Microdata Import 模塊,所導入的每個項目都必須與一個源項相關聯(lián),保證每份教程都使用自己的頁面。

      該場景使用托管的博客平臺 Blogger 和 Drupal Gardens。您可以設置自己的源,或者使用以下源:

      所有必要的信息均直接處于 HTML 標記之中,因此您可以為源使用任何工具。HTML 中的微數(shù)據(jù)作為標準、只讀的 API,與生成它的后臺代碼無關。

      回頁首

      設置目標站點

      有了用于測試的源之后,即可開始設置聚合站點。首先是基本設置:

      1. 安裝 Drupal 7 并下載以下模塊:
        • Microdata Import
        • Feeds
        • Ctools
        • Job Scheduler
        • Libraries
        • HTTP Client
      2. 啟用 Microdata Import 和 Feeds 管理 UI。您將看到提示,要求您啟用另外四個依賴項。
      3. 將 MicrodataPHP 庫下載為 sites/all/libraries/MicrodataPHP/MicrodataPhp.php。

        該庫獲取一個 HTML 頁面,并提取微數(shù)據(jù)。

      配置在獲取源時需要使用的導入設置:

      1. 轉到 Structure -> Content types,創(chuàng)建兩種內容類型:一個用于管理源,另一個用于保存教程本身。您可以分別將它們稱之為 Tutorial importTutorial。將所有設置保留默認值。
      2. 轉到 Structure -> Feeds importers,添加一個導入器。
      3. 單擊 Basic Settings 部分左欄中的 Settings。在 Attach to content type 下拉菜單中,選擇您剛剛創(chuàng)建的內容類型,并保存它。圖 2 中選擇了 Tutorial import。
        圖 2. 配置源導入器的基本設置
        配置源導入器的基本設置的屏幕截圖
      4. 單擊解析器旁邊的 Change。切換到 Microdata Import Parser(從 RSS/Atom),并單擊 Save。

        屏幕頂端將顯示一條確認信息 “Changed parser plugin”。

      5. 在 Processor 下方,單擊 Settings。將 Update 設置更改為 Update existing nodes,如 圖 3 所示,選擇 Tutorial 更改內容類型。

        將文本格式更改為 Filtered HTML。由于您正從不一定信任的站點中導入內容,因此不應使用 Full HTML。否則將導致您的站點易受跨站點腳本攻擊。

        圖 3. 配置處理一個節(jié)點內的源項的設置
        配置處理一個節(jié)點內的源項的設置的屏幕截圖
      6. 在 Processor 下方,單擊 Mapping。在這里可以定義要將源文章的哪些部分添加到目標節(jié)點,以及將其添加到的位置。由于您尚未添加有關可用微數(shù)據(jù)內容的信息,因此這里僅列出了 RSS/Atom 中公開的元素。
      7. 在 URL 之間建立映射,單擊 Add。選中 Unique Target 復選框,單擊 Save。這能確保在后續(xù)運行中您可以對項進行匹配,并將源中的任何更改復制到目標。
      8. 在標題之間建立映射,單擊 Add。
      9. 將描述映射到正文,并單擊 Add,如 圖 4 所示。
      圖 4. 從源映射到目標
      從源映射到目標的屏幕截圖

      為了進行測試,您可以導入相關內容:

      1. 單擊 Add content,添加一個新的 Tutorial import。
      2. 將其標題設置為 Source 1。
      3. 在 Feed URL 字段中,添加源并單擊 Save。
      4. 選擇 Import 選項卡,單擊 Import。此時應該看到一條表示已經創(chuàng)建了一個或者多個節(jié)點的消息,如 圖 5 所示。
      圖 5. 從源中導入的節(jié)點
      從源中導入的節(jié)點的屏幕截圖

      轉到主頁,查看已經導入的文章。由于已經導入了完整的文章,因此您可能無法清除地認識到下面要做些什么。但由于您并未保留原始文章結構,因此現(xiàn)在還無法根據(jù)目標讀者或者模塊篩選文章。此時就會用到微數(shù)據(jù)。

      圖 6. 已經導入的一個節(jié)點
      已經導入的一個節(jié)點的屏幕截圖,其中包含其描述、目標讀者和模塊信息

      回頁首

      標記源內容以便使用它們

      既然已經能夠正確獲取源,下面就可以開始將微數(shù)據(jù)添加到標記中,并通過文章引入微數(shù)據(jù)。清單 1 展示了一篇博客文章的基本標記。

      清單 1. 一篇文章的基本 HTML 標記
      <h2>Building modules on top of SPARQL Views</h2>
      <div>
      
       <p>This video demonstrates how you can build a module that installs a 
       View powered by a SPARQL query whenever it is enabled.</p>
        <b>Audience:</b> Developer <br />
        <b>Modules:</b>
        <ul>
          <li>Views</li>
          <li>SPARQL Views</li>
        </ul>
      </div>

      您需要指明該內容屬于文章。該場景使用 Schema.org 詞匯表標記文章,因為 Schema.org 中包含需要注釋的大多數(shù)內容所需的術語(請參見 參考資料 部分)。只有在所有協(xié)作作者都同意的情況下,才應使用其他詞匯表。[在 “結合使用 Drupal、HTML5 和微數(shù)據(jù)”(請參見 參考資料 部分)中,我更加深入地探討了如何放置微數(shù)據(jù)。本文中介紹了如何手動添加微數(shù)據(jù),如何利用 Microdata 模塊自動化此過程。]

      您需要從 RSS 源中獲取標題,因此不必為標題使用標記。但標記標題能使其他用戶更輕松地重用數(shù)據(jù)。您可以使用 name 屬性,如 清單 2 所示。由于標題位于文章的 div 以外,因此您必須在 div 中添加一個 meta 元素來提供標題。對摘要段落使用 description 屬性,這將提供比 RSS 描述更加具體的訪問。

      清單 2. 為文章添加基本的微數(shù)據(jù)
      <h2>Building modules on top of SPARQL Views</h2>
      <div itemscope="" itemtype="http:///Article">
      
        <meta itemprop="name" content="Building modules on top of SPARQL Views" />
      
          <p itemprop="description">This video demonstrates how you can build a module 
             that installs a View powered by a SPARQL query whenever it is enabled.</p>
          ...
      </div>

      回頁首

      更新描述

      上面,我們已經使用微數(shù)據(jù)進行了標記,下面即可僅獲取文本中的描述。這將從描述中排除目標讀者和相關模塊,這種做法非常好,稍后即可將這些信息納入其自己的字段。將映射更改為使用微數(shù)據(jù)描述,而非 RSS 描述。

      1. 轉到 Structure -> Feeds importers,編輯您的導入器。
      2. 在 Parser 下方,單擊 Settings。在字段中輸入一個示例源頁面,如 圖 7 所示。

        示例頁面將獲得解析,您可以看到哪些屬性可用,因此示例應該盡可能地保持完整。保存設置。

        圖 7. 使用示例頁面提供屬性路徑
        使用示例頁面提供屬性路徑的屏幕截圖
      3. 在 Processor 下方,單擊 Mapping。在 Description 行中,選擇 Remove,再單擊 Save。這將刪除 RSS 描述與正文字段之間的櫻紅色。
      4. 單擊 Select a source 下拉菜單項。列表中現(xiàn)在包含了新的源元素,這些元素是通過示例源確定的。
      5. 選擇新的描述元素(列表中的第二個描述元素),將其映射到正文,并單擊 Add,如 圖 8 所示。
        圖 8. 更新描述映射
        更新屏幕映射的屏幕截圖
      6. 找到您的 Source 1 Tutorial import,單擊 Import 選項卡。單擊 Import 按鈕,節(jié)點將更新。Audience 和 Module 文本不再并入描述部分,如 圖 9 所示。
        圖 9. 更新后的節(jié)點使用微數(shù)據(jù)描述而非 RSS 描述
        更新后的節(jié)點使用微數(shù)據(jù)描述而非 RSS 描述的屏幕截圖

      更新不僅會刪除描述中您不需要的內容。還會對全部導入信息執(zhí)行完整更新。如果對源文章的措辭做出了修改,新的措辭也會顯示在這里。將更新功能配置為 Cron 定期運行,因此無需手動觸發(fā)即可獲得定期更新。這里可以看到 Feeds 系統(tǒng)的強大力量。它能實現(xiàn)打造有效的協(xié)作站點網絡所必不可少的輕松而自動化的同步。

      回頁首

      添加目標讀者角色

      至此,您已經標記了所有文章共有的一些信息片段:標題和描述。在這一節(jié)中,您將轉到場景特有的信息。此時有必要與協(xié)作團隊配合工作,了解他們如何看待他們所提供的內容。信息應該反映協(xié)作人員的心理模式(而非遵照外部的理想做法)。

      Drupal 社區(qū)已經定義了一組成熟的角色,表示為會議中的分工軌跡。Drupal Skill Map 項目將這些角色定義為:

      • 系統(tǒng)架構師
      • 開發(fā)人員
      • 主題設計人員
      • 站點構建人員
      • 內容編輯人員
      • 設計/UX
      • 項目經理
      • Drupal 市場營銷人員

      您需要按照上述八個分組來表示文章的目標讀者。遺憾的是,Schema.org 詞匯表并沒有目標讀者的概念,因此您在處理 itemprop 時有兩種選擇:

      • 使用 Schema.org 歸檔的擴展機制對其進行擴展,即選擇一種現(xiàn)有屬性,并在末尾處添加 /audience。

        例如,您可以將 keywords 屬性擴展為 keywords/audience,如下所示。

         Audience: <span itemprop="keywords/audience">Developer</span>
      • 使用另一個詞匯表中的術語,或者創(chuàng)建您自己的詞匯表。

        例如,如果 Tutorial 詞匯表中包含一個目標讀者屬性(如果您要使用字符串作為該屬性的值),那么就可以使用這個替代屬性。由于使用了 http:///Article itemtype,因此您必須引用 Tutorial 詞匯表屬性的完整 URL,不能使用短屬性名稱。完整 URL 應該類似于 http:///audience。詞匯表文檔中應該指定準確的 URL。URL 應放置在 itemprop 屬性中,如下所示。

         Audience: <span itemprop="http:///audience">Developer</span>

      對于這個場景,我們將采用第一個選擇,擴展 Schema.org。如果您正在手動放置微數(shù)據(jù),請將 清單 3 復制粘貼到正文中。如果您正在使用 Drupal 自動在源站點中放置微數(shù)據(jù),您可以在文章中創(chuàng)建一個 List (text) 字段,此時文章中將顯示復選框,允許選擇目標讀者。通過在字段設置中添加 keywords/audience 屬性,即可自動輸出正確的微數(shù)據(jù)。

      回頁首

      使用目標讀者角色

      為將目標讀者元素納入使用站點的內容中,您需要為其創(chuàng)建一個內容類型字段,隨后為該字段創(chuàng)建映射。

      1. 轉到 Structure -> Content types,為 Tutorial 內容類型單擊 Manage fields。
      2. 添加目標讀者文本字段。
      3. 轉到 Structure -> Feeds importers,編輯您的導入器。
      4. 在 Processor 下方,單擊 Mapping
      5. keywords/audience 元素映射到新的 Audience 字段,單擊 Add,如 圖 10 所示。
        圖 10. 為映射添加 keywords/audience 屬性
        為映射添加 keywords/audience 屬性的屏幕截圖
      6. 再次找到您的 Source 1 Tutorial import,單擊 Import 選項卡。轉到更新后的教程頁面,此時您應看到 Audience 字段已經填充,如 圖 11 所示。
      圖 11. 包含目標讀者的更新后節(jié)點(完整節(jié)點視圖)
      包含目標讀者的更新后節(jié)點(完整節(jié)點視圖)的屏幕截圖

      回頁首

      添加相關模塊

      可以證明,使用字符串足以按照文章的目標讀者對文章進行分類。目標讀者角色數(shù)量有限,而且不會頻繁發(fā)生變化。如果出現(xiàn)變化,比如添加新角色,要求人們更新期目標讀者字段設置并不是很困難。

      但按照相關模塊分類則截然不同。Drupal 擁有 14,000 個模塊,大多數(shù)都有多個版本。至少這意味著 14,000 個不同的標簽。標簽的格式也是豐富多變的。此外,數(shù)以千計的模塊維護者可能會隨時更改其模塊的名稱。

      為了引用模塊,必須使用比字符串更加穩(wěn)定的一些信息。一種不會經常發(fā)生變化的標識符就是 Drupal.org 中的模塊 URL(例如,Views 模塊的 http:///project/views)??梢允褂盟鳛槟K的一致標識符。

      要添加模塊的版本,您應添加模塊項的一個屬性。然而,對于這個場景,為各版本使用不同的 ID 更加容易。例如,要標識 Views 7.x-3.x,可以使用 URL http:///project/views/7/3。盡管該 URL 目前并未顯示頁面,但是可想而知,該位置的頁面將顯示 Views 7.x-3.x 的所有教程,并提供該版本的下載。

      要為該值使用字符串而非 ID,可以使用微數(shù)據(jù)的 itemid 屬性。itemiditemscopeitemtype 屬性位于相同的標簽中。對 itemtype 使用特定于 Google 的 Schema.org 術語 http:///SoftwareApplication。使用 about 屬性表明該文章與該模塊有關。

      可見的內容將仍然是名稱字符串。您不會用到它,但應該盡可能簡化它,以便其他用戶能夠更容易地使用您的數(shù)據(jù)。將其公開為模塊的 name 屬性,如 清單 3 所示。

      清單 3. 為相關模塊添加微數(shù)據(jù)
      <p>Modules:
        <ul>
          <li itemprop="about" itemscope="" 
              itemtype="http:///SoftwareApplication" 
              itemid="http:///project/views/7/3">
            <span itemprop="name">Views</span>
          </li>
          <li itemprop="about" itemscope="" 
              itemtype="http:///SoftwareApplication" 
              itemid="http:///project/sparql_views/7/2">
            <span itemprop="name">SPARQL Views</span>
          </li>
        </ul>
      </p>

      手動添加所有這些數(shù)據(jù)并不容易。如果有可能,您需要使用能提供幫助的工具。如果對源使用 Drupal,則可以使用 Web Taxonomy 模塊,幫助內容作者標記其文章。利用 Web Taxonomy,Web 上的某種分類法將提供自動完成結果。選擇術語時,應該將其導入您的站點。這意味著您必須訪問 Drupal 項目詞匯表中數(shù)以萬計的術語,而不要將其存儲在您的數(shù)據(jù)庫中。添加新標簽、更改標記時,自動完成字段有權訪問這些數(shù)據(jù),您甚至不必去考慮它們。

      您還可以使用 Web Taxonomy 來使用相關模塊,因此需要在目標站點上進行相應的配置。

      回頁首

      為相關模塊配置 Web Taxonomy

      下載并啟用 Web Taxonomy。要配置 Web Taxonomy,您還需要使用一個模塊來定義要使用哪種外部分類法,以及如何訪問它。Drupal Full 項目的模塊可以在 http:///sandbox/linclark/1363774 中獲得。啟用該模塊時,一個新的 Drupal Full 項目詞匯表將添加到您的站點中。

      在目標和源站點中對 Web Taxonomy 進行相同的配置:

      1. 轉到 Structure -> Content types,管理 Tutorial 內容類型的字段。
      2. 添加 Related Modules 字段,如 圖 12 所示。選擇 Taxonomy Term Reference 字段類型以及 Web Taxonomy autocomplete widget。
        圖 12. 添加 Web Taxonomy 字段
        添加 Web Taxonomy 字段的屏幕截圖
      3. 選擇 Drupal Full Projects 詞匯表,并 Save 字段設置。
      4. 將值的數(shù)量更改為 Unlimited,并 Save 設置。

      現(xiàn)在,您可以編輯教程并鍵入模塊名稱,測試字段。自動完成字段會提供建議,如 圖 13 所示。如果選擇其中的一項建議并保存教程,那么在查看該教程時就可以看到該標簽。如果單擊瀏覽術語頁面,您為 ID 使用的 URL 會顯示在該術語中。

      圖 13. Drupal Full 項目的 Web Taxonomy 自動完成
      Drupal Full 項目的 Web Taxonomy 自動完成屏幕截圖

      如果您正在為源中的字段配置字段,請下載并啟用提供的 Token 模塊,更改指派給該術語的 itemid。轉到 Structure -> Taxonomy,編輯 Drupal Full 項目詞匯表。該字段中提供了由 itemid 使用的標志,將其值更改為 [term:web_tid]。此時將使用全局 Web 術語 ID,而非本地路徑。

      回頁首

      使用相關模塊

      至此,您已經得到并測試了 Web Taxonomy 字段。下面可以開始向其導入內容。

      1. 轉到 Structure -> Feeds importers,編輯您的導入器。
      2. about:itemid 櫻紅色映射到相關模塊 Web Term ID,然后單擊 Add。
      3. 再次找到您的 Source 1 Tutorial import,單擊 Import 選項卡。此時將看到相關模塊已經添加,如 圖 14 所示。
      圖 14. 使用相關模塊更新節(jié)點
      使用相關模塊更新節(jié)點的屏幕截圖

      現(xiàn)在,您已經完整地配置了導入設置,接下來就可以創(chuàng)建多個 Tutorial Import 節(jié)點,從多個站點導入數(shù)據(jù)。(創(chuàng)建一個 Tutorial import 節(jié)點,并添加 Source 2 源。)所導入的全部數(shù)據(jù)現(xiàn)在都采用 Drupal 能夠理解的一種結構化方式。您可以輕松設置用戶界面,從而瀏覽整個教程集合的各個方面。

      回頁首

      超越 Microdata Import

      Microdata Import 有助于跨組織邊界共享知識。然而,有時僅僅使用用 Microdata Import 還不夠。Microdata Import 假設您正在導入的頁面與您的站點中的頁面之間存在一對一的關系。這適用于上述場景,因為您只需要使用教程頁面本身提供的教程相關信息。

      然而,在某些時候,您可能希望在不同的站點中發(fā)布內容的不同人員能夠添加關于同一項目的一些信息。例如,如果一所大學內的某位教授兼任兩個系中的職務,每個系都應能在其自己的站點中添加有關該教授的信息,而且無需與另外一個系協(xié)調。盡管您可以配置源代碼和源導入器,通過 Microdata Import 來實現(xiàn)此操作,但還有更便捷的實現(xiàn)方法。

      方法之一就是將微數(shù)據(jù)轉為 RDF。HTML Data Task Force 目前正在最終敲定微數(shù)據(jù)映射到 RDF 的規(guī)范草案。這樣的映射會使 MicrodataPHP 庫等解析器能夠以可靠的方式通過微數(shù)據(jù)標記的頁面生成 RDF。Gregg Kellogg(負責領導制定映射規(guī)范的工作)開發(fā)的 RDF Distiller 工具已經實現(xiàn)了此映射。RDF distiller 是以 Ruby gem 的形式提供的。Kellogg 也在他的網站中發(fā)布了一個 API。

      回頁首

      結束語

      確定如何跨組織和技術邊界啟用協(xié)作式 Web 內容創(chuàng)作是 IT 面臨的主要挑戰(zhàn)之一。通過在 HTML 本身之中嵌入內容的結構,微數(shù)據(jù)可以幫助松散耦合的人員和組織就聯(lián)合項目進行協(xié)調。最重要的是,協(xié)作者可以為通用產品做出貢獻,而且不會失去選擇自己的框架的自由度,即便該框架僅僅是手動編碼的 HTML 也是如此。

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多