SlideShare uma empresa Scribd logo
1 de 42
Exploiting and empowering semantic data with 2 new
semantic extension: SemanticAuthProfiling and
SparqlResultFormat
17th SMWCon
Fall 2019
September 25-27,
Paris, UIC HQ
MATTEO BUSANELLI
GABRIELE CORNACCHIA
17th SMWCon Fall 2019 1
Imola Informatica
17th SMWCon Fall 2019 2
 2005 – 2008: researcher at ENEA (Italian National Research Agency) on Semantic Web
 2008 - present: IT Consultant and Advisor for Enterprise Knowledge Management at Imola Informatica
 Working with SMW (since 2010) on:
 IT Service Management, IT Governance and Cost allocation
 IT Architecture support
 Document management
 Enterprise Architecture consulting
 GDPR compliancy
 Platform for Turism
Matteo Busanelli
17th SMWCon Fall 2019 3
…two extensions that we developed and mantain:
Today we will talk about...
17th SMWCon Fall 2019 4
SemanticAuthProfiling
Profiling and authorizing (not
authenticating ) users with wiki groups
on categories and with per page
administration roles
SparqlResultFormat
Generate diagrams and graph for data
analitycs, reporting or dashboard from an
arbitrary sparql endpoint
SemanticAuthProfiling: WHY?
17th SMWCon Fall 2019 5
 We use SMW as a collaborative platform for many purposes but always inside big enterprises (Banks,
Insurances, PA, etc...).
 Our clients need to access from different organizational units and with different roles on pages
EAP
I C T
S t r a t e g y
S e r v i c e
M a n a g e r
A p p l i c a t i o n
M a n a g e r
P r o j e c t
M a n a g e r
C I O
F i n a n c i a l
M a n a g e r
Example:
Enterprise Architecture
Portal (EAP)
1. Per Category Profiling - to set (unset) permissions for a Mediawiki Group on a Category
17th SMWCon Fall 2019 6
SemanticAuthProfiling: How does it works?
IT Strategy Manager Service Manager Portfolio Manager Application Manager Guest
ICT Service VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
Support Service VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
Application VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
Budget Item VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
Project VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
Portal page VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
VIEW
CREATE
EDIT
MOVE
DELETE
… … … … … …
Something like that…CATEGORIES
WIKI GROUPS (Profiles)
2. Per Page Administration - to set the «owner of something» as the admin of a page
17th SMWCon Fall 2019 7
SemanticAuthProfiling: How does it works?
Something like that…
Because of the project has a project
manager then we want also him to
be the Page admin
This could be done in the
Template:Project by coping the
value of the “Property:Has project
manager” in the extension
“Property:Has page admin”
SemanticAuthProfiling - Architecture
17th SMWCon Fall 2019 8
 The extension let you configure (via external file or LocalSettings.php) for
each mediawiki group on a specific category the following permission:
 read – view pages of a category
 create – create pages of a category
 edit/formedit – edit pages (both «source» and «form» edit) of a cateogry
 move - move pages of a category to another page title
 delete – delete pages of a category
 You can use the category wildcard * to set/unset action permission
globally to all categories and then unset/set permissions for single
category (a sort of Black/White list selection)
17th SMWCon Fall 2019 9
SemanticAuthProfiling - Per category profiling
 Step 0: Setting base permission to let everyone edit pages
The extension needs to have edit permission at true for all users.
In this way we let the extension decide if you can or not edit based on the configurations that
follow in next steps.
17th SMWCon Fall 2019 10
SemanticAuthProfiling - Per category profiling
# Disable reading by anonymous users
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['user']['read'] = true;
# Enable anonymous editing
$wgGroupPermissions['*']['edit'] = true;
$wgGroupPermissions['*']['formedit'] = true;
NOTE: extension is on top of the wiki and if we close a permission at wiki level (i.e.
$wgGroupPermissions['*']['edit'] = false) there is no way to open the permission to a user.
In respect of the mediawiki, the extension can only “close” not “open”
 Step 1: Creating groups (in Localsettings.php or in a specific profile.php)
We can create each group starting from the permissions of the ‘user’ group
 Step 2: Setting default action permissions for not profiled users
