Я использую Virtuoso Opensource 7.2.4 и имею набор данных, который состоит из некоторых данных, например:
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>
@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix ap: <http://vocab.linkeddata.es/datosabiertos/def/urbanismo-infraestructuras/alumbrado-publico#> .
<http://linkeddata.es/resource/farolas/lapalma/0> a ap:PuntoDeAlumbrado ;
geo:long "-17.774237421604201614"^^xsd:double ;
geo:lat "28.60580329136699973"^^xsd:double .
и если я сделаю следующий простой запрос SPARQL
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX ap: <http://vocab.linkeddata.es/datosabiertos/def/urbanismo-infraestructuras/alumbrado-publico#>
select ?farola ?lat ?long where {
?farola a ap:PuntoDeAlumbrado; geo:lat ?lat; geo:long ?long .
}
Я получаю следующие результаты. Обратите внимание, что значения широты и долготы округлены до менее точного значения.
+-------------------------------------------------+----------+----------+
| farola | lat | long |
+-------------------------------------------------+----------+----------+
| http://linkeddata.es/resource/farolas/lapalma/0 | 28.6058 | -17.7742 |
+-------------------------------------------------+----------+----------+
Это происходит, когда я устанавливаю формат результата в HTML, XML, JSON и т. д. Если я запрашиваю результаты в Черепахе, я могу получить результаты с правильной точностью.
@prefix res: <http://www.w3.org/2005/sparql-results#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
_:_ a res:ResultSet .
_:_ res:resultVariable "farola" , "lat" , "long" .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
_:_ res:solution [
res:binding [ res:variable "farola" ; res:value <http://linkeddata.es/resource/farolas/lapalma/0> ] ;
res:binding [ res:variable "lat" ; res:value 28.60580329136699973 ] ;
res:binding [ res:variable "long" ; res:value -17.774237421604201614 ] ] .
Проблема в том, что когда я запрашиваю с помощью Apache Jena [v3.1.0], я получаю округленные результаты. Я думаю, он запрашивает application/sparql-results+json в качестве первого предпочтения. Как лучше всего заставить Virtuoso возвращать неусеченные значения в результате (настроив либо Virtuoso, либо Jena)?
Это поведение в конечной точке DBpedia SPARQL такое же, как и в HTML-результат по сравнению с Turtle Result для запроса
prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
select ?lat ?long where {
<http://dbpedia.org/resource/Liberty_Tower_(Manhattan)> geo:long ?long; geo:lat ?lat .
}
WebContent.contentTypeTextTSV
. - person UninformedUser   schedule 23.05.2016