我有一段被分成短语的段落。我需要过滤sparql查询以获取第一个和第二个短语的字符串。
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ns: <http://example.org/ns#>
SELECT ?string1 ?string2
WHERE
{
?paragraph ns:phrase ?phrase1 ,
?phrase2 .
?phrase1 rdfs:label ?string1 .
?phrase2 rdfs:label ?string2 .
}
LIMIT 100
我对短语的唯一顺序是在rdf资源<p23969797xX>
中编码:
@base <http://example.org/base/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ns: <http://example.org/ns#> .
<p23969797x1> ns:phrase <p23969797x2> .
<p23969797x1> ns:phrase <p23969797x3> .
<p23969797x1> ns:phrase <p23969797x4> .
<p23969797x2> rdfs:label "string1" .
<p23969797x3> rdfs:label "string2" .
<p23969797x4> rdfs:label "string3" .
答案 0 :(得分:2)
如果订单位于URI的名称中,您可以检查其字符串转换,并仅选择以“x1”和“x2”结尾的URI。
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ns: <http://example.org/ns#>
SELECT ?string1 ?string2
WHERE
{
?paragraph ns:phrase ?phrase1 ,
?phrase2 .
?phrase1 rdfs:label ?string1 .
?phrase2 rdfs:label ?string2 .
FILTER(strEnds(str(?phrase1), "x1") && strEnds(str(?phrase1), "x2") )
}
LIMIT 100