如何使用Python从RDFLib读取URI?

2024-05-18 14:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几千个URIRef本体值,我正试图获取它们的字符串表示形式:

[rdflib.term.URIRef('http://purl.obolibrary.org/obo/RO_0002219'),
 rdflib.term.URIRef('http://purl.obolibrary.org/obo/RO_0002551'),
rdflib.term.URIRef('http://purl.obolibrary.org/obo/uberon/core#indirectly_supplies')]

我可以分别访问每个人的链接(例如http://purl.obolibrary.org/obo/RO_0002219)并获取它(例如surrounded by),但是如何使用Python实现呢?有两种方法我知道怎么做,但我也不知道。一种方法是简单地使用RDFLib库,但我没有找到一个函数来转换链接。另一种方法是解析HTML链接以获得红色值(我认为这对应于翻译)

注意,其中一些没有任何附加内容(例如http://purl.obolibrary.org/obo/uberon/core#indirectly_supplies404: Not Found


Tags: 方法orgcorehttpro链接rdflibterm
1条回答
网友
1楼 · 发布于 2024-05-18 14:30:15

由于这些URI支持RDF内容协商,您只需获取RDF并将其加载到图中即可,如下所示。一旦有了图形,就可以使用SPARQL查询想要从中获得的属性。在下面的示例中,我获取每个主题的标签。我还删除了您提供的一个URI,因为它是404

from rdflib import Graph, URIRef

uris = [URIRef('http://purl.obolibrary.org/obo/RO_0002219'), URIRef('http://purl.obolibrary.org/obo/RO_0002551')]

for uri in uris:
   query = """
   SELECT ?label WHERE {
      <"""+str(uri)+"""> rdfs:label ?label.
   }
   """
   g = Graph()
   g.parse(uri)
   res = g.query(query)
   for result in res:
      print(result)

这会产生一个输出

(rdflib.term.Literal('surrounded by', lang='en'),)
(rdflib.term.Literal('has skeleton'),)

相关问题 更多 >

    热门问题