标签: stardog

SPARQL查询中的"或"

我不太明白为什么在SPARQL中他们没有实现基本的逻辑运算符.然而,在大多数情况下,可以以多种方式获得相同的结果.

这个问题的目的是快速参考可以用"或"语句替代的低谷.

这是我能想到的:

1)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)

2)FILTER

例如:

SELECT * WHERE
    { 
        ?s ?p ?o.
        FILTER …
Run Code Online (Sandbox Code Playgroud)

sparql stardog linked-data

16
推荐指数
2
解决办法
1万
查看次数

如何为由&&分隔的多个命令创建PID陷阱

我在具有运行良好的打开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)

bash signals stardog docker

5
推荐指数
1
解决办法
289
查看次数

无法让 Stardog 在 Mac OS X 上运行

我刚刚下载了 Stardog,并尝试在我的计算机 (Mac OS X 10.14.2) 上运行它。

\n\n

我使用ZSHshell,并在我的文件中添加了以下两行.zshrc

\n\n
export STARDOG_HOME="/Applications/stardog-6.1.0"\nexport PATH="$PATH:$STARDOG_HOME/bin"\n
Run Code Online (Sandbox Code Playgroud)\n\n

以下是我的全部$PATH变量:

\n\n
\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\n
Run 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)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我复制了许可证/Applications/stardog-6.1.0,然后尝试运行 \nstardog-admin server start但这是输出:

\n\n
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)

java stardog

5
推荐指数
1
解决办法
253
查看次数

使用stardog从C#发送SPARQL查询:"无法在读取端点上执行更新查询"

正如标题所说,我正在尝试使用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中插入相同的查询会得到正确的结果.数据库在线,连接工作(密码等是正确的),...我只是不知道错误是什么意思.有人可以帮忙吗?我在网上找不到这个错误.

c# sparql dotnetrdf stardog

3
推荐指数
1
解决办法
190
查看次数

使用芝麻将 Topbraid Composer 连接到 Stardog

在 Sesame 2.8.1 存储库的帮助下,我无法将 Topbraid Composer 4.6.3 连接到 Stardog 3.0。这些是我正在遵循的步骤:

  1. 创建一个新的 RDF/OWL Sesame2 存储库连接
  2. 输入文件名、基本 URI 和服务 URL。可用的存储库正确显示。

在此处输入图片说明

  1. 选择 Stardog 存储库
  2. 当我尝试连接时,显示以下消息

在此处输入图片说明

另外值得一提的是,Stardog 中启用了安全性。因此,我在芝麻工作台的 SPARQL 查询端点 URL 中添加了凭据 (http;//admin:admin@url)。没有为芝麻配置安全性。

我想知道哪个工具将成为瓶颈。有没有人做过类似的事情?

rdf sesame sparql stardog topbraid-composer

2
推荐指数
1
解决办法
216
查看次数

解决Graphql的异步功能无法返回通过具有rdf数据的Stardog服务器查询的数据

我正在尝试使用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)

javascript rdf node.js stardog graphql

2
推荐指数
1
解决办法
717
查看次数

如何使用Sparql包含来匹配相似的字符串?

我正在尝试在同义词库中的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)

sparql triplestore stardog

1
推荐指数
1
解决办法
2899
查看次数

解析SPARQL结果以获取主机名

我有一个巨大的三元组列表,如下所示:

?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.comwww.google.com.

像这样的东西:

SELECT distinct ?url
WHERE { ?s ex:url ?url }
Run Code Online (Sandbox Code Playgroud)

但治疗每个网址绑定.当然我可以全部获取它们,并在我的程序中逐个处理每个URL,但我认为sparql查询会更有效.我正在使用Stardog - 以防它有一些自定义功能.

sparql stardog

0
推荐指数
1
解决办法
348
查看次数