我不太明白为什么在SPARQL中他们没有实现基本的逻辑运算符.然而,在大多数情况下,可以以多种方式获得相同的结果.
这个问题的目的是快速参考可以用"或"语句替代的低谷.
这是我能想到的:
UNION例如:
SELECT * WHERE
{ { ?s :propA ?o } UNION { ?s :propB ?o } }
Run Code Online (Sandbox Code Playgroud)
- 通常不合适,因为它可能变得非常冗长,因为
SELECT * WHERE {
{ GRAPH ?g {?s ?p ?o. ?o ?pp ?data1}} UNION
{ GRAPH ?g {?s ?p ?o. ?o ?pp ?data2}}
}
Run Code Online (Sandbox Code Playgroud)
不起作用
SELECT * WHERE {
GRAPH ?g {
?s ?p ?o.
{?o ?pp ?data1} UNION
{?o ?pp ?data2}
}
}
Run Code Online (Sandbox Code Playgroud)
(至少没有Stardog)
FILTER例如:
SELECT * WHERE
{
?s ?p ?o.
FILTER …Run Code Online (Sandbox Code Playgroud) 我在具有运行良好的打开jdk8的Ubuntu 15.04容器中运行Stardog 4.0。我想使用陷阱巧妙地关闭stardog。
为了在容器中执行stardog以使其继续运行,我一直在使用以下效果很好的方法
$SBIN/bin/stardog-admin server start && (tail -f /storage/stardog.log &) && while (pidof java > /dev/null); do sleep 1; done
Run Code Online (Sandbox Code Playgroud)
没有以下内容,容器将运行几秒钟并停止
&& (tail -f /storage/stardog.log &) && while (pidof java > /dev/null); do sleep 1; done
Run Code Online (Sandbox Code Playgroud)
但是,这导致容器内有多个PID
root 1 0.0 0.0 18384 3236 ? Ss 14:04 0:02 /bin/bash /stardog_binaries/startup.sh
root 45 0.1 4.9 4619052 406940 ? Sl 14:04 0:10 java -Xms2g -Xmx2g -XX:MaxDirectMemorySize=4g -XX:SoftRefLRUPolicyMSPerMB=1 -XX:+UseParallelOldGC -XX:+UseCompressedOops -Djavax.xml.datatype.DatatypeFactory=org.apache.xerc
root 97 0.0 0.0 4412 740 ? S 14:04 …Run Code Online (Sandbox Code Playgroud) 我刚刚下载了 Stardog,并尝试在我的计算机 (Mac OS X 10.14.2) 上运行它。
\n\n我使用ZSHshell,并在我的文件中添加了以下两行.zshrc:
export STARDOG_HOME="/Applications/stardog-6.1.0"\nexport PATH="$PATH:$STARDOG_HOME/bin"\nRun Code Online (Sandbox Code Playgroud)\n\n以下是我的全部$PATH变量:
\xe2\x9e\x9c echo $PATH\n/Users/my_user/.nvm/versions/node/v11.6.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/stardog-6.1.0/bin\nRun Code Online (Sandbox Code Playgroud)\n\n以下是我的java版本:
\n\n\xe2\x9e\x9c java --version\nopenjdk 11.0.1 2018-10-16\nOpenJDK Runtime Environment 18.9 (build 11.0.1+13)\nOpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)\nRun Code Online (Sandbox Code Playgroud)\n\n我复制了许可证/Applications/stardog-6.1.0,然后尝试运行 \nstardog-admin server start但这是输出:
WARNING: An illegal reflective access operation has occurred\nWARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/Applications/stardog-6.1.0/client/api/guice-4.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)\nWARNING: Please consider reporting this to the maintainers …Run Code Online (Sandbox Code Playgroud) 正如标题所说,我正在尝试使用visualstudio中的SPARQL查询创建三元组.在stardog studio中使用相同的SPARQL查询,但是当我尝试使用stardogconnector从visualstudio发送它们时,我收到以下错误:
dotNetRDF.dll中出现未处理的"VDS.RDF.Query.RdfQueryException"类型异常附加信息:查询存储时出现HTTP错误(HTTP 400错误请求).Store返回以下错误消息:{"message":"无法在读取端点上执行更新查询"}有关更多详细信息,请参阅上述状态行或内部异常
这是代码:
StardogConnector stardog = new StardogConnector("http://localhost:5820", "dbtest", "admin", "password");
stardog.Begin();
string query = "INSERT DATA { <http://example/book1> dc:title \"test\"}";
stardog.Query(query);
stardog.Commit();
Run Code Online (Sandbox Code Playgroud)
正如我所说,在stardog studio中插入相同的查询会得到正确的结果.数据库在线,连接工作(密码等是正确的),...我只是不知道错误是什么意思.有人可以帮忙吗?我在网上找不到这个错误.
在 Sesame 2.8.1 存储库的帮助下,我无法将 Topbraid Composer 4.6.3 连接到 Stardog 3.0。这些是我正在遵循的步骤:


