Rdf 从dbpedia获取InChI/InChIkey

Rdf 从dbpedia获取InChI/InChIkey,rdf,sparql,wikipedia,dbpedia,Rdf,Sparql,Wikipedia,Dbpedia,我是dbpediasparql的新手。我想从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 dbpedi

我是dbpediasparql的新手。我想从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") )
   }
前缀rdf:
前缀dbpedia:
选择*WHERE{
?是一种化学化合物。
?y rdfs:标签?名称。
可选的{?y dbpedia2:inchi?inchi}。
过滤器(langMatches(lang(?Name),“en”))
}


它获取
名称
,但不获取
inchi
,并且
inchi
是类的属性。有什么想法吗?

没有多少化合物具有这种性质。例如,以下查询统计具有该属性的所有三元组,只有七个:

选择(计数(不同*)为?n)其中{
s dbo:inchi?o
}

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

选择s?o何处{
s dbo:inchi?o
}

因此,您的查询实际上可能正如您所期望的那样工作,但在所有没有inchi值的化合物中,您只是缺少了几个inchi值。您可以对结果进行排序,以便首先查看具有inchi值的化合物:

选择s?o何处{
是一种dbo:化学化合物。
可选的{s dbo:inchi?o}
}
按描述排序(?o)

对于ex,如果你看……它里面有英奇。。。但是sparql结果中没有显示:(…因此我们在查询中仍然缺少一些内容。无论如何,谢谢Joshua@VenkateshMuthukrishnan我看到Wikipedia的文章有一些这样的信息,但我不知道哪里有这些信息。DBpedia是从Wikipedia提取的信息;它没有Wikipedia拥有的所有信息。