2014-09-24 82 views
1

我使用这个客户 http://yasgui.laurensrietveld.nl ,我希望能查询bioportal http://bioportal.bioontology.org为什么一些SPARQL查询缺少FROM关键字?

大多数我以前的查询有前缀和NO的一部分。我可以将任何FROM网址移入PREFIX吗?

使用YASGUI客户端,FROM和Endpoint字段有什么区别?

我可以使用from语句将任何查询重写为没有它的查询吗?

我无法列举人类表型本体概念ID的详细信息:HP:0000023,因为我不确定要将什么放入FROM或如何使用它。

回答

2

这里有一些术语和机制。我们一个接一个地去看看他们。

首先,PREFIX子句只是语法快捷方式的声明,用于查询中。所以这条线:

PREFIX ex: <http://example.org/> 

表示,该字符串ex:是字符串http://example.org/的快捷方式。如果您在查询开始时声明了此前缀,则可以在查询的其他位置使用ex:someUrl(而不是<http://example.org/someUrl>)。只是为了使查询更易于阅读和编写,但除此之外,它对查询的含义没有影响。

A SPARQL端点是可以回答SPARQL查询的Web服务的另一个术语。

一个SPARQL查询的FROM子句确定数据集(或更精确地,默认的图形,这是该数据集的一部分),在其上执行查询。任何SPARQL端点都可能包含多个图形,每个图形都由URI标识(所谓的命名图形为)。这些图形的集合是一个数据集。如果您没有指定FROM子句(也许还有一个或多个FROM NAMED子句),则查询的数据集只是端点选择的任何默认数据集。

那么,这对您的具体问题意味着什么?

我以前的大多数查询都有PREFIX和FROM部分。我可以将任何FROM网址移入PREFIX吗?

正如你从上面的解释中可以看到的那样,这是没有意义的。它们是不同的机制,出于不同的目的,只是恰好两者都使用URI。

使用YASGUI客户端,FROM和Endpoint字段有什么区别?

端点字段定义YASGUI需要发送查询的服务。子句FROM告诉端点你想要查询的数据集。

我可以使用from语句将任何查询重写为没有它的查询吗?

不一般,没有。 FROM子句的缺失意味着端点通过其默认数据集执行查询。根据端点的配置方式,这可能意味着您要么获得更多的结果(即不仅仅来自您想要的一个数据集,而是来自许多其他数据集),或者根本没有结果(如果您想要查询的数据集不是端点默认数据集的一部分)。