Entreprise

Nos compétences

Logilab développe des logiciels, et propose du conseil et des formations de haut niveau dans les domaines de l'informatique scientifique et du web sémantique, en utilisant des outils et méthodes agiles.

Logilab s'est spécialisée dans l'utilisation de certains outils (Python, CubicWeb, Debian, etc.) et techniques (génie logiciel, programmation multi-paradigmes, statistiques, logique, etc.) pour les appliquer aux domaines de l'informatique scientifique (simulation numérique, calcul hautes performances, analyse de données, etc.) et du web sémantique (gestion de connaissances, agrégation de bases de données, outils de recherche et de veille, etc.).

Nos formations

Les formations de Logilab s'adressent en priorité aux ingénieurs, chercheurs et techniciens désireux d’accroitre leur culture informatique. Elles couvrent des sujets variés (Python, conception orientée objet, administrations système, etc)… Nos formations sont systématiquement adaptées aux besoins des participants, qu'il s'agisse de sessions intra-entreprises ou inter-entreprises.

Logiciel Libre

Logilab, membre de l’april, est un acteur du Logiciel Libre et met à disposition certains de ses développements sur sa forge logicielle. Elle soutient régulièrement des événements et des conférences permettant aux communautés de se réunir.

Innovation

Logilab est une entreprise innovante, membre des pôles de compétitivité Systematic Paris Région et Aerospace Valley.

Logilab participe à plusieurs projets collaboratifs co-financés par l'ANR comme Les registres de la comédie française.

40 infra_devtools

étiquette

infra_devtools

20 rd

étiquette

r-et-d

Archives de France

Lorem ipsum dolor sit amet, consectetur adipisicing elit.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid, suscipit, rerum quos facilis repellat architecto commodi officia atque nemo facere eum non illo voluptatem quae delectus odit vel itaque amet.

Logilab et l'informatique scientifique

Les ingénieurs de Logilab ont la culture scientifique nécessaire pour collaborer efficacement avec les ingénieurs des bureaux d'études et des laboratoires de recherche qui souhaitent déléguer la réalisation des tâches informatiques pour se concentrer sur la modélisation et la simulation des phénomènes.

L'expertise de Logilab

Logilab intervient généralement soit pour industrialiser des codes issus d'activités de recherche soit pour imaginer des solutions innovantes.

Ainsi, nous travaillons pour de grands comptes scientifiques afin de développer des applications comme : - un outil utilisant l'apprentissage automatique pour la conduite prédictive des réseaux urbains de chaleur et de climatisation, et ayant permis de substantielles économies tant monétaires qu'en émissions de CO2 ; - un outil de description et de pilotage distribué de processus de calculs aérothermiques pour la conception de turbines de réacteurs d'avions ; - une boite à outils d'analyse statistique pour l'étude de l'opportunité de l'implantation d'éoliennes en haute mer.

Les ingénieurs de Logilab ont la culture scientifique nécessaire pour collaborer efficacement avec les ingénieurs des bureaux d'études et des laboratoires de recherche qui souhaitent déléguer la réalisation des tâches informatiques pour se concentrer sur la modélisation et la simulation des phénomènes.

Python pour les applications scientifiques

Python est un langage qui convient idéalement aux applications scientifiques. Grâce à son écosystème très riche (Numpy, Scipy, Pandas ou encore Scikit-Learn) il permet d'écrire des codes de calcul très rapidement. Il est également possible d'intégrer des codes existants écrits en Fortran, C/C++ à du code Python ce qui permet de bénéficier de la rapidité d'exécution des langages compilés et de la souplesse de Python. Par ailleurs, Cython offre la possibilité de migrer aisément en C les fonctions Python gourmandes en ressources.

Jupyter est un écosystème qui permet l'édition de documents qui mélangent du texte et du code (appelés calepin ou notebook). Python est le langage principal de cet environnement. Il est notamment possible de concevoir simplement des interfaces utilisateurs permettant l'exécution ou la manipulation du code de calcul.

Logilab utilise Python et anime des formations sur ce langage et ses bibliothèques depuis sa création en 2000. C'est le partenaire privilégié pour vous accompagner et vous aider dans vos projets scientifiques.

Contactez-nous

Nos coordonnées

Logilab développe des solutions logicielles, et propose des services et des formations de haut niveau dans les domaines de l'informatique scientifique et de la gestion de connaissances, en utilisant des logiciels libres et méthodes agiles.

  • Téléphone : (+33) 1 45 32 03 12 / (+33) 6 73 88 04 56
  • Courriel : contact@logilab.fr / formation@logilab.fr

Nos bureaux

Paris

104 boulevard Louis-Auguste Blanqui
75013 Paris

France

Métro : Glacière (ligne 6)

Toulouse

25 allée Jean Jaurès
31000 Toulouse

France

Métro : Jean-Jaurès (lignes A, B)
Téléphone : (+33) 5 62 17 16 42

60 societe

étiquette

societe, competences

70 contact

étiquette

contact

La prochaine édition de SemWeb.Pro aura lieu mardi 3 décembre au FIAP Jean Monnet, à Paris. ![image](<https://www.logilab.fr/file/2873/raw>) Nous vous invitons à soumettre vos propositions de présentation en [répondant à l'appel à communication](<http://www.semweb.pro/semwebpro-2019...
59

La prochaine édition de SemWeb.Pro aura lieu mardi 3 décembre au FIAP Jean Monnet, à Paris.

image

Nous vous invitons à soumettre vos propositions de présentation en répondant à l'appel à communication avant le 31 août 2019.

Pour être tenu informé de l'ouverture de la billetterie, envoyez un courriel à contact@semweb.pro en demandant à être inscrit à la liste d'information.

posté dans

Actualités

[CubicWeb](https://cubicweb.readthedocs.io) est un cadriciel libre de gestion de données sur le Web développé et maintenu par [Logilab](https://logilab.fr) depuis 15 ans. Il est utilisé depuis 2010 dans des applications d'envergure telles que [DataBnF](https://data.bnf.fr) ou [FranceAr...
1170

CubicWeb est un cadriciel libre de gestion de données sur le Web développé et maintenu par Logilab depuis 15 ans. Il est utilisé depuis 2010 dans des applications d'envergure telles que DataBnF ou FranceArchives. Basé sur les principes du web sémantique depuis sa création, il adopte à son rythme les standards du W3C pour faciliter la publication de données sur le Web de données liées (LOD).

CubicWeb vient de franchir une nouvelle étape avec la version 3.28 sortie le 24 juin 2020, qui met à disposition la négociation de contenu HTML / RDF.

Cette fonctionnalité a fait l'objet d'un article scientifique et d'une démonstration lors de la conférence d'Ingénierie de Connaissance de la Plateforme Française d'Intelligence Artificielle.

Nous allons maintenant présenter CubicWeb, les principes de la négociation de contenu en général, les choix faits pour la mettre en oeuvre dans CubicWeb et comment personnaliser le RDF généré.

Présentation de CubicWeb

CubicWeb fonctionne par composants, appelés cubes, qui peuvent être combinés pour créer une application (qui est elle-même un cube réutilisable). Un cube est composé:

  1. 1- d'un schéma (ou modèle données) exprimé en YAMS, un langage qui permet d'exprimer un modèle entité-association et les permissions associées en python ;

  2. 2- d'une logique applicative ;

  3. 3- de vues (interfaces graphiques ou fonctions d'export de données).

Lorsqu'une application est "instanciée", le schéma YAMS est compilé en un schéma SQL et une base de données Postgresql est initialisée pour stocker le modèle et les données de l'application.

Schéma YAMS du cube Blog

La logique de l'application, écrite en Python, interagit avec la base de données par le biais du schéma YAMS et du langage de requête RQL. Il n'y a donc pas besoin d'écrire des requêtes SQL et de se préoccuper du schéma physique de la base relationnelle sous-jacente.

L'introduction d'une séparation nette entre l'obtention des données via une requête RQL et leur mise en forme par une vue permet d'offrir à l'utilisateur une grande liberté dans son exploration de la base.

S'il n'y a pas de vue personnalisée prévue pour une entité du modèle YAMS, une vue est générée automatiquement, ce qui assure que toutes les données sont visibles et manipulables, ne serait-ce qu'au travers d'une interface minimale qui permet aux utilisateurs autorisés d'ajouter, éditer et supprimer les entités de l'application.

Dans cette architecture, offrir une représentation RDF d'une ressource/entité consiste à définir une vue spécifique, qui traduira dans le vocabulaire RDF choisi les entités définies par le modèle YAMS.

Présentation de la négociation de contenu

La négociation de contenu permet d'obtenir plusieurs représentations d'une même ressource à partir d'une même URL1.

Une personne visitant la ressource http://cubicweb.example.com/person/123 avec son navigateur souhaite généralement obtenir la version HTML pour la lire. Dans le Web de données, un robot ou un programme sera plus intéressé par la représentation RDF de cette ressource pour en traiter les données.

Schéma d'un serveur retournant pour la même URL http://cubicweb.example.com/person/123 soit la représentation RDF à un robot, soit la représentation HTML à un humain.

La même ressource abstraite est donc mise à disposition par le serveur sous deux représentations distinctes : le RDF et le HTML. Le mécanisme de négociation de contenu permet de servir ces représentations depuis la même URL, qui pourra ainsi être partagée entre ces deux mondes : humain et robot.

Implémentation de la négociation de contenu

La négociation de contenu passe par les différents en-têtes Accept* d'une requête HTTP. Elle peut concerner la langue avec Accept-Language, le jeu de caractères avec Accept-Charset, l'encodage avec Accept-Encoding ou encore le format avec Accept.

C'est l'en-tête Accept qui est utilisée par le client pour spécifier qu'il souhaite la représentation RDF d'une ressource dans un format donné, en utilisant l'un des types MIME suivants :

  • · application/rdf+xml

  • · text/turtle

  • · text/n3

  • · application/n-quads

  • · application/n-triples

  • · application/trig

  • · application/ld+json

Lorsqu'une requête est envoyée au serveur avec l'en-tête Accept et un type MIME de la liste ci-dessus, le serveur peut répondre de plusieurs façons.

Il peut indiquer au client, via une redirection intermédiaire (303 See Other), l'URL où se trouve la ressource dans la bonne représentation. C'est le choix fait par Virtuoso.

Négociation de contenu avec réponse 303 See Other

Il peut également répondre en envoyant directement la description RDF dans le format correspondant au type MIME de la requête.

Négociation de contenu directe

C'est le choix que nous avons fait dans CubicWeb, pour éviter une seconde requête et gagner en efficacité.

Description RDF des entités CubicWeb

Dans la version 3.28, CubicWeb fournit une représentation en RDF par défaut de ses entités, qui contient deux «types» de triplets :

  • · ceux qui décrivent les relations et attributs du schéma YAMS. Ils utilisent le préfixe http://ns.cubicweb.org/cubicweb/0.0/, abrégé en cubicweb.

  • · ceux qui décrivent des relations Dublin Core.

Par exemple, si vous avez une instance qui héberge des articles de blog (CustomBlogEntry), vous pourrez exécuter :

curl -iH "Accept: text/turtle" http://cubicweb.example.com/customblogentry/2872

qui retournera :

@prefix cubicweb: <http://ns.cubicweb.org/cubicweb/0.0/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .

# triplets Cubicweb (générés par cw_triples())
<http://cubicweb.example.com/902> cubicweb:wf_info_for <http://cubicweb.example.com/901> .

<http://cubicweb.example.com/901> a cubicweb:CustomBlogEntry ;
    cubicweb:content "Ceci est le contenu de mon billet de blog" ;
    cubicweb:content_format "text/plain" ;
    cubicweb:creation_date "2020-07-09T07:59:09.339052+00:00"^^xsd:dateTime ;
    cubicweb:entry_of <http://cubicweb.example.com/900> ;
    cubicweb:modification_date "2020-07-09T07:59:29.300045+00:00"^^xsd:dateTime ;
    cubicweb:title "Mon billet de blog" .

# triplets Dublin Core (généré par dc_triples())
    dc:language "en" ;
    dc:title "Mon billet de blog" ;
    dc:type "Blog entry" .

Personnaliser le RDF généré

Pour personnaliser la représentation RDF d'un type d'entité, il faut créer une classe héritant de EntityRDFAdapter, puis redéfinir sa méthode triples qui doit, comme son nom l'indique, renvoyer un ensemble de triplets. Les triplets sont formés avec rdflib.

Par défaut, la méthode triples appelle les méthodes cw_triples et dc_triples de EntityRDFAdapter pour récupérer respectivement les triplets CubicWeb et les triplets Dublin Core. Ces méthodes peuvent être surchargées si nécessaire.

Le code ci-dessous montre un exemple d'adaptateur RDF pour la classe BlogEntry. La fonction _use_namespace permet de relier un préfixe à son namespace dans le graphe RDF généré, en l'ajoutant au dictionnaire NAMESPACES du module cubicweb.rdf.

from rdflib import URIRef, Namespace
from cubicweb.entities.adapters import EntityRDFAdapter
from cubicweb.rdf import NAMESPACES

NAMESPACES["sioct"] = Namespace("http://rdfs.org/sioc/types#")

class BlogEntryRDFAdapter(EntityRDFAdapter):
    __select__ = is_instance("BlogEntry")

    def triples(self):
        SIOCT = self._use_namespace("sioct")
        RDF = self._use_namespace("rdf")
        yield (URIRef(self.uri), RDF.type, SIOCT.BlogPost)

Exemple de triplets personnalisés

Dans la version 1.14.0 du cube blog sortie le 24 juin 2020, l'ontologie SIOC (Semantically-Interlinked Online Communities) a été utilisée pour décrire les entités relatives aux blogs.

Voici le résultat obtenu pour un billet de blog :

curl -iH "Accept: text/turtle" https://www.logilab.fr/blogentry/2872

qui renverra:

@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix sioct: <http://rdfs.org/sioc/types#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://www.logilab.fr/2872> a sioct:BlogPost ;
    dcterms:date "2019-06-28T15:28:31.852530+00:00"^^xsd:dateTime ;
    dcterms:format "text/markdown" ;
    dcterms:modified "2020-06-19T13:26:20.750747+00:00"^^xsd:dateTime ;
    dcterms:title "SemWeb.Pro 2019 : envoyez votre proposition avant samedi 31 août !" ;
    sioc:container <http://beta.logilab.fr1377> ;
    sioc:content """La prochaine édition de SemWeb.Pro aura lieu mardi 3 décembre à Paris.\r
\r
![image](<https://www.logilab.fr/file/2873/raw>)\r
\r
Nous vous invitons à soumettre vos propositions de présentation en [répondant à l'appel à communication](<http://www.semweb.pro/semwebpro-2019.html>) **avant le 31 août 2019**.\r
\r
Pour être tenu informé de l'ouverture de la billetterie, envoyez un courriel à contact at semweb.pro en demandant à être inscrit à la liste d'information.""" .

Les prochaines étapes pour CubicWeb

Permettre la négociation de contenu est une étape de nos travaux actuels pour faire de CubicWeb une brique à part entière du LOD. Nous travaillons déjà à la génération d'archive RDF pour faciliter l'export, mais également à la possibilité d'interroger la base en SPARQL, en plus du RQL.

posté dans

Actualités
a pour créateur

Réalisations

50 realisations

étiquette

Réalisations

30 informatique_scientifique

Infrastructure et outils de développement

Nous inventons l'approche Test-Driven Infrastructure en nous appuyant sur notre maîtrise de Debian, OpenStack, Salt et du développement piloté par les tests (TDD). Nous innovons avec une forge logicielle qui soutient les processus agiles et qui fluidifie le développement collaboratif. Pour cela, nous avons étendu les capacités de Mercurial avec Evolve avant de les intégrer à CubicWeb pour faciliter la revue de code. L'amélioration continue de nos outils traduit notre souci constant de la qualité.

Lorem Ipsum

Data BnF

Logilab gère les données de la Bibliothèque Nationale de france

Logilab a développé sur la base de CubicWeb le site data.bnf.fr, pour la Bibliothèque nationale de France, mettant à disposition tout un ensemble d'informations fusionnées et cohérentes sur les œuvres et les auteurs, et ce, aux standards du Web et du Web sémantique.

Ces informations sont issues de différentes bases internes à la BnF et ont été liées à des sources de données externes, comme DBpedia ou Geonames, afin d'insérer les données du site au cœur du Web sémantique et d'enrichir contextuellement les éléments présentés. Le serveur applicatif est centré sur le modèle des informations manipulées et contient de nombreuses fonctionnalités pour importer des jeux de données issus de différentes sources (catalogues internes), de tisser des liens entre les éléments issus de ces sources ainsi qu'entre ces éléments et des bases publiques externes telles que DBpedia, Geonames ou MusicBrainz.

Ces fonctionnalités s'appuient sur des algorithmes d'alignement, de calcul de distance intertextuelle, ou de classification, choisis et validés par Logilab dans le cadre du projet. Les informations fusionnées ainsi obtenues sont ensuite publiées dans un format permettant leur exploration avec un navigateur (HTML ou vues spécialisées comme des frises chronologiques ou des cartes) et dans des formats permettant la réutilisation des données (notamment RDF et JSON).

Une des étapes les plus importantes de cette prestation a été la conception d'un modèle de données (une ontologie) permettant de décrire l'ensemble des informations à réunir dans l'application, en fonction des besoins actuels, des besoins imaginés pour le futur et des fonctionnalités souhaitées. La plateforme CubicWeb présente ici l'énorme avantage de mettre le modèle de données au cœur de la solution et d'offrir tout un ensemble d'outils permettant de le faire évoluer de manière sécurisée.

Recherche et développement

La R&D de Logilab

Formations

Assister à une formation Logilab, c'est :

  • apprendre avec des professionnels compétents maîtrisant parfaitement le sujet qu'ils enseignent,
  • bénéficier des conseils et des avis d'experts travaillant depuis longtemps dans le domaine,
  • trouver des interlocuteurs attentifs et disponibles, cherchant à apporter à chacun les informations dont il a besoin.

Les experts du centre de compétences Logilab participent au développement de solutions logicielles complexes, mettant en œuvre des fonctionnalités et des algorithmes avancés. Pour ce faire, ils utilisent des langages tels que Python et JavaScript, et des méthodes agiles de développement industriel . Confrontés quotidiennement à ces domaines de connaissance, ils ont acquis une réelle expertise sur ces sujets, ce qui leur offre la possibilité de les enseigner dans un esprit pragmatique. Les experts choisis pour animer une formation ont tous, outre leur excellence technique, une expérience notable dans le domaine de la formation professionnelle.

Référencement officiel

Logilab est déclaré comme organisme de formation auprès de la DRIEETS sous le numéro 117.534.173.75 et référencé dans Data-Dock avec l'identifiant 0017742.

Certification

Logilab a obtenu la certification qualité Qualiopi en décembre 2021 au titre de la catégorie actions de formation. Vous pouvez consulter le certificat correspondant.

Catalogue

Toutes nos formations sont disponibles soit en langue française soit en langue anglaise. Elles peuvent toutes avoir lieu en intra-entreprise au lieu de votre convenance en France ou en Europe ; des sessions en inter-entreprises sont organisées par Logilab pour certaines formations en région Île-de-France ou en région Midi-Pyrénées.

Logilab a choisi de systématiquement adapter ses formations au plus près des besoins de chacun de ses clients. Ainsi, vous pouvez soit choisir une de nos formations standards décrites ci-après, soit contacter notre service commercial pour composer une formation sur-mesure. Nous disposons d'une importante bibliothèque de modules pédagogiques pour vous aider dans cette opération et fabriquer la formation répondant exactement à vos besoins.

Notre catalogue est disponible au format PDF.

Formations standards

Les bases de la programmation avec Python

Programmation avancée avec Python

Python scientifique

Création d'interfaces utilisateur

Web des données

Administration système

Formation à la carte

À partir de 4 personnes, Logilab peut animer des formations spécifiques en intra-entreprise, n'importe où en France ou en Europe. Vous pouvez alors composer la formation répondant exactement à vos besoins. Notre service commercial est à votre disposition pour vous conseiller et vous aider dans vos choix, en s'appuyant sur l'importante bibliothèque de modules pédagogiques dont nous disposons.

Commercialisation

L'équipe commerciale de Logilab est à votre disposition pour vous apporter toute précision supplémentaire, vous aider à formaliser vos besoins et vous proposer une prestation adaptée à vos besoins.