【发布时间】:2021-02-14 15:59:22
【问题描述】:
问:我怎样才能抓住PROLOG中的每一个词,然后把它写出来?
问:类似:prolog_term(X,Functor,Arg1,Arg2) 和 prolog_term(X,Functor,Arg1)(我只对 /1 和 /2 arities 感兴趣)。
我想我想知道如何搜索并获取 PROLOG 术语,而不必对所有内容进行 RTFM。
[我广泛使用 Lisp 和 C(和汇编程序)(+30 年),现在正深入研究 PROLOG 的深层次]。
例子:
(1) 读取 JSON 事实库,例如
{ fb:
[
{ relation: "line", subject: "line6", object: "don't care" },
{ relation: "x1", subject: "line6", object: "160" },
{ relation: "y1", subject: "line6", object: "240" },
{ relation: "x2", subject: "line6", object: "160" },
{ relation: "y2", subject: "line6", object: "360" }
]
}
(事实库由三元组组成(当对象是“不关心”时,可能是二元组))
(2) 转换为内部PROLOG格式,例如
line(line6).
x1(line6,160).
y1(line6,240).
x2(line6,160).
y2(line6,360).
(3) 在事实库上运行一些 PROLOG 规则。
(4) 以 JSON 格式写出所有(或部分)结果事实,例如类似:
write_out([line, x1, y1, x2, y2, bounding_box_left, bounding_box_top, bounding_box_right, bounding_box_bottom])
(在本例中,line/x1/y1/x2/y2 事实被读入,bounding_box_* 事实在步骤(3)中生成)。
[提供更多详细信息 - 我试图让问题保持简短]
【问题讨论】:
-
这是一个有点懒惰的问题(如您所知)。如果你的 Prolog 有一个 JSON 库,那么这些事情就很简单了。我会试着写一个答案。
标签: prolog