Python 如何从rdf图中打印出部分结果并对其进行子聚类
对于基于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
!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三元组。然而,由于对这门学科非常陌生,我仍然在寻找如何实现研究目标的想法和方法。那么,你能告诉我你是如何在你的评论中插入代码的吗?