问题标签 [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.
prolog - 将 Eulersharp 与 Cliopatria 集成
我想使用Cliopatria Semantic Web Server,但是我目前正在使用EulerSharp广泛使用 n3-rules 。我不想失去 n3 提供的终止保证,但我想通过 ClioPatria 提供结果图,而不必运行定期的外部脚本。
鉴于 ClioPatria 和 EulerSharp 都在 SWI-Prolog 上运行,我想知道是否有人有尝试将这两个项目组合在同一个 Web 应用程序中的经验?
prolog - 访问三元组对象的文字值
我正在开发一个验证海龟文件的验证器。在处理一个函数来检查每个对象的基数是否正确时,我不知道如何访问文字的值。
字面值是Card=literal(type(xsd:nonNegativeInteger, '1'))
(或1^^'http://www.w3.org/2001/XMLSchema#nonNegativeInteger'
)。
我找到一袋长度为 L 的属性。我该如何检查L == Card
呢?
我已经尝试了以下方法:
问题是,xsd:integer
不要xsd:nonNegativeInteger
比较相等。
然而,对我来说最简单的事情似乎得到了价值,Card
但我真的不知道该怎么做。任何可以找到此示例的解决方案或指针将不胜感激!
group-by - 可选的不适用于本地 YASGUI 编辑器上的 SPARQL 查询
我再次遇到了 SPARQL 的问题。首先,一些背景信息:我一直在使用Wikidata 查询服务从 Wikidata 中检索数据。由于 Wikidata SPARQL 端点是有限的并且大型任务会发生超时,我想我会:
- 将查询拆分为几个较小的查询
- 将它们下载为 .csv
- 将它们转换为 .nt N-Triples
- 将它们导入 Cliopatra(使用 SWI-Prolog)
- 使用内置的 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文件可以在这里访问
提前谢谢了!
cors - 请求的资源上不存在“Access-Control-Allow-Origin”标头。如何在 SWI-Prolog / ClioPatria 中正确处理 CORS 请求?
我正在尝试通过 UI 应用程序在我的SWI-Prolog / ClioPatria应用程序服务器中发布一些数据,但我不断收到错误消息:
如何在服务器中正确启用 CORS?
我已经检查了swi-prolog CORS 文档,以及这个非常好的教程,但我仍然无法让它工作。
这是我在服务器中运行的序言代码:
我正在使用 vanilla javascript 发送以下请求: