sparql 相关问题

SPARQL(发音为“sparkle”,SPARQL协议和RDF查询语言的递归首字母缩写)是W3C提供的一组规范,提供在Web或RDF存储中查询和操作RDF图形内容的语言和协议。

计算SPARQL中的余弦相似度

我正在寻找一种使用 SPARQL 计算余弦相似度的方法。 RDF 数据中向量的描述如下: @前缀rdf:。 @前缀rdfs:<...

回答 1 投票 0

SHACL 验证结果不正确

我正在尝试使用 pyshacl 对照形状图验证数据图。基本上,数据图表示建筑物中两堵墙的几何表示,它们彼此之间的距离......

回答 1 投票 0

含有空格和“时出现按键错误 " 在多行 f 字符串中

尝试使用 f 字符串在 python 中格式化 SPARQL 查询,以便从模板构建不同的查询, 但当我尝试格式化多行字符串时出现 KeyError: 查询= f'''选择?...

回答 1 投票 0

针对限定符的 SPARQL 请求?

我看到以下 SPARQL 查询成功请求发布日期 (P577) 限定符(链接): 选择?标题?项目?日期?地点?placeLabel WHERE { 服务 wikibase:label { bd:serviceParam

回答 1 投票 0

@prefix 在 sparql 中起什么作用?

我有一个问题: 在 sparql 中 @prefix 的作用是什么: @前缀:http://example.org/animals/ 为什么要这样写?

回答 3 投票 0

使用 Optics API 进行地理空间查询 (MarkLogic)

从线程中带来的问题。我目前正在尝试使用 Optics API 使用 SPARQL 和 CTS 进行搜索。我尝试尝试使用以下代码 查询已使用 导入模块命名空间 op="

回答 1 投票 0

带引号的三元组中的扩展路径表达式?

我正在尝试查询类似维基百科的内容,其中对象相互连接,并且边缘具有链接它们的段落。我希望在我开始之前先了解一下查询部分......

回答 1 投票 0

SPARQL 查询 - WHERE 忽略子句? (数据库百科)

这应该会带回树木列表,以及可选的缩略图。 我所说的“树”是指绿叶植物: 前缀金色: 前缀 dbr: 这应该会带回树木列表,以及可选的缩略图。 我所说的“树”是指绿叶植物: PREFIX gold: <http://purl.org/linguistics/gold/> PREFIX dbr: <http://dbpedia.org/resource/> PREFIX dbo: <http://dbpedia.org/ontology/> SELECT * { ?tree a dbo:Plant; gold:hypernym dbr:Tree. OPTIONAL { ?tree dbo:thumbnail ?thumbnail } } 单击此处运行上面的SPARQL。 它主要有效:但它也带回了这种类型的树: https://dbpedia.org/page/M-ary_tree 奇怪的是:数据显然没有被标记为“dbo:Plant”? 这里还有其他事情发生吗? (就像它是“sameAs”或其他什么?我注意到结果实际上是“http://dbpedia.org/resource/K-ary_tree”,但这落在“M-aray”上)。 感谢uninformeduser - 他在评论中提供了解释。 我可以确认解释是正确的。 该页面确实使用 HTTP-301 进行重定向: > export URL=https://dbpedia.org/page/K-ary_tree > curl -s -o /dev/null -I -w "%{http_code}" $URL 301> > curl -s -o /dev/null -I -w "%{http_code} : %{url_effective}" $URL --location 200 : https://dbpedia.org/page/M-ary_tree> 提供的 SPARQL 确实显示该条目(错误地)被分类为植物: # Returns 'true' PREFIX dbr: <http://dbpedia.org/resource/> PREFIX dbo: <http://dbpedia.org/ontology/> ASK { dbr:K-ary_tree a dbo:Plant} 运行 SPARQL1 我对这种行为仍然有点困惑 - 因为重定向似乎在 RDF 级别对最终用户来说是不可见的 - 重定向似乎就发生了。 (除非我在其他地方丢失了一些连接)。 因此询问“K-Array”是否是植物,结果是“是”,但原来的“M-Array”是假的。 # Returns 'false' PREFIX dbr: <http://dbpedia.org/resource/> PREFIX dbo: <http://dbpedia.org/ontology/> ASK { dbr:M-ary_tree a dbo:Plant } 运行 SPARQL2:

回答 1 投票 0

如何在 DBPedia 中列出所有不同的属性

我有一个关于 DBpedia 的紧迫问题。也就是说,我想知道如何每页搜索 DBpedia 中的所有属性。 URI http://nl.dbpedia.org/property/einde 涉及属性...

回答 2 投票 0

知识图谱上的自然语言查询

我刚刚进入知识图谱/本体领域,有一个问题需要查询。 知识图谱/本体是用RDF构建的,RDF上的查询是通过SPARQL语言完成的。例如,“查找所有主题...

回答 1 投票 0

如何在SPARQL中查找包括某个单词的所有标题

前缀 rdf: 前缀 rdfs: 前缀腿: 选择 *

回答 1 投票 0

XSLTForms / XForms - 实例数据中的命名空间?

我在这里做错了什么 - 我的 XForms 数据源是 SPARQL 结果 - 我可以使用以下 XPATH 获取它: 我在这里做错了什么 - 我的 XForms 数据源是 SPARQL 结果 - 我可以使用以下 XPATH 来获取它: <bind id="bnd_results" nodeset="instance('sparql')/*/*/*"/> 但如果不使用“*”通配符,我似乎无法让它工作。 它似乎与实例数据的命名空间有关。 <?php header('Content-Type: text/xml; charset=utf-8'); if (isset($_GET['debug'])) { $debug="yes"; } else { $debug="no"; } ?> <?xml-stylesheet href="xsltforms/xsltforms.xsl" type="text/xsl"?> <?xsltforms-options debug="<?=$debug?>"?> <?php $sparqlep="https://dbpedia.org/sparql?query="; $sparql=<<<SPARQL SELECT DISTINCT(?linkedPerson) WHERE { ?s rdfs:label 'World Wide Web Consortium'@en; foaf:isPrimaryTopicOf ?wikipage. ?linkedPerson rdf:type dbo:Person, foaf:Person; foaf:isPrimaryTopicOf ?linkedwikipage. { ?s ^dbo:wikiPageWikiLink ?linkedPerson.} UNION { ?s dbo:wikiPageWikiLink ?linkedPerson. }} LIMIT 100 SPARQL; $url=$sparqlep . rawurlencode($sparql); ?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:sparql="http://www.w3.org/2005/sparql-results#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/sw/DataAccess/rf1/result2.xsd"> <head> <model xmlns="http://www.w3.org/2002/xforms"> <instance id="sparql" src="<?=$url?>"/> <instance id="default"> <data xmlns=""> <selected/> </data> </instance> <bind id="bnd_results" nodeset="instance('sparql')/*/*/*"/> <bind id="bnd_sel" nodeset="instance('default')/selected"/> </model> </head> <body> <details> <summary>SPARQL query</summary> <code> <?=$sparql?> </code> </details> <group xmlns="http://www.w3.org/2002/xforms"> <label>Selected:</label> <output bind="bnd_sel"/> <select1 appearance="full" bind="bnd_sel"> <itemset bind="bnd_results"> <label ref="."/> <value ref="."/> </itemset> </select1> </group> </body> </html> 即使它是 XPath 1.0 的扩展,XSLTForms 也允许使用“*”指定任何前缀,例如“*:myelement”。 还可以在表单中声明前缀,以便可以在 XPath 表达式中使用它。 以下更改有效(缺少 xpath 中的初始“/sparql” - 并仅从“结果”开始) <bind id="bnd_results" nodeset="instance('sparql')/sparql:results/sparql:result/sparql:binding[@name='linkedPerson']"/> 这是一个工作示例 - 也从中删除了 PHP - 现在只是静态 XHTM + XLSTForms: <?xml-stylesheet href="xsltforms/xsltforms.xsl" type="text/xsl"?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:sparql="http://www.w3.org/2005/sparql-results#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/sw/DataAccess/rf1/result2.xsd"> <head> <xf:model> <xf:instance id="sparql"> <data xmlns=""> <query>prefix dbo: &lt;http://dbpedia.org/ontology/> prefix foaf: &lt;http://xmlns.com/foaf/0.1/> prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?linkedPerson WHERE { ?s rdfs:label 'World Wide Web Consortium'@en; foaf:isPrimaryTopicOf ?wikipage. ?linkedPerson a dbo:Person; foaf:isPrimaryTopicOf ?linkedwikipage. { ?s ^dbo:wikiPageWikiLink ?linkedPerson.} UNION { ?s dbo:wikiPageWikiLink ?linkedPerson. } } LIMIT 100 </query> </data> </xf:instance> <xf:instance id="results"> <sparql:results/> </xf:instance> <xf:instance id="default"> <data xmlns=""> <selected/> </data> </xf:instance> <xf:bind id="bnd_results" nodeset="instance('results')/sparql:results/sparql:result/sparql:binding[@name='linkedPerson']"/> <xf:bind id="bnd_sel" nodeset="instance('default')/selected"/> <xf:submission id="run_sparql" method="get" resource="https://dbpedia.org/sparql" ref="instance('sparql')" replace="instance" instance="results"> <xf:header combine="replace"> <xf:name>Accept</xf:name> <xf:value>application/sparql-results+xml, charset UTF-8</xf:value> </xf:header> </xf:submission> </xf:model> </head> <body> <xf:textarea ref="instance('sparql')/query" cols="80" rows="10" spellcheck="false"> <xf:label>SPARQL</xf:label> </xf:textarea> <xf:trigger> <xf:label>Submit</xf:label> <xf:action ev:event="DOMActivate"> <xf:send submission="run_sparql"/> </xf:action> </xf:trigger> <group xmlns="http://www.w3.org/2002/xforms"> <label>Selected:</label> <output bind="bnd_sel"/> <select1 appearance="full" bind="bnd_sel"> <itemset bind="bnd_results"> <label ref="."/> <value ref="."/> </itemset> </select1> </group> </body> </html>

回答 2 投票 0

从 WikiData ID 获取维基百科页面 ID

我想在单个 SPARQL 查询中从维基数据查询服务的维基数据 ID 获取维基百科页面 ID。 第一个 SPARQL 查询从标题页获取维基数据 ID (wd:Q3131):“Alpes-de-Haute-Provenc...

回答 1 投票 0

如何从Turtle RDF数据中提取语言标签?

我想提取语言标签。我无法访问语言标签并收到查询中未使用“@”的错误。 这是我的数据: @前缀msterms: 我想提取语言标签。我无法访问语言标签并收到查询中未使用“@”的错误。 这是我的数据: @prefix msterms: <http://materials.springer.com/terms/> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix skos: <http://www.w3.org/2004/02/skos/core#> . <http://km.springer.com/smat-substances/AFQMYGSOCIHFSLIX> msterms:elementSystem "C-F-H-O" ; msterms:inChIKey "DTQVDTLACAAQTR-UHFFFAOYSA-N" ; msterms:molecularFormula "C<sub>2</sub>HF<sub>3</sub>O<sub>2</sub>" ; owl:sameAs <http://www.wikidata.org/entity/Q412033>, <https://echa.europa.eu/substance-information/-/substanceinfo/100.000.846> ; skos:altLabel "2,2,2-Trifluoroacetic acid", "تریفلورواستیک اسید"@azb, "трифлуороцетна киселина"@bg, "kyselina trifluoroctová"@cs, "三氟乙酸"@zh-sg, "三氟乙酸"@zh-tw ; skos:prefLabel "trifluoroacetic acid" . 如何提取语言标签? 这是我的代码、错误和查询: from rdflib import Graph # Load the Turtle data into a Graph object graph = Graph() graph.parse("/content/demo.ttl", format="ttl") # Define SPARQL query to extract language tags query = """ SELECT ?lang WHERE { <http://km.springer.com/smat-substances/AFQMYGSOCIHFSLIX> skos:altLabel ?altLabel@?lang . } """ # Execute the SPARQL query qres = graph.query(query) for row in qres: altlabel = row.altLabel # Access the language-tagged literal lang = altlabel.language # Extract the language tag directly print(lang) 错误: ParseException: Expected SelectQuery, found '@' (at char 105), (line:4, col:84) 您提供的 SPARQL 查询无效,特别是 ?altLabel@?lang 部分。相反,您可以尝试以下方法从文字中提取语言: SELECT ?lang WHERE { <http://km.springer.com/smat-substances/AFQMYGSOCIHFSLIX> skos:altLabel ?altLabel . BIND( LANG(?altLabel) AS ?lang) }

回答 1 投票 0

如何运行 sparQL 查询?

我在 Mozilla Festival 12 上发现了 SparQL 语法。 演示器使用的是基于 Web 的专有界面,我想知道是否有开放服务或(跨平台)GUI

回答 5 投票 0

是否可以直接对带有JSON-LD数据的网页运行SPARQL查询?

比如这个页面 https://www.bobdc.com/blog/json-ld/ ,查看页面源码时有: { &</desc> <question vote="0"> <p>比如这个页面<a href="https://www.bobdc.com/blog/json-ld/" rel="nofollow noreferrer">https://www.bobdc.com/blog/json-ld/</a>,查看页面源码时有:</p> <pre><code>&lt;html&gt; &lt;head&gt; &lt;script type=&#34;application/ld+json&#34;&gt; { &#34;@context&#34; : &#34;http://schema.org&#34;, &#34;@type&#34; : &#34;BlogPosting&#34;, &#34;mainEntityOfPage&#34;: { &#34;@type&#34;: &#34;WebPage&#34;, &#34;@id&#34;: &#34;https:\/\/www.bobdc.com\/&#34; }, &#34;articleSection&#34; : &#34;blog&#34;, &#34;name&#34; : &#34;Exploring JSON-LD&#34;, &#34;headline&#34; : &#34;Exploring JSON-LD&#34;, &#34;description&#34; : &#34;And of course, querying it with SPARQL.&#34;, &#34;inLanguage&#34; : &#34;en&#34;, &#34;author&#34; : &#34;Bob DuCharme&#34;, &#34;creator&#34; : &#34;&#34;, &#34;publisher&#34;: &#34;&#34;, &#34;accountablePerson&#34; : &#34;&#34;, &#34;copyrightHolder&#34; : &#34;&#34;, &#34;copyrightYear&#34; : &#34;2019&#34;, &#34;datePublished&#34;: &#34;2019-04-21 11:20:00 \u002b0000 UTC&#34;, &#34;dateModified&#34; : &#34;2019-04-21 11:20:00 \u002b0000 UTC&#34;, &#34;url&#34; : &#34;https:\/\/www.bobdc.com\/blog\/json-ld\/&#34;, &#34;wordCount&#34; : &#34;1283&#34;, &#34;keywords&#34; : [ &#34;RDF&#34;,&#34;JSON&#34;,&#34;SPARQL&#34;,&#34;Blog&#34; ] } &lt;/script&gt; ...... </code></pre> <p>我们可以直接对页面使用<strong>SPARQL</strong>查询吗?如果没有,有一些优雅的解决方法吗?</p> <p>我用谷歌搜索没有得到满意的结果。预先感谢您!</p> </question> <answer tick="false" vote="0"> <p>这对于普通的 SPARQL 来说是不可能的。需要预处理页面并将 JSON-LD 加载到某种内存三元组存储中,如评论中 @UninformedUser 所建议的那样。但是,不需要手动执行此操作,而是可以使用一些现成的工具:</p> <h1><a href="https://github.com/SPARQL-Anything/sparql.anything" rel="nofollow noreferrer">SPARQL 任何东西</a></h1> <p>它重载了 SPARQL SERVICE 运算符来解析来自 Web 或本地存储的多种文件。根据您的情况,创建以下查询文件 <pre><code>json-ld-in-html.rq</code></pre>:</p> <pre><code># vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv # vvv prefixes for your query vvv # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv # e.g. PREFIX schema: &lt;http://schema.org/&gt; # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # ^^^ prefixes for your query ^^^ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SELECT * WHERE { SERVICE &lt;x-sparql-anything:location=https://www.bobdc.com/blog/json-ld/,triplifier=io.github.sparqlanything.html.HTMLTriplifier,html.metadata=true&gt; { # vvvvvvvvvvvvvvvvvv # vvv your query vvv # vvvvvvvvvvvvvvvvvv # e.g. [] schema:name ?title . [] schema:author ?author . # ^^^^^^^^^^^^^^^^^^ # ^^^ your query ^^^ # ^^^^^^^^^^^^^^^^^^ } } </code></pre> <p>然后执行查询:</p> <pre><code>java -jar sparql-anything-0.9.0.jar -q json-ld-in-html.rq -f TEXT </code></pre> <p>结果:</p> <pre><code>---------------------------------------- | title | author | ======================================== | &#34;Exploring JSON-LD&#34; | &#34;Bob DuCharme&#34; | ---------------------------------------- </code></pre> <p>通过一些更改,还可以提供 URL 作为参数或以其他格式返回输出。</p> </answer> </body></html>

回答 0 投票 0

SPARQL:仅构造图中尚未存在的三元组

我想实现一个 SPARQL 构造查询,它仅构造图中尚未存在的三元组。 考虑以下示例图: @前缀crm: 我想实现一个 SPARQL 构造查询,它仅构造图中尚未存在的三元组。 考虑以下示例图: @prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> . @prefix sdhss: <https://r11.eu/ns/prosopography/> . @prefix : <http://www.example.org/> . :0b5000b1e9 a sdhss:C23 . :cebbd8cac9 a :E13_sdhss_P36 ; crm:P140_assigned_attribute_to :0b5000b1e9 ; crm:P141_assigned [ a crm:E21_Person ] ; crm:P14_carried_out_by :d4f0bc5a29 ; crm:P17_was_motivated_by :41cf6794ba . :b427419ad6 a :E13_sdhss_P35 ; crm:P140_assigned_attribute_to :0b5000b1e9 ; crm:P141_assigned [ a sdhss:C24 ] . :b427419ad7 a :E13_sdhss_P4 ; crm:P140_assigned_attribute_to :0b5000b1e9 ; crm:P141_assigned [ a crm:P52_Time-Span] . 为了为 E13_sdhss_P35/P4 实例构造缺失的 P14/P17 三元组,我想出了这样的方法: prefix : <http://www.example.org/> prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> prefix sdhss: <https://r11.eu/ns/prosopography/> construct { ?e13_a2 crm:P14_carried_out_by ?agent ; crm:P17_was_motivated_by ?source . ?e13_a3 crm:P14_carried_out_by ?agent ; crm:P17_was_motivated_by ?source . } where { ?c23 a sdhss:C23 . ?e13_a1 a :E13_sdhss_P36 ; crm:P140_assigned_attribute_to ?c23 ; crm:P141_assigned [ a crm:E21_Person ] ; crm:P14_carried_out_by ?agent ; crm:P17_was_motivated_by ?source . ?e13_a2 a :E13_sdhss_P35 ; crm:P140_assigned_attribute_to ?c23 ; crm:P141_assigned [ a sdhss:C24 ] . ?e13_a3 a :E13_sdhss_P4 ; crm:P140_assigned_attribute_to ?c23 ; crm:P141_assigned [ a crm:P52_Time-Span ] . minus { {?e13_a2 crm:P14_carried_out_by ?agent .} union {?e13_a2 crm:P17_was_motivated_by ?source .} union {?e13_a3 crm:P14_carried_out_by ?agent .} union {?e13_a3 crm:P17_was_motivated_by ?source .} } } 这个想法是根据 minus 子句中的模式过滤结果集,并且仅将剩余的绑定传递给构造子句。 这适用于给定的示例图,但是一旦我为 E13_sdhss_P35 或 E13_sdhss_P4 添加 P14/P17 断言,构造查询就会一起返回空。 例如对于使用 P14/P17 断言沿 `E13_sdhss_P35: 进行的以下修改,查询返回空 @prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> . @prefix sdhss: <https://r11.eu/ns/prosopography/> . @prefix : <http://www.example.org/> . :0b5000b1e9 a sdhss:C23 . :cebbd8cac9 a :E13_sdhss_P36 ; crm:P140_assigned_attribute_to :0b5000b1e9 ; crm:P141_assigned [ a crm:E21_Person ] ; crm:P14_carried_out_by :d4f0bc5a29 ; crm:P17_was_motivated_by :41cf6794ba . :b427419ad6 a :E13_sdhss_P35 ; crm:P140_assigned_attribute_to :0b5000b1e9 ; crm:P141_assigned [ a sdhss:C24 ] ; crm:P14_carried_out_by :d4f0bc5a29 ; crm:P17_was_motivated_by :41cf6794ba . :b427419ad7 a :E13_sdhss_P4 ; crm:P140_assigned_attribute_to :0b5000b1e9 ; crm:P141_assigned [ a crm:P52_Time-Span] . 我正在本地 Fuseki 设置上对此进行测试,在实时 GraphDB 实例上,类似的查询似乎工作得很好。 可能的解决方案: prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> prefix sdhss: <https://r11.eu/ns/prosopography/> prefix : <http://www.example.org/> construct { ?e13_a2_p14 crm:P14_carried_out_by ?agent . ?e13_a2_p17 crm:P17_was_motivated_by ?source . } where { ?c23 a sdhss:C23 . ?e13_a1 a :E13_sdhss_P36 ; crm:P140_assigned_attribute_to ?c23 ; crm:P141_assigned [ a crm:E21_Person ] ; crm:P14_carried_out_by ?agent ; crm:P17_was_motivated_by ?source . { ?e13_a2_p14 a :E13_sdhss_P35 ; crm:P140_assigned_attribute_to ?c23 ; crm:P141_assigned [ a sdhss:C24 ] . filter not exists { ?e13_a2_p14 crm:P14_carried_out_by ?agent . } } union { ?e13_a2_p17 a :E13_sdhss_P35 ; crm:P140_assigned_attribute_to ?c23 ; crm:P141_assigned [ a sdhss:C24 ] . filter not exists { ?e13_a2_p17 crm:P17_was_motivated_by ?source . } } } 早期尝试的问题显然是,一旦 minus/filter 子句匹配,SPARQL 处理器就会从结果集中删除绑定,并且构造子句的机制显然是这样的,只有在所有变量都绑定时才会生成三元组;因此,一旦单个减/过滤子句捕获到某些内容,?e13_a2 就会解除绑定,因此根本不会生成三元组。 这也解释了我之前所做的一个观察,即减号/过滤子句的顺序在之前的尝试中很重要,例如OP减/工会提案。 在应用过滤器约束之前,通过专门命名主题变量(?e13_a2_p14,?e13_a2_p17)可以解决在减号/过滤器匹配上丢失 e13_a2 绑定的问题。

回答 1 投票 0

查询 DBPedia 时 LIMIT 和 OFFSET 的奇怪行为

我正在通过 RDFLib 查询 DBPedia 的 Virtuoso 端点,以便获取 dbo:Politician 类型的所有实体,除此之外没有其他职业,并且我注意到执行时得到的结果...

回答 1 投票 0

SPARQL 查询删除“@en”

我有一个大型 skos 分类法,其中有一些不正确的符号属性。大多数属性都是 xsd:string,但有些属性带有“@en”语言字符串。我想修改三元组...

回答 2 投票 0

SPARQL 查询混合了 Q-item 的不同语句节点

编辑:请阅读这篇文章的评论 - 文章本身已得到答复。 我的查询的相关部分(检索在获奖时担任国家元首或国家元首的诺贝尔奖获得者

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.