问题标签 [cliopatria]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
109 浏览

prolog - 将 Eulersharp 与 Cliopatria 集成

我想使用Cliopatria Semantic Web Server,但是我目前正在使用EulerSharp广泛使用 n3-rules 。我不想失去 n3 提供的终止保证,但我想通过 ClioPatria 提供结果图,而不必运行定期的外部脚本。

鉴于 ClioPatria 和 EulerSharp 都在 SWI-Prolog 上运行,我想知道是否有人有尝试将这两个项目组合在同一个 Web 应用程序中的经验?

0 投票
1 回答
153 浏览

prolog - 访问三元组对象的文字值

我正在开发一个验证海龟文件的验证器。在处理一个函数来检查每个对象的基数是否正确时,我不知道如何访问文字的值。

字面值是Card=literal(type(xsd:nonNegativeInteger, '1'))(或1^^'http://www.w3.org/2001/XMLSchema#nonNegativeInteger')。

我找到一袋长度为 L 的属性。我该如何检查L == Card呢?

我已经尝试了以下方法:

问题是,xsd:integer不要xsd:nonNegativeInteger比较相等。

然而,对我来说最简单的事情似乎得到了价值,Card但我真的不知道该怎么做。任何可以找到此示例的解决方案或指针将不胜感激!

0 投票
0 回答
385 浏览

group-by - 可选的不适用于本地 YASGUI 编辑器上的 SPARQL 查询

我再次遇到了 SPARQL 的问题。首先,一些背景信息:我一直在使用Wikidata 查询服务从 Wikidata 中检索数据。由于 Wikidata SPARQL 端点是有限的并且大型任务会发生超时,我想我会:

  1. 将查询拆分为几个较小的查询
  2. 将它们下载为 .csv
  3. 将它们转换为 .nt N-Triples
  4. 将它们导入 Cliopatra(使用 SWI-Prolog)
  5. 使用内置的 YASGUI SPARQL 编辑器在本地查询数据

截至目前,该查询在 Wikidata 查询服务中有效。但是,在本地我没有使 OPTIONAL 功能起作用。

我的 Wikidata 代码如下(这是我要检索的所有数据的一小部分):

这正确检索:

这里的重点是它允许我选择所有具有 Wikidata ID 和 GTAA ID 以及相应的假名、date_of_death 和职业(如果有)的结果。此外,如果一个人有多个职业,它会用“,”分隔它们并将它们放在同一行中。

但是,如上所述,我下载了文件以便能够在本地查询它们。为此,我使用以下格式将 .csv 文件转换为 .nt:

其中对象是一个字符串。请注意,在以下示例中,?p 以我转换为 .nt 的方式正确使用。(因此使用了 PREFIX ps)将它们加载到 Cliopatria 并在 YASGUI 编辑器中使用以下代码:

但是,在此查询中,?pseudonym ?occupation 和 ?date_of_death 是可选的,但这些职业没有连接成一行。 查询 1

如果我将 GROUP BY 函数替换为

它根本不显示 ?pseudonym 和 ?date_of_death,但会连接 ?occupation。 查询 2

如果我将 GROUP BY 函数替换为

它仅连接具有 ?date_of_death 的 ?q 的 ?occupation。没有 ?date_of_death 的那些不会连接到 1 行。此外,它根本不显示任何假名。 查询 3

我怀疑这与 GROUP BY 函数与 group_concat 函数的结合有关。但是,我不明白为什么它可以在 Wikidata 查询服务中工作,但不能在我的本地主机上工作。本地使用的.nt文件可以在这里访问

提前谢谢了!

0 投票
0 回答
189 浏览

cors - 请求的资源上不存在“Access-Control-Allow-Origin”标头。如何在 SWI-Prolog / ClioPatria 中正确处理 CORS 请求?

我正在尝试通过 UI 应用程序在我的SWI-Prolog / ClioPatria应用程序服务器中发布一些数据,但我不断收到错误消息:

如何在服务器中正确启用 CORS?

我已经检查了swi-prolog CORS 文档,以及这个非常好的教程,但我仍然无法让它工作。

这是我在服务器中运行的序言代码

我正在使用 vanilla javascript 发送以下请求