如果三重商店包含两倍于相同的三元组,那么(如果存在的话)关于此冗余的权威位置是什么?
另外,是否允许三元组在同一上下文中存储两次相同的三元组?
我问这个是因为在rdflib显然你可以存储两次(或更多)相同的三倍.这是读者
import rdflib
from rdflib import store
s = rdflib.plugin.get('MySQL', store.Store)('rdfstore')
config_string = "host=localhost,password=foo,user=foo,db=foo"
rt = s.open(config_string,create=False)
if rt != store.VALID_STORE:
s.open(config_string,create=True)
graph = rdflib.ConjunctiveGraph(s, identifier = rdflib.URIRef("urn:uuid:a19f9b78-cc43-4866-b9a1-4b009fe91f52"))
rows = graph.query("SELECT ?id ?value { ?id <http://localhost#ha> ?value . }")
for r in rows:
print r[0], r[1]
Run Code Online (Sandbox Code Playgroud)
这是作家
import rdflib
from rdflib import store
s = rdflib.plugin.get('MySQL', store.Store)('rdfstore')
config_string = "host=localhost,password=foo,user=foo,db=foo"
rt = s.open(config_string,create=False)
if rt != store.VALID_STORE:
s.open(config_string,create=True)
graph = rdflib.ConjunctiveGraph(s, identifier = rdflib.URIRef("urn:uuid:a19f9b78-cc43-4866-b9a1-4b009fe91f52"))
graph.add( ( rdflib.URIRef("http://localhost/1000"), rdflib.URIRef("http://localhost#ha"), …
Run Code Online (Sandbox Code Playgroud) 我需要知道4store如何在数据库中保持它的三元组,如果它像一个包含3列的表,一个用于三元组中的每个元素,或者它是另一种方式
我已经开始使用triplestores和RDF来存储图像元数据,但我无法理解如何将整数值放入RDF/XML.
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exif="http://penkov.me/exif/">
<rdf:Description rdf:about="http://penkov.me/images/0">
<exif:SourceFile>./205CANON/_MG_0538.CR2</exif:SourceFile>
<exif:Make>Canon</exif:Make>
<exif:FocalLength>50</exif:FocalLength>
</rdf:Description>
</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)
我猜50
在<exif:FocalLength>
tag中将被三元组视为一个字符串,并且不可能对该值进行范围查询.
- Using openrdf-sesame-latest
- Using in-memory repository in Sesame Standalone Server
- Using REST api interface (SPARQL queries) to Sesame Standalone server
- Have few hundred thousands triples for now
- have 16GB of memory on Sesame Server
- Moderate writes and reads
Run Code Online (Sandbox Code Playgroud)
我只是在这里寻求专家的意见/帮助
我把它作为POC开始,然后在它上面构建我的应用程序.我正在寻找4Stores和Mulgara,Alleograph(免费)选项.
只是我正在努力避免在移民时投入时间,除非绝对需要.让我换一种说法"我可以在生产中使用带有内存存储库(16GB)的openrdf-sesame-latest独立服务器吗?如果没有,为什么不呢?
我有一个关于使用 SPARQL 从三元组存储(在我的例子中是 Virtuoso)中删除元素的问题。我已将以下元素存储在图表中:
@prefix xy: <http://purl.oclc.org/xy/xy#> .
@prefix ssn: <http://purl.oclc.org/NET/ssnx/ssn#> .
<point> a xy:Point ;
xy:value "10" ;
ssn:observationResultTime <Rs_b8d4ae44-6083-4140-b4e3-11fcf38a53c8> ;
ssn:observationSamplingTime <St_b8d4ae44-6083-4140-b4e3-11fcf38a53c8> ;
ssn:observedBy <SensorID-b8d4ae44-6083-4140-b4e3-11fcf38a53c8> .
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我有一个 xy:Point,它具有一些属性。在我的数据库中,我存储了数十个这样的点。现在我的问题是:如何删除一个点及其所有属性(甚至是观察采样时间、观察结果时间可能链接的子属性)?有什么简单的解决办法吗?现在,我通过给出所有精确关系来删除该点及其属性,例如:
@prefix xy: <http://purl.oclc.org/xy/xy#> .
@prefix ssn: <http://purl.oclc.org/NET/ssnx/ssn#>
delete {
?observation a xy:Point .
?observation xy:value ?value .
?observation ssn:observationResultTime ?resultTime .
?observation ssn:observationSamplingTime ?samplingTime .
?observation ssn:observedBy ?sensor .
}
WHERE {
?observation xy:value ?value .
?observation ssn:observationResultTime ?resultTime .
?observation ssn:observationSamplingTime ?samplingTime .
?observation ssn:observedBy ?sensor .
}
Run Code Online (Sandbox Code Playgroud)
我想做的是“删除?观察 …
这在开始时似乎是一件小事,但到目前为止,我还没有设法使用SPARQL获取给定资源的唯一标识符.我的意思是,例如,rdf:Description rdf:about="http://..."
然后一些属性识别此资源,我想要做的是首先找到这个非常资源,然后检索给定一些URI的所有三元组.
我通过在一个WHERE
子句中编写语句来尝试天真的方法,例如:
?x rdf:about ?y and ?x rdfs:about ?y
Run Code Online (Sandbox Code Playgroud)
我希望我是准确的.
我可以通过按此页面上的绿色大按钮来下载freebase转储:https://developers.google.com/freebase/data
但我需要把它放到我只有远程终端访问权限的服务器上,有没有人知道如何wget
或以某种方式通过终端下载freebase转储?
最近,我根据匹配模式删除一些数据?s a :answers
,我注意到,如果两个条件块相同,我只能正确地进行删除:
PREFIX : <http://localhost:2020/vocab/>
DELETE {
?s a :answers
}
WHERE {
?s a :answers
}
# returns all the correct data
Run Code Online (Sandbox Code Playgroud)
如果删除块更通用,则不会返回任何内容:
PREFIX : <http://localhost:2020/vocab/>
DELETE {
?s ?p ?o
}
WHERE {
?s a :answers
}
# returns 0 rows
Run Code Online (Sandbox Code Playgroud)
拥有两组不同的条件(花括号之间的内容:)的目的是什么{...}
?究竟是哪一个选择了要删除的数据?
我正在尝试创建一个 sparql 查询,该查询返回“主题”列为“ http://purl.org/dc/elements/1.1/creator ”的每一列。
在sql中,应该是这样的:
SELECT * WHERE Subject = "<http://purl.org/dc/elements/1.1/creator>"
Run Code Online (Sandbox Code Playgroud)
接近我想要的 sparql 查询如下所示:
SELECT ?subject ?predicate ?object
WHERE {
<http://purl.org/dc/elements/1.1/creator> ?object ?predicate optional {
?subject ?predicate ?object
}
}
Run Code Online (Sandbox Code Playgroud)
它返回一个包含所有三列的表,但 ?subject 列由于某种原因为空。?predicate 和 ?object 列不为空并显示正确的数据。
谁能帮我解决这个问题?
非常感谢:D
下面的两个查询有什么区别吗?
select distinct ?i
where{
?i rdf:type <http://foo/bar#A>.
FILTER EXISTS {
?i <http://foo/bar#hasB> ?b.
?b rdf:type <http://foo/bar#B1>.
}
}
select distinct ?i
where{
FILTER EXISTS {
?i <http://foo/bar#hasB> ?b.
?b rdf:type <http://foo/bar#B1>.
}
?i rdf:type <http://foo/bar#A>.
}
Run Code Online (Sandbox Code Playgroud)
性能或结果存在差异吗?