在SPARQL中,我经常在前缀定义的末尾看到#的用法,如下所示:
@prefix dt: <http://example.org/datatype#>
目的是什么?我在SPARQL文档中找不到这个。
答案 0 :(得分:8)
您的示例似乎位于Turtle中,与SPARQL中的语法一样:
PREFIX dt: <http://example.org/datatype#>
但是它的想法是一样的:您可以使用prefixed names来代替在查询中使用完整的IRI:
dt
。它映射到IRI http://example.org/datatype#
。dt:foobar
,其中foobar
被称为本地部分。来自前缀标签和本地部分的映射IRI被连接起来形成&#34;实际&#34; IRI:
http://example.org/datatype#
+ foobar
=
http://example.org/datatype#foobar
(您也可以使用dt:foobar
而不是<http://example.org/datatype#foobar>
。)
所以#
恰好是IRI设计的一部分。这是在语义Web中构建词汇IRI的流行方式。另一种流行的方式是使用/
。请参阅HashVsSlash。