标签: sparql

如何将变量绑定到SPARQL中的查询项

在这个简单的sparql查询中,我得到了一个对象列表,其对象是42

SELECT ?v WHERE { ?v ?p 42 }
Run Code Online (Sandbox Code Playgroud)

如果我将?p添加为变量

SELECT ?v ?p WHERE { ?v ?p 42 }
Run Code Online (Sandbox Code Playgroud)

我将获得每行两个实体,主题和谓词.如果我想要三个实体怎么办,包括42个?就像是:

SELECT ?v ?p ?m WHERE { ?v ?p (42 as m) }
Run Code Online (Sandbox Code Playgroud)

sparql

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

我如何开始使用Sparql作为.NET开发人员?

我正在尝试解析Project Gutenberg的大型RDF文件.我的团队的另一名成员非常困难,尝试过Semweb和python库.

由于对rdf有点天真,我试着在Ruby中编写一个简单的ol'xml解析脚本.我很快就意识到它真的太复杂了.

我已经下载了Intellidimension的工具,并且正在考虑使用它.

我想我不明白如何使用SPARQL.似乎Java中有一个名为Jena的解析器.在.NET中有类似的东西吗?

抱歉显而易见的问题....我只是不确定在哪里编写SPARQL查询.是否有一个库允许我使用字符串构建一个查询,类似于Data.SQlClient,然后针对某些Sparql处理器执行?

你对Sparql执行什么操作?

.net sparql

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

在SPARQL中选择一些不同的和一些不同的标记

我正在尝试查询DBPedia以获取与本体中给定类相关的属性列表,但由于人类可读的"标签"并不总是清晰,我还想提供数据库中的示例.问题是,虽然我想选择所有不同的属性,但我只想要每个属性的一个例子.以下是我的查询在不捕获示例的情况下的外观:

SELECT DISTINCT ?prop ?title WHERE {
    ?thing ?prop [].
    ?thing a <http://dbpedia.org/ontology/Currency>.
    ?prop rdf:type rdf:Property.
    ?prop rdfs:label ?title.
} ORDER BY DESC(COUNT(DISTINCT ?thing))
LIMIT 100
Run Code Online (Sandbox Code Playgroud)

如果我以这种方式更改它,我开始为?prop获取重复值:

SELECT DISTINCT ?prop ?title ?example WHERE {
    ?thing ?prop ?example.
    ?thing a <http://dbpedia.org/ontology/Currency>.
    ?prop rdf:type rdf:Property.
    ?prop rdfs:label ?title.
} ORDER BY DESC(COUNT(DISTINCT ?thing))
LIMIT 100
Run Code Online (Sandbox Code Playgroud)

我一般都非常习惯使用SPARQL和数据库查询,因此我不清楚如何执行此操作.理想情况下,我有类似DISTINCT(?prop)?title?example的内容,它为prop选择每个唯一值,并返回其标题和示例.

rdf distinct sparql dbpedia

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

查询DBpedia以获取英文描述(使用SPARQL)

我正在使用此SPARQL查询查询dbpedia.org以获取有关Big Ben的描述:

select ?desc 
where {
<http://dbpedia.org/resource/Big_Ben> <http://www.w3.org/2000/01/rdf-schema#comment> ?desc
}
Run Code Online (Sandbox Code Playgroud)

这将返回至少10种不同语言的描述列表.如何指定我只想要英文描述?

rdf semantic-web sparql dbpedia

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

SPARQL 1.1:如何使用replace函数?

如何在SPARQL 1.1中使用replace函数,尤其是在更新命令中?

例如,如果我有多个三元组?s?p?o其中?o是一个字符串,对于所有三元组,其中包含字符串"gotit"我想插入一个额外的三元组,其中"gotit"被替换为" "我怎么能这样做?我试图实现这是芝麻2.6.0.

我尝试了这种天真的方法:

