问题标签 [spin-rdf]
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.
sparql - 如何定义 SPIN 规则?
我正在使用 AllegroGraph 4.4。我有他们关于肯尼迪家谱的样本数据库输入。我从他们关于 SPIN 的教程中复制了一个示例。这里是:
问题是我不知道在哪里以及如何注册这个函数。我已经尝试过 WebView,但出现此错误:
为什么我不断收到此错误?
我应该在哪里定义规则?
sparql - 使用 SPIN 规则推断匿名超类
我正在 TopBraidComposer 中构建一个本体,它有一个类层次结构和几个单独工作的规则。在我的本体中,我在类级别上工作,所以我创建的所有定义都只与类有关,而不是与个人相关。现在我想推断像这样的子类定义:
我尝试了以下 SPARQL 查询,它似乎可以完成这项工作:
然后我将所说的查询作为 SPIN 规则添加到 owl:Thing 类中,如下所示:
回车后,自动转换成如下形式:
它看起来很合理,但是当我现在开始推理过程时,它不会在我添加测试规则之前终止。当我强制停止推理时,我可以看到所需的三元组已多次添加到 Test 类中。
如何在 SPIN 中推断出匿名超类?
编辑:
一种解决方法是将限制绑定到类。然后逻辑似乎有效,但它不像匿名超类那样显示出来;在 TBC 和 Protege 中都没有。
filter - SPARQL/SPIN ASK 匹配 uri FILTER 不起作用
我目前有一个询问查询,我希望得到一个“TRUE”作为结果(我检查过,这是真的!)。我正在尝试匹配 URI。我不确定为什么这不起作用。
前任。
在我使用的端点中;
?ABC
= <http://some.sample.org/URI_ID000>
?XYZ
=<http://some.sample.org/URI_ID000>
因此,我知道?ABC
= ?XYZ
,因此,我期望结果为真,但我变得错误。只是想知道是否有人对这是为什么有任何想法?
sparql - 如何在 SPARQL SPIN 规则声明中使用 CONSTRUCT / WHERE
概括
提前感谢您帮助我编写了可以在 TopBraid Composer 免费版中声明为 SPIN 规则并使用的 CONSTRUCT/WHERE 语句。
我正在尝试在声明中嵌入 SPARQL CONSTRUCT/WHERE 语句spin:rule
,然后执行它。我对下面的陈述 1 或 2 返回零推论。我正在使用 Java 7、Eclipse 4.3 和 TopBraid Composer 免费版。我已经成功地将语句 3 作为类表单中的 SPIN 构造函数声明运行(语句 3)。我已经在我交叉发布到用户论坛的 SPARQL 查询编辑器(解释器)中成功运行了语句 4。
细节
事实 1:我无法将语句 1 作为 SPIN 规则运行。
----声明1---
事实 2:我无法将语句 2 作为 SPIN 规则运行。
----声明2----
事实 3:但是,我在类表单的构造函数字段中成功使用了语句 3。
----声明3----
事实 4:我在 SPARQL 查询编辑器中成功使用了 Statement 4,这是类似的。
----声明4----
事实 5:我没有在 Ontology Profile 表单中检查任何 SPARQL 规则库。
事实 6:我已经导入了以下两个库。
事实 7:文件中的命名空间是:
事实 8:我正在使用的类具有以下断言。
事实 9:node:unclassified_concept 类的一个实例如下所述。
事实 10:我已经成功地使用了 Jena 通用规则推理以及 OWL_MEM_RULE_INF OntModelSpec、读/写、基本模型、inf 模型和 ont 模型。
语境
我的问题的背景如下。我正在使用 Java 和 Jena 构建和迭代执行本体和规则集,以证明 OWL/RDF 的概念表示、考虑和响应非平凡的打字英语。我使用的句子很重要(41 个单词,三个从句等)。当前本体在不针对任何 OWL/RDF 规则(传递性等)运行时有 1422 个断言。我尽可能使用 TopBraid Composer 来补充 Jena 编程,以确保我符合约定和标准。
java - 使用 TopBraid SPIN API 运行 SPARQL/SPIN 模板
我正在尝试使用 SPIN API 运行模板。对于简单的模板,这很好用,但我对包含FILTERs
.
出于验证目的,我在运行模板之前打印了模板的主体,而我看到的并不是我期望看到的:
它打印查询FILTER
,但包含 4 行的子句如下所示:
因此,当我尝试运行它时,查询会失败。
有谁知道如何spin:body
从我的模型中检索全部内容?
multithreading - SPIN 模型检查器中的多线程
我们如何使用线程数对 SPIN 模型进行参数化?我正在使用标准的 SPIN 模型检查器。它有设置并行线程数的选项吗?我检查了参考,但没有发现任何有用的东西
sparql - SPIN 函数中的条件子查询 (SPARQL)
如何根据变量是否绑定来更改查询公式?
我正在调用这样的魔法属性:
在魔法属性中,我做了一个联合:
换句话说,让我得到:someProp
这个值或 :someProp
未定义的所有结果。
这是棘手的部分。如果?subj
未绑定(即,我将其设置为UNDEF
在VALUES
块中),则上述查询会变得疯狂并返回所有内容。
相反,我想检查是否?subj
未绑定。如果?subj
未绑定,:myMagicProperty
则应仅返回以下结果:
我已经尝试过使用FILTER
和BOUND
功能,但我无法弄清楚如何获得正确的行为。未绑定时,如何UNION
从查询中删除其中一个子句??subj
更新
修改了第一个查询以添加VALUES
块。
添加了缺失?result a :Rule .
的语句。
更正?someProp
为:someProp
.
sparql - 如何使用 AGWebView 在 Allegrograph 中调用已注册的 SPIN 函数?
我使用 Allegrograph 作为我的三重存储,并尝试使用 SPIN 函数。我设法通过 AGWebView 工具的 HTTP API 注册了一个简单的 SPIN 函数。现在,我试图在 SPARQL 查询中调用 SPIN 函数,但 AGWebView 告诉我它找不到已注册的 SPIN 函数。知道如何实现这一目标吗?
sesame - Sesame 服务器对 SPIN 的支持
我是 SPIN 的新手,我阅读了文档并查找了一些示例,但我想开始使用它。
我从http://topquadrant.com看到了一些用于 SPIN 的工具,但我已经使用 openrdf-sesame 服务器有一段时间了,我想坚持使用它。
我从http://rdf4j.org/doc/4/programming.docbook?view阅读了文档 ,我看到 API 中有 SpinSail 的 beta 版本......但我在指定的网站上找不到任何地方openrdf-sesame.war 服务器是否有 SPIN 处理器。
是否可以在 sesame 的 quadstore 中使用 SPIN 功能(添加规则、添加约束、进行推理等)?如果是,那么如何?
java - 在我的 Java 项目中使用 TopBraid 中定义的 SPIN 函数
我正在使用 Jena 框架为 Semantic Web 编写我的第一个 Java 项目。我的本体很拥挤,现在我想在我的项目中使用一些 SPIN 功能(它们不是我写的)。它们非常简单:它们接收 2 个字符串参数并返回 1 个字符串。我从不做这种项目,所以我不知道从哪里开始。你能帮助我吗?