我希望将每个连接结果放在一个新行中(结果格式为HTML)。我使用类似的东西:
(Group_Concat(DISTINCT ?result; separator = '\n ') as ?results)
但是,\n
和\r
都被解释为空格,而使用任何普通字符都可以正常工作。
我记得在dbpedia中使用\n
得到了我的预期,我还要补充一点,我目前正在使用07.20.3214版本的VOS(如果是配置问题)。
(稍后补充)
这是对<br>
的建议用法的回应。以下是对dbpedia的查询,该查询适用于\n
,但<br>
不适用:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX o: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?name
?wikipedia_page
?description
(Group_Concat(DISTINCT ?influencer; separator = '\n') as ?influenced_by)
(Group_Concat(DISTINCT ?_influenced; separator = '\n') as ?influenced)
WHERE {
{?person rdf:type o:Philosopher ;
rdfs:label ?label;
o:influencedBy/rdfs:label ?influencer.}
OPTIONAL {?person o:influenced/rdfs:label ?_influenced.}
?person ^foaf:primaryTopic ?wikipedia_page .
FILTER (lang(?label) = "en") .
FILTER (lang(?influencer) = "en").
FILTER (lang(?_influenced) = "en").
OPTIONAL {?person o:abstract ?abstract .
FILTER (lang(?abstract) = "en") .}
BIND (str(?label) AS ?name)
BIND (str(?abstract) AS ?description)
}
GROUP BY ?name ?wikipedia_page ?description
LIMIT 10
答案 0 :(得分:2)
正如@LuisSiquot和@JoshuaTaylor在评论中所说,这里的问题既不是SPARQL也不是Virtuoso,而是HTML结果格式。
不保证在HTML呈现中保留空格(包括\n
,\r
,,
\t
等)。实际上,它们被指定为由任何兼容的渲染器折叠到单个空间 - 您显然正在使用它。
<br>
是HTML标准换行符,是我期望用作分隔符的东西。当将最终结果呈现为HTML表格时,Virtuoso似乎正在转义此字符串的尖括号;这可能是一个错误,或者您的目标可能需要采用不同的方法。
ETA:您的7.20.3214
不是最新的VOS。截至2015-11-06,VOS已经在7.20.3215
,这是托管DBpedia的版本。 Running your query there,我在the results page的HTML源代码中看到换行符,但我的浏览器中的渲染会按预期将这些换行符放入空格。