INSERT { ?s ?p replace(?o,"gotit","haveit","i") . }
WHERE { ?s ?p ?o . FILTER(regex(?o,"gotit","i")) }
Run Code Online (Sandbox Code Playgroud)

但这导致语法错误.

我也无法在查询的结果列表中使用replace,如下所示:

SELECT ?s ?p (replace(?o,"gotit","haveit","i") as ?r) WHERE { .... }
Run Code Online (Sandbox Code Playgroud)

遗憾的是,SPARQL文档不包含如何使用此函数的示例.

是否有可能使用函数来创建新值而不仅仅是测试现有值,如果是,如何?

sesame replace sparql

12
推荐指数
2
解决办法
8472
查看次数

在SPARQL查询中指定多个rdf:类型

我有这样的SPARQL查询

PREFIX prefix: <http://example.org/ns#>
SELECT *
WHERE 
{
    ?x rdf:type ?type .
}
Run Code Online (Sandbox Code Playgroud)

假设现在我想指定的类型?typeprefix:type1或者prefix:type2; 该怎么做?

rdf sparql

12
推荐指数
3
解决办法
7554
查看次数

从维基数据中获取可读结果

好的,我正试图从维基数据中获取有关电影的信息,以此电影为例:https://www.wikidata.org/wiki/Q24871

在页面上,数据以可读格式清晰显示,但是当您尝试通过API提取数据时,您会得到以下信息:https://www.wikidata.org/w/api.php?action = wbgetentities &ids = Q24871

这是一个部分:

"P272": [
                {
                    "id": "q24871$4721C959-0FCF-49D4-9265-E4FAC217CB6E",
                    "mainsnak": {
                        "snaktype": "value",
                        "property": "P272",
                        "datatype": "wikibase-item",
                        "datavalue": {
                            "value": {
                                "entity-type": "item",
                                "numeric-id": 775450
                            },
                            "type": "wikibase-entityid"
                        }
                    },
                    "type": "statement",
                    "rank": "normal"
                },
                {
                    "id": "q24871$31777445-1068-4C38-9B4B-96362577C442",
                    "mainsnak": {
                        "snaktype": "value",
                        "property": "P272",
                        "datatype": "wikibase-item",
                        "datavalue": {
                            "value": {
                                "entity-type": "item",
                                "numeric-id": 3041294
                            },
                            "type": "wikibase-entityid"
                        }
                    },
                    "type": "statement",
                    "rank": "normal"
                },
                {
                    "id": "q24871$08009F7A-8E54-48C3-92D9-75DEF4CF3E8D",
                    "mainsnak": {
                        "snaktype": …
Run Code Online (Sandbox Code Playgroud)

json sparql wikidata wikidata-api

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

使用公共可用数据中的SPARQL下载GeoJSON边界

我有兴趣从statistics.gov.scot下载一些边界文件,这是一个官方统计存储库,用于共享利用SPARQL查询的统计数据.

背景

Statistics.gov.scot提供对多个管理和统计地理区域的GeoJSON边界的访问,例如地方当局管理边界健康委员会.在我的特定情况下,我有兴趣下载一个与数据区有关的GeoJSON边界的数据集.数据区是为在小范围内传播生命结果数据而开发的统计地理区域.通过 statistics.gov.scot访问时,样本数据区看起来像这样:

示例数据区

可在此处访问地理位置和相关数据.相应的GeoJSON数据可在此处获得.

问题

数据区有两次迭代,2004年生产,另一次最近更新.我想下载2004年制作的第一次迭代.根据有关统计实体的信息,我起草了以下查询:

PREFIX entity: <http://statistics.data.gov.uk/def/statistical-entity#>
PREFIX boundaries: <http://statistics.gov.scot/boundaries/>

SELECT ?boundary 
    WHERE {
        entity:introduced <http://reference.data.gov.uk/id/day/2004-02-01>
  }

LIMIT 1000
Run Code Online (Sandbox Code Playgroud)

返回以下错误消息:

Error There was a syntax error in your query: Encountered " "}" "} "" at line 7,
column 3. Was expecting one of: <IRIref> ... <PNAME_NS> ... <PNAME_LN> ...
<BLANK_NODE_LABEL> ... <VAR1> ... <VAR2> ... "true" ... …
Run Code Online (Sandbox Code Playgroud)

rdf sparql opendata geojson linked-data

12
推荐指数
2
解决办法
297
查看次数

如何在DBpedia SPARQL请求中跳过错误日期?

我需要从DBpedia获取有关电影的数据.

我在http://dbpedia-live.openlinksw.com/sparql上使用SPARQL查询如下:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?subject ?label ?released WHERE {
  ?subject rdf:type <http://dbpedia.org/ontology/Film>.
  ?subject rdfs:label ?label.
  ?subject <http://dbpedia.org/ontology/releaseDate> ?released.
  FILTER(xsd:date(?released) >= "2000-01-01"^^xsd:date).
} ORDER BY ?released
LIMIT 20
Run Code Online (Sandbox Code Playgroud)

