通过SPARQL从DBpedia中提取化学数据

通过SPARQL从DBpedia中提取化学数据,sparql,dbpedia,Sparql,Dbpedia,我想知道如何向DDBpedia提交SPARQL查询并返回一个表,其中包含在Wikipedia“chembox”信息框模板中找到的信息,例如分子量或公式 因此,第一步只是做一个查询,其结果应该是一个包含公式和分子量性质的化学物质列表。但以下结果没有返回任何结果: SELECT * WHERE { ?y rdf:type dbpedia-owl:ChemicalSubstance. ?y rdfs:label ?Name . ?y dbpedia:molecularWeight ?mol

我想知道如何向DDBpedia提交SPARQL查询并返回一个表,其中包含在Wikipedia“chembox”信息框模板中找到的信息,例如分子量或公式

因此,第一步只是做一个查询,其结果应该是一个包含公式和分子量性质的化学物质列表。但以下结果没有返回任何结果:

SELECT * WHERE {
  ?y rdf:type dbpedia-owl:ChemicalSubstance.
  ?y rdfs:label ?Name .
  ?y dbpedia:molecularWeight ?molecularWeight .
  ?y dbpedia:formula ?formula .
  OPTIONAL {?y dbpedia-owl:iupacName ?iupacname} .
  FILTER (langMatches(lang(?Name),"en"))
}
LIMIT 50


所以我被卡住了。这个查询有什么问题吗?或者DBPedia真的没有从Wikipedia的chemboxes中收集这些信息吗?

您为
DBPedia:molecularWeight
DBPedia:formula
捕获了错误的名称空间。这里正确的名称空间应该是
dbpedia2

此外,几乎没有任何条目具有
dbpedia owl:iupacName
dbpedia2:molecularWeight
dbpedia2:formula

SELECT * WHERE {
  ?y rdf:type dbpedia-owl:ChemicalSubstance.
  ?y rdfs:label ?Name .
  OPTIONAL {?y dbpedia2:formula ?formula }.
  OPTIONAL {?y dbpedia2:molecularWeight ?molecularWeight}.
  OPTIONAL {?y dbpedia-owl:iupacName ?iupacname} .
  FILTER (langMatches(lang(?Name),"en"))
}
LIMIT 50


要获得正确的名称空间,您可以查看下面的一个示例,或者使用

SELECT DISTINCT ?rel WHERE {
  ?y rdf:type dbpedia-owl:ChemicalSubstance.
  ?y ?rel ?x
}

谢谢。啊。公式字段数据非常混乱,分子量似乎不存在。@GlennHowes
http://dbpedia.org/ontology/...
(dbpedia owl:)属性具有更清晰的数据,并且应该比dbprop更受欢迎:当它们可用时。那么你是说有一种替代方法来代替我要按公式搜索或检索公式的时候?