Virtuoso 给出错误结果,涉及重定向
Virtuoso giving wrong result, redirect involved
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbpedia_property: <http://dbpedia.org/property/>
PREFIX dbpedia_ontology: <http://dbpedia.org/ontology/>
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX schema: <http://schema.org/>
SELECT * WHERE
{
{
SELECT ?school, ?name, ?snippet, ?url, ?pageid, ?alias_1, ?alias_2, ?alias_3
WHERE
{
{ ?school rdf:type schema:EducationalOrganization . }
UNION
{ ?school rdf:type yago:EducationalInstitution108276342 . }
?school rdfs:label ?name .
OPTIONAL {
?school foaf:isPrimaryTopicOf ?url .
}
OPTIONAL {
?school dbpedia_ontology:wikiPageID ?pageid .
}
OPTIONAL {
?school rdfs:comment ?snippet .
FILTER (langMatches(lang(?snippet),"en"))
}
OPTIONAL {
?school dbpedia_property:name ?alias_1 .
FILTER ( langMatches(lang(?alias_1),"en") )
}
OPTIONAL {
?school foaf:name ?alias_2 .
FILTER ( langMatches(lang(?alias_2),"en") )
}
OPTIONAL {
?school dbpedia_ontology:wikiPageRedirects ?temp .
?temp rdfs:label ?alias_3 .
FILTER ( langMatches(lang(?alias_3),"en") )
}
OPTIONAL {
?school rdf:type ?excluded .
FILTER (?excluded = schema:Library)
}
FILTER ( langMatches(lang(?name),"en") && !BOUND(?excluded) )
}
ORDER BY ?name
}
}
LIMIT 1
OFFSET 0
可以看到结果给出了资源
http://dbpedia.org/resource/"Wesleyan_Methodist_College"
这将被重定向到
http://dbpedia.org/page/Southern_Wesleyan_University
为什么Virtuoso不解析资源并给出最终目的地?
有没有办法指示它忽略重定向?
关于资源的/resource/
和/page/
是不同的东西。例如,一个的长度以字节为单位。
网页不是 schema:EducationalOrganization
。
如果您使用 HTTP /resource/
查找,DBpedia 会发回一个 HTTP 303,然后浏览器会跟进。这是您浏览器的选择。
查看输出:
wget --max-redirect 0 -O/dev/null -S http://dbpedia.org/resource/Wesleyan_Methodist_College
或
curl -v --max-redirs 0 http://dbpedia.org/resource/Wesleyan_Methodist_College
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbpedia_property: <http://dbpedia.org/property/>
PREFIX dbpedia_ontology: <http://dbpedia.org/ontology/>
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX schema: <http://schema.org/>
SELECT * WHERE
{
{
SELECT ?school, ?name, ?snippet, ?url, ?pageid, ?alias_1, ?alias_2, ?alias_3
WHERE
{
{ ?school rdf:type schema:EducationalOrganization . }
UNION
{ ?school rdf:type yago:EducationalInstitution108276342 . }
?school rdfs:label ?name .
OPTIONAL {
?school foaf:isPrimaryTopicOf ?url .
}
OPTIONAL {
?school dbpedia_ontology:wikiPageID ?pageid .
}
OPTIONAL {
?school rdfs:comment ?snippet .
FILTER (langMatches(lang(?snippet),"en"))
}
OPTIONAL {
?school dbpedia_property:name ?alias_1 .
FILTER ( langMatches(lang(?alias_1),"en") )
}
OPTIONAL {
?school foaf:name ?alias_2 .
FILTER ( langMatches(lang(?alias_2),"en") )
}
OPTIONAL {
?school dbpedia_ontology:wikiPageRedirects ?temp .
?temp rdfs:label ?alias_3 .
FILTER ( langMatches(lang(?alias_3),"en") )
}
OPTIONAL {
?school rdf:type ?excluded .
FILTER (?excluded = schema:Library)
}
FILTER ( langMatches(lang(?name),"en") && !BOUND(?excluded) )
}
ORDER BY ?name
}
}
LIMIT 1
OFFSET 0
可以看到结果给出了资源
http://dbpedia.org/resource/"Wesleyan_Methodist_College"
这将被重定向到
http://dbpedia.org/page/Southern_Wesleyan_University
为什么Virtuoso不解析资源并给出最终目的地? 有没有办法指示它忽略重定向?
关于资源的/resource/
和/page/
是不同的东西。例如,一个的长度以字节为单位。
网页不是 schema:EducationalOrganization
。
如果您使用 HTTP /resource/
查找,DBpedia 会发回一个 HTTP 303,然后浏览器会跟进。这是您浏览器的选择。
查看输出:
wget --max-redirect 0 -O/dev/null -S http://dbpedia.org/resource/Wesleyan_Methodist_College
或
curl -v --max-redirs 0 http://dbpedia.org/resource/Wesleyan_Methodist_College