[英]Understanding the difference between SPARQL and semantic reasoning using Pellet
我有一個披薩本體,它定義了披薩的不同類型,成分以及它們之間的關系。 我只想了解一些基本知識:
SPARQL是一種查詢語言 ,即一種用於表達問題的語言。另一方面, 推理是從現有數據中獲取新信息的過程。 這是兩個不同的互補過程。
要從本體中檢索信息,請使用SPARQL。 您可以不進行推理,也可以與推理機結合使用。 如果您啟用了推理程序,這意味着您的查詢可能會更簡單,並且在某些情況下,推理機可以僅通過查詢獲得根本無法檢索的信息。
諸如Pellet之類的推理程序並沒有真正回答查詢,它們只是推理:他們弄清楚可以從原始事實中得出哪些隱式信息,並且可以執行諸如驗證事物是否一致(例如,數據中沒有邏輯矛盾)之類的事情。 。 佩萊(Pellet)可以弄清楚,如果您擁有類型為Car的Toyota,則您擁有車輛(因為Car是車輛的一種)。 或可以弄清楚,如果您定義一個具有“帕爾馬干酪”成分的比薩餅,那么您將擁有“奶酪”類型的比薩餅(因為它知道帕爾馬干酪是一種奶酪)。 因此,您使用諸如Pellet之類的推理機來派生此類隱式信息,然后使用諸如SPARQL之類的查詢語言來實際詢問:“好吧,請給我概述所有也有鳳尾魚的俗氣披薩”。
像Jena這樣的API都是將RDF視為抽象模型的工具箱。 用哪種語法格式保存文件並不重要,它幾乎可以讀取任何RDF語法。 一旦在Jena模型中讀取了它,就可以在其上執行Pellet推理程序-原始文件所使用的語法無關緊要。有關如何執行此操作的詳細信息,請參見Jena文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.