303问题:
如何从人类可读的/resource
(例如/page
)中获取URI dbpedia.org/page/Salzburg
。当用户浏览/page
时,我想向他显示来自/resource
的RDF数据(通过点击JS书签)和仅此资源。可能性:
foaf:primarytopic
http://www.w3.org/1999/xhtml/vocab#alternate
在DBpedia上,它与foaf:primarytopic
的效果很好,但来自http://data.linkedmdb.org/page/film/2014的数据会显示此备用URI:http://data.linkedmdb.org/data/film/2014(并且没有foaf:primarytopic
)。
来自http://data.linkedmdb.org/data/film/2014
的数据是一个图表,其中id为http://data.linkedmdb.org/data/film/2014
,其中foaf:primarytopic
是所需的URI:http://data.linkedmdb.org/resource/film/2014
。参见
http://rdf-translator.appspot.com/convert/detect/json-ld/http://data.linkedmdb.org/data/film/2014
表示数据。将有三个HTTP请求(1. /page
2. /data
3. /resource
)如何更快地获取有关资源的“真实”数据?
答案 0 :(得分:1)
我不确定我完全理解这个问题。在链接数据中,通常认为区分事物本身的身份 - 电影,城市,洗澡水等 - 和描述是一种好习惯。那个资源在某种表示法中。同样重要的是,这是因为您可以对描述提出与实际资源声明不同的声明 - 例如,最近更新时。
根据您请求的描述的形式,您将获得已识别资源的不同表示。因此,要拍摄您的示例电影,如果我们请求HTML演示文稿,我们会得到一个编码:
$ wget -O /dev/null -H http://data.linkedmdb.org/resource/film/2014
Resolving data.linkedmdb.org (data.linkedmdb.org)... 128.100.1.11
Connecting to data.linkedmdb.org (data.linkedmdb.org)|128.100.1.11|:80... connected.
HTTP request sent, awaiting response... 303 See Other
Location: http://data.linkedmdb.org/page/film/2014 [following]
--2013-05-28 13:58:26-- http://data.linkedmdb.org/page/film/2014
Reusing existing connection to data.linkedmdb.org:80.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `/dev/null'
[ <=> ] 39,627 163K/s in 0.2s
2013-05-28 13:58:26 (163 KB/s) - `/dev/null' saved [39627]
但是如果我们以数据格式请求描述,例如RDF / XML,我们会得到不同的结果:
$ wget -O /dev/null --header="Accept: application/rdf+xml" -H http://data.linkedmdb.org/resource/film/2014
Resolving data.linkedmdb.org (data.linkedmdb.org)... 128.100.1.11
Connecting to data.linkedmdb.org (data.linkedmdb.org)|128.100.1.11|:80... connected.
HTTP request sent, awaiting response... 303 See Other
Location: http://data.linkedmdb.org/data/film/2014 [following]
--2013-05-28 13:59:32-- http://data.linkedmdb.org/data/film/2014
Reusing existing connection to data.linkedmdb.org:80.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/rdf+xml]
Saving to: `/dev/null'
[ <=> ] 11,501 --.-K/s in 0.1s
2013-05-28 13:59:33 (95.9 KB/s) - `/dev/null' saved [11501]
因此,请求代理可以在单个重定向中从资源.../resource/film/2014
的标识到HTML演示文稿.../page/film/2014
或RDF描述.../resource/data/2014
。
请注意,您 不能为不同的案例提供不同的网址。在英国沐浴水域数据集中,我们区分资源标识.../id/..
和资源描述.../doc/...
。 HTML,JSON或RDF / XML编码没有不同的URL - 它只取决于请求者要求的内容编码。 [注意:这不完全正确,因为您可以将.json
,.ttl
等附加到../doc/..
网址的末尾以获取不同的编码,但这只是一个用户的便利性,而不是页面的URL和数据表示之间的根本区别]
示例:
$ wget -O - -H --header="Accept: text/turtle" http://environment.data.gov.uk/id/bathing-water/ukc2102-03600
--2013-05-28 14:10:39-- http://environment.data.gov.uk/id/bathing-water/ukc2102-03600
Resolving environment.data.gov.uk (environment.data.gov.uk)... 46.137.33.70, 54.216.25.150
Connecting to environment.data.gov.uk (environment.data.gov.uk)|46.137.33.70|:80... connected.
HTTP request sent, awaiting response... 303 See Other
Location: /doc/bathing-water/ukc2102-03600 [following]
--2013-05-28 14:10:39-- http://environment.data.gov.uk/doc/bathing-water/ukc2102-03600
Reusing existing connection to environment.data.gov.uk:80.
HTTP request sent, awaiting response... 200 OK
Length: 6351 (6.2K) [text/turtle]
Saving to: `STDOUT'
...
bw:ukc2102-03600
a def-bw:CoastalBathingWater , def-bw:BathingWater ;
def-bwp:latestBathingWaterProfile
所以我想你在询问是否有必要阅读HTML页面以获取有关其身份资源的数据的链接。如果是这样,答案是否定的,你没有。仅使用Web浏览器查看链接的数据资源可能会让人感到困惑,因为浏览器并没有真正为您提供请求除HTML之外的其他表示形式的方法。我建议在命令行上熟悉wget
或curl
。它们应该已经在Linux或MacOs系统上可用;在Windows上你可以通过cygwin来获得一个像样的命令!此外,阅读HTTP标头可能会有所帮助。