首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包含谓词文字的SPARQL构造子句

包含谓词文字的SPARQL构造子句
EN

Stack Overflow用户
提问于 2013-10-27 07:35:01
回答 3查看 1.1K关注 0票数 2

我正在尝试使用SPARQL结构从dbpedia中剥离一组数据-我只对一组艺术家感兴趣,我希望Sesame在速度上尽可能小。

我认为我可以做的是使用CONSTRUCT来获取给定艺术家的每个谓词。我可以让第一个构造子句工作,以确保我得到类型"Person",但这只给了我满足那个子句的三个子句-我想要他们的名字,标签,birthPlaces等。我下面的查询是试图在第二个构造子句中捕获Monet的名字?如果我没记错的话,这会给我三倍的

代码语言:javascript
运行
复制
<http://dbpedia.org/resource/Claude_Monet>  
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   
<http://xmlns.com/foaf/0.1/Person>

像这样的三元组

代码语言:javascript
运行
复制
<http://dbpedia.org/resource/Claude_Monet>  
<http://xmlns.com/foaf/0.1/name>
"Claude Monet"@en

我如何让我的查询使用Monet名字的对象作为变量,以便在插入空引号时使用?下面是查询

代码语言:javascript
运行
复制
PREFIX purl: <http://purl.org/dc/elements/1.1/>
PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
CONSTRUCT {
  ?s a foaf:Person .
  ?s foaf:name ""
} WHERE { 
  ?s foaf:surname "Monet"@en . 
  ?s purl:description "Painter"@en
} LIMIT 100

真的很感谢你的帮助

麦克

EN

Stack Overflow用户

发布于 2013-10-28 11:55:43

作为替代/速记,您还可以使用DESCRIBE查询,例如:

代码语言:javascript
运行
复制
DESCRIBE <http://dbpedia.org/resource/Claude_Monet>

将为您提供一个子图,其中包含<http://dbpedia.org/resource/Claude_Monet>的所有传入和传出属性,或者:

代码语言:javascript
运行
复制
DESCRIBE ?x WHERE { ?x purl:description "Painter"@en }

将为所有具有匹配purl:description?x提供一个子图。

当然,这给了你更少的对提取的精确三元组的控制,但好处是它更短,并且如果特定资源不存在特定的三元组模式,也不需要进行调整(例如,如果由于任何原因,特定的绘制程序在WHERE子句中没有deathDatefoaf:surname或任何其他属性,则构造查询将不匹配)。

一个小小的警告: DESCRIBE查询结果的精确内容依赖于实现。例如,一些三元组可能选择只返回传出属性。但是Sesame (我相信DBPedia端点也是如此)返回所谓的Symmetric Concise Bounded Description

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

https://stackoverflow.com/questions/19613074

复制
相关文章

相似问题

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