另外值得一提的是,Stardog 中启用了安全性。因此,我在芝麻工作台的 SPARQL 查询端点 URL 中添加了凭据 (http;//admin:admin@url)。没有为芝麻配置安全性。
我想知道哪个工具将成为瓶颈。有没有人做过类似的事情?
我正在尝试使用graphql查询stardog服务器,这是我的代码。
import {
GraphQLSchema,
GraphQLObjectType,
GraphQLInt,
GraphQLString,
GraphQLList,
GraphQLNonNull,
GraphQLID,
GraphQLFloat
} from 'graphql';
import axios from 'axios';
var stardog = require("stardog");
let Noun = new GraphQLObjectType({
name: "Noun",
description: "Basic information on a GitHub user",
fields: () => ({
"c": {
type: GraphQLString,
resolve: (obj) => {
console.log(obj);
}
}
})
});
const query = new GraphQLObjectType({
name: "Query",
description: "First GraphQL for Sparql Endpoint Adaptive!",
fields: () => ({
noun: {
type: Noun,
description: "Noun data from fibosearch", …Run Code Online (Sandbox Code Playgroud) 我正在尝试在同义词库中的dbpedia中获取一些定义。
尽管可以找到带有与我的国家匹配的标签的国家,但我并没有全部获得。因此,我尝试将类似标签与包含匹配,但它不起作用。
知道为什么。
SELECT distinct ?idbcountry ?label ?labelDb ?def
WHERE {
?idbcountry a skos:Concept .
?idbcountry rdfs:label ?label .
?idbcountry skos:inScheme iadb:IdBCountries .
FILTER(lang(?label) = "en")
Service <http://dbpedia.org/sparql> {
?s a <http://dbpedia.org/ontology/Country> .
?s rdfs:label ?labelDb .
FILTER(CONTAINS (?labelDb, ?label)).
?s rdfs:comment ?def .
FILTER(lang(?def) = "en") .
FILTER(lang(?labelDb) = "en") .
}}
Run Code Online (Sandbox Code Playgroud)
有效的确切匹配查询如下:
SELECT distinct ?idbcountry ?label ?def
WHERE {
?idbcountry a skos:Concept .
?idbcountry rdfs:label ?label .
?idbcountry skos:inScheme iadb:IdBCountries .
FILTER(lang(?label) = "en")
Service <http://dbpedia.org/sparql> {
?s …Run Code Online (Sandbox Code Playgroud) 我有一个巨大的三元组列表,如下所示:
?s ex:url ?url
Run Code Online (Sandbox Code Playgroud)
哪里?url可以:
www.ex.com/data/1.html
www.ex.com/data/2.html
www.google.com/search
...
Run Code Online (Sandbox Code Playgroud)
使用SPARQL查询是否有可能以某种方式过滤查询并获取不同的域列表?在示例中,www.ex.com和www.google.com.
像这样的东西:
SELECT distinct ?url
WHERE { ?s ex:url ?url }
Run Code Online (Sandbox Code Playgroud)
但治疗每个网址绑定.当然我可以全部获取它们,并在我的程序中逐个处理每个URL,但我认为sparql查询会更有效.我正在使用Stardog - 以防它有一些自定义功能.
stardog ×8
sparql ×5
rdf ×2
bash ×1
c# ×1
docker ×1
dotnetrdf ×1
graphql ×1
java ×1
javascript ×1
linked-data ×1
node.js ×1
sesame ×1
signals ×1
triplestore ×1