Sparql 检索更广泛的dbpedia词汇表以标记图片

Sparql 检索更广泛的dbpedia词汇表以标记图片,sparql,Sparql,我正在尝试用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

我正在尝试用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").
}

也是这样:

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").
}


在第一种情况下,我只有house“thing”的“instances”,但没有“house”类本身。在第二个例子中,我从未检索过“房子”,类似的东西是“房子”。在dbpedia数据集中检索更好的词汇表有什么替代方法吗?

如果您不想麻烦将自己限制在owl:Thingskos:Concept,您只需获取包含“house”标签的内容即可。我没有使用regex,而是选择使用containslcase,因为字符串包含可能比调用全正则表达式处理器便宜

select?thing?标签在哪里{
?事物rdfs:标签?标签。
过滤器包含(lcase(?标签),“房屋”)
}

谢谢Joshua,如果您想将其限制为dbpedia:ontology/XXX结果,该怎么办?我想了想,但没用:“+where+%7B%0D%0A++%3Fthing+rdfs%3Alabel++%3Flabel+。%0D%0A++%3Fthing+rdfs%3AisDefinedBy++%3Fdef.++%0D%0A++过滤器+包含%28lcase%28%3Flabel%29%2C++%22house%22%29%0D%0A%7D+限制+10我想我明白了,但不确定有效的方法:“+where+%7B%0D%0A++%3Fthing+rdfs%3Alabel++%3Flabel++.%0D%0A++%3Fthing+rdfs%3Adomain++%3Fdomain.++%0D%0A++过滤器+包含%28lcase%28str%28%3Fdomain%29%2C++%22ontology%29.%0D%0A++过滤器+包含%28lcase%28%3Flabel%29%2C++%22a%7D+限制”+10@gal007再看看你的评论。这些应该是链接吗?如果你也要求一个rdfs:domain的东西,那么你可能只会得到属性,因为rdfs:domain是用来声明属性的域的。当你说“dbpedia:ontology/XXX”结果时,你是在询问属性、类还是什么?@gal007如果你想基于“名称空间”进行过滤,请看一看。