使用 logiQL 进行逻辑数据建模
Logical Data Modeling with logiQL
我正在学习 Terry Halpin 编写的名为逻辑数据建模的教程(link 如下所述),但无法插入数据。
https://www.brcommunity.com/articles.php?id=b760
代码如下:
addblock 'Country(c), hasCountryCode(c:cc) -> string(cc).
Language(l), hasLanguageName(l:ln) -> string(ln).
isLarge(c) -> Country(c).
officiallyUses(c, l) -> Country(c), Language(l).
isMultilingual(c) <- officiallyUses(c, l1), officiallyUses(c, l2), l1 != l2.'
exec'
+isLarge("AU"), +isLarge("CA"), +isLarge("FR"), +isLarge("US").
+officiallyUses("AU", "English"), +officiallyUses("CA", "English").
+officiallyUses("CA", "French"), +officiallyUses("FR", "French").
+officiallyUses("LU", "French"), +officiallyUses("LU", "German").
+officiallyUses("LU", "Luxembourgish").
+officiallyUses("US", "English"), +officiallyUses("VA", "Italian"). '
错误信息:
任何人都可以帮助我了解哪里出了问题吗?
当 Terry 编写该教程时,LogicBlox/datalog/LogiQL 语言允许使用一些已弃用的语法快捷方式。架构的第一个块与所写的一样。现在需要第二个断言执行块来显式声明实体和引用模式谓词。这是一个工作示例:
+Country(c),
+isLarge(c),
+hasCountryCode(c:"AU"),
+Language(l),
+hasLanguageName(l:"English"),
+officiallyUses(c, l).
要断言 +isLarge(c)
您还需要(或之前)断言实体及其引用模式 +Country(c), +hasCountryCode(c:"AU").
相同的模式适用于在声明 +officiallyUses(c, l).
时或之前声明语言实体
我正在学习 Terry Halpin 编写的名为逻辑数据建模的教程(link 如下所述),但无法插入数据。 https://www.brcommunity.com/articles.php?id=b760
代码如下:
addblock 'Country(c), hasCountryCode(c:cc) -> string(cc).
Language(l), hasLanguageName(l:ln) -> string(ln).
isLarge(c) -> Country(c).
officiallyUses(c, l) -> Country(c), Language(l).
isMultilingual(c) <- officiallyUses(c, l1), officiallyUses(c, l2), l1 != l2.'
exec'
+isLarge("AU"), +isLarge("CA"), +isLarge("FR"), +isLarge("US").
+officiallyUses("AU", "English"), +officiallyUses("CA", "English").
+officiallyUses("CA", "French"), +officiallyUses("FR", "French").
+officiallyUses("LU", "French"), +officiallyUses("LU", "German").
+officiallyUses("LU", "Luxembourgish").
+officiallyUses("US", "English"), +officiallyUses("VA", "Italian"). '
错误信息:
任何人都可以帮助我了解哪里出了问题吗?
当 Terry 编写该教程时,LogicBlox/datalog/LogiQL 语言允许使用一些已弃用的语法快捷方式。架构的第一个块与所写的一样。现在需要第二个断言执行块来显式声明实体和引用模式谓词。这是一个工作示例:
+Country(c),
+isLarge(c),
+hasCountryCode(c:"AU"),
+Language(l),
+hasLanguageName(l:"English"),
+officiallyUses(c, l).
要断言 +isLarge(c)
您还需要(或之前)断言实体及其引用模式 +Country(c), +hasCountryCode(c:"AU").
相同的模式适用于在声明 +officiallyUses(c, l).