问题标签 [stardog]
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.
owl - 用 Stardog 推理机解决爱因斯坦之谜?
是否有可能用Stardog推理机解决爱因斯坦的谜语(又名斑马谜题)?即以下查询不会产生预期的结果einsteins_riddle_en:Old_Gold
sparql - 如何使用 Sparql Contains 匹配相似的字符串?
我试图在我的同义词库中的 dbpedia 中获取一些定义。
虽然可以找到具有与我的国家匹配的标签的国家,但我没有得到所有这些。所以我尝试将类似的标签与包含匹配,但它不起作用。
知道为什么。
有效的精确匹配查询如下:
编辑1
数据样本:
bash - 如何为由 && 分隔的多个命令创建 PID 陷阱
我在一个 Ubuntu 15.04 容器中运行 Stardog 4.0,并带有运行良好的开放 jdk8。我想使用陷阱优雅地关闭stardog 。
要在容器中执行 stardog 以便它继续运行,我一直在使用以下效果很好
如果没有以下内容,容器将运行几秒钟并停止
然而,这会导致容器内有多个 PID
当容器关闭时,以下陷阱无法关闭stardog
所以我的问题是如何正确捕获 $SBIN/bin/stardog-admin 服务器启动,以便在容器关闭时,stardog 优雅地退出。
问候康泰
java - 如何使用 Complexible Pinto 排除某些 POJO 属性,使其不映射到 RDF?
我正在尝试使用Complexible Pinto在 Java POJO 和 RDF 之间进行映射。在我的一个评估测试中,我有一个不应出现在输出三元组中的派生属性,但是似乎所有 JavaBean getter 都自动包含在输出中,并带有生成的属性资源。如何在不破坏方法名称的情况下抑制它?类似的框架通常有某种 @Ignore 注释或一个忽略注释参数,但我在 Pinto 中没有看到。
我可以通过修改方法名称(例如)来抑制这种情况xgetNameLength()
,但我不希望那样做,因为那样会很丑陋。
代码:
我创建了一个具有不应映射的派生属性的 Java POJO,并使用 Pinto 将其转换为三元组。
输出:
派生值与生成的属性进行映射。我想排除它,所以只会创建两个三元组。
sparql - SPARQL best approach for generating flat data for search
We have a triple store of information such as drugs and I'm unsure how I can extract this information to make it available so that it can be indexed by our search engine Elasticsearch. I had envisaged that I would run a SPARQL query to extract the following information:
- Title
- Body
- Href
Please not the triple store does not contain the above structure it's a lot more complicated than that.
One of the requirements is to be able to format the Titles using different triples from the triple store so for example for drugs something like this would be needed:
Paracetamol | Introduction | Drug
(Pracetamol refers to the drug name, Introduction is a subsection and Drug refers to the type)
For the body I was thinking of extracting all the text values from all the triples related to drugs.
And for the href simply using the uri of the resource(drug).
I would then convert this information to JSON-LD so that it can be indexed by Elasticsearch. In the end the JSON-LD will simply contain the title, body and href.
So my question is, is using SPARQL the right approach for what I'm wanting to do or should I look at a different approach to extract the data I need based on the requirements above.
java - Stardog 自定义聚合函数在 Jena 中不可用
我在 Stardog 中创建了一个计算标准偏差的自定义聚合函数。当您将 SPARQL 查询发布到端点或通过管理控制台中的查询面板时,这非常有用。
到目前为止,一切都很好,但我们面临着一些问题。首先,当我们执行如下查询时,它将通过 Stardog 完美执行,但在SPARQL 验证器(以及 Jena API 也是)中会失败:
Stardog 给出了标准偏差和平均年龄的正确结果,但 SPARQL 验证器抛出异常:
SELECT 中的非组键变量:表达式中的 ?age (?age)
Stardog 是否以不同的方式解释规范,或者这是我不知道的功能?
另一个问题是,我们在 CONSTRUCT 查询中使用了自定义聚合函数 (stdev),而且通过 Stardog API 似乎可以正常工作。虽然我们的大部分代码都是基于 Jena 的,但它似乎无法识别自定义 stdev 功能。我猜是因为这个扩展只与 Stardog 相关并且对 Jena 不可用?让我举个例子。ATM,我们正在通过以下 Jena 代码执行 CONSTRUCT 查询:
只要我们不使用聚合函数,这就像一个魅力。当我们在多个命名图中构建三元组时,拥有一个可用的模型(它代表一个命名图)非常方便。
我想用 Stardog java API 做一些类似的事情。我只做到了:
问题是您明确需要在 CONSTRUCT 查询中指定要操作的命名图。没有什么能像 Jena 模型那样代表数据库的一部分,这样我们就可以避免在查询中指定它。这里有什么好的方法?
所以我的问题是双重的:为什么在 Stardog 中查询的解析方式不同,是否可以让 Jena 检测到自定义 Stardog 聚合函数?谢谢!
更新
最后,我们试图完成的是对给定的命名图执行构造查询,但将新构造的三元组写入不同的图。在我的 Jena 示例中,您可以看到我正在使用两个 Jena 模型来实现这一点。您将如何使用 SNARL API 做到这一点?我已经得到了以下代码片段,但这仅定义了将执行此查询的数据集,而不是三元组将被写入的位置。对此的任何帮助仍然值得赞赏!
docker - 由 Docker 复制的文件被视为目录
我正在尝试对接 Stardog 3.1.3 社区版服务器。容器无法启动,因为它看到的是目录而不是许可证文件。作为记录,我在 Windows 上。这些是我正在遵循的步骤:
创建数据容器
将本地许可证密钥复制到数据容器(未在下面提到的 Dockerfile 中完成,因为许可证是特定于环境的)
根据以下 Dockerfile 创建镜像
运行 Stardog 容器
当我执行时docker ps -a
,我看到容器在几秒钟后停止:
当我检查日志时docker logs stardog
,我得到了这个:
似乎许可证文件被认为是一个目录。我究竟做错了什么?
我正在使用以下 Docker 版本:
javascript - StarDog 登录错误
我正在尝试使用用户名登录 Stardog 工具:管理员密码:管理员
听起来很简单,但我确实收到一个登录错误,提示 [异常...“失败”nsresult:“0x80004005(NS_ERROR_FAILURE)”位置:“JS 框架 :: http://localhost:5820/scripts/06942fff.main.js :: .send ::第3行“数据:没有'
有没有我忽略的概念来解决这个问题?对此问题的任何建议都会有所帮助。
java - 咆哮还是 HTTP?我应该使用哪种协议连接到远程 Stardog 服务器
我是 stardog 的新手,我想通过 java API 将大量数据(以 GB 为单位)插入远程 Stardog 服务器。Stardog 支持通过 snarl 和 HTTP 进行连接。现在我很困惑我应该选择哪个。
我有两个问题:
- 这些协议的优缺点是什么?
- 为了获得更好的性能,我应该选择哪种协议?
提前致谢。
semantic-web - 找不到主类:com.complexible.stardog.cli.admin.CLI。程序将会退出
我正在尝试安装 Stardog,但它向我发送了此错误:
线程“main”中的异常 java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=com/complexible/stardog/cli/admin/CLI,offset=6 at java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:275) at java.security.SecureClassLoader .defineClass(SecureClassLoader.java:69) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:540) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:451) 在 java.net.URLClassLoader.access$300(URLClassLoader .java:79) 在 java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1038) 在 java.security.AccessController.doPrivileged(AccessController.java:284) 在 java.net.URLClassLoader.findClass(URLClassLoader.java: 429) 在 java.lang.ClassLoader.loadClass(ClassLoader.java: 660) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:626) 找不到主类:com.complexible.stardog.cli.admin .CLI。程序将会退出。
有人知道如何解决吗?