W3C公司

SPARQL 1.1属性路径

W3C工作草案2010年1月26日

过时的草稿(文件状态更新,2014年1月10日)

这个文件已经过时了。规范性文本为:SPARQL 1.1查询语言,第9节:属性路径

此版本:
http://www.w3.org/TR/2010/WD-sparql11-property-paths-20100126/
最新版本:
http://www.w3.org/TR/sparql11-property-path/
编辑:
Andy Seaborne,Talis信息有限公司<andy.seaborne@talis.com>

摘要

本文档介绍SPARQL属性路径。属性路径提供了一种更简洁的编写方式部分基本图形模式,并将三模式的匹配扩展到任意长度的路径。属性路径不会使任何现有SPARQL查询无效或更改。

属性路径是时间允许的功能。

本文件的状态

本节描述了本文档发布时的状态。其他文件可能取代本文件。当前W3C出版物列表和本技术报告的最新版本可在W3C技术报告索引http://www.w3.org/TR/。

这是第一次公开工作草案“SPARQL 1.1属性路径”规范,供W3C成员和其他相关方审查。

这是一个时间允许功能并且可以合并到主查询文档中。

对本文件的评论应发送至public-rdf-dawg-comments@w3.org,带有公共档案馆。与本规范无关的有关SPARQL的问题和评论,包括扩展和功能,可以在邮件列表上讨论public-sparql-dev@w3.org, (公共档案馆).

本文件由SPARQL工作组,它是W3C语义Web活动

无背书

作为工作草案出版并不意味着得到W3C会员的认可。这是一份草案文件,可能随时被其他文件更新、替换或作废。将本文件作为非正在进行的工作引用是不合适的。

专利

本文件由一个在2004年2月5日W3C专利政策.W3C维护一个任何专利披露的公开列表与集团的可交付成果相关;该页还包括披露专利的说明。对个人认为包含的专利具有实际知识的个人基本索赔必须按照W3C专利政策第6节

目录

1介绍
    1.1文档惯例
2未决问题
路径语言
4路径术语
5示例
    5.1简单路径
    5.2复杂路径
6语法
7代数
8评价

附录

A类工具书类
B类CVS历史


1引言

属性路径是通过两个图形节点之间的图形的可能路径。一个普通的例子是长度正好为1的属性路径,这是一个三重模式。属性路径允许更简洁地表达一些SPARQL基本图形模式,还添加了匹配任意长度路径的功能。

1.1文件惯例

电子束核燃料

2未决问题

本节指出了重要的讨论领域。社区意见积极寻求解决这些问题以及文件的其余部分。请将评论发送至public-rdf-dawg-comments@w3.org

3路径语言

属性路径表达式(或仅“path”)类似于字符串正则表达式但在属性上,而不是字符。查询求值确定路径表达式的所有匹配项并绑定主题或对象。在图表中,每条路线只记录一个匹配项-任何给定的路径表达式都没有重复项。

在下面的描述中,uri(用户界面)是URI或前缀名称和电子标签是一个路径元素,它本身可能由路径语法结构组成。

语法形式比赛
uri(用户界面)URI或前缀名称。一条长度为一的路径。
^电子标签反向路径(对象到对象)。
(英语)组路径电子标签,括号控制优先级。
elt1/elt2序列路径电子高度层1,后面是高度层2
elt1^elt2的缩写elt1/^elt2,这是电子高度层1后跟的倒数高度层2
elt1|elt2替代路径电子高度层1,或elt2型(尝试了所有可能性)。
电子标签*零次或多次出现的路径电子束
电子标签+一个或多个实例的路径电子标签
elt?零或一的路径电子标签
elt{n,m}n次和m次之间的路径电子束
英语{n}确切地n个事件电子标签。固定长度的路径。
英语{n,}n个或多次出现电子标签
elt{,n}介于0和之间n个事件电子标签

路径元素的零出现总是匹配的。

优先:

组内的优先级从左到右。

4路径术语

如果路径只涉及运算符/(序列),^(逆,一元或二进制)和形式{n个},对于某些单个整数n个.此类路径是固定长度的。在向SPARQL代数,不需要在运行时进行特殊的路径评估。

URI的路径仍然是单一的三重模式。

如果路径涉及一个或多个运算符*、?、+,则该路径为“复杂”路径{}(除{无}). 这样的路径需要代数扩展。

长度为零的路径将图形节点连接到自身。

路径中的循环是可能的,并且会得到处理。

路径不需要锚定在一端或另一端,虽然这可以由于搜索了整个图,导致了大量结果。

5个示例

另请参见用例

5.1简单路径

示例:序列

找出爱丽丝认识的任何人的名字。

{?x foaf:mbox<邮寄地址:艾丽斯@示例> .?x foaf:knows/foaf:name?名称。}
示例:序列

查找人名2“foaf:知道“链接离开。

?x foaf:mbox<邮寄地址:艾丽斯@示例> .?x foaf:knows/foaf:knows/foaf:name?名称。}

这与严格的SPARQL查询相同:

{?x foaf:mbox<mailto:艾丽斯@示例> .?x foaf:knows[foaf:knows[foaf:名称?名称]].}

或者,使用显式变量:

