2017-08-21 97 views
2

在下面的鏈接SAWSDL:XML Schema中modelReference用於語義標註以不同的模式之間的映射:LinkJSON模式語義標註

我想爲了同樣的目的創建JSON模式語義標註。有沒有類似JSON的sawsdl?

如果不是,我可以使用id屬性嗎?據我所知id屬性可以使用相對(「$ id」:「billing/address」)或絕對(「$ id」:「#billingAddress」)。

在我的情況下,ID應該是這樣的例子:
「的$ id」:「訂單/ hasBillingAddress /地址」

還是有可能例如 「SemanticAnnotation」創建一個自定義屬性:「訂單/ hasBillingAddress /地址」?

我已閱讀說明書,並就我所知,沒有這些方法似乎由規範相矛盾。我也用JSON Schema驗證器檢查了這兩個選項,但也沒有發現任何問題。

回答

1

JSON模式尚不直接支持語義標註,雖然有an issue open for the idea。目前,沒有人有時間來處理提案,但我認爲這是值得探討的,特別是與JSON-LD結合使用時。請隨時將您的使用案例添加到該問題中。

$id屬性是用於分配URI來的模式,以便它可以從其他地方被引用。 「#billingAddress」表單聲明瞭對該模式文件是本地的片段URI(「#」是URI片段語法標記,並且不特定於JSON模式)。

「帳單/地址」表單聲明瞭一個具有相對路徑的URI。通常只有在將多個邏輯模式打包到單個文件時才能完成此操作,以便以原始文件名和路徑爲目標的引用保持有效。設置一個非片段$id更改小時$ref引用已解決,這可能不是您想要的。

由於JSON模式驗證忽略他們不理解的關鍵字,爲你做最簡單的事情可能只是定義自己的擴展關鍵字這一點。他們不會被其他應用程序識別,所以我想這取決於你的觀衆。多個驗證程序可以輕鬆支持自定義關鍵字。