我试图获得2000年1月1日之后发行的电影.但引擎答案如下:

Virtuoso 22007 Error DT006: Cannot convert 2009-06-31 to datetime : 
Too many days (31, the month has only 30)

SPARQL query:
define sql:big-data-const 0 
#output-format:text/html
define sql:signal-void-variables 1 define input:default-graph-uri <http://dbpedia.org> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?subject …
Run Code Online (Sandbox Code Playgroud)

sparql dbpedia virtuoso

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

使用SPARQL通过其字符串名称检索DBpedia资源,但不知道其类型

如此问题中显示的标题类似,我想通过知道其名称的一部分来检索dbpedia资源.我是一个初学者,当谈到SPARQL等,但在关注的例子对我帮助很大,因为笔者搜索了"罗马尼亚",而该人回答他迷上了一个SPARQL要求做的工作.这很好,但这就是事情.

在这个例子中,他们已经"知道"罗马尼亚是一个国家,因此

    ?c a dbpedia-owl:Country ;
Run Code Online (Sandbox Code Playgroud)

在WHERE子句中.完整的sparql请求正在

    SELECT ?c
    WHERE {
    ?c a dbpedia-owl:Country ;
    foaf:name "Romania"@en .
    FILTER NOT EXISTS {?c dbpedia-owl:dissolutionYear ?y}
    } 
Run Code Online (Sandbox Code Playgroud)

但是,这个问题并不十分完整地回答我们的需求,因此寻找其名称的任何资源,在"名称"作为一个资源,或它的一部分的实际名称,不管它的(RDF:)类型.目标是搜索"任何东西",只知道名称或其中的一部分.

我一直在做一些研究,问你们这个问题之前,我已经知道这个问题"这个名字的一部分"可以用BIF功能来解决(糟糕的方法,因为它不是SparQL兼容),或CONTAINS子句,但我找不到任何展示如何使用它的例子.

现在让我们假设在dbpedia资源中有一个"单词"来搜索,该单词将是来自某个用户的输入.我们称之为"输入".

我想,这个请求看起来像:

   SELECT ?something WHERE
   {
    ?something a (dbpedia Resource).
    CONTAINS(?something,"INPUT")
   }
Run Code Online (Sandbox Code Playgroud)

我的主要问题是两个主要方面:

  1. 有没有描述Dbpedia资源类型的东西?我认为这不是本体论或其他任何东西.通过knwoing我想搜索所有资源,找到一个匹配...
  2. 我将提供的特定名称,或一些字符串.我认为过滤器选项,但是这将意味着让所有的资源,然后通过自己的名字筛选他们,他们已经retreived后,这将是,我想,没有这么完美.

那么,有没有人知道这个"主查询"通过提供其名称或其中的一部分来获取资源?(一个例子是提供"奥巴马",并且不仅为巴拉克而且为米歇尔获得结果).

先感谢您.

rdf full-text-search foaf sparql dbpedia

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