首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EasyRdf在DBpedia上的SPARQL查询

EasyRdf在DBpedia上的SPARQL查询
EN

Stack Overflow用户
提问于 2015-05-01 14:37:43
回答 1查看 667关注 0票数 0

我想从DBpedia SPARQL中获得有关一个人的所有信息。第一个问题是,请求花了太长时间。第二,我没有得到任何关于我要找的人的信息。我不知道我做错了什么?

我的守则:

代码语言:javascript
复制
require_once "EasyRdf.php";
require_once "html_tag_helpers.php";
// Setup some additional prefixes for DBpedia
EasyRdf_Namespace::set('category', 'http://dbpedia.org/resource/Category:');
EasyRdf_Namespace::set('dbpedia', 'http://dbpedia.org/resource/');
EasyRdf_Namespace::set('dbo', 'http://dbpedia.org/ontology/');
EasyRdf_Namespace::set('dbp', 'http://dbpedia.org/property/');
$sparql = new EasyRdf_Sparql_Client('http://dbpedia.org/sparql');
$result = $sparql->query(
    'SELECT *
        WHERE {
          ?person foaf:name ?name.
          ?person foaf:name ?name.
          FILTER(regex(?person,"John Lennon"))
        }
    '
);
echo "<pre>";
print_r($result);

我的结果是:

代码语言:javascript
复制
EasyRdf_Sparql_Result Object
(
    [type:EasyRdf_Sparql_Result:private] => bindings
    [boolean:EasyRdf_Sparql_Result:private] => 
    [ordered:EasyRdf_Sparql_Result:private] => 
    [distinct:EasyRdf_Sparql_Result:private] => 
    [fields:EasyRdf_Sparql_Result:private] => Array
        (
            [0] => person
            [1] => name
        )

    [storage:ArrayIterator:private] => Array
        (
        )

)
EN

回答 1

Stack Overflow用户

发布于 2015-05-01 17:36:42

你不会得到这样的结果:

代码语言:javascript
复制
regex(?person,"John Lennon"

因为?person的值是URI,而不是字符串,URI不包含空格。相反,您可以查询具有实际名称的个人(不要忘记语言标记),如下所示:

代码语言:javascript
复制
select * where {
  ?resource foaf:name "John Lennon"@en
}

SPARQL结果

我想得到所有的信息

如果要获取有关某个人的所有属性值,可以使用以下内容扩展查询:

代码语言:javascript
复制
select ?subject ?property ?object { 
  ?resource foaf:name "John Lennon"@en ;
            ?property ?object .
}

当然,这只会检索数据,而这个人是三元组的主题,但您也可能关心这个人也是三元组的对象,在这种情况下,您可能会选择:

代码语言:javascript
复制
describe ?person where {
  ?person foaf:name "John Lennon"@en
}

SPARQL结果()

描述查询的结果依赖于实现,但是获取资源为主题或对象的所有三元组是非常常见的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29988928

复制
相关文章

相似问题

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