@@ -1074,7 +1074,7 @@ def get_element(self, element: Union[ElementName, Element], imports=True) -> Ele
1074
1074
e = self .get_subset (element , imports = imports )
1075
1075
return e
1076
1076
1077
- def get_uri (self , element : Union [ElementName , Element ], imports = True , expand = False , native = False ) -> str :
1077
+ def get_uri (self , element : Union [ElementName , Element ], imports = True , expand = False , native = False , use_element_type = False ) -> str :
1078
1078
"""
1079
1079
Return the CURIE or URI for a schema element. If the schema defines a specific URI, this is
1080
1080
used, otherwise this is constructed from the default prefix combined with the element name
@@ -1086,7 +1086,7 @@ def get_uri(self, element: Union[ElementName, Element], imports=True, expand=Fal
1086
1086
:return: URI or CURIE as a string
1087
1087
"""
1088
1088
e = self .get_element (element , imports = imports )
1089
-
1089
+ e_name = e . name
1090
1090
if isinstance (e , ClassDefinition ):
1091
1091
uri = e .class_uri
1092
1092
e_name = camelcase (e .name )
@@ -1106,7 +1106,12 @@ def get_uri(self, element: Union[ElementName, Element], imports=True, expand=Fal
1106
1106
else :
1107
1107
schema = self .schema_map [self .in_schema (e .name )]
1108
1108
pfx = schema .default_prefix
1109
- uri = f'{ pfx } :{ e_name } '
1109
+ if use_element_type :
1110
+ e_type = e .class_name .split ("_" ,1 )[0 ] # for example "class_definition"
1111
+ e_type_path = f"{ e_type } /"
1112
+ else :
1113
+ e_type_path = ""
1114
+ uri = f'{ pfx } :{ e_type_path } { e_name } '
1110
1115
if expand :
1111
1116
return self .expand_curie (uri )
1112
1117
else :
0 commit comments