Предотвращение объединения графов в 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)

что позволяет избежать повторного прохождения по всему графику в одном и вместо этого записывает каждый предметный узел верхнего уровня отдельно в документе.

Другие вопросы по тегам