{?x foaf:mbox<邮寄地址:艾丽斯@示例> .?x foaf:知道吗?a1。?a1 foaf:知道吗?答2。?a2-foaf:名字?名称。}
示例:筛选重复项

因为爱丽丝认识的人可能很了解爱丽丝,上面的例子可能包括爱丽丝本人。这可以通过以下方式避免:

{?x foaf:mbox<mailto:艾丽斯@示例> .?x foaf:knows/foaf:knows?是的。过滤器(?x!=?y)?y foaf:名字?姓名}
示例:反向特性路径

这两个查询是相同的:第二个查询只是反转属性交换主客体角色的方向。

{?x foaf:mbox<mailto:艾丽斯@示例> }
{<邮寄地址:艾丽斯@示例>^foaf:mbox?x}(x})
示例:反向路径序列

找到所有认识某人的人?x个知道。

{?x foaf:知道^foaf:了解?是的。过滤器(?x!=?y)}

5.2复杂路径

例子:

找出爱丽丝能联系到的所有人的名字foaf:知道:

{?x foaf:mbox<邮寄地址:艾丽斯@示例> .?x foaf:知道+/foaf:name?名称。}
例子:

一些形式的有限推理也是可能的。例如:所有类型和资源的超类型:

{ <http://example/thing>rdf:type/rdfs:subClassOf*?键入}

所有资源及其推断类型:

{?x rdf:type/rdfs:subClassOf*?type}

6语法

如果时间允许,此语法将并入主SPARQL语法功能被接受。

三重同一主题路径 ::=  VarOrTerm属性列表NotEmptyPath|TriplesNode属性列表路径
属性列表路径 ::=属性列表不为空?
属性列表非空路径 ::=(VerbPath|VerbSimple)对象列表(“;”((VerbPath |Verb简单)对象列表)?)*
动词路径 ::=路径
动词Simple ::=变量
路径 ::=路径备选方案
路径备选方案 ::=路径序列(“|”PathSequence)*
路径序列 ::=PathEltOrInverse(“/”PathElt OrInverse|“^”PathE1t)*
PathElt公司 ::=PathPrimary PathMod?
路径EltOrInverse ::=PathElt|'^'PathElt
路径Mod ::=(“*”|“?”|“+”|“{”(整数(','('}'| Integer'}')|“}')))
路径主要时间:=(IRIref|'a'|'('Path')')

7代数

@@需要引入临时变量来扩展简单路径。

8评估

@@未完成部分

路径计算生成一组变量绑定(不包括任何系统生成的变量)。如果有两个或多个路径,从<a>到<b>,则只返回唯一的解决方案。

允许循环并包含在匹配中。循环检测是必要的。

三重模式相当于长度正好为一的路径。

A参考文献

1规范性引用文件

B CVS历史

$Log:Overview.html,v$修订版1.4 2018/10/09 13:23:18丹尼斯修复xhtml文档的验证版本1.3 2017/10/02 10:42:16丹尼斯将fixup.js添加到旧规范版本1.2 2014/01/10 19:59:41 sandro***空日志消息***版本1.1 2010-01-27 16:24:12浆果斯巴克尔修订版1.9 2010/01/27 01:48:05 apollere2修复了破碎碎片ID。修订版1.8 2010/01/24 14:46:12 apollere2小错误修复。CVS公司:----------------------------------------------------------------------修订版1.7 2010/01/24 14:45:21 apollere2将编辑草稿更改为第一公众工作草稿。修订版1.6 2010/01/24 14:40:51 apollere2增加无支撑锅炉板。版本1.5 2010/01/24 14:34:30 apollere2修复gen.html中的URI。修订版1.4 2010/01/24 14:24:10 apollere2文件类型为WD,而不是FPWD。修订版1.17 2010/01/22 21:19:25 asaborne修复XSLT转换后的验证问题修订版1.16 2010/01/22 16:26:23 apollere2将XSLT转换为用于FPWD的gen.html。修订版1.15 2010/01/11 10:27:00东盟针对2010年1月至2009年3月修订版1.14 2010/01/06 11:08:59 asaborne针对2010年1月至2005年3月。请参阅2010年1月3月/0057版本1.13 2010/01/05 11:21:14 asaborne更正运算符优先级的描述修订版1.12 2010/01/04 12:11:14 asaborne修复标记修订版1.11 2010/01/04 12:08:41 asaborne修复标记版本1.10 2010/01/04 12:07:23 asaborne修复标记修订版1.9 2010/01/04 12:06:31 aseaborne摘要已展开。术语更改:“反向”,而不是“反向”问题部分放在前面。添加了路径长度和“^”的问题各种编辑更正。使用foaf:knows^foaf:knows修复示例版本1.8 2009/11/06 15:11:30 asaborne从wiki传输内容修订版1.7 2009/11/06 15:09:51 asaborne从wiki传输内容修订版1.6 2009/11/06 15:05:47 aseaborne从wiki传输内容版本1.5 2009/11/06 15:03:25 asaborne从wiki传输内容修订版1.4 2009/11/06 14:57:35 asaborne从wiki传输内容修订版1.3 2009/11/06 14:47:33 aseaborne从wiki传输内容修订版1.2 2009/11/06 14:34:53 asaborne从wiki传输内容版本1.1 2009/11/06 13:51:34 asabornexmlspec模板