构造SPARQL查询中的字段类型映射错误
我正在尝试检查此三元组的文本值:构造SPARQL查询中的字段类型映射错误,sparql,semantic-web,virtuoso,Sparql,Semantic Web,Virtuoso,我正在尝试检查此三元组的文本值:skos:altSymbol“literal values of resource2”是否作为资源存在于我的端点中。 如果是,我想构造一个新的三元组谓词 我运行了以下查询,但出现了一个错误 我不知道这个问题出了什么问题。如果有人能帮助我或建议我一个不同的方式继续。那太棒了 谢谢 皮埃尔 Sparql端点: 系统是OpenLink Virtuoso 7.2.5开源(linux) BASE 前缀rdf: 前缀rdfs: 前缀skos: 前缀xsd: 前缀b: 前缀资源
skos:altSymbol“literal values of resource2”
是否作为资源
存在于我的端点中。
如果是,我想构造一个新的三元组谓词
我运行了以下查询,但出现了一个错误
我不知道这个问题出了什么问题。如果有人能帮助我或建议我一个不同的方式继续。那太棒了
谢谢
皮埃尔
Sparql端点:
系统是OpenLink Virtuoso 7.2.5开源(linux)
BASE
前缀rdf:
前缀rdfs:
前缀skos:
前缀xsd:
前缀b:
前缀资源:
前缀海外建筑运营管理局:
前缀sio:
构造{蛋白质id sio:sio_000339?existURI.}
哪里
{
?蛋白质id?p?o;
rdfs:标签?标签;
skos:altSymbol?符号;
海外建筑运营管理局:RO_0002162。
绑定(CONCAT(str(资源:),str(?symbol))为?uri)
过滤器IF(存在{uri rdf:type vocab:Gene},uri,“无”)
绑定(URI(?URI)为?存在)
}
限制100
返回错误=
Virtuoso 37000错误SP031:SPARQL编译器:内部错误:sparp\u check\u field\u mapping\u spo():字段既不是变量也不是文字?
如注释中所示,此查询修订版解决了此问题--
构造
{?蛋白质id sio:sio_000339?存在性}
哪里
{
{?蛋白质_id?p?o;
rdfs:标签?标签;
skos:altSymbol?符号;
海外建筑运营管理局:RO_0002162。
绑定(URI(CONCAT(str(资源:),str(?符号)))为?URI)
}
绑定(如果(存在{uri rdf:type vocab:Gene},?uri,“None”)为existURI)
}
限制100
什么不起作用?我在web UI中尝试了您的查询,它可以正常工作。还是不?我的意思是,这个问题当然是不正确的。您只需将一个字符串绑定到?uri
。文字永远不能是三元组的主题,因此检查?uri rdf:type vocab:Gene
无效。您可以简单地将IF放入绑定,过滤器是无用的。或者我误解了你的查询?这就是你想要的吗?:CONSTRUCT{protein_id sio:sio_000339?existURI.}其中{select?protein_id?uri{protein_id?p?o;rdfs:label?label;skos:altSymbol?symbol;obo:RO_0002162.BIND(uri(CONCAT(str(resource:),str(?symbol)))as?uri)}BIND(如果(存在{uri rdf:type vocab:Gene},uri,“None”)作为existURI)限制100
-我不确定输出。但是如果没有子查询,BIND orderok会出现一些问题,将其包装到一个单独的图形模式中也会起作用:CONSTRUCT{protein_id sio:sio_000339?existURI.}其中{protein_id?p?o;rdfs:label?label;skos:altSymbol?symbol;obo:RO_0002162.BIND(URI(CONCAT(str(resource:),str(?symbol)))as?uri)}BIND(如果(存在{uri rdf:type vocab:Gene},uri,“None”)as?existURI)限制100
-因此,不需要子查询它是真的!我现在不能重现这个错误。
BASE <http://www.southgreen.fr/agrold/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX vocab: <vocabulary/>
PREFIX resource: <resource/>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX sio: <http://semanticscience.org/resource/>
CONSTRUCT { ?protein_id sio:SIO_000339 ?existURI . }
WHERE
{
?protein_id ?p ?o ;
rdfs:label ?label ;
skos:altSymbol ?symbol ;
obo:RO_0002162 <http://identifiers.org/taxonomy/39947> .
BIND ( CONCAT ( str ( resource: ) , str ( ?symbol ) ) AS ?uri)
FILTER IF ( EXISTS { ?uri rdf:type vocab:Gene } , ?uri , "None" )
BIND ( URI ( ?uri ) as ?existURI )
}
LIMIT 100
CONSTRUCT
{ ?protein_id sio:SIO_000339 ?existURI . }
WHERE
{
{ ?protein_id ?p ?o ;
rdfs:label ?label ;
skos:altSymbol ?symbol ;
obo:RO_0002162 <http://identifiers.org/taxonomy/39947> .
BIND ( URI ( CONCAT ( str ( resource: ) , str ( ?symbol ) ) ) AS ?uri)
}
BIND ( If ( EXISTS { ?uri rdf:type vocab:Gene } , ?uri , "None" ) AS ?existURI )
}
LIMIT 100