Python 如何从rdf图中打印出部分结果并对其进行子聚类

Python 如何从rdf图中打印出部分结果并对其进行子聚类,python,rdf,rdflib,Python,Rdf,Rdflib,对于基于rdf图形的项目,我必须执行以下操作: 从rdf和ttl文件解析rdf图 在其上创建子集群并进行网络分析 评论如何即兴使用聚类技术即兴生成语义web结果 由于对整个编码领域都比较陌生,我面临着一些问题 首先,我能够使用python库将rdf文件解析为rdf图: !pip install rdflib from rdflib import Graph as RDFGraph from rdflib.extras.external_graph_libs import rdfli

对于基于rdf图形的项目,我必须执行以下操作:

  • 从rdf和ttl文件解析rdf图
  • 在其上创建子集群并进行网络分析
  • 评论如何即兴使用聚类技术即兴生成语义web结果
  • 由于对整个编码领域都比较陌生,我面临着一些问题

    首先,我能够使用python库将rdf文件解析为rdf图:

     !pip install rdflib    
     from rdflib import Graph as RDFGraph
     from rdflib.extras.external_graph_libs import rdflib_to_networkx_graph
     # RDF graph loading
     path = ("any file with rdf extension")
     rg = RDFGraph()
     rg.parse(path)
     print("rdflib Graph loaded successfully with {} triples".format(len(rg)))
     
    
    我看到这个图有20000多条语句,所以我想做一个子图。但是有一个问题——我读到我们可以使用SPARQL查询RDF。所以,我这样做了:

    qres = rg.query(
    """SELECT *
       LIMIT 10.
       """)
    for row in qres:
       print(row)
    
    但它抛出了一条错误消息:

    ERROR:root:标记输入时发生意外错误
    以下回溯可能已损坏或无效
    错误消息是:('EOF in multi line string',(1,7))
    ---------------------------------------------------------------------------
    ParseException回溯(上次最近调用)
    在()
    2“选择”*
    3限制10。
    ----> 4        """)
    5对于QRE中的行:
    6打印(第行)
    4帧
    /parseImpl中的usr/local/lib/python3.6/dist-packages/pyparsing.py(self、instring、loc、doActions)
    2897如果instring[loc]==self.firstMatchChar:
    2898返回loc+1,自匹配
    ->2899上升解析异常(指令,位置,self.errmsg,self)
    2900
    2901 _L=文字
    
    ParseException:Expected{SelectQuery | ConstructQuery | DescribeQuery | AskQuery},找到'L'(在字符16),(第2行,第8列)
    好吧,你的查询错了:
    SELECT*LIMIT 10。
    是无效语法-SPARQL是关于模式匹配的,你必须向它添加三个模式,比如
    SELECT*WHERE{?s?p?o}限制10
    ——甚至,您将获得绑定,而不是带有三元组的子图。您必须使用
    构造
    查询,它返回一个RDF图作为结果感谢您指出这一点。我现在确实能够使用您的代码打印rdf三元组。然而,由于对这个主题非常陌生,我仍然在寻找如何实现研究目标的想法和方法。那么,您能告诉我您是如何在注释中插入代码的吗?您的查询是错误的:
    SELECT*LIMIT 10。
    是无效语法-SPARQL是关于模式匹配的,您必须向它添加三元组模式,比如
    SELECT*WHERE{s?p?o}限制10
    ——甚至,您将获得绑定,而不是带有三元组的子图。您必须使用
    构造
    查询,它返回一个RDF图作为结果感谢您指出这一点。我现在确实能够使用您的代码打印rdf三元组。然而,由于对这门学科非常陌生,我仍然在寻找如何实现研究目标的想法和方法。那么,你能告诉我你是如何在你的评论中插入代码的吗?