如何跨子图检查同构
How to check isomorphism across subgraphs
我想在更大的数据集中检查跨子图的同构性。有没有办法在 rdflib 中执行此操作而不会将图形分解为多个变量,例如 rdflib 文档中的示例:
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)
我的图表
[]: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." ] .
感谢您的帮助!
抱歉,我不认为真的有办法做到这一点。 Dataset
中的图表本身并不是真正可用的 - 你必须通过图表找到它们 - 所以你不能做这样的事情:
# no function get_graph
ds.get_graph(identifier="http://eg.org/a")\
.isomorphic(ds.get_graph(identifier="http://eg.org/b"))
# or
# no function get_graph
isomorphic(
ds.get_graph(identifier="http://eg.org/a"),
ds.get_graph(identifier="http://eg.org/b"),
)
我想在更大的数据集中检查跨子图的同构性。有没有办法在 rdflib 中执行此操作而不会将图形分解为多个变量,例如 rdflib 文档中的示例:
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)
我的图表
[]: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." ] .
感谢您的帮助!
抱歉,我不认为真的有办法做到这一点。 Dataset
中的图表本身并不是真正可用的 - 你必须通过图表找到它们 - 所以你不能做这样的事情:
# no function get_graph
ds.get_graph(identifier="http://eg.org/a")\
.isomorphic(ds.get_graph(identifier="http://eg.org/b"))
# or
# no function get_graph
isomorphic(
ds.get_graph(identifier="http://eg.org/a"),
ds.get_graph(identifier="http://eg.org/b"),
)