<p>这是相对简单的,至少在概念任务方面。你需要</p>
<ul>
<li>将RDF文档读入rdflib图</li>
<li>迭代图形中的语句(三元组)</li>
<li><ul>
<li>如果语句的对象是文本</li>
</ul></li>
<li><ul>
<li>然后将文本的词法形式连接到正在构建的字符串中</li>
</ul></li>
</ul>
<p>我不是一个Python用户,也不是一个RDFlib用户,但是这些并不困难。<a href="https://rdflib.readthedocs.org/en/latest/gettingstarted.html" rel="nofollow noreferrer">Getting started with RDFLib</a>(来自RDFlib文档)展示了如何读取一个图并在三元组上迭代</p>
<pre><code>import rdflib
g = rdflib.Graph()
result = g.parse("http://www.w3.org/People/Berners-Lee/card")
# Iterate over triples in store and print them out.
print(" - printing raw triples -")
for s, p, o in g:
print((s, p, o))
</code></pre>
<p>现在,您需要检查<code>o</code>是否是文本(一个<code>rdflib.term.Literal</code>)的文本,而不是{<cd1>}。如果存在非字符串类型的文本,您要么希望连接它们的词法形式,要么只连接纯文本(没有语言类型和数据类型的文本)、带有语言标记的文本的字符串部分以及数据类型为<code>xsd:string</code>的文本的词法形式。在</p>
<h3>更多参考资料</h3>
<ul>
<li><a href="https://rdflib.readthedocs.org/en/latest/gettingstarted.html" rel="nofollow noreferrer">Getting started with RDFLib</a></li>
<li><a href="https://rdflib.readthedocs.org/en/latest/apidocs/rdflib.html#rdflib.term.Literal" rel="nofollow noreferrer">rdflib.term.Literal</a>(特别是<a href="https://rdflib.readthedocs.org/en/latest/apidocs/rdflib.html#rdflib.term.Literal.datatype" rel="nofollow noreferrer">Literal.datatype</a>,<a href="https://rdflib.readthedocs.org/en/latest/apidocs/rdflib.html#rdflib.term.Literal.language" rel="nofollow noreferrer">Literal.language</a>)</li>
<li>如果您对Python比较新,并且需要知道如何连接字符串,那么有一些关于堆栈溢出的相关问题,例如<a href="https://stackoverflow.com/q/2711579/1281433">Concatenate strings in python 2.4?</a>。在</li>
</ul>