Outils pour utilisateurs

Outils du site


besson_sylvain:economist_jurist

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
besson_sylvain:economist_jurist [2021/03/25 18:47]
Sylvain Besson [Économiste et juriste]
besson_sylvain:economist_jurist [2021/03/30 12:38]
Sylvain Besson [Économiste et juriste]
Ligne 3: Ligne 3:
 ====== Économiste et juriste ====== ====== Économiste et juriste ======
 \\ \\
-Économiste et juriste est un projet visant à étudier les économistes et les juristes depuis 1800 jusqu'​à nos jours. Pour cela, nous allons prendre les données qui sont présentes sur DBpedia et BnF Data et les lier entre elles. Le but final étant d'​avoir une base de données fonctionnelle sur ces populations. ​+Économiste et juriste est un projet visant à étudier les économistes et les juristes depuis 1800 jusqu'​à nos jours. Pour cela, nous allons prendre les données qui sont présentes sur [[https://​www.dbpedia.org/​|DBpedia]] et [[https://​data.bnf.fr/​|BnF Data]] et les lier entre elles. Le but final étant d'​avoir une base de données fonctionnelle sur ces populations. De cette base de données créées, nous pourront réaliser plusieurs traitements statistiques,​ d'​analyses descriptives et d'​analyses de réseaux.
  
-De cette base de données nous pourront réaliser plusieurs traitements statistiquesd'analyses descriptives et d'​analyses de réseaux.+**Sur cette pagevous retrouvez l'ensemble des éléments pour comprendre notre projet:**
  
-Nous utiliserons pour cela le langage SPARQL.+  * Une **[[projets_individuels:​economiste_juriste_documentation|documentation]]** expliquant les différents langages utilisés, ​le fonctionnement des bases de données utilisées, etc.
  
