我正在尝试在http://www.linkedmdb.org/snorql和Jena(java)上运行此查询,以获取标题为" NVA"的所有数据集。例如。
select ?f where {
?f dc:title ?s.
FILTER(REGEX(?s, "NVA", "i")).
}
但是,它仅显示此结果http://data.linkedmdb.org/page/film/2532而非http://data.linkedmdb.org/page/film/4958(我应该得到的结果)。
但是通过运行此查询,我只得到第二个数据集(4958)而不是第一个
select ?f where {
?f dc:title "NVA"
}
我想知道为什么我的过滤器工作不正常?我应该添加什么来在我的正则表达式中获取具有我的关键字的确切标题的数据集?
感谢。
答案 0 :(得分:2)
public ThreadLoopRunner(Runnable task, long delayTime, TimeUnit unit, final ThreadFactory tf, Logger logger, String name) {
this.logger = logger;
this.loopName = ( (name != null && !name.trim().isEmpty()) ? name.trim() : null );
this.runner = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory(tf, loopName));
this.taskWrapper = new TaskWrapper(task, loopLock, logger);
this.delayMode = ScheduleDelayMode.FIXED_RATE;
isDefunct = new AtomicBoolean(false);
setDelayTime(delayTime, unit);
}
“i”表示不区分大小写的匹配。 “NVA”匹配字符串的任何部分。
FILTER(REGEX(?s, "NVA", "i")).
更像是:
?f dc:title "NVA"