从dbpedia获取InChI / InChIkey

时间:2015-08-18 16:58:47

标签: rdf sparql wikipedia dbpedia

我是DBpedia SPARQL的新手。我想从DBpedia中提取所有inchikeyinchi。我写了以下查询来做,但由于某种原因它不起作用。

   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,而inchiChemicalCompound类的属性。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

没有多种化合物具有此属性的值。例如,以下查询计算具有该属性的所有三元组,并且只有七个:

select (count(distinct *) as ?n) where {
  ?s dbo:inchi ?o
}

SPARQL results (7)

您可以看到哪些值具有此属性:

select ?s ?o where {
  ?s dbo:inchi ?o
}

SPARQL results

因此,您的查询实际上可能正如您所期望的那样工作,但您只是在所有没有化合物的化合物中错过了几个英寸值。您可以订购结果,以便首先查看具有英寸值的化合物:

select ?s ?o where {
  ?s a dbo:ChemicalCompound .
  optional { ?s dbo:inchi ?o }
}
order by desc(?o)

SPARQL results