sparql - 在 SPARQL 中选择文字?

标签 sparql

我想构造一个 SPARQL 查询,其中填充了我设置为文字的值。

例如

SELECT 'A', 'B', attribute
FROM 
    TABLE

将返回一个可能如下所示的表格:

  A    |    B    |    attribute
-------|---------|--------------
  A    |    B    |    Mary
  A    |    B    |    has
  A    |    B    |    a
  A    |    B    |    little
  A    |    B    |    lamb

我想要做的是运行这样的查询来获取三元组中的所有对象类型:

select distinct ?o ("class" as ?item_type) 
where {
    ?s rdf:type ?o.
} 

然后(理想情况下)将其与第二个查询进行 UNION,以提取所有不同的谓词值:

select distinct ?p ("predicate" as ?item_type) 
where {
    ?s ?p ?o.
} 

其结果可能如下所示:

  item           |    item_type    
-----------------|-----------------
 a_thing         |    class
another_thing    |    class
a_relation       |    predicate
another_relation |    predicate

但是 SPARQL 中的 UNION 仅链接到附加的 where 子句,这意味着我无法指定要注入(inject)到结果集中的 item_type 文字。

最佳答案

我认为以下内容应该可以满足您的需求:

SELECT DISTINCT ?item ?item_type
WHERE {
   { ?s a ?item .
     BIND("class" AS ?item_type)
   }
   UNION
   { ?s ?item ?o
     BIND("predicate" AS ?item_type)
   }

}

关于sparql - 在 SPARQL 中选择文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37189315/

相关文章:

sparql - 时尚相关内容查询(DBpedia 或 Freebase)

sparql - 是否可以将图形查询(Gremlin 或 SPARQL)的输出可视化为 Amazon Neptune 中的节点和边?

java - 带有正则表达式的 Java 字符串中的 SPARQL 请求

java - 使用 Jena 查询维基数据

sparql - 如何删除sparql查询中的重复项

java - Virtuoso Jena Provider 构造查询错误

当查询有效时,Java Apache Jena SparQL 查询返回词法错误

SPARQL 将 "."替换为 "_"

rdf - 是否可以在 DBPedia 中检索三元组的源数据集?

iphone - 如何使用 sparql 端点 - 例如 iPhone 应用程序中的 DBPedia