--- a/ckanext/datagovau/templates/package/read.rdf +++ b/ckanext/datagovau/templates/package/read.rdf @@ -16,25 +16,34 @@ <dcat:Dataset rdf:about="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True)}"> <dct:identifier>${c.pkg_dict['name']}</dct:identifier> <dct:title>${c.pkg_dict['title']}</dct:title> - <dct:landingPage rdf:resource="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True) }"/> + <dct:landingPage + rdf:resource="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True) }"/> <owl:sameAs rdf:resource="urn:uuid:${c.pkg_dict['id']}"/> <dct:type>Dataset</dct:type> <dct:description>${c.pkg_dict['notes']}</dct:description> <dct:issued>${c.pkg_dict['metadata_created']}</dct:issued> <dct:modified>${c.pkg_dict['metadata_modified']}</dct:modified> <dct:language>en</dct:language> + +<py:choose> + <py:when test="c.pkg_dict.get('license_url',None)"> <dct:license>${c.pkg_dict['license_url']}</dct:license> + <dct:rights rdf:resource="${c.pkg_dict['license_url']}"/> + </py:when> + <py:otherwise> + <dct:license>${c.pkg_dict['license_id']}</dct:license> + <dct:rights rdf:resource="${c.pkg_dict['license_id']}"/> + </py:otherwise> +</py:choose> <py:for each="tag_dict in c.pkg_dict.get('tags',[])"> <dcat:keyword>${ tag_dict["name"] }</dcat:keyword> </py:for> <py:for each="group_dict in c.pkg_dict.get('groups',[])"> - <dcat:theme>${ tag_dict["title"] }</dcat:theme> + <dcat:theme>${ group_dict["title"] }</dcat:theme> </py:for> - <lol>${h.get_action("user_show",{"id":c.author})["display_name"]}</lol> - <lol>${h.get_action("user_show",{"id":c.author})["email"]}</lol> - - <foaf:homepage rdf:resource="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True)}"/> + <foaf:homepage + rdf:resource="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True)}"/> <rdfs:label>${c.pkg_dict['name']}</rdfs:label> @@ -45,10 +54,10 @@ <owl:sameAs rdf:resource="urn:uuid:${rsc_dict.get('id')}"/> <dct:description>${rsc_dict.get('description')}</dct:description> <dcat:accessURL rdf:resource="${ rsc_dict.get('url') }"/> - <dct:created>${rsc_dict.get('revision_timestamp')}</dct:created> + <dct:created>${rsc_dict.get('created')}</dct:created> <dct:modified>${rsc_dict.get('revision_timestamp')}</dct:modified> - <dcat:byteSize>${rsc_dict.get('size')}</dcat:byteSize> - <dcat:mediaType>${rsc_dict.get('mimetype')}</dcat:mediaType> + <dcat:byteSize py:if="rsc_dict.get('size')">${rsc_dict.get('size')}</dcat:byteSize> + <dcat:mediaType py:if="rsc_dict.get('mimetype')">${rsc_dict.get('mimetype')}</dcat:mediaType> <dct:extent py:if="rsc_dict.get('size')">${rsc_dict.get('size')} bytes</dct:extent> <dct:format py:if="rsc_dict.get('format')"> <dct:IMT> @@ -60,25 +69,81 @@ </dcat:Distribution> </dcat:distribution> </py:for> - <dct:publisher py:if="c.pkg_dict.get('organization', None)"> + <dct:publisher py:if="c.pkg_dict.get('organization', None)"> <rdf:Description> <foaf:name>${ c.pkg_dict['organization']['title'] }</foaf:name> </rdf:Description> </dct:publisher> - <dct:creator py:if="c.pkg_dict.get('author', None)"> + <dct:creator py:if="c.pkg_dict.get('organization', None)"> <rdf:Description> - <foaf:name>${ c.pkg_dict['author'] }</foaf:name> - <foaf:mbox py:if="c.pkg_dict.get('maintainer_email', None)" rdf:resource="mailto:${c.pkg_dict['author_email']}"/> + <foaf:name>${ c.pkg_dict['organization']['title'] }</foaf:name> </rdf:Description> </dct:creator> - <dct:contributor py:if="c.pkg_dict.get('maintainer', None)"> + <dct:contributor> <rdf:Description> - <foaf:name>${ c.pkg_dict['maintainer'] }</foaf:name> - <foaf:mbox py:if="c.pkg_dict.get('maintainer_email', None)" rdf:resource="mailto:${c.pkg_dict['maintainer_email']}"/> + <foaf:name>${h.get_last_active_user(c.pkg_dict['id'])["display_name"]}</foaf:name> + <foaf:mbox py:if="h.get_last_active_user(c.pkg_dict['id']).get('email', None)" + rdf:resource="mailto:${h.get_last_active_user(c.pkg_dict['id'])['email']}"/> </rdf:Description> </dct:contributor> - <dct:rights py:if="c.pkg_dict.get('license_url', None)" rdf:resource="${c.pkg_dict['license_url']}"/> + + <foaf:homepage py:if="h.get_pkg_dict_extra(c.pkg_dict,'DCTERMS.Source.URI')">${h.get_pkg_dict_extra(c.pkg_dict,'DCTERMS.Source.URI') } + </foaf:homepage> + + <dcat:contactPoint py:if="c.pkg_dict.get('contact_point')">${c.pkg_dict.contact_point }</dcat:contactPoint> + <dct:spatial py:if="c.pkg_dict.get('spatial_coverage')">${ c.pkg_dict.spatial_coverage }</dct:spatial> + <dct:spatial py:if="h.get_pkg_dict_extra(c.pkg_dict,'Geospatial Coverage')">${ h.get_pkg_dict_extra(c.pkg_dict,'Geospatial Coverage') }</dct:spatial> + <aglsterms:AglsJuri py:if="c.pkg_dict.get('jurisdiction')">${ c.pkg_dict.jurisdiction }</aglsterms:AglsJuri> + <aglsterms:AglsJuri py:if="h.get_pkg_dict_extra(c.pkg_dict,'AGLSTERMS.Jurisdiction')">${ h.get_pkg_dict_extra(c.pkg_dict,'AGLSTERMS.Jurisdiction') }</aglsterms:AglsJuri> + <dct:temporal py:if="c.pkg_dict.get('temporal_coverage')">${ c.pkg_dict.get('temporal_coverage') }</dct:temporal> + <dct:temporal py:if="h.get_pkg_dict_extra(c.pkg_dict,'Temporal Coverage')">${ h.get_pkg_dict_extra(c.pkg_dict,'Temporal Coverage') }</dct:temporal> + <dct:relation py:if="c.pkg_dict.get('data_state')"> + <rdf:Description> + <rdfs:label>Data State</rdfs:label> + <rdf:value>${ c.pkg_dict.get('data_state') }</rdf:value> + </rdf:Description> + </dct:relation> + + <dct:relation py:if="c.pkg_dict.get('update_freq')"> + <rdf:Description> + <rdfs:label>Update Frequency</rdfs:label> + <rdf:value>${ c.pkg_dict.get('update_freq') }</rdf:value> + </rdf:Description> + </dct:relation> + <dct:relation py:if="h.get_pkg_dict_extra(c.pkg_dict,'Update Frequency')"> + <rdf:Description> + <rdfs:label>Update Frequency</rdfs:label> + <rdf:value>${ h.get_pkg_dict_extra(c.pkg_dict,'Update Frequency') }</rdf:value> + </rdf:Description> + </dct:relation> + + <dct:relation py:if="h.get_pkg_dict_extra(c.pkg_dict,'Agency Program')"> + <rdf:Description> + <rdfs:label>Agency Program</rdfs:label> + <rdf:value>${ h.get_pkg_dict_extra(c.pkg_dict,'Agency Program') }</rdf:value> + </rdf:Description> + </dct:relation> + <dct:relation py:if="c.pkg_dict.get('agency_program')"> + <rdf:Description> + <rdfs:label>Agency Program</rdfs:label> + <rdf:value>${ c.pkg_dict.get('agency_program') }</rdf:value> + </rdf:Description> + </dct:relation> + + <dct:relation py:if="h.get_pkg_dict_extra(c.pkg_dict,'Granularity')"> + <rdf:Description> + <rdfs:label>Data Granularity</rdfs:label> + <rdf:value>${ h.get_pkg_dict_extra(c.pkg_dict,'Granularity') }</rdf:value> + </rdf:Description> + </dct:relation> + <dct:relation py:if="c.pkg_dict.get('granularity')"> + <rdf:Description> + <rdfs:label>Data Granularity</rdfs:label> + <rdf:value>${ c.pkg_dict.get('granularity') }</rdf:value> + </rdf:Description> + </dct:relation> + <py:for each="extra_dict in c.pkg_dict.get('extras',[])"> <dct:relation> <rdf:Description>