我是DBpedia SPARQL的新手。我想从DBpedia中提取所有的inchikey和inchi。我已经写了下面的查询来做这件事,但由于某些原因它不能工作。
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbpedia: <http://dbpedia.org/ontology/>
SELECT * WHERE {
?y a dbpedia:ChemicalCompound .
?y rdfs:label ?Name .
OPTIONAL { ?y dbpedia2:inchi ?inchi } .
FILTER ( langMatches(lang(?Name),"en") )
}Run Query
它获取name,但没有inchi,并且inchi是ChemicalCompound类的属性。有什么想法吗?
发布于 2015-08-19 06:14:08
没有多少化合物具有此属性的值。例如,下面的查询计算了该属性的所有三元组,但只有七个:
select (count(distinct *) as ?n) where {
?s dbo:inchi ?o
}SPARQL results (7)
您可以查看哪些值具有此属性:
select ?s ?o where {
?s dbo:inchi ?o
}SPARQL results
因此,您的查询实际上可能会像您预期的那样工作,但您只是在所有没有inchi值的化合物中遗漏了几个inchi值。您可以先对结果进行排序,以查看那些具有inchi值的化合物:
select ?s ?o where {
?s a dbo:ChemicalCompound .
optional { ?s dbo:inchi ?o }
}
order by desc(?o)SPARQL results
https://stackoverflow.com/questions/32078403
复制相似问题