2014-09-20 4 views
1

Я хотел бы знать, как отправить запрос SPARQL в DDBpedia и получить таблицу, в которую включена информация, содержащаяся в шаблоне информационных полей Wikipedia «chembox», например, молекулярный вес или формула.Извлечь химические данные из DBpedia через SPARQL

Итак, первым шагом было только сделать запрос, результаты которого должны быть списком химических веществ, в которые были включены формулы и свойства молекулярной массы. Но следующая возвращает никаких результатов:

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 

SPARQL Explorer at dbpedia.org

И поэтому я застрял. Что-то не так с этим запросом или что DBPedia действительно не собирает эту информацию из химических документов Wikipedia?

ответ

2

Вы поймали неправильное пространство имен для 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 

SPARQL Explorer @dbpedia.org


Чтобы получить правильные пространства имен, вы можете либо посмотреть на одном примере, как this или получить список всех используемых свойств для типа dbpedia-owl:ChemicalSubstance с использованием

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

SPARQL Explorer @dbpedia.org

+0

Спасибо. Тьфу. Данные поля формулы ужасно грязны, а молекулярный вес кажется несуществующим. –

+1

@GlennHowes. Свойства 'http: //dbpedia.org/ontology/...' (свойства dbpedia-owl :) имеют гораздо более чистые данные и должны быть предпочтительнее, чем dbprop: когда они доступны. –

+0

Итак, вы говорите, что есть альтернатива http://dbpedia.org/property/formula, когда я хочу искать по формуле или получить формулу? –

Смежные вопросы