标签: sparql

Sparql:变量之间的算术运算符?

嗨我有这样的查询:

SELECT ?a ?b
WHERE
{
?c property:name "myThing"@en
?c property:firstValue ?b
?c property:secondValue ?a
}
Run Code Online (Sandbox Code Playgroud)

我如何划分第一个nuber和第二个?想要这样的事情:

SELECT ?a/?b
WHERE
{
?c property:name "myThing"@en
?c property:firstValue ?b
?c property:secondValue ?a
}
Run Code Online (Sandbox Code Playgroud)

谢谢

sparql

9
推荐指数
2
解决办法
7857
查看次数

计算节点之间的路径长度?

如何检索两个节点之间的路径长度?例如,给定组织层次结构,如何确定父组织和后代组织分离的距离?请考虑以下方案:

  1. OrgA -hasSubOrganization-> OrgB, OrgC

    这是一个非常简单的情况,我希望得到一个实体的所有直接子组织.因此路径长度为1.

  2. OrgA -> OrgB -> OrgC

    或一般情况

    OrgA -> OrgB - - - - - - - - OrgZ
    
    Run Code Online (Sandbox Code Playgroud)

我想以递归方式遍历图表,并通过该hasSubOrganization属性查找属于另一个组织的每个组织.为了让所有子组织递归,我可以使用属性路径,例如+运算符:

OrgA hasSubOrganization+ ?subOrg
Run Code Online (Sandbox Code Playgroud)

这将为我提供所有子组织,直到叶节点.但我的最终目标是构建组织层次结构,但有关"节点/步骤/级别/跳过子组织的数量"的信息将丢失.这意味着我无法为可视化重新创建组织结构.

除了子组织的名称之外,我如何捕获"节点数"信息?

rdf sparql jena

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

如何在java中构建SPARQL查询?

是否有一个库,它能够像CriteriaBuilderJPA 一样以编程方式构建SPARQL查询,或者像PreparedStatementfor SQL 一样构建查询?

类似(对于SQL):在Java中构建SQL字符串的最简洁方法

java string sparql

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

对两个图运行sparql查询?

指定图形的典型SPARQL查询可能如下所示:

