我正在尝试使用JS开发一个用于标记图片的工具,因此我需要一组来自dbpedia的可能“东西”。我已经尝试以这种方式检索:
select ?s ?l {
?s a owl:Class .
?s rdf:type ?l
FILTER regex(str(?s), "House", "i").
}
也是这样:
select ?label
WHERE {
?concept a skos:Concept.
?concept skos:prefLabel ?label.
FILTER regex(str(?label), "^House", "i").
}
在第一种情况下,我只有房子“事物”的“实例”,而不是“房子”类本身。在第二个,我从来没有找到“房子”,类似的东西是“房子”。是否有基于dbpedia数据集检索更好词汇的替代方法?
答案 0 :(得分:2)
如果您不想将自己限制在 owl:Thing 或 skos:Concept ,您可以获得标签中包含“house”的内容。我选择使用包含和 lcase ,而不是使用正则表达式,因为字符串包含可能比调用完整的正则表达式处理器便宜。
select ?thing ?label where {
?thing rdfs:label ?label .
filter contains(lcase(?label), "house")
}