使用python';s rdflib框架

使用python';s rdflib框架,python,rdf,rdflib,Python,Rdf,Rdflib,我正在尝试使用python的rdflib包向图中添加三元组。关系以列表形式提供(数据帧中的特定列) 这一切照常进行。但是,在遍历列表时: for rel in sampleRelations: g.add( ('gen.'+rel, RDFS.subClassOf, OWL.ObjectProperty) ) 它抛出一个错误:“主题%s必须是rdflib术语”%(s,) 错误 我理解这个问题。我正在寻找可以绕过这一点的指针 RDF术语可以是BNode、URI引用或文本 sa

我正在尝试使用python的rdflib包向图中添加三元组。关系以列表形式提供(数据帧中的特定列)

这一切照常进行。但是,在遍历列表时:

for rel in sampleRelations:
    g.add( ('gen.'+rel, RDFS.subClassOf, OWL.ObjectProperty) )  
它抛出一个错误:“主题%s必须是rdflib术语”%(s,)

错误


我理解这个问题。我正在寻找可以绕过这一点的指针

RDF术语可以是BNode、URI引用或文本

    sampleRelations = ['similarTo', 'brotherOf', 'capitalOf'`]
    g = Graph()

    # general relations
    gen = Namespace('http://abcd.com/general#')
    g.bind('gen',gen)

    # Adding predefined relationships
    g.add( (gen.relatedTo, RDFS.subClassOf, OWL.ObjectProperty) )
    for rel in sampleRelations :
        rel = URIRef('http://abcd.com/general#' + rel)        
        g.add((rel, RDFS.subClassOf, OWL.ObjectProperty))
URI引用也可以通过以下方式完成:

for rel in sampleRelations :                
      g.add((gen.term(rel), RDFS.subClassOf, OWL.ObjectProperty))


你明白吗?那么,为什么不为主题创建RDF术语呢?你读过文件了吗:?顺便问一下,和你上一个问题一样的问题:-你解决了这个问题吗?你读过我在评论中链接到的相同文档吗?链接中的第一个代码部分显示了如何创建RDF术语。请在这里提供答案,以帮助其他人了解指针,
rel=URIRef(“http://abcd.com/general#“+rel)
然后
gen.rel
然后执行
g.add((rel,RDFS.subcassof,OWL.ObjectProperty))
工作。是的,现在你有了解决方案,别忘了在这里提供答案并接受它。是的,你确实可以回答并接受你自己的解决方案。可能有助于其他有相同问题和答案的问题在搜索中排名更高
AssertionError: Subject http://abcd.com/general#similarTo must be an rdflib term
    sampleRelations = ['similarTo', 'brotherOf', 'capitalOf'`]
    g = Graph()

    # general relations
    gen = Namespace('http://abcd.com/general#')
    g.bind('gen',gen)

    # Adding predefined relationships
    g.add( (gen.relatedTo, RDFS.subClassOf, OWL.ObjectProperty) )
    for rel in sampleRelations :
        rel = URIRef('http://abcd.com/general#' + rel)        
        g.add((rel, RDFS.subClassOf, OWL.ObjectProperty))
for rel in sampleRelations :                
      g.add((gen.term(rel), RDFS.subClassOf, OWL.ObjectProperty))
for rel in sampleRelations :                
          g.add((gen[rel], RDFS.subClassOf, OWL.ObjectProperty))