簡體   English   中英

隱式具體化的簡單格式

[英]Simple Format for Implicit Reification

是否有任何RDF序列化格式(如表示法3 )支持隱式具體化以輕松表示有關語句的語句?

例如,假設我有“瑪麗買了房子”這句話,我將在N3代表:

:Mary :bought-a :house .

現在說我想添加關於這個陳述的元陳述,例如“我從Rob那里聽到了這個”。

直觀地說,我希望能夠通過寫下以下內容來表示:

:Mary :bought-a :house .
    :heard-by :me .
    :heard-from :Rob .

但是,我認為這將在N3中“正式”表示的方式如下:

[ a rei:Statement;
  rei:subject [rei:uri :Mary];
  rei:predicate [rei:uri :bought-a];
  rei:object [rei:value :house]
] [
    :heard-by :me;
    :heard-from :Rob;
] .

這顯然有點復雜,難以閱讀。 如果我需要聲明有關語句的語句,它會變得更加復雜。 例如“我從羅布那里聽到這個,而羅布正走在街上”。

在RDF序列化格式中表示這一點的正確和最簡單的方法是什么?

如果可能的話,我會盡量避免隱式具體化,原因有很多,但更具體地說是因為:

  • 訪問數據更難,
  • 隨着每個三元組變為4個三元組,數據集的大小急劇增加,
  • 處理非實際數據集的SPARQL查詢將不適用於具體化的數據集,
  • reasoners將陷入困境或無法工作。

在為自己編寫了許多語義Web應用程序之后,我使用隱式具體化的次數很少,我后悔了。

在你的情況我會嘗試用它與明確的具體化模型Blank Node作為中間連接點heard-byheard-from謂詞。 像(在RDF / Turtle中):

@prefix : <http://somedata.org/id/> .
:Mary :bought-a [ 
     a :House;
    :heard-by :me;
    :heard-from :Rob ] .

在普通的RDF / ntriples中,這與(用說唱歌手轉換)相同:

<http://somedata.org/id/Mary> <http://somedata.org/id/bought-a> _:genid1 .
_:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://somedata.org/id/House> .
_:genid1 <http://somedata.org/id/heard-by> <http://somedata.org/id/me> .
_:genid1 <http://somedata.org/id/heard-from> <http://somedata.org/id/Rob> .

正如你所看到Mary買了一些rdf:type House ,你from RobYourself那里聽到了。

我覺得這個解決方案更清潔,成本低於隱式具體化。 我希望這有幫助。

我會使用命名圖,不會害怕在圖中放一個語句。 您可以將原始語句放在圖形中,然后元語句將是關於該圖形而不是其中的語句。 這些可以放入一個或多個其他圖形中,然后如果您需要一些瘋狂的元元聲明,那么您可以通過引用包含元語句的圖形以與原始元語句相同的方式處理它。

在稍后推理或使用圖表時,您可能需要將所有葉子/非元圖形“折疊”為單個圖形。 這也是推理元數據的好方法,以便發現哪些圖形“崩潰”到您的可信任語句中以進行實際推理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM