我正在通过python rdflib执行sparql查询,如
r=sparql.prepareQuery('SELECT ?label WHERE { <%s> rdfs:label ?label . }'%i)我的目标是以这种方式获取概念的标签。因此,我得到了这样的东西:
rdflib.term.Literal(u'primary phloem sieve cell', datatype=rdflib.term.URIRef(u'http://www.w3.org/2001/XMLSchema#string'))从这里,我想提取标签和数据类型。(本例中的主韧皮部、筛子单元格和字符串)我使用的是
if type(o) == rdflib.term.Literal:
output.append(o.toPython())哪里
o= rdflib.term.Literal(u'primary phloem sieve cell', datatype=rdflib.term.URIRef(u'http://www.w3.org/2001/XMLSchema#string')) 但这是行不通的。我对rdflib还不熟悉。有人知道我是怎么做到的吗?
我知道我需要将结果转换为string for label,但是如果数据类型不是string,并且我想获取数据类型,该怎么办?
发布于 2014-10-05 15:05:19
我认为它是out.As查询结果的类型,即o是'rdflib.query.ResultRow‘,o是类’rdflib.Term.out.As‘,因此if条件不工作。删除对我和数据类型有效的if条件,我需要执行另一个sparql查询。
https://stackoverflow.com/questions/26203482
复制相似问题