CONSTRUCT使用这个查询会发生一些奇怪的事情LIMIT.我希望收到1级或2的解决方案LIMIT 1,并LIMIT 2分别,即一个或两个图形,而是我总能得到两个图,与11或12的三倍.
CONSTRUCT {
ex:sceneResource skos:related ?newSceneSubject.
?newSceneSubject a lcx:Scene ;
dcterms:subject ?type ;
lcx:hasTitle ?title ;
lcx:describedBy ?thumbNail ;
lcx:motto ?motto ;
lcx:freebaseID ?freebaseID
}
WHERE {
{ ?newSceneSubject a ex:interestType1 }
UNION
{ ?newSceneSubject a ex:interestType2 }
?newSceneSubject lcx:hasTitle ?title ;
a ?type .
lcx:freebaseID ?freebaseID .
OPTIONAL { ?newSceneSubject lcx:motto ?motto }
OPTIONAL { ?newSceneSubject lcx:describedBy ?thumbNail }
}
LIMIT 2
Run Code Online (Sandbox Code Playgroud)
我有没有误解LIMIT与CONSTRUCT,或者是有耶拿API中的错误?
您的问题有点不清楚您的期望和实际情况,但无论如何我都会尝试回答.
在LIMIT适用于WHERE一个查询的部分,在说明书中有一种使用的例子LIMIT有CONSTRUCT,它指出以下:
CONSTRUCT模板的输出图仅由图模式匹配中的两个解决方案组成
即它最多从WHERE子句中获取两行并将它们提供给CONSTRUCT模板.
由于模板可能会生成许多三元组,因此实际的最大结果数是限制乘以模板中三重模式的数量.由于模板中的各个模式可能会生成无效的三元组(并且根据规范将其丢弃),因此实际获得的三元组数可能会更低:
如果任何此类实例化生成包含未绑定变量或非法RDF构造的三元组,例如主题或谓词位置中的文字,则该三元组不包含在输出RDF图中
因此,根据您的描述和规范,Jena的行为是完全正确的.
| 归档时间: |
|
| 查看次数: |
323 次 |
| 最近记录: |