Предотвращение объединения графов в rdflib
Есть ли способ предотвратить слияние графиков rdflib? Я создаю два графика в одном ответе, которые имеют общий узел, поэтому rdf создает (из-за объединения):
<ore:aggregation rdf:about="http://example.org/obj/123">
<edm:aggregatedCHO>
<edm:ProvidedCHO rdf:about="#OBJ123">
...
</edm:ProvidedCHO>
</edm:aggregatedCHO>
</ore:aggregation>
который я предпочел бы вместо этого вернуть как два графика верхнего уровня
<ore:aggregation rdf:about="http://example.org/obj/123">
<edm:aggregatedCHO rdf:resource="#OBJ123/>
</ore:aggregation>
<edm:ProvidedCHO rdf:about="#OBJ123>
...
</edm:ProvidedCHO>
Это возможно? Я понимаю, что могу создать их как часть набора данных, который предотвратит объединение, но, похоже, нет способа сериализовать набор данных.
1 ответ
Решается передачей max_depth в вызов сериализации:
g.serialize(format='pretty-xml', max_depth=1)
что позволяет избежать повторного прохождения по всему графику в одном и вместо этого записывает каждый предметный узел верхнего уровня отдельно в документе.