@@ -62,6 +62,11 @@ def _get_blank_node_identifier(self):
62
62
identifier = len (self .nodes )
63
63
return fmt .format (identifier = identifier )
64
64
65
+ def _sort_nodes_by_id (self ):
66
+ sorted_nodes = dict (sorted (self .nodes .items ()))
67
+ self .nodes = sorted_nodes
68
+
69
+
65
70
def save (self , path , individual_files = False , include_empty_properties = False ):
66
71
"""
67
72
Save the node collection to disk in JSON-LD format.
@@ -96,6 +101,7 @@ def save(self, path, individual_files=False, include_empty_properties=False):
96
101
parent_dir = os .path .dirname (path )
97
102
if parent_dir :
98
103
os .makedirs (parent_dir , exist_ok = True )
104
+ self ._sort_nodes_by_id ()
99
105
data = {
100
106
"@context" : {"@vocab" : "https://openminds.ebrains.eu/vocab/" },
101
107
"@graph" : [
@@ -113,6 +119,7 @@ def save(self, path, individual_files=False, include_empty_properties=False):
113
119
os .makedirs (path , exist_ok = True )
114
120
if not os .path .isdir (path ):
115
121
raise OSError (f"If saving to multiple files, `path` must be a directory. path={ path } , pwd={ os .getcwd ()} " )
122
+ self ._sort_nodes_by_id ()
116
123
output_paths = []
117
124
for node in self :
118
125
if node .id .startswith ("http" ):
0 commit comments