SELECT ?b ?c WHERE { GRAPH <http://AliceIRI> {
<http://local.virt/foo> ?b ?c}}
Run Code Online (Sandbox Code Playgroud)

这将告诉我AliceIRI的所有三元组,其中"foo"是一个主题.如果我想查看两个不同的图表,我唯一的选择是做一个UNION:

SELECT ?b ?c WHERE {{ GRAPH <http://AliceIRI> {
<http://local.virt/foo> ?b ?c}}
UNION
{ GRAPH <http://BobIRI> {
<http://local.virt/foo> ?b ?c}}}
Run Code Online (Sandbox Code Playgroud)

或者是否有一些速记可以让我更方便地写这个,如下所示:

SELECT ?b ?c WHERE { GRAPH <http://AliceIRI> + <http://BobIRI> {
<http://local.virt/foo> ?b ?c}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我在Virtuoso 6.01.3127上.

更新1

为了澄清,我真的希望能够运行:

SELECT ?b ?c WHERE { GRAPH <http://AliceIRI> + <http://BobIRI> {
<http://local.virt/foo> ?b ?c .
<http://local.virt/bar> ?b ?c}}
Run Code Online (Sandbox Code Playgroud)

并有这场比赛?b,并?c使得<http://local.virt/foo> ?b ?c<http://AliceIRI><http://local.virt/bar> ?b …

union graph sparql

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

使用Jena TDB在本地加载DBpedia?

我需要对DBpedia执行查询:

SELECT DISTINCT ?poi ?lat ?long ?photos ?template ?type ?label WHERE {
  ?poi  <http://www.w3.org/2000/01/rdf-schema#label> ?label .
  ?poi <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?lat .
  ?poi <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?long .
  ?poi <http://dbpedia.org/property/hasPhotoCollection> ?photos .                      
  OPTIONAL {?poi <http://dbpedia.org/property/wikiPageUsesTemplate> ?template } .
  OPTIONAL {?poi <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?type } .
  FILTER ( ?lat > x && ?lat < y &&
           ?long > z && ?long < ? && 
           langMatches( lang(?label), "EN" ))
} 
Run Code Online (Sandbox Code Playgroud)

我猜这些信息分散在不同的转储(.nt)文件中,不知怎的,SPARQL端点为我们提供了结果集.我需要在本地下载这些不同的.nt文件(不是所有的DBpedia),只执行一次查询并在本地存储结果(我不想使用SPARQL端点).

  • 我应该在这一次运行中使用耶拿的哪些部分?

我从这篇文章中读到有点困惑:

因此,您可以将整个DBPedia数据加载到磁盘上的单个TDB位置(即单个目录).这样,您就可以对它运行SPARQL查询.

  • 如果我们有三个.nt DBpedia文件,如何以Jena术语将DBpedia加载到单个TDB位置?我们如何在这些.nt文件上应用上述查询?(任何代码都会有所帮助.)

  • 例如,这是错的吗?

 String tdbDirectory = "C:\\TDB";
 String dbdump1 = "C:\\Users\\dump1_en.nt"; …
Run Code Online (Sandbox Code Playgroud)

java semantic-web sparql jena dbpedia

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

SPARQL计算两个日期之间的差异

计算两个SPARQL xsd:dateTime之间差异的函数是什么?

我找到了对datediff的引用,但这不起作用.SPARQL中是否存在这样的内置函数,就像大多数其他查询语言一样?

date sparql

9
推荐指数
2
解决办法
5419
查看次数

使用SPARQL进行有限的RDFS和OWL推理

我目前正在使用rdflib在Python中创建和管理RDF图.但是,RDFlib不会进行任何RDFS或OWL推理.这导致如下结果:

  1. 如果我有

    A rdf:type MyType .
    MyType rdfs:subClassOf SuperType .
    
    Run Code Online (Sandbox Code Playgroud)

    我问

    select ?x where {?x rdf:type SuperType}
    
    Run Code Online (Sandbox Code Playgroud)

    然后我什么都没得到,但我想得到A(通过RDFS语义).

  2. 同样的事情发生在owl:equivalentClass.如果我有

    A rdf:type MyType .
    MyType owl:equivalentClass SiblingType .
    
    Run Code Online (Sandbox Code Playgroud)

    我问

    select ?x where {?x rdf:type SiblingType}
    
    Run Code Online (Sandbox Code Playgroud)

    我想得到A,但我一无所获.

有没有办法获得这些结果?

python rdf owl sparql rdflib

9
推荐指数
2
解决办法
1771
查看次数

如何在MarkLogic中处理不区分大小写的SPARQL数据

我试图理解如何最好地处理Marklogic SPARQL数据中的文字,这在任何情况下都可能.我希望能够进行不区分大小写的搜索,但我相信语义查询是不可能的.我想要一个简单的例子:

SELECT *
WHERE { ?s ?p "Red"}
Run Code Online (Sandbox Code Playgroud)

SELECT *
WHERE { ?s ?p "red"}
Run Code Online (Sandbox Code Playgroud)

返回所有值,无论对象是"红色","红色","红色"还是"rED".

我的数据来自另一个具有可变大写规则的来源.目前我唯一能想到的是添加一个额外的三元组,它总是包含小写的文本,所以我总是可以搜索该值.或者,使用不区分大小写的排序规则在MarkLogic中创建一些新的范围查询是否有意义(如果可以在三重数据上进行)?

rdf sparql marklogic

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

Protege中的SPARQL Query选项卡不显示任何内容

我打开Protege中的SPARQL Query选项卡但结果如下:

在此输入图像描述

我怎么写我的查询?

owl sparql protege

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

将多个参数传递给GraphQL查询

第一件事

欣赏这可能是一个愚蠢的问题,但我正在使用来自RDF/Linked Data世界的GraphQL,并且在我如何返回集合时遇到很多麻烦.基本上我想要一些我可以选择的东西,让我们说一下Characters(使用GraphQL文档中的例子)的列表id.在SPARQL中,我将使用该VALUES子句然后绑定,如:

VALUES { <http://uri/id-1> <http://uri/id-2> <http://uri/id-3> }
Run Code Online (Sandbox Code Playgroud)

我假设这样的东西就是我想要的东西(伪代码)

{
  human(id: ["1", "2", "3", "4", "5"]) {
    name
    height
  }
}
Run Code Online (Sandbox Code Playgroud)

别名有点做我想要的,但我不想提前或手动指定不同的命名返回值是什么 - 我想在我的代码中传递一个ID列表:

[1 2 3 4 5]
Run Code Online (Sandbox Code Playgroud)

...并且有一个可以接受该ID数组的查询,并根据上面的伪查询返回一个可预测的非标量形状.

第二件事

我也假设事实上不可能让查询解析为Human或者[Human]- 它必须是一个或另一个?如果是这样的话,没什么大不了的,我只会满足于后者......但我想我现在对这个问题一般很困惑.

sparql graphql

9
推荐指数
2
解决办法
6573
查看次数

标签 统计

sparql ×10

rdf ×3

java ×2

jena ×2

owl ×2

date ×1

dbpedia ×1

graph ×1

graphql ×1

marklogic ×1

protege ×1

python ×1

rdflib ×1

semantic-web ×1

string ×1

union ×1