从rdflib.term.Literal中提取数据类型和标签名称

时间:2014-10-05 14:23:09

标签: python rdf owl ontology rdflib

我正在通过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的标签但是如果数据类型不是字符串并且我想获取数据类型

1 个答案:

答案 0 :(得分:3)

我弄清楚了。因为查询结果的类型是“rdflib.query.ResultRow&#39; 并且o [0]是class&#; rdflib.term.Literal&#39;。如果条件不起作用。 删除if条件对我和我需要执行另一个sparql查询的数据类型。