如何在新网格端点中使用SPARQL构造?
我试图在SPARQL网格端点中使用构造,但这一个总是返回一个空查询。 特别是我找到了一些医学名称的别名 基本上,有效的SELECT查询是:如何在新网格端点中使用SPARQL构造?,sparql,endpoint,Sparql,Endpoint,我试图在SPARQL网格端点中使用构造,但这一个总是返回一个空查询。 特别是我找到了一些医学名称的别名 基本上,有效的SELECT查询是: PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PRE
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX meshv: <http://id.nlm.nih.gov/mesh/vocab#>
PREFIX mesh: <http://id.nlm.nih.gov/mesh/>
PREFIX mesh2015: <http://id.nlm.nih.gov/mesh/2015/>
SELECT ?d ?dName ?c ?cName
FROM <http://id.nlm.nih.gov/mesh>
WHERE {
?d a meshv:Descriptor .
?d meshv:concept ?c .
?d rdfs:label ?dName .
?c rdfs:label ?cName
FILTER(REGEX(?dName,'infection','i') || REGEX(?cName,'infection','i'))
}
ORDER BY ?d
前缀rdf:
前缀rdfs:
前缀xsd:
前缀owl:
前缀meshv:
前缀网格:
2015年4月31日:
选择?d?dName?c?cName
从…起
在哪里{
?d a meshv:描述符。
?d meshv:概念?c。
?d rdfs:标签?dName。
?c rdfs:标签?cName
过滤器(REGEX(?dName,'infection','i')| | REGEX(?cName,'infection','i'))
}
按?d?订购
我发现如下情况:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX meshv: <http://id.nlm.nih.gov/mesh/vocab#>
PREFIX mesh: <http://id.nlm.nih.gov/mesh/>
PREFIX mesh2015: <http://id.nlm.nih.gov/mesh/2015/>
CONSTRUCT{
?dName a (subject)
is alias of (predicate)
?cName (object)
}
WHERE {
?d a meshv:Descriptor .
?d meshv:concept ?c .
?d rdfs:label ?dName .
?c rdfs:label ?cName
FILTER(REGEX(?dName,'infection','i') || REGEX(?cName,'infection','i'))
}
前缀rdf:
前缀rdfs:
前缀xsd:
前缀owl:
前缀meshv:
前缀网格:
2015年4月31日:
构造{
?dName a(受试者)
是(谓词)的别名
?cName(对象)
}
在哪里{
?d a meshv:描述符。
?d meshv:概念?c。
?d rdfs:标签?dName。
?c rdfs:标签?cName
过滤器(REGEX(?dName,'infection','i')| | REGEX(?cName,'infection','i'))
}
通知支持构造,并且您可以尝试查询,SPARQL端点应为
谢谢您的帮助。您的第二个查询不是合法的SPARQL查询。我不知道MeSH应该支持其他东西,但是构造需要使用where部分中出现的变量<代码>构造{s?p 42},其中{s?p?o}。请注意,文字不能作为RDF三元组的主题,而且
rdfs:label
属性的值很可能是文字,因此构造{label?p?o},其中{s?p?o;rdfs:label?label}
可能不起作用。你遇到了什么样的错误?嗨@JoshuaTaylor谢谢你的回复。我也可以使用WHERE来构造,而不需要在两者之间指定任何内容。。。但是结果总是一样的,查询没有给我任何特别的错误,给了我一个空表,表的头部有写的主语、谓语和宾语。构造其中{mesh:D015242 meshv:pharmacologicalAction?pa.?pa rdfs:label?paLabel.}
好的,这是可行的。。。我的问题是一个概念问题。谢谢。您的第二个查询不是合法的SPARQL查询。我不知道MeSH应该支持其他东西,但是构造需要使用where部分中出现的变量<代码>构造{s?p 42},其中{s?p?o}。请注意,文字不能作为RDF三元组的主题,而且rdfs:label
属性的值很可能是文字,因此构造{label?p?o},其中{s?p?o;rdfs:label?label}
可能不起作用。你遇到了什么样的错误?嗨@JoshuaTaylor谢谢你的回复。我也可以使用WHERE来构造,而不需要在两者之间指定任何内容。。。但是结果总是一样的,查询没有给我任何特别的错误,给了我一个空表,表的头部有写的主语、谓语和宾语。构造其中{mesh:D015242 meshv:pharmacologicalAction?pa.?pa rdfs:label?paLabel.}
好的,这是可行的。。。我的问题是一个概念问题。非常感谢。