--- a/ckanext/datagovau/templates/package/read.rdf +++ b/ckanext/datagovau/templates/package/read.rdf @@ -16,7 +16,8 @@ <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> @@ -28,13 +29,11 @@ <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> @@ -47,8 +46,8 @@ <dcat:accessURL rdf:resource="${ rsc_dict.get('url') }"/> <dct:created>${rsc_dict.get('revision_timestamp')}</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 +59,83 @@ </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 + py:with="username = h.get_action('package_activity_list',{'id':c.pkg_dict['id']})[0]['user_id']"> <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_action("user_show",{"id":username})["display_name"]}</foaf:name> + <foaf:mbox py:if="h.get_action('user_show',{'id':username}).get('email', None)" + rdf:resource="mailto:${h.get_action('user_show',{'id':username})['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="c.pkg_dict.get('DCTERMS.Source.URI')">${c.pkg_dict.get('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="c.pkg_dict.get('Geospatial Coverage')">${ c.pkg_dict.get('Geospatial Coverage') }</dct:spatial> + <aglsterms:AglsJuri py:if="c.pkg_dict.get('jurisdiction')">${ c.pkg_dict.jurisdiction }</aglsterms:AglsJuri> + <aglsterms:AglsJuri py:if="c.pkg_dict.get('AGLSTERMS.Jurisdiction')">${ c.pkg_dict.get('AGLSTERMS.Jurisdiction') }</aglsterms:AglsJuri> + <dct:temporal py:if="c.pkg_dict.temporal_coverage">${ c.pkg_dict.temporal_coverage }</dct:temporal> + <dct:temporal py:if="c.pkg_dict.get('Temporal Coverage')">${ c.pkg_dict.get('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="c.pkg_dict.get('Update Frequency')"> + <rdf:Description> + <rdfs:label>Update Frequency</rdfs:label> + <rdf:value>${ c.pkg_dict.get('Update Frequency') }</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="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="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> + <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>