A 303问题:
如何从可读的/resource (例如,dbpedia.org/page/Salzburg)中获取URI /page。当用户浏览到/page时,我想向他展示来自/resource的RDF数据(单击JS书签),并且只显示这个资源。可能性:
foaf:primarytopichttp://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)如何能够更快地获取有关资源的“真实”数据?
发布于 2013-05-28 13:20:52
我不确定我是否完全理解这个问题。在链接数据中,人们通常认为,区分事物本身的identity (电影、城市、洗澡水等)和用某种符号对该资源的描述是一种良好的做法。重要的是,这是因为您可以对描述进行声明,这与对实际资源的声明不同--例如,当它最近更新时。
根据所请求的描述的形式,您将获得标识资源的不同表示形式。因此,以您的示例电影为例,如果我们请求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的标识获取到.../page/film/2014或redirection .../resource/data/2014。
注意,您不必为不同的情况提供不同的URL。在英国洗澡水域数据集中,我们区分了资源标识.../id/..和资源描述.../doc/...。HTML、JSON或RDF/XML编码没有不同的URL --它只是取决于请求者所要求的编码内容。注意:严格说来,这不是真的,因为您可以在.json URL的末尾添加../doc/..、.ttl等以获取不同的编码,但这只是用户的方便,而不是页面和数据表示的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报头可能会有所帮助。
https://stackoverflow.com/questions/16791418
复制相似问题