首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EasyRdf内存耗尽

EasyRdf内存耗尽
EN

Stack Overflow用户
提问于 2021-03-26 11:36:24
回答 1查看 53关注 0票数 0

我使用的是使用链接电影数据库的EasyRdf库。在第一次尝试时,它给出了错误的最大内存利用率,然后我将内存限制设置为999G,这耗尽了我的pc。以下是我的代码和URL来使用数据库文件。

下载后本地使用的链接电影数据库链接(https://data.world/linked-data/linkedmdb)。

代码语言:javascript
复制
    $query1 =file_get_contents(Yii::getAlias('@app').'\web\rdfs\linkedmovies1.txt');     
    $foaf = new \EasyRdf\Sparql\Client($url);
    $result =  $foaf->query($query1);
    echo "<pre>";
    print_r($result);

需要一些提示才能执行此操作。

EN

回答 1

Stack Overflow用户

发布于 2021-03-30 17:00:33

EasyRdf不是为处理内存中的大型数据集而设计的。它的目的是在通过一些其他方法缩小数据集的范围后,帮助格式化和显示网页上的数据。

我刚试着把linkedmdb-18-05-2009-dump.nt加载到Fuseki中。它不喜欢其中的一些三元组--我不得不用我的文本编辑器用<http://data.linkedmdb.org/country/iso#alpha2>替换<http://data.linkedmdb.org/country/iso alpha2>。在那之后,它加载得很好。

我写了一个SPARQL查询,查找汤姆·汉克斯演过的所有电影,按标签排序:

代码语言:javascript
复制
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX lmdb: <http://data.linkedmdb.org/movie/>

SELECT ?film ?label
WHERE {
  ?film a lmdb:film .
  ?film rdfs:label ?label .
  ?film lmdb:actor <http://data.linkedmdb.org/actor/28255> .
}
ORDER BY ?label

然后,我编写了以下PHP脚本来测试查询加载到DataBase中的链接电影Fuseki数据集:

代码语言:javascript
复制
<?php

require_once realpath(__DIR__.'/..')."/vendor/autoload.php";

$SPARQL_QUERY = file_get_contents('lmdb_query.txt');
$SPARQL_ENDPOINT = 'http://127.0.0.1:3030/ds/sparql';

$sparql = new \EasyRdf\Sparql\Client($SPARQL_ENDPOINT);
$results = $sparql->query($SPARQL_QUERY);

print "<table>\n";
foreach ($results as $row) {
  print "<tr> <td>$row->film</td> <td>$row->label</td> </tr>\n";
}
print "</table>\n";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66810680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档