我是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") )
}
它获得name
但没有inchi
,而inchi
是ChemicalCompound
类的属性。有什么想法吗?
答案 0 :(得分:2)
没有多种化合物具有此属性的值。例如,以下查询计算具有该属性的所有三元组,并且只有七个:
select (count(distinct *) as ?n) where {
?s dbo:inchi ?o
}
您可以看到哪些值具有此属性:
select ?s ?o where {
?s dbo:inchi ?o
}
因此,您的查询实际上可能正如您所期望的那样工作,但您只是在所有没有化合物的化合物中错过了几个英寸值。您可以订购结果,以便首先查看具有英寸值的化合物:
select ?s ?o where {
?s a dbo:ChemicalCompound .
optional { ?s dbo:inchi ?o }
}
order by desc(?o)