17th SMWCon Fall 2019 11
SemanticAuthProfiling - Per category profiling
…
$wgGroupPermissions['Service_Catalogue_Manager'] = $wgGroupPermissions['user'];
$wgGroupPermissions['Application_Portfolio_Manager'] = $wgGroupPermissions['user'];
$wgGroupPermissions['IT_Strategy_Manager']=$wgGroupPermissions['user’];
…
#default permission
$wgdefaultPermissionEdit=false;
$wgdefaultPermissionCreate=false;
$wgdefaultPermissionView=false;
$wgdefaultPermissionMove=false;
 Step 3: For each group specify pemissions on categories (eventually using the wildcard * to set them
globally). Each permission can be stated in this way:
There is a specific configuration variable (array[group][category]) for each ACTION:
17th SMWCon Fall 2019 12
SemanticAuthProfiling - Per category profiling
$wgSemanticAuthProfiling<ACTION>Categories [‘<WIKIGROUP>'][‘<CATEGORY> or *']= true/false;
 $wgSemanticAuthProfilingViewCategories [‘Portfolio Manager’][‘Project']= true;
 $wgSemanticAuthProfilingEditCategories [‘Service Manager’][‘Project’]= false;
 $wgSemanticAuthProfilingCreateCategories [‘IT Manager’][‘*']= true;
 $wgSemanticAuthProfilingMoveCategories [‘Financial Manager’][‘Service’]= false;
 $wgSemanticAuthProfilingDeleteCategories [‘Service Manager’][‘Project’]= false;
FOR EXAMPLE…
 IT Managers can view, create and edit pages of all categories but can’t delete nothing
 Portfolio Managers can view all categories but only create,edit and move Project pages
17th SMWCon Fall 2019 13
SemanticAuthProfiling - Per category profiling
$wgSemanticAuthProfilingViewCategories [‘IT Manager’][‘*']= true;
$wgSemanticAuthProfilingCreateCategories [‘IT Manager’][‘*']= true;
$wgSemanticAuthProfilingEditCategories [‘IT Manager’][‘*']= true;
$wgSemanticAuthProfilingDeleteCategories [‘IT Manager’][‘*’]= false;
$wgSemanticAuthProfilingViewCategories [‘Porfolio Manager’][‘*']= true;
$wgSemanticAuthProfilingCreateCategories [‘Porfolio Manager’][‘*’]= false;
$wgSemanticAuthProfilingCreateCategories [‘Porfolio Manager’][‘Project']= true;
$wgSemanticAuthProfilingEditCategories [‘Porfolio Manager’][‘*’]= false;
$wgSemanticAuthProfilingEditCategories [‘Porfolio Manager’][‘Project’]= true;
$wgSemanticAuthProfilingMoveCategories [‘Porfolio Manager’][‘*’]= false;
$wgSemanticAuthProfilingMoveCategories [‘Porfolio Manager’][‘Project’]= true;
 You can also associate a Person referred in a specific semantic property
to the Page Admin of that page through its wiki template:
17th SMWCon Fall 2019 14
SemanticAuthProfiling - Per page administration
===THIS IS PROJECT {{SUBJECTPAGENAME}}===
*Name: [[Project name::{{SUBJECTPAGENAME}}]]
*Project Manager [[Has project manager::{{{field_PM}}}]]
*….
{{#arraymap:{{{values|}}}|;|wk_template_var|{{#set:Has page admin=wk_template_var}} }}
Template:Project
The extension looks for the semantic property «Has page admin» with an
ASK and take the foaf:mbox of that foaf:Person to match with the
Mediawiki User.
17th SMWCon Fall 2019 15
SemanticAuthProfiling - Per page administration
User:Mbusanelli
generated
from the
Template
17th SMWCon Fall 2019 16
SemanticAuthProfiling - Per page administration
 To use per page administration feature you have to:
1. Manually create the Property:Has page admin in the Mediawiki
2. Manually configure the mapping (custom prop<->Has page admin) in each
Template of category you want page administration
3. Associate potentially each mediawiki user to a page of Category:Person (i.e
foaf:Person) with a semantic property email or username
4. Email of each Category:Person must be the same of the corresponding
mediawiki user (you can also use username).
17th SMWCon Fall 2019 17
SemanticAuthProfiling - Work in progress…
 The extension is still in BETA (but already used by clients)
 We are making some refactoring to release the extension in a the right format
 We need to test all security issues against the page «Security issues
with authorization extension»
 Per page admin properties should be externally
configurable:
i.e $wgPageAdminProperty=‘Property:HasAdmin’;
$wgMapUserOn = ‘email’;
 Extension doesn’t really hide «edit» menù
even if the user can’t edit.
So the user not allowed will see a forbidden
message
17th SMWCon Fall 2019 18
SemanticAuthProfiling - Work in progress…
But our dream is to make the extension
configurable with a GUI from Preferences or some
special page (Special:SemanticAuthProfiling)
17th SMWCon Fall 2019 19
SemanticAuthProfiling: References and links
Extension page:
 https://www.mediawiki.org/wiki/Extension:SemanticAuthProfiling
GIT repository:
 https://github.com/imolainformatica/SemanticAuthProfiling
Developer:
 https://www.linkedin.com/in/giacomo-lorenzo-97664a106/
Feedbacks and suggestions are welcome!
Gabriele Cornacchia
17th SMWCon Fall 2019 22
 2011 - present: Software Developer & IT Consultant at Imola Informatica
 Working (not only) with SMW (since 2015) on:
 IT Architecture support
 Document management
 Enterprise Architecture consulting
SparqlResultFormat: What is it?
17th SMWCon Fall 2019 23
"...a free, open-source extension to MediaWiki that lets you query
different Sparql endpoints and represent output data in various formats."
 Based on different opensource javascript charting
libraries (JqPlot, Cytoscape.js, d3.js)
 Several output formats
Formats: Bar chart
17th SMWCon Fall 2019 24
Formats: Pie & Donut chart
17th SMWCon Fall 2019 25
Formats: Bubble Chart
17th SMWCon Fall 2019 26
Formats: HTML table & CSV file
17th SMWCon Fall 2019 27
Formats: Treemap
17th SMWCon Fall 2019 28
Formats: Graph
17th SMWCon Fall 2019 29
 Allow customers to "see" and interact with data
 Not only with flat HTML table
 Overcome the ASK queries limits
 Expressiveness limit compared to standard SPARQL syntax
 But customers data consists of a complex network of related
entities
 Requires particular output format
17th SMWCon Fall 2019 30
SparqlResultFormat: Why?
in January 2016...
 Similar extensions did not exists
 SparqlCharts -> appeared in May 2016
 LinkedWiki Visualization -> appeared in August 2016
 We didn't want server-side generated images (like Graphviz)
 So we decided and started coding...
SparqlResultFormat: Context
17th SMWCon Fall 2019 31
 Makes available magic words (one per format) to be
used directly inside a mediawiki page.
 It can query any standard SPARQL endpoint (It does not
require SMW)
 Queries are executed server side to avoid CORS problem.
 Provides a "Special page" with all magic words
documentation (Special:SparqlResultFormat)
17th SMWCon Fall 2019 32
SparqlResultFormat: Key points
SparqlResultFormat - Architecture
17th SMWCon Fall 2019 33
Client side Server side
SparqlResultFormat in 3 steps
17th SMWCon Fall 2019 34
1) Configure your sparql
endpoints in LocalSettings.php
Query in page
2) Configure magic words in your wiki pages with
your custom sparql queries
3) Enjoy!
Example – Endpoint definition
17th SMWCon Fall 2019 35
$wgSparqlEndpointDefinition['<endpoint name>'] = array(
'url' => '<sparql endpoint url>',
'basicAuth' => array(
'user' => '<basic auth user>',
'password' => '<basic auth password>' ),
'connectionTimeout' => 30,
'requestTimeout' => 30,
'verifySSLCertificate' => false,
'prefixes' => array(
'skos' => 'http://www.w3.org/2004/02/skos/core#’,
'rdf' => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
'rdfs' => 'http://www.w3.org/2000/01/rdf-schema#’,
'<prefix>' => '<namespace>',
... ) );
List of prefixes and
namespaces that are
added automatically to
every query to this
endpoint -> you don't have
to define each time
You must refer this name in the magic word
Other connection
parameters
In LocalSettings.php
{{#sparql2barchart:
|divId=chart1
|sparqlEndpoint=wikidata
|sparqlEscapedQuery=
SELECT DISTINCT ?countryLabel ?population
{
?country wdt:P31 wd:Q6256 ;
wdt:P1082 ?population .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
GROUP BY ?population ?countryLabel
ORDER BY DESC(?population)
limit 20
|seriesConfiguration=[{label:'Population', color:'blue',showLink:'false'} ]
|extraOption=chart.title:Top 20 contries by population
|extraOption=chart.axis.x.label:Country
|extraOption=chart.axis.y.label:Population
}}
Example – Magic Word configuration
17th SMWCon Fall 2019 36
Common parameters
(same for all output formats)
Format specific parameters for
tuning behaviour and
appearance
The output format is in the magic word name
In wiki page
Example - Output
17th SMWCon Fall 2019 37
 Adding other useful output format
 Adding page to test query & configurations (as Special:Ask page)
 Adding more interactivity to graph format (graph exploration feature)
 Improving documentation & examples
 Developing unit & integration tests
Next steps and further works
17th SMWCon Fall 2019 38
Extension page:
 https://www.mediawiki.org/wiki/Extension:SparqlResultFormat
GIT repository:
 https://github.com/imolainformatica/SparqlResultFormat
Blog article:
 https://blog.imolainformatica.it/2017/03/16/enterprise-architecture-
unimmagine-vale-piu-di-mille-tabelle/
SparqlResultFormat - References and links
17th SMWCon Fall 2019 39
Feedbacks and suggestions are welcome!
LIVE DEMO
17th SMWCon Fall 2019 40
Thanks for your attention…
…any question?
https://twitter.com/matteobusanelli
https://www.facebook.com/matteo.busanelli
https://www.linkedin.com/in/matteobusanelli
Matteo Busanelli
mbusanelli@imolainformatica.it
https://twitter.com/gcornacchia_gi
https://www.facebook.com/gabriele.cornacchia
https://www.linkedin.com/in/gabriele-cornacchia/
Gabriele Cornacchia
gcornacchia@imolainformatica.it
www.twitter.com/imolinfo
www.facebook.com/imolinfo
www.linkedin.com/company/imola-informatica
Imola Informatica S.P.A. · via Selice 66/a · Imola (BO)
www.imolainformatica.it

Mais conteúdo relacionado

Semelhante a Exploiting and empowering semantic data with 2 new semantic extension: Sparql Result Format and Semantic Auth/Profiling

Open Admin
Open AdminOpen Admin
Open Adminbpolster
 
Tableau vs Microstrategy
Tableau vs MicrostrategyTableau vs Microstrategy
Tableau vs MicrostrategyGreenM
 
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)Tim Wagner
 
Microsoft identity platform developer community call-October 2019
Microsoft identity platform developer community call-October 2019Microsoft identity platform developer community call-October 2019
Microsoft identity platform developer community call-October 2019Microsoft 365 Developer
 
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...DataLeader.io
 
Mixpanel Integration in Android
Mixpanel Integration in AndroidMixpanel Integration in Android
Mixpanel Integration in Androidmobi fly
 
Visual AI Testing Using Applitools
Visual AI Testing Using ApplitoolsVisual AI Testing Using Applitools
Visual AI Testing Using ApplitoolsMikhail Laptev
 
Git as version control for Analytics project
Git as version control for Analytics projectGit as version control for Analytics project
Git as version control for Analytics projectNag Arvind Gudiseva
 
Introduction to Mangento
Introduction to Mangento Introduction to Mangento
Introduction to Mangento Ravi Mehrotra
 
Magento 2 Layered Navigation Extension by ITORIS INC
Magento 2 Layered Navigation Extension by ITORIS INCMagento 2 Layered Navigation Extension by ITORIS INC
Magento 2 Layered Navigation Extension by ITORIS INCItexus LLC
 
September Patch Tuesday Analysis 2018
September Patch Tuesday Analysis 2018September Patch Tuesday Analysis 2018
September Patch Tuesday Analysis 2018Ivanti
 
T3CON13: Web application development using Behaviour Driven Development
T3CON13: Web application development using Behaviour Driven DevelopmentT3CON13: Web application development using Behaviour Driven Development
T3CON13: Web application development using Behaviour Driven Developmentmhelmich
 
Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android AppsGil Irizarry
 
James Jara Portfolio 2014 - Enterprise datagrid - Part 3
James Jara Portfolio 2014  - Enterprise datagrid - Part 3James Jara Portfolio 2014  - Enterprise datagrid - Part 3
James Jara Portfolio 2014 - Enterprise datagrid - Part 3James Jara
 
Building a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data FlowBuilding a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data FlowVMware Tanzu
 
Ivanti Patch Tuesday for February 2020
Ivanti Patch Tuesday for February 2020Ivanti Patch Tuesday for February 2020
Ivanti Patch Tuesday for February 2020Ivanti
 
Hands on SPA development
Hands on SPA developmentHands on SPA development
Hands on SPA developmentShawn Constance
 
Magento 2 Quick View Extension by ITORIS INC.
Magento 2 Quick View Extension by ITORIS INC.Magento 2 Quick View Extension by ITORIS INC.
Magento 2 Quick View Extension by ITORIS INC.Itexus LLC
 

Semelhante a Exploiting and empowering semantic data with 2 new semantic extension: Sparql Result Format and Semantic Auth/Profiling (20)

Open Admin
Open AdminOpen Admin
Open Admin
 
Tableau vs Microstrategy
Tableau vs MicrostrategyTableau vs Microstrategy
Tableau vs Microstrategy
 
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)
 
Microsoft identity platform developer community call-October 2019
Microsoft identity platform developer community call-October 2019Microsoft identity platform developer community call-October 2019
Microsoft identity platform developer community call-October 2019
 
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
 
Mixpanel Integration in Android
Mixpanel Integration in AndroidMixpanel Integration in Android
Mixpanel Integration in Android
 
Visual AI Testing Using Applitools
Visual AI Testing Using ApplitoolsVisual AI Testing Using Applitools
Visual AI Testing Using Applitools
 
Git as version control for Analytics project
Git as version control for Analytics projectGit as version control for Analytics project
Git as version control for Analytics project
 
Mangento
MangentoMangento
Mangento
 
Introduction to Mangento
Introduction to Mangento Introduction to Mangento
Introduction to Mangento
 
Magento 2 Layered Navigation Extension by ITORIS INC
Magento 2 Layered Navigation Extension by ITORIS INCMagento 2 Layered Navigation Extension by ITORIS INC
Magento 2 Layered Navigation Extension by ITORIS INC
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
September Patch Tuesday Analysis 2018
September Patch Tuesday Analysis 2018September Patch Tuesday Analysis 2018
September Patch Tuesday Analysis 2018
 
T3CON13: Web application development using Behaviour Driven Development
T3CON13: Web application development using Behaviour Driven DevelopmentT3CON13: Web application development using Behaviour Driven Development
T3CON13: Web application development using Behaviour Driven Development
 
Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android Apps
 
James Jara Portfolio 2014 - Enterprise datagrid - Part 3
James Jara Portfolio 2014  - Enterprise datagrid - Part 3James Jara Portfolio 2014  - Enterprise datagrid - Part 3
James Jara Portfolio 2014 - Enterprise datagrid - Part 3
 
Building a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data FlowBuilding a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data Flow
 
Ivanti Patch Tuesday for February 2020
Ivanti Patch Tuesday for February 2020Ivanti Patch Tuesday for February 2020
Ivanti Patch Tuesday for February 2020
 
Hands on SPA development
Hands on SPA developmentHands on SPA development
Hands on SPA development
 
Magento 2 Quick View Extension by ITORIS INC.
Magento 2 Quick View Extension by ITORIS INC.Magento 2 Quick View Extension by ITORIS INC.
Magento 2 Quick View Extension by ITORIS INC.
 

Mais de Matteo Busanelli

Potenziare l'EA con il governo delle informazioni
Potenziare l'EA con il governo delle informazioniPotenziare l'EA con il governo delle informazioni
Potenziare l'EA con il governo delle informazioniMatteo Busanelli
 
Using (Semantic) Mediawiki on an Enterprise Knowledge Management Platform: fr...
Using (Semantic) Mediawiki on an Enterprise Knowledge Management Platform: fr...Using (Semantic) Mediawiki on an Enterprise Knowledge Management Platform: fr...
Using (Semantic) Mediawiki on an Enterprise Knowledge Management Platform: fr...Matteo Busanelli
 
Imola informatica - Enterprise Knowledge Management
Imola informatica  -  Enterprise Knowledge ManagementImola informatica  -  Enterprise Knowledge Management
Imola informatica - Enterprise Knowledge ManagementMatteo Busanelli
 
Imola informatica - Open Data fuori e dentro le aziende
Imola informatica  - Open Data fuori e dentro le aziendeImola informatica  - Open Data fuori e dentro le aziende
Imola informatica - Open Data fuori e dentro le aziendeMatteo Busanelli
 
Presentazione piattaforma semantica per gestione della conoscenza (scuole)
Presentazione piattaforma semantica per gestione della conoscenza (scuole)Presentazione piattaforma semantica per gestione della conoscenza (scuole)
Presentazione piattaforma semantica per gestione della conoscenza (scuole)Matteo Busanelli
 
Comprendere_le_Reti_per_Governare_l_EA_12nov2013
Comprendere_le_Reti_per_Governare_l_EA_12nov2013Comprendere_le_Reti_per_Governare_l_EA_12nov2013
Comprendere_le_Reti_per_Governare_l_EA_12nov2013Matteo Busanelli
 
Service Registry Repository Opensource implementato su Semantic Media Wiki
Service Registry Repository Opensource implementato su Semantic Media WikiService Registry Repository Opensource implementato su Semantic Media Wiki
Service Registry Repository Opensource implementato su Semantic Media WikiMatteo Busanelli
 
Approccio Semantico alla Governance IT
Approccio Semantico alla Governance ITApproccio Semantico alla Governance IT
Approccio Semantico alla Governance ITMatteo Busanelli
 
Generazione di diagrammi ArchiMate da modelli ontologici di EA e meta modello...
Generazione di diagrammi ArchiMate da modelli ontologici di EA e meta modello...Generazione di diagrammi ArchiMate da modelli ontologici di EA e meta modello...
Generazione di diagrammi ArchiMate da modelli ontologici di EA e meta modello...Matteo Busanelli
 
ODDI 2013 DCAT per descrivere gli Open Data della PA
ODDI 2013 DCAT per descrivere gli Open Data della PAODDI 2013 DCAT per descrivere gli Open Data della PA
ODDI 2013 DCAT per descrivere gli Open Data della PAMatteo Busanelli
 
Extracting archimate views from custom ontological ea models
Extracting archimate views from custom ontological ea modelsExtracting archimate views from custom ontological ea models
Extracting archimate views from custom ontological ea modelsMatteo Busanelli
 

Mais de Matteo Busanelli (11)

Potenziare l'EA con il governo delle informazioni
Potenziare l'EA con il governo delle informazioniPotenziare l'EA con il governo delle informazioni
Potenziare l'EA con il governo delle informazioni
 
Using (Semantic) Mediawiki on an Enterprise Knowledge Management Platform: fr...
Using (Semantic) Mediawiki on an Enterprise Knowledge Management Platform: fr...Using (Semantic) Mediawiki on an Enterprise Knowledge Management Platform: fr...
Using (Semantic) Mediawiki on an Enterprise Knowledge Management Platform: fr...
 
Imola informatica - Enterprise Knowledge Management
Imola informatica  -  Enterprise Knowledge ManagementImola informatica  -  Enterprise Knowledge Management
Imola informatica - Enterprise Knowledge Management
 
Imola informatica - Open Data fuori e dentro le aziende
Imola informatica  - Open Data fuori e dentro le aziendeImola informatica  - Open Data fuori e dentro le aziende
Imola informatica - Open Data fuori e dentro le aziende
 
Presentazione piattaforma semantica per gestione della conoscenza (scuole)
Presentazione piattaforma semantica per gestione della conoscenza (scuole)Presentazione piattaforma semantica per gestione della conoscenza (scuole)
Presentazione piattaforma semantica per gestione della conoscenza (scuole)
 
Comprendere_le_Reti_per_Governare_l_EA_12nov2013
Comprendere_le_Reti_per_Governare_l_EA_12nov2013Comprendere_le_Reti_per_Governare_l_EA_12nov2013
Comprendere_le_Reti_per_Governare_l_EA_12nov2013
 
Service Registry Repository Opensource implementato su Semantic Media Wiki
Service Registry Repository Opensource implementato su Semantic Media WikiService Registry Repository Opensource implementato su Semantic Media Wiki
Service Registry Repository Opensource implementato su Semantic Media Wiki
 
Approccio Semantico alla Governance IT
Approccio Semantico alla Governance ITApproccio Semantico alla Governance IT
Approccio Semantico alla Governance IT
 
Generazione di diagrammi ArchiMate da modelli ontologici di EA e meta modello...
Generazione di diagrammi ArchiMate da modelli ontologici di EA e meta modello...Generazione di diagrammi ArchiMate da modelli ontologici di EA e meta modello...
Generazione di diagrammi ArchiMate da modelli ontologici di EA e meta modello...
 
ODDI 2013 DCAT per descrivere gli Open Data della PA
ODDI 2013 DCAT per descrivere gli Open Data della PAODDI 2013 DCAT per descrivere gli Open Data della PA
ODDI 2013 DCAT per descrivere gli Open Data della PA
 
Extracting archimate views from custom ontological ea models
Extracting archimate views from custom ontological ea modelsExtracting archimate views from custom ontological ea models
Extracting archimate views from custom ontological ea models
 

Último

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Último (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Exploiting and empowering semantic data with 2 new semantic extension: Sparql Result Format and Semantic Auth/Profiling

  • 1. Exploiting and empowering semantic data with 2 new semantic extension: SemanticAuthProfiling and SparqlResultFormat 17th SMWCon Fall 2019 September 25-27, Paris, UIC HQ MATTEO BUSANELLI GABRIELE CORNACCHIA 17th SMWCon Fall 2019 1
  • 3.  2005 – 2008: researcher at ENEA (Italian National Research Agency) on Semantic Web  2008 - present: IT Consultant and Advisor for Enterprise Knowledge Management at Imola Informatica  Working with SMW (since 2010) on:  IT Service Management, IT Governance and Cost allocation  IT Architecture support  Document management  Enterprise Architecture consulting  GDPR compliancy  Platform for Turism Matteo Busanelli 17th SMWCon Fall 2019 3
  • 4. …two extensions that we developed and mantain: Today we will talk about... 17th SMWCon Fall 2019 4 SemanticAuthProfiling Profiling and authorizing (not authenticating ) users with wiki groups on categories and with per page administration roles SparqlResultFormat Generate diagrams and graph for data analitycs, reporting or dashboard from an arbitrary sparql endpoint
  • 5. SemanticAuthProfiling: WHY? 17th SMWCon Fall 2019 5  We use SMW as a collaborative platform for many purposes but always inside big enterprises (Banks, Insurances, PA, etc...).  Our clients need to access from different organizational units and with different roles on pages EAP I C T S t r a t e g y S e r v i c e M a n a g e r A p p l i c a t i o n M a n a g e r P r o j e c t M a n a g e r C I O F i n a n c i a l M a n a g e r Example: Enterprise Architecture Portal (EAP)
  • 6. 1. Per Category Profiling - to set (unset) permissions for a Mediawiki Group on a Category 17th SMWCon Fall 2019 6 SemanticAuthProfiling: How does it works? IT Strategy Manager Service Manager Portfolio Manager Application Manager Guest ICT Service VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE Support Service VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE Application VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE Budget Item VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE Project VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE Portal page VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE VIEW CREATE EDIT MOVE DELETE … … … … … … Something like that…CATEGORIES WIKI GROUPS (Profiles)
  • 7. 2. Per Page Administration - to set the «owner of something» as the admin of a page 17th SMWCon Fall 2019 7 SemanticAuthProfiling: How does it works? Something like that… Because of the project has a project manager then we want also him to be the Page admin This could be done in the Template:Project by coping the value of the “Property:Has project manager” in the extension “Property:Has page admin”
  • 9.  The extension let you configure (via external file or LocalSettings.php) for each mediawiki group on a specific category the following permission:  read – view pages of a category  create – create pages of a category  edit/formedit – edit pages (both «source» and «form» edit) of a cateogry  move - move pages of a category to another page title  delete – delete pages of a category  You can use the category wildcard * to set/unset action permission globally to all categories and then unset/set permissions for single category (a sort of Black/White list selection) 17th SMWCon Fall 2019 9 SemanticAuthProfiling - Per category profiling
  • 10.  Step 0: Setting base permission to let everyone edit pages The extension needs to have edit permission at true for all users. In this way we let the extension decide if you can or not edit based on the configurations that follow in next steps. 17th SMWCon Fall 2019 10 SemanticAuthProfiling - Per category profiling # Disable reading by anonymous users $wgGroupPermissions['*']['read'] = false; $wgGroupPermissions['user']['read'] = true; # Enable anonymous editing $wgGroupPermissions['*']['edit'] = true; $wgGroupPermissions['*']['formedit'] = true; NOTE: extension is on top of the wiki and if we close a permission at wiki level (i.e. $wgGroupPermissions['*']['edit'] = false) there is no way to open the permission to a user. In respect of the mediawiki, the extension can only “close” not “open”
  • 11.  Step 1: Creating groups (in Localsettings.php or in a specific profile.php) We can create each group starting from the permissions of the ‘user’ group  Step 2: Setting default action permissions for not profiled users 17th SMWCon Fall 2019 11 SemanticAuthProfiling - Per category profiling … $wgGroupPermissions['Service_Catalogue_Manager'] = $wgGroupPermissions['user']; $wgGroupPermissions['Application_Portfolio_Manager'] = $wgGroupPermissions['user']; $wgGroupPermissions['IT_Strategy_Manager']=$wgGroupPermissions['user’]; … #default permission $wgdefaultPermissionEdit=false; $wgdefaultPermissionCreate=false; $wgdefaultPermissionView=false; $wgdefaultPermissionMove=false;
  • 12.  Step 3: For each group specify pemissions on categories (eventually using the wildcard * to set them globally). Each permission can be stated in this way: There is a specific configuration variable (array[group][category]) for each ACTION: 17th SMWCon Fall 2019 12 SemanticAuthProfiling - Per category profiling $wgSemanticAuthProfiling<ACTION>Categories [‘<WIKIGROUP>'][‘<CATEGORY> or *']= true/false;  $wgSemanticAuthProfilingViewCategories [‘Portfolio Manager’][‘Project']= true;  $wgSemanticAuthProfilingEditCategories [‘Service Manager’][‘Project’]= false;  $wgSemanticAuthProfilingCreateCategories [‘IT Manager’][‘*']= true;  $wgSemanticAuthProfilingMoveCategories [‘Financial Manager’][‘Service’]= false;  $wgSemanticAuthProfilingDeleteCategories [‘Service Manager’][‘Project’]= false;
  • 13. FOR EXAMPLE…  IT Managers can view, create and edit pages of all categories but can’t delete nothing  Portfolio Managers can view all categories but only create,edit and move Project pages 17th SMWCon Fall 2019 13 SemanticAuthProfiling - Per category profiling $wgSemanticAuthProfilingViewCategories [‘IT Manager’][‘*']= true; $wgSemanticAuthProfilingCreateCategories [‘IT Manager’][‘*']= true; $wgSemanticAuthProfilingEditCategories [‘IT Manager’][‘*']= true; $wgSemanticAuthProfilingDeleteCategories [‘IT Manager’][‘*’]= false; $wgSemanticAuthProfilingViewCategories [‘Porfolio Manager’][‘*']= true; $wgSemanticAuthProfilingCreateCategories [‘Porfolio Manager’][‘*’]= false; $wgSemanticAuthProfilingCreateCategories [‘Porfolio Manager’][‘Project']= true; $wgSemanticAuthProfilingEditCategories [‘Porfolio Manager’][‘*’]= false; $wgSemanticAuthProfilingEditCategories [‘Porfolio Manager’][‘Project’]= true; $wgSemanticAuthProfilingMoveCategories [‘Porfolio Manager’][‘*’]= false; $wgSemanticAuthProfilingMoveCategories [‘Porfolio Manager’][‘Project’]= true;
  • 14.  You can also associate a Person referred in a specific semantic property to the Page Admin of that page through its wiki template: 17th SMWCon Fall 2019 14 SemanticAuthProfiling - Per page administration ===THIS IS PROJECT {{SUBJECTPAGENAME}}=== *Name: [[Project name::{{SUBJECTPAGENAME}}]] *Project Manager [[Has project manager::{{{field_PM}}}]] *…. {{#arraymap:{{{values|}}}|;|wk_template_var|{{#set:Has page admin=wk_template_var}} }} Template:Project
  • 15. The extension looks for the semantic property «Has page admin» with an ASK and take the foaf:mbox of that foaf:Person to match with the Mediawiki User. 17th SMWCon Fall 2019 15 SemanticAuthProfiling - Per page administration User:Mbusanelli generated from the Template
  • 16. 17th SMWCon Fall 2019 16 SemanticAuthProfiling - Per page administration  To use per page administration feature you have to: 1. Manually create the Property:Has page admin in the Mediawiki 2. Manually configure the mapping (custom prop<->Has page admin) in each Template of category you want page administration 3. Associate potentially each mediawiki user to a page of Category:Person (i.e foaf:Person) with a semantic property email or username 4. Email of each Category:Person must be the same of the corresponding mediawiki user (you can also use username).
  • 17. 17th SMWCon Fall 2019 17 SemanticAuthProfiling - Work in progress…  The extension is still in BETA (but already used by clients)  We are making some refactoring to release the extension in a the right format  We need to test all security issues against the page «Security issues with authorization extension»  Per page admin properties should be externally configurable: i.e $wgPageAdminProperty=‘Property:HasAdmin’; $wgMapUserOn = ‘email’;  Extension doesn’t really hide «edit» menù even if the user can’t edit. So the user not allowed will see a forbidden message
  • 18. 17th SMWCon Fall 2019 18 SemanticAuthProfiling - Work in progress… But our dream is to make the extension configurable with a GUI from Preferences or some special page (Special:SemanticAuthProfiling)
  • 19. 17th SMWCon Fall 2019 19 SemanticAuthProfiling: References and links Extension page:  https://www.mediawiki.org/wiki/Extension:SemanticAuthProfiling GIT repository:  https://github.com/imolainformatica/SemanticAuthProfiling Developer:  https://www.linkedin.com/in/giacomo-lorenzo-97664a106/ Feedbacks and suggestions are welcome!
  • 20. Gabriele Cornacchia 17th SMWCon Fall 2019 22  2011 - present: Software Developer & IT Consultant at Imola Informatica  Working (not only) with SMW (since 2015) on:  IT Architecture support  Document management  Enterprise Architecture consulting
  • 21. SparqlResultFormat: What is it? 17th SMWCon Fall 2019 23 "...a free, open-source extension to MediaWiki that lets you query different Sparql endpoints and represent output data in various formats."  Based on different opensource javascript charting libraries (JqPlot, Cytoscape.js, d3.js)  Several output formats
  • 22. Formats: Bar chart 17th SMWCon Fall 2019 24
  • 23. Formats: Pie & Donut chart 17th SMWCon Fall 2019 25
  • 24. Formats: Bubble Chart 17th SMWCon Fall 2019 26
  • 25. Formats: HTML table & CSV file 17th SMWCon Fall 2019 27
  • 28.  Allow customers to "see" and interact with data  Not only with flat HTML table  Overcome the ASK queries limits  Expressiveness limit compared to standard SPARQL syntax  But customers data consists of a complex network of related entities  Requires particular output format 17th SMWCon Fall 2019 30 SparqlResultFormat: Why?
  • 29. in January 2016...  Similar extensions did not exists  SparqlCharts -> appeared in May 2016  LinkedWiki Visualization -> appeared in August 2016  We didn't want server-side generated images (like Graphviz)  So we decided and started coding... SparqlResultFormat: Context 17th SMWCon Fall 2019 31
  • 30.  Makes available magic words (one per format) to be used directly inside a mediawiki page.  It can query any standard SPARQL endpoint (It does not require SMW)  Queries are executed server side to avoid CORS problem.  Provides a "Special page" with all magic words documentation (Special:SparqlResultFormat) 17th SMWCon Fall 2019 32 SparqlResultFormat: Key points
  • 31. SparqlResultFormat - Architecture 17th SMWCon Fall 2019 33 Client side Server side
  • 32. SparqlResultFormat in 3 steps 17th SMWCon Fall 2019 34 1) Configure your sparql endpoints in LocalSettings.php Query in page 2) Configure magic words in your wiki pages with your custom sparql queries 3) Enjoy!
  • 33. Example – Endpoint definition 17th SMWCon Fall 2019 35 $wgSparqlEndpointDefinition['<endpoint name>'] = array( 'url' => '<sparql endpoint url>', 'basicAuth' => array( 'user' => '<basic auth user>', 'password' => '<basic auth password>' ), 'connectionTimeout' => 30, 'requestTimeout' => 30, 'verifySSLCertificate' => false, 'prefixes' => array( 'skos' => 'http://www.w3.org/2004/02/skos/core#’, 'rdf' => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', 'rdfs' => 'http://www.w3.org/2000/01/rdf-schema#’, '<prefix>' => '<namespace>', ... ) ); List of prefixes and namespaces that are added automatically to every query to this endpoint -> you don't have to define each time You must refer this name in the magic word Other connection parameters In LocalSettings.php
  • 34. {{#sparql2barchart: |divId=chart1 |sparqlEndpoint=wikidata |sparqlEscapedQuery= SELECT DISTINCT ?countryLabel ?population { ?country wdt:P31 wd:Q6256 ; wdt:P1082 ?population . SERVICE wikibase:label { bd:serviceParam wikibase:language "en" } } GROUP BY ?population ?countryLabel ORDER BY DESC(?population) limit 20 |seriesConfiguration=[{label:'Population', color:'blue',showLink:'false'} ] |extraOption=chart.title:Top 20 contries by population |extraOption=chart.axis.x.label:Country |extraOption=chart.axis.y.label:Population }} Example – Magic Word configuration 17th SMWCon Fall 2019 36 Common parameters (same for all output formats) Format specific parameters for tuning behaviour and appearance The output format is in the magic word name In wiki page
  • 35. Example - Output 17th SMWCon Fall 2019 37
  • 36.  Adding other useful output format  Adding page to test query & configurations (as Special:Ask page)  Adding more interactivity to graph format (graph exploration feature)  Improving documentation & examples  Developing unit & integration tests Next steps and further works 17th SMWCon Fall 2019 38
  • 37. Extension page:  https://www.mediawiki.org/wiki/Extension:SparqlResultFormat GIT repository:  https://github.com/imolainformatica/SparqlResultFormat Blog article:  https://blog.imolainformatica.it/2017/03/16/enterprise-architecture- unimmagine-vale-piu-di-mille-tabelle/ SparqlResultFormat - References and links 17th SMWCon Fall 2019 39 Feedbacks and suggestions are welcome!
  • 38. LIVE DEMO 17th SMWCon Fall 2019 40
  • 39. Thanks for your attention… …any question?