如何在 sparql 中获取字符串的 类 匹配项?

How to get the classes matching for a string in sparql?

给定用户输入(例如 "dog")我需要找到所有(或至少一些)匹配给定 dbpedia ontology 的 类。我是语义新手,我发现的每个例子都是关于三元组的具体值。我的意思是,我发现了检索类似以下内容的查询: 艾莉 15 岁 菲利普 21 岁

但我真正需要的是检索可能的 类 给定字符串。例如,如果我搜索 "article",我需要一个查询来检索“电子商务产品、杂志文章、宪法文章、论文”等内容...

我应该读什么书才能找到这样的例子?您推荐使用哪些库来使用 javascript 中的这个?无论是否需要像 greasemonkey 或浏览器扩展这样的特权代码

我无法在任何 Javascript 库上提供帮助,但基于某些给定文本提取 类 的 SPARQL 查询可能如下所示 -

select distinct ?concept ?label where {
   ?concept a <http://www.w3.org/2002/07/owl#Class> .
   ?concept rdfs:label ?label .
   FILTER(regex(?label, "Dog", "i")) .
   FILTER(langMatches(lang(?label),"EN")) .
} LIMIT 100

此查询将提取任何具有确切名称 Dog 的 类。此查询需要针对更高级的搜索进行调整,但应该可以为您提供一个起点。

注意:我特意添加了 FILTER(langMatches(lang(?label),"EN")) . 以仅搜索英文标签。