{"id":297858,"date":"2026-05-06T16:30:08","date_gmt":"2026-05-06T16:30:08","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/design-italia-semantic\/"},"modified":"2026-05-07T07:21:46","modified_gmt":"2026-05-07T07:21:46","slug":"design-italia-semantic","status":"publish","type":"plugin","link":"https:\/\/xho.wordpress.org\/plugins\/design-italia-semantic\/","author":23476960,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Semantic Italia","header_author":"Developers Italia","header_description":"Esportazione JSON-LD semantica allineata a schema.gov.it per Design Comuni (DCI) e Design Scuole (DSI). Cache precomputata in WP option + transient, rebuild asincrono via WP-Cron, protezione integrata contro richieste massive.","assets_banners_color":"0066cc","last_updated":"2026-05-07 07:21:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/italia\/design-comuni-wordpress-theme","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":66,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"dtditalia","date":"2026-05-07 07:21:46"}},"upgrade_notice":{"1.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3524632,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3524632,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3524632,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Administration page showing cache status and IPA code field","2":"Example JSON-LD response for the DCI graph"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2516,7206,47286,23853,11590],"plugin_category":[],"plugin_contributors":[262121],"plugin_business_model":[],"class_list":["post-297858","plugin","type-plugin","status-publish","hentry","plugin_tags-json-ld","plugin_tags-linked-data","plugin_tags-open-data","plugin_tags-rest-api","plugin_tags-semantic-web","plugin_contributors-dtditalia","plugin_committers-dtditalia"],"banners":{"banner":"https:\/\/ps.w.org\/design-italia-semantic\/assets\/banner-772x250.png?rev=3524632","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/design-italia-semantic\/assets\/icon-128x128.png?rev=3524632","icon_2x":"https:\/\/ps.w.org\/design-italia-semantic\/assets\/icon-256x256.png?rev=3524632","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Semantic Italia<\/strong> transforms content published with the official WordPress themes of the Italian Department for Digital Transformation \u2014 <em>Design Comuni Italia<\/em> (DCI) and <em>Design Scuole Italia<\/em> (DSI) \u2014 into structured data in <strong>JSON-LD<\/strong> format, aligned with the ontologies of the <a href=\"https:\/\/schema.gov.it\">schema.gov.it<\/a> catalog.<\/p>\n\n<p>The generated graphs conform to the Italian Public Administration semantic framework: every entity (service, place, event, public official, document, organizational unit) is represented using standardized classes and properties, enabling interoperability with other systems and publication as <strong>Linked Open Data<\/strong>.<\/p>\n\n<h4>Main Features<\/h4>\n\n<ul>\n<li>JSON-LD export via REST API (<code>\/wp-json\/comuni\/v1\/graph<\/code>, <code>\/wp-json\/scuole\/v1\/graph<\/code>)<\/li>\n<li>Automatic detection of the active domain (DCI \/ DSI \/ both)<\/li>\n<li>Official IPA identifier (<code>urn:x-italian-pa:code<\/code>) for the <code>cov:PublicOrganization<\/code> node<\/li>\n<li>Two-level precomputed cache (WP transient + WP option) with asynchronous rebuild via WP-Cron<\/li>\n<li>Built-in protection against excessive requests (per-IP and global rate limiting)<\/li>\n<li>Admin page with cache status panel and editable IPA code field<\/li>\n<\/ul>\n\n<h4>REST Endpoints<\/h4>\n\n<p><strong>DCI (Municipalities)<\/strong><\/p>\n\n<ul>\n<li><code>GET \/wp-json\/comuni\/v1\/graph<\/code> \u2014 Full graph<\/li>\n<li><code>GET \/wp-json\/comuni\/v1\/graph\/persona-pubblica<\/code><\/li>\n<li><code>GET \/wp-json\/comuni\/v1\/graph\/luoghi<\/code><\/li>\n<li><code>GET \/wp-json\/comuni\/v1\/graph\/servizi<\/code><\/li>\n<li><code>GET \/wp-json\/comuni\/v1\/graph\/unita-organizzative<\/code><\/li>\n<li><code>GET \/wp-json\/comuni\/v1\/graph\/eventi<\/code><\/li>\n<li><code>GET \/wp-json\/comuni\/v1\/graph\/dataset<\/code><\/li>\n<\/ul>\n\n<p><strong>DSI (Schools)<\/strong><\/p>\n\n<ul>\n<li><code>GET \/wp-json\/scuole\/v1\/graph<\/code> \u2014 Full graph<\/li>\n<li><code>GET \/wp-json\/scuole\/v1\/graph\/luoghi<\/code><\/li>\n<li><code>GET \/wp-json\/scuole\/v1\/graph\/servizi<\/code><\/li>\n<li><code>GET \/wp-json\/scuole\/v1\/graph\/eventi<\/code><\/li>\n<li><code>GET \/wp-json\/scuole\/v1\/graph\/documenti<\/code><\/li>\n<li><code>GET \/wp-json\/scuole\/v1\/graph\/strutture<\/code><\/li>\n<\/ul>\n\n<h4>Ontologies Used<\/h4>\n\n<p>All classes and properties are aligned with the <a href=\"https:\/\/schema.gov.it\">schema.gov.it<\/a> catalog:\n    cpv:, <code>cov:<\/code>, <code>cpsv:<\/code>, <code>cpev:<\/code>, <code>poi:<\/code>, <code>clv:<\/code>, <code>dcatapit:<\/code>, <code>dct:<\/code>, <code>l0:<\/code>, <code>foaf:<\/code>, <code>proj:<\/code>, <code>ti:<\/code><\/p>\n\n<h4>Requirements<\/h4>\n\n<p>This plugin requires one of the following official WordPress themes:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/italia\/design-comuni-wordpress-theme\">Design Comuni Italia<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/italia\/design-scuole-wordpress-theme\">Design Scuole Italia<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>semantic-italia<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin from the WordPress <em>Plugins<\/em> page<\/li>\n<li>Upon activation, the plugin automatically detects the active domain (DCI\/DSI) and the IPA code<\/li>\n<li>Go to <em>Settings \u2192 Semantic Italia<\/em> to verify the configuration<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20work%20without%20the%20official%20themes%3F\"><h3>Does the plugin work without the official themes?<\/h3><\/dt>\n<dd><p>No. The plugin reads the <code>_dci_*<\/code> (Design Comuni Italia) and <code>_dsi_*<\/code> (Design Scuole Italia) meta fields registered by the official themes. Without an active theme the endpoints will return an empty graph.<\/p><\/dd>\n<dt id=\"how%20is%20the%20ipa%20code%20determined%3F\"><h3>How is the IPA code determined?<\/h3><\/dt>\n<dd><p>Upon activation, the plugin matches the <code>home_url()<\/code> domain against the IPA index included in <code>data\/ipa-index.json<\/code>. If the domain is found, the code is saved and used as the <code>@id<\/code> of the <code>cov:PublicOrganization<\/code> node in the format <code>urn:x-italian-pa:code<\/code>. If not found automatically, it can be entered manually from the administration page.<\/p><\/dd>\n<dt id=\"how%20do%20i%20update%20the%20ipa%20code%3F\"><h3>How do I update the IPA code?<\/h3><\/dt>\n<dd><p>Go to <em>Settings \u2192 Semantic Italia<\/em> and edit the <strong>IPA Code<\/strong> field. Saving automatically clears the cache.<\/p><\/dd>\n<dt id=\"how%20does%20the%20cache%20work%3F\"><h3>How does the cache work?<\/h3><\/dt>\n<dd><p>The plugin precomputes JSON-LD graphs and stores them on two levels: a WordPress transient (expires after 1 hour, configurable) and a WP option (persistent). Rebuild happens automatically in the background via WP-Cron when content is modified, without slowing down post saves.<\/p><\/dd>\n<dt id=\"how%20do%20i%20configure%20rate%20limiting%3F\"><h3>How do I configure rate limiting?<\/h3><\/dt>\n<dd><p>Parameters are configurable via WordPress filters in the theme's <code>functions.php<\/code>:<\/p>\n\n<pre><code>add_filter( 'desiitse_rl_max_requests', fn() =&gt; 30 );\nadd_filter( 'desiitse_rl_window_seconds', fn() =&gt; 60 );\nadd_filter( 'desiitse_rl_global_rps', fn() =&gt; 50 );\n<\/code><\/pre><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<\/ul>","raw_excerpt":"Exports content from Design Comuni Italia (DCI) and Design Scuole Italia (DSI) WordPress themes as JSON-LD graphs aligned to schema.gov.it.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/297858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=297858"}],"author":[{"embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dtditalia"}],"wp:attachment":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=297858"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=297858"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=297858"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=297858"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=297858"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=297858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}