标签: graphdb

使用 RDFlib 向 GraphDB 插入数据时查询出错

我将数据库解析为 RDFlib 图。我现在想将该图中的三元组插入到 GraphDB 三元组存储中。当我在 Sesame 上托管的旧版本 GraphDB-Lite 上执行该代码时,该代码运行良好。但是,在现在独立的 GraphDB 7.0.0 上执行相同的查询时出现错误。在引发错误之前,该图已被部分解析,并且插入的三元组确实显示在三元组存储中。

这是代码的一部分:

graphdb_url = 'http://my.ip.address.here:7200/repositories/Test3/statements'
##Insert into Sesame
        for s,p,o in graph1:
            pprint.pprint ((s,p,o))
            queryStringUpload = 'INSERT DATA {%s %s %s}'  %(s,p,o)
            # queryStringUpload = 'DELETE WHERE {?s ?p ?o .}'
            # print queryStringUpload
            sparql = SPARQLWrapper(graphdb_url)
            sparql.method = 'POST'
            sparql.setQuery(queryStringUpload)
            sparql.query() 
Run Code Online (Sandbox Code Playgroud)

以下是错误:

ARQLWrapper.SPARQLExceptions.QueryBadFormed: QueryBadFormed: a bad request has been sent to the endpoint, probably the sparql query is bad formed. 

Response:
MALFORMED QUERY: Lexical error at line 1, …
Run Code Online (Sandbox Code Playgroud)

python rdflib linked-data graphdb

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

GraphDB Free 8.8 Sparql INSERT 返回 400。不支持 INSERT?

我正在使用 GraphDB Free,并且正在尝试使用 sparql 将一些三元组插入到商店中。查询看起来像一个简单的 INSERT:

//Some Prefixes
INSERT DATA { subject predicate object }
Run Code Online (Sandbox Code Playgroud)

我使用 Postman 将请求正文中的查询 POST 到 SPARQL 端点,并使用 dotNetRdf 将查询提交到代码中的 SPARQL 端点。

我在上述两种方式中都收到以下错误:

MALFORMED QUERY: Encountered " "insert" "INSERT "" at line 5, column 1.
Was expecting one of:
    "base" ...
    "prefix" ...
    "select" ...
    "construct" ...
    "describe" ...
    "ask" ...
Run Code Online (Sandbox Code Playgroud)

在 SPARQL 表单中的 Workbench 中提交相同的 INSERT DATA { ... } 时按预期工作,因此 INSERT 没问题。

在文档GraphDB Sparql Comliance中提到支持 SPARQL 1.1 更新(包括插入数据)。Sparql 端点是否不支持提到的 Spaqrl 1.1 UPDATE …

sparql graphdb

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

RDF4j 和 GraphDB 存储库连接

我的 rdf4j 有问题:我想从我的 GraphDB 存储库中删除“Feed”所有带有feed:hashCode谓词的三元组。

第一个查询验证是否存在一个三元组,其中url参数作为主语,feed:hashCode作为谓语,并且hash参数具有宾语,并且它有效。如果我的存储库中不存在此语句,则第二个查询开始,它应该删除所有带有feed:hashCode谓词和url主语的三元组,但它不起作用,问题是什么?

这是代码:

public static boolean updateFeedQuery(String url, String hash) throws RDFParseException, RepositoryException, IOException{
    Boolean result=false;
    Repository repository = new SPARQLRepository("http://localhost:7200/repositories/Feed");
    repository.initialize();

    try {
        try (RepositoryConnection conn = repository.getConnection()) {
            BooleanQuery feedUrlQuery = conn.prepareBooleanQuery(
                    // @formatter:off
                    "PREFIX : <http://purl.org/rss/1.0/>\n" +
                    "PREFIX feed: <http://feed.org/>\n" +
                    "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n" +
                    "PREFIX dc: <http://purl.org/dc/elements/1.1/>\n" +
                    "ASK{\n" +
                    "<"+url+"> feed:hashCode \""+hash+"\";\n"+
                    "rdf:type :channel.\n" +
                    "}"
                    // @formatter:on
            ); …
Run Code Online (Sandbox Code Playgroud)

graphdb rdf4j

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

GraphDB Workbench 无法从 Protégé 加载 .owl 本体文件

我用 Protege 创建了一个本体,并将其保存为.owl文件。

当我尝试通过 Workbench Import -> RDF -> Upload RDF files将其加载到 GraphDB (8.9.0) 时(支持的 RDF 格式为 .ttl .rdf .rj .n3 .nt .nq .trig .trix .brf .owl .jsonld,以及它们的 .gz 版本和 .zip 档案)我收到错误:

RDF Parse Error: Content is not allowed in prolog. [line 1, column 1]

完整日志:

01:00:37.877 [import-task-Accounting-1] ERROR o.e.r.rio.helpers.ParseErrorLogger - [Rio fatal] Content is not allowed in prolog. (1, 1)
01:00:37.879 [import-task-Accounting-1] ERROR c.o.f.impex.FileImportRunnableTask - RDF Parse Error 
org.eclipse.rdf4j.rio.RDFParseException: Content is not allowed in …
Run Code Online (Sandbox Code Playgroud)

ontology protege graphdb

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

在 GraphDB 上启用 CORS

问题中的一切。
附加信息:

  • 使用 Win 10,GraphDB free,9.1.1 • RDF4J 3.0.1 • 连接器 12.0.2
  • 我在控制台中添加 => 设置,graphdb.workbench.cors.enable / true + Set + restart
  • 我还尝试在文件 C:\Users\admin\AppData\Local\GraphDB Free\app\GraphDB Free.cfg 的 [ArgOptions] 下设置参数“-Dgraphdb.workbench.cors.enable=true”+重新启动

并且我仍然收到“访问 ' http://localhost:7200/repositories/...from origin ' http://localhost:8080 ' 已被 CORS 策略阻止...

cors graphdb

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

where 子句中的单个值

您好,我有一个 SPARQL 查询,它在 where 子句中包含此内容

...
optional {
        ?v foo:thing ?something .
        $dontgetthis
        ?v bar:somethingelse ?otherthing .
...
}
...
Run Code Online (Sandbox Code Playgroud)

现在,我明白了大部分内容,除了一件事。我不明白$dontgetthis。这是什么意思? $dontgetthis不在查询中的其他任何地方使用。

rdf ontology sparql owlim graphdb

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

标签 统计

graphdb ×6

ontology ×2

sparql ×2

cors ×1

linked-data ×1

owlim ×1

protege ×1

python ×1

rdf ×1

rdf4j ×1

rdflib ×1