【问题标题】:Extraction of datatype and label names from rdflib.term.Literal从 rdflib.term.Literal 中提取数据类型和标签名称
【发布时间】:2014-10-05 14:23:09
【问题描述】:

我正在通过类似 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 的新手。 有谁知道我该怎么做?

我知道我需要将结果转换为字符串作为标签,但是如果数据类型不是字符串并且我想获取数据类型怎么办

【问题讨论】:

  • 请格式化您的问题。

标签: python rdf owl ontology rdflib


【解决方案1】:

我想通了。因为查询结果的类型,即 o 是 'rdflib.query.ResultRow' 并且 o[0] 是类 'rdflib.term.Literal'。因此 if 条件不起作用。 删除 if 条件对我有用,对于我需要执行另一个 sparql 查询的数据类型。

【讨论】:

猜你喜欢
  • 2021-11-21
  • 2021-08-03
  • 1970-01-01
  • 2018-06-01
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多