-Vous retrouverez la [[Economiste_Juriste_Documentation|Documentation]] qui peut être utile pour comprendre le projet avec les langages employés, les jeux de données utilisés, etc.+  * La **[[projets_individuels:​economiste_juriste_delimitation|délimitation du sujet]]** ​ sur la définition des termes "​économistes"​ et "​juristes"​ ainsi que les bornes chronologiques et géographiques choisies. 
 + 
 +  * La **feuille de route** retraçant les différentes étapes de notre projet. 
 + 
 +  * Le **détail** des étapes réalisés. 
 + 
 +---- 
 + 
 +=====Documentation===== 
 +Vous retrouverez la **[[Economiste_Juriste_Documentation|documentation]]** qui peut être utile pour comprendre le projet avec les langages employés, les bases de données utilisés, etc. 
 + 
 + 
 +Accès à notre **[[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Lawyers|dépôt Github]]** sur lequel nous mettons nos différents carnets [[https://​www.python.org/​|Python]]. 
 + 
 +---- 
 + 
 +=====Délimitation du sujet===== 
 + 
 +Afin d'​avoir une population claire à étudier, il faut pour cela délimiter notre sujet et ainsi discriminer les personnes qui rentrent ou non dans la définition d'​économiste ou de juriste.  
 + 
 +Dans cette section, vous retrouverez la **[[economiste_juriste_delimitation|délimitation du sujet]]** qui est le point de départ de notre recherche. 
 + 
 + 
 +---- 
 + 
 +=====Sondage des données===== 
 + 
 +La première étape est de connaître l'​état des jeux de données de [[https://​www.dbpedia.org/​|DBpedia]] et [[https://​data.bnf.fr/​|BnF Data]] afin de voir le nombre de personnes dont on peut considérer qu'​elles font parties de la "​population"​ des Économistes et des juristes. 
 + 
 +Pour cela il faut réaliser des Requêtes [[https://​www.w3.org/​TR/​rdf-sparql-query/​|SPARQL]] afin de connaître indépendamment sur les deux bases de données le nombre de personnes qui répondre à ce critère. Pour cela, il ne faut faire les requêtes avec le moins grande nombre de critère de sélection afin de ne réduire la population si une personne ne correspond pas à une des critères. Les seuls critères qui sont conservés sont l'URI de la personne, sans quoi on ne peut pas l'​identifier et l'​année de naissance.  
 + 
 +Il est ensuite possible de rajouter des critères optionnels comme le nom (toutes les personnes n'ont pas systématiquement un nom inscrit), la nationalité,​ etc.  
 + 
 +Il est aussi parfois essentiel de conserver le résumé/la biographie de la personne, car c'est cet élément qui l'​identifie en tant qu'​économiste ou juriste. Il est possible dans le langage [[https://​www.w3.org/​TR/​rdf-sparql-query/​|SPARQL]] d'​aller chercher des chaînes de caractères avec la clause [[https://​www.w3.org/​TR/​rdf-sparql-query/#​funcex-regex|REGEX]]. C'est avec cette dernière que nous pouvons aller chercher dans les biographies et les résumées les mentions d'​économistes,​ professeur d'​économie,​ //jurist//, etc. 
 +Pour [[https://​data.bnf.fr/​|BnF Data]], il y n'a besoin de chercher ces chaînes de caractère qu'en français, car toutes les biographies sont écrites en français. Par contre, pour [[https://​www.dbpedia.org/​|DBpedia]],​ il faut avant tout les faire en anglais, car c'est la langue qui est privilégiée. 
 + 
 +Voici un exemple d'​interrogation possible pour obtenir les économistes sur le [[https://​data.bnf.fr/​sparql/​|point de terminaison SPARQL]] BnF Data: 
 + 
 +<code sparql>​ 
 +PREFIX ​ egr:  <​http://​rdvocab.info/​ElementsGr2/>​ 
 +PREFIX ​ owl:  <​http://​www.w3.org/​2002/​07/​owl#>​ 
 +PREFIX ​ dbr:  <​http://​dbpedia.org/​resource/>​ 
 +PREFIX ​ xsd:  <​http://​www.w3.org/​2001/​XMLSchema#>​ 
 +PREFIX ​ skos: <​http://​www.w3.org/​2004/​02/​skos/​core#>​ 
 +PREFIX ​ foaf: <​http://​xmlns.com/​foaf/​0.1/>​ 
 + 
 +SELECT DISTINCT ​ ?s ?name ?sName ?uri ?year ?bio 
 +WHERE 
 +  {   { ?s  egr:​biographicalInformation ​ ?bio ;  
 +            egr:​dateOfBirth ​      ?bd 
 +        BIND(strbefore(strafter(str(?​bd),​ "​http://​data.bnf.fr/​date/"​),​ "/"​) AS ?year)  
 +        # La clause "​BIND"​ est utilisé afin de ne garder dans l'URL que la date. 
 +        FILTER ( ( regex(?bio, "​juriste",​ "​i"​) || regex(?bio, "​professeur de droit",​ "​i"​) ) || regex(?bio, "​docteur en droit",​ "​i"​) ) 
 +        # Ce filtre est nécessaire pour obtenir la population que nous avons défini. 
 +        OPTIONAL 
 +          { ?s  foaf:​name ​ ?name } 
 +        OPTIONAL 
 +          { ?s  skos:​prefLabel ​ ?sName } 
 +        OPTIONAL 
 +          { ?s  owl:​sameAs ​ ?uri 
 +            FILTER regex(?uri, "​viaf.org",​ "​i"​) 
 +            # Ce filtre est utilisé pour fusionner les données issues de  
 +            # BnF Data et de DBpedia by l'URI VIAF. 
 +          } 
 +      } 
 +    UNION 
 +      { ?s  egr:​biographicalInformation ​ ?bio ; 
 +            egr:​dateOfBirth ​      ?bd 
 +        BIND(strbefore(strafter(str(?​bd),​ "​http://​data.bnf.fr/​date/"​),​ "/"​) AS ?year) 
 +        FILTER ( ?year > "​1800"​ ) 
 +        FILTER ( ( ( regex(?bio, "​économiste"​) || regex(?bio, "​Economiste"​) ) || regex(?bio, "​professeur d'​économie",​ "​i"​) ) || regex(?bio, "​docteur en économie",​ "​i"​) ) 
 +        OPTIONAL 
 +          { ?s  foaf:​name ​ ?name } 
 +        OPTIONAL 
 +          { ?s  skos:​prefLabel ​ ?sName } 
 +        OPTIONAL 
 +          { ?s  owl:​sameAs ​ ?uri 
 +            FILTER regex(?uri, "​viaf.org",​ "​i"​) 
 +          } 
 +      } 
 +  } 
 +ORDER BY DESC(?​uri) 
 +</​code>​ 
 + 
 +Cette requête est exécuté sur [[https://​www.python.org/​|Python]] est permet d'​aller chercher à la fois les économistes et à la fois les juristes [[https://​data.bnf.fr/​|BnF data]]. ​ (cf. **[[projets_individuels:​economiste_juriste_documentation|Documentation SPARQL]]** pour comprendre davantage comment se construit la requête).  
 + 
 +Nous ajoutons de façon optionnelle les personnes qui aurait un URI [[http://​viaf.org/​|VIAF]]. Il est important, car il nous permet de faire une jointure entre les données [[https://​data.bnf.fr/​|BnF Data]] et [[https://​www.dbpedia.org/​|DBpedia]] pour les personnes qui ont le même URI [[http://​viaf.org/​|VIAF]] sur les bases de données.  
 + 
 +Il est possible de retrouver sur ce **[[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​development/​Notebooks/​Issues/​DBpedia_BnF_Data_URI.ipynb|carnet]]** la requête pour [[https://​data.bnf.fr/​|BnF Data]] et [[https://​www.dbpedia.org/​|DBpedia]],​ ainsi que les démarches pour aligner les deux bases de données. 
 +---- 
 + 
 +=====Feuille de route===== 
 + 
 +Nous devons dans ce projet réaliser différentes étapes: 
 + 
 +  - Récolter le maximum de personnes sur [[https://​www.dbpedia.org/​|DBpedia]] et [[https://​data.bnf.fr/​|BnF Data]] via des requêtes [[https://​www.w3.org/​TR/​rdf-sparql-query/​|SPARQL]] 
 +  - Aligner les deux jeux de données avec le langage [[https://​www.python.org/​|Python]] 
 +  - Voir s'il y a des propriétés qui sont présentes sur une majorité de personnes 
 +    * en extrayant les propriétés par des requêtes [[https://​www.w3.org/​TR/​rdf-sparql-query/​|SPARQL]]  
 +  - Créer une ontologie particulière  
 +    * Basé sur des ontologies de haut niveau comme le [[http://​www.cidoc-crm.org/​|Cidoc CRM]] 
 +    * En utilisant [[https://​ontome.dataforhistory.org/​|OntoMe]] 
 +  -  Comparer le jeux de données créé avec [[http://​siprojuris.symogih.org/​|Siprojuris]]  
 +    * [[https://​data.bnf.fr/​|BnF Data]] et [[http://​siprojuris.symogih.org/​|Siprojuris]] ont tous les deux des [[https://​www.idref.fr/​|IDRef]] communs qui permettront de faire un alignement 
 +  -  Réaliser des différentes analyses statistiques
  
  
-Accès à notre dépôt Github sur lequel nous mettons nos différents carnets Python. 
besson_sylvain/economist_jurist.txt · Dernière modification: 2021/07/22 19:05 par Sylvain Besson