如何在LogiQL中的.logic文件中创建自动编号的谓词?

时间:2017-07-26 11:40:50

标签: logicblox logiql

我正在尝试使用autoNumbered谓词设置项目。我无法在.logic文件中使用lang:autoNumbered选项,因为它给了我预期约束的错误或lang:ordered。

所以我在.lb文件中重写了我的代码。代码如下:

finite_class.finite

现在我想把它移到node.logic和一个单独的数据文件中。如何保持lang:autoNumbered和lang:constructor命令?

修改

这是我试图运行的代码:

create --unique

addblock <doc>
  node(n), node_id(n:id) -> int(id).
  lang:autoNumbered(`node_id).

  cons_node[] = n -> node(n).
  lang:constructor(`cons_node).

  node_has_label[l] = n -> string(l), node(n).
  node_attribute[n, k] = v -> node(n), string(k), string(v).

  node_attribute_id(id, att, val) <- node_id(n: id), node_attribute[n, att] = val.
</doc>

exec <doc>
  +node(n), +cons_node[] = n,
  +node_attribute[n, "label"] = "Person",
  +node_attribute[n, "name"] = "Alice".
</doc>

echo --- node_att_table:
print node_attribute_id

close --destroy

我收到错误

block(`node) {
  export(`{
    node(n), node_id(n:id) -> int(id).
    lang:autoNumbered(`node_id).

    cons_node[] = n -> node(n).
    lang:constructor(`cons_node).

    node_attribute(n, k; v) -> node(n), string(k), string(v).
  })
} <-- .

在lang上:autoNumbered和lang:构造函数行,当我运行lb config&amp;&amp;使

额外信息:我使用Vagrant运行logicblox并将我的示例基于这些博客:https://developer.logicblox.com/2014/01/structuring-and-compiling-logicblox-applications/

1 个答案:

答案 0 :(得分:0)

我不确定你原来的问题是什么,但这实际上应该可以正常工作:)。您应该能够将逻辑放在.logic文件中并使用addblock --file选项。这同样适用于exec逻辑。使用标签与单独的文件基本相同。这应该与你在那里包括它内联相同。如果要将数据作为csv文件加载,那么这应该有效:https://developer.logicblox.com/content/docs4/core-reference/webhelp/predicates.html#file-predicates

也许你之前从命令行尝试过这个问题,由于它在shell中的特殊含义,后面的问题引起了一些问题?