首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在.logic文件中创建LogiQL中的自动编号谓词?

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

Stack Overflow用户
提问于 2017-07-26 11:40:50
回答 1查看 71关注 0票数 0

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

因此,我在一个.lb文件中重写了我的代码,它起作用了。守则如下:

代码语言:javascript
复制
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

现在,我想将它移到一个node.logic和一个单独的数据文件中。如何在保留lang:autoNumbered和lang:构造函数命令的同时做到这一点?

编辑:

这是我试图运行的代码:

代码语言:javascript
复制
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).
  })
} <-- .

我得到了错误

代码语言:javascript
复制
error parsing block: expected a constraint or lang:ordering pragma (Error BLOCK_PARSE)

当我运行lang && make时,lang:autoNumbered和lang:构造函数行上。

额外信息:我使用Vagrant运行logicblox,并将我的示例建立在以下博客上:https://developer.logicblox.com/2014/01/structuring-and-compiling-logicblox-applications/

EN

回答 1

Stack Overflow用户

发布于 2017-07-27 05:04:25

我不知道你最初的问题是什么,但这实际上应该很好:)。您应该能够将逻辑放在.logic文件中,并使用addblock - file选项。这同样适用于exec逻辑。使用标记与单独的文件基本上是等价的。这应该与将它内联为您所做的一样。如果您希望将数据作为csv文件加载,那么应该可以这样做:https://developer.logicblox.com/content/docs4/core-reference/webhelp/predicates.html#file-predicates

也许您之前从命令行尝试过,而回勾由于其在shell中的特殊含义而引起了一些问题?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45325911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档