我不太明白为什么在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) 在我的这个工作层面,我需要从MeSH本体中提取一个类同义词.我正在寻找SPARQL查询的正确语法:它们如何存储在MeSH中的同义词?我该如何提取它们?
如果我想要返回三重奏的"玩乐"结果.我不知道如何解释这两个词之间的空间.下面是我试过的一个查询,但它没有用.让我知道是否有人能够发现我做错了什么
<rdf:Description rdf:about="http://website.com/urls/playing games">
<owl:sameAs rdf:resource="http://website.com/urls/having fun"/>
</rdf:Description>
"PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT * WHERE { ?y owl:sameAs+ <http://website.com/urls/playing fun> }";
Run Code Online (Sandbox Code Playgroud) 我试图插入一个格式如下的对象:
$scope.newObj = {1: "N/A", 2: "KO", 3: "OK", 4: "OK", 5: "OK", 15: "N/A", 19: "OK"}
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下for循环:
var objt = $scope.newObject;
console.log($scope.newObject[0]) // undefined
for(i=0;i<$scope.newObj.length;i++)
{
$http.post("insert?etat="+$scope.newObject[0]+"&id="+Object.keys(objt))
}
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.我undefined到处都是.有没有人知道如何逐行从该对象检索数据然后将值插入服务?
from __future__ import print_function # Python 2/3 compatibility
import boto3
import json
import decimal
#kinesis = boto3.resource('kinesis', region_name='eu-west-1')
client = boto3.client('kinesis')
with open("questions.json") as json_file:
questions = json.load(json_file)
Records = []
count = 0
for question in questions:
value1 = question['value']
if value1 is None:
value1 = '0'
record = { 'StreamName':'LoadtestKinesis', 'Data':b'question','PartitionKey':'value1' }
Records.append(record)
count +=1
if count == 500:
response = client.put_records(Records)
Records = []
Run Code Online (Sandbox Code Playgroud)
这是我的python脚本,用于将json文件数组加载到kinesis流中,在这里我将合并500条记录以使用put_recordsfunction。但我收到一个错误:put_records() only accepts keyword arguments。如何将记录列表传递给此方法?每个记录都是带有分区键的 …
假设我们有两个名为People和 的类Disease。这些类通过对象属性相关has。
:People :has :Disease
Run Code Online (Sandbox Code Playgroud)
People有子类(或个体)John,并且Disease有子类(或个体)Cancer。
:John a :People
:Cancer a :Disease
Run Code Online (Sandbox Code Playgroud)
如何通过推理得到这些子类之间的关系呢?
:John :has :Cancer
Run Code Online (Sandbox Code Playgroud) 我在MarklLogic中有一组JSON文档,我希望将其作为JSON数组返回到API调用.
fn.collection('my-users')
Run Code Online (Sandbox Code Playgroud)
返回一系列JSON文档,我需要一个有效的JSON对象,一个数组.我在服务器端java脚本中执行此操作,推送到新的空数组().
据我所知,没有真正的示例文档,仅在XQuery中有一些例子.Google 在这里一直提到这个非常高级的文档
var myArray = [];
for (d of fn.collection('my-users')){
myArray.push(d);
}
myArray
Run Code Online (Sandbox Code Playgroud)
我是否需要遍历序列中的每个项目以推送到阵列或是否有更优雅/更快的解决方案?
雨果
这是关于Sparql和Wikidata的问题.我想制定一个返回实例类型关系的查询,但如果它不可用则返回其子类.我试过了:
SELECT DISTINCT ?ent_type WHERE {
{ wd:Q7696957 wdt:P31 ?instanceof . } UNION
{ wd:Q7696957 wdt:P31/wdt:P279? ?subclass . } UNION
{ wd:Q7696957 wdt:P279* ?subclass . }
BIND ( IF (BOUND (?instanceof), ?instanceof, ?subclass ) as ?ent_type )
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这会返回所有解决方案,而我只想要一个解决方案
ent_type
----------
wd:Q811979
wd:Q386724
wd:Q811430
wd:Q7696957
Run Code Online (Sandbox Code Playgroud) 我正在编写 SPARQL 查询来获取 DBpedia 中可用的所有 Person。我的查询是->
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT ?resource ?name
WHERE {
?resource rdf:type dbo:Person;
dbp:name ?name.
FILTER (lang(?name) = 'en')
}
ORDER BY ASC(?name)
Run Code Online (Sandbox Code Playgroud)
当我以 HTML/csv/电子表格格式输出时,它给出了大约 10000 行。但是当我查询以获得总数时
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT COUNT(*)
WHERE{
?resource rdf:type dbo:Person;
dbp:name ?name.
FILTER (lang(?name) = 'en')
}
Run Code Online (Sandbox Code Playgroud)
它正在给予 -> 1783404
任何人都可以建议一个解决方案来获取 DBpedia 中可用的所有 Person 行吗?
我为分组结果做了sparql查询,并通过SPARQL端点http://glam.iptime.org/sparql执行了查询.
但是,我没有得到任何结果,也没有错误消息.
查询如下.
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX cfo: <http://lod.culture.go.kr/ontology/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?age ?typeName (count(?s) as ?cnt)
WHERE {
{
select * where {
?s rdf:type cfo:CulturalObject.
?s rdfs:label ?label.
?s cfo:temporal ?time.
?time cfo:begin ?begin.
BIND (STRDT(replace(?begin, 'BC', '-'), xsd:float) as ?year).
BIND(IF(?year > 1897, "modern", IF(?year > 1392, "chosun", IF(?year > 918, "goryeo", IF(?year > 700, "north_south", IF(?year > -58, "three_states", "ancient"))))) as ?age).
?s dc:type …Run Code Online (Sandbox Code Playgroud) 我最近进入了语义网的世界。到目前为止,一切都很顺利。重点是...我正试图从dbpedia中获取Articles,但是我却没有得到结果。对于我在DBpedia本体中看到的内容,我认为这应该是正确的。Article是WrittenWork的“子类”,Book也是。我可以通过rdf三元组获取书籍及其信息。当使用与书本查询几乎相同的SPARQL查询时,我没有得到结果。这很奇怪,因为我知道Wikipedia中有对文章的引用。
查询书籍:
SELECT DISTINCT ?book
WHERE { ?book a dbo:Book . }
Run Code Online (Sandbox Code Playgroud)
如果我用dbo:Book代替dbo:Article,我什么也收不到。我在这里测试:http : //dbpedia.org/sparql
有人可以指出正确的方向吗?
我想从DBPedia中提取5个电影(或电影)个人的图形。
我的查询是:
ParameterizedSparqlString qs = new ParameterizedSparqlString(“ +
” construct {?s?p?o}“ +” where {?http://dbpedia.org/ontology/Film。"+“?s?p?o”}偏移量0 LIMIT 5“);
我得到以下结果:
1- http://dbpedia.org/resource/1001_Inventions_and_the_World_of_Ibn_Al-Haytham http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/ontology/Film。
2- http://dbpedia.org/resource/1001_Inventions_and_the_World_of_Ibn_Al-Haytham http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2002/ 07 / owl#Thing。
3- http://dbpedia.org/resource/1001_Inventions_and_the_World_of_Ibn_Al-Haytham http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.wikidata.org/entity/ Q386724。
4- http://dbpedia.org/resource/1001_Inventions_and_the_World_of_Ibn_Al-Haytham http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/ontology/Wikidata: Q11424。
5- http://dbpedia.org/resource/1001_Inventions_and_the_World_of_Ibn_Al-Haytham http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/ontology/Work。
问题:相同的影片是所有类别的5次返回:Film,Thing,Q386724,WIKIdata:Q11424和Work是等效类别(或存在Subclass关系)。
我的问题:
我想一次返回
<http://dbpedia.org/resource/1001_Inventions_and_the_World_of_Ibn_Al-Haytham>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://dbpedia.org/ontology/Film> .
Run Code Online (Sandbox Code Playgroud)
并滤除其他4个三元组
怎么办?
先感谢您
我对RDF/SPARQL比较陌生,我正试图将一些N-Quad,4列/四列数据导入并查询到Blazegraph(参见schemaOrgEvent.sample.txt).
当我导入Quads数据(Web控制台)时,我只剩下基于三元组的3列元组数据,即Blazegraph只允许SPARQL查询选择{?s?p?o},但是四重选择{?s? p?o?c},不要.我究竟做错了什么???
Blazegraph可以原生存储4列Quad数据,还是我误解了RDF/Triple/Quad存储的性质?
com.bigdata.rdf.store.AbstractTripleStore.quads=true此外,导入的四元数据以及三元组(标准化???)似乎将第1列转换为另一列,Blazegraph提供的(?),标识符,原始(Quad)数据格式为(4列)
_:node03f536f724c9d62eb9acac3ef91faa9 <http://schema.org/PostalAddress/addressRegion> "Kentucky"@en <http://concerts.eventful.com/Lauren-Alaina> .
Run Code Online (Sandbox Code Playgroud)
导入后(3列):
t1702 schema:PostalAddress/addressRegion Kentucky
Run Code Online (Sandbox Code Playgroud)
谁的查询是:
SELECT * WHERE
{
?s ?p ?o
#?s ?p ?o ?c - Won't work :-(
FILTER(STR(?o)="Kentucky")
}
Run Code Online (Sandbox Code Playgroud)
值't1702'是各种各样的'外键',可用于链接到其他三元组(即在导入日期内重复).
sparql ×9
dbpedia ×3
jena ×2
owl ×2
rdf ×2
semantic-web ×2
angularjs ×1
arq ×1
blazegraph ×1
boto3 ×1
inference ×1
javascript ×1
json ×1
linked-data ×1
marklogic ×1
ontology ×1
protege ×1
python ×1
reasoning ×1
stardog ×1
triplestore ×1
uri ×1
wikidata ×1