Python 如何检查子图之间的同构
我想在更大的数据集中检查子图之间的同构。在rdflib中有没有一种方法可以做到这一点,而不必将图形分解为多个变量,如rdflib文档中的示例所示:Python 如何检查子图之间的同构,python,sparql,rdf,rdflib,Python,Sparql,Rdf,Rdflib,我想在更大的数据集中检查子图之间的同构。在rdflib中有没有一种方法可以做到这一点,而不必将图形分解为多个变量,如rdflib文档中的示例所示: g1 = Graph().parse(format='n3', data=''' @prefix : <http://example.org/ns#> . []:rel <http://example.org/a> ; :rel <http://example.org/b> ;
g1 = Graph().parse(format='n3', data='''
@prefix : <http://example.org/ns#> .
[]:rel <http://example.org/a> ;
:rel <http://example.org/b> ;
:rel [ :label "A bnode." ] .
''')
g2 = Graph().parse(format='n3', data='''
@prefix ns: <http://example.org/ns#> .
[]:rel <http://example.org/a> ;
:rel <http://example.org/b> ;
:rel [ :label "A bnode." ] .
''')
isomorphic(g1, g2)
g1=Graph()
@前缀:。
[]:rel;
:rel;
:rel[:标签“A B节点”。]。
''')
g2=Graph().parse(格式为'n3',数据为'''
@前缀ns:。
[]:rel;
:rel;
:rel[:标签“A B节点”。]。
''')
同构(g1,g2)
我的图表
[]:rel <http://example.org/a> ;
:rel <http://example.org/b> ;
:rel [ :label "A bnode." ] .
[]:rel <http://example.org/a> ;
:rel <http://example.org/c> ;
:rel [ :label "A bnode." ] .
[]:rel <http://example.org/a> ;
:rel <http://example.org/b> ;
:rel [ :label "A bnode." ] .
[]:rel;
:rel;
:rel[:标签“A B节点”。]。
[]:rel;
:rel;
:rel[:标签“A B节点”。]。
[]:rel;
:rel;
:rel[:标签“A B节点”。]。
谢谢你的帮助 对不起,但我认为没有办法做到这一点。
数据集中的图形本身并不可用-您必须通过图形找到它们-因此您不能执行以下操作:
#无函数get_图
ds.get_图(标识符=”http://eg.org/a")\
.isomorphic(ds.get_)图(标识符=”http://eg.org/b"))
#或
#无函数get_图
同构(
ds.get_图(标识符=”http://eg.org/a"),
ds.get_图(标识符=”http://eg.org/b"),
)
也许我们——RDFlib维护人员——应该添加一个从数据集中导出图形的函数。。。