66 SKOS ,
77 ADMS ,
88 RDF ,
9+ OWL ,
910)
1011
1112from .base import URIRefOrLiteral
@@ -31,6 +32,18 @@ def parse_dataset(self, dataset_dict, dataset_ref):
3132 dataset_dict = self ._parse_dataset_v2_scheming (dataset_dict , dataset_ref )
3233
3334 # DCAT AP v3: hasVersion
35+ dataset_dict = self ._parse_dataset_v3 (dataset_dict , dataset_ref )
36+
37+ return dataset_dict
38+
39+ def _parse_dataset_v3 (self , dataset_dict , dataset_ref ):
40+
41+ # version
42+ value = self ._object_value (dataset_ref , DCAT .version )
43+ if value :
44+ dataset_dict ["version" ] = value
45+
46+ # hasVersion
3447 values = self ._object_value_list (dataset_ref , DCAT .hasVersion )
3548 if values :
3649 dataset_dict ["has_version" ] = values
@@ -51,12 +64,6 @@ def graph_from_dataset(self, dataset_dict, dataset_ref):
5164 # DCAT AP v3 properties also applied to higher versions
5265 self ._graph_from_dataset_v3 (dataset_dict , dataset_ref )
5366
54- # DCAT AP v3: List triples
55- items = [
56- ("has_version" , DCAT .hasVersion , None , URIRefOrLiteral ),
57- ]
58- self ._add_list_triples_from_dict (dataset_dict , dataset_ref , items )
59-
6067 def graph_from_catalog (self , catalog_dict , catalog_ref ):
6168
6269 self ._graph_from_catalog_base (catalog_dict , catalog_ref )
@@ -71,6 +78,22 @@ def _graph_from_dataset_v3(self, dataset_dict, dataset_ref):
7178 self .g .remove ((dataset_ref , RDF .type , None ))
7279 self .g .add ((dataset_ref , RDF .type , DCAT .DatasetSeries ))
7380
81+ # version own:versionInfo -> dcat:version
82+ self .g .remove ((dataset_ref , OWL .versionInfo , None ))
83+ self ._add_triple_from_dict (
84+ dataset_dict ,
85+ dataset_ref ,
86+ DCAT .version ,
87+ "version" ,
88+ _type = Literal ,
89+ )
90+
91+ # hasVersion
92+ items = [
93+ ("has_version" , DCAT .hasVersion , None , URIRefOrLiteral ),
94+ ]
95+ self ._add_list_triples_from_dict (dataset_dict , dataset_ref , items )
96+
7497 # byteSize decimal -> nonNegativeInteger
7598 for subject , predicate , object in self .g .triples ((None , DCAT .byteSize , None )):
7699 if object and object .datatype == XSD .decimal :
0 commit comments