SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Intoduction       Use case      My efforts       Package / Project meta-data   Fin




              Using RDF metadata for traceability among
                      projects and distributions

                  Olivier Berger <mailto:obergix@debian.org>
                          Debian + Télécom SudParis


                             Thursday 04/04/2013
                             Distro Recipes - Paris
Intoduction      Use case      My efforts       Package / Project meta-data   Fin



                            Quick Introduction
                                   Short bio


      Olivier BERGER
      <mailto:olivier.berger@telecom-sudparis.eu>
      <mailto:obergix@debian.org>
      Research Engineer at TELECOM SudParis, expert on software
      development forges, and interoperability in Libre Software
      development projects. Contributor to FusionForge, Debian, etc.
Intoduction          Use case        My efforts     Package / Project meta-data   Fin



                                How much duplication ?




          • Think about all the duplicate bug reports, and the number of
              people involved. . . usually not the ones who can help, btw
          • Can you navigate between all of these ?
          • Does google search help ?
Intoduction          Use case      My efforts        Package / Project meta-data   Fin



                                   Some issues

          • Universal Free Software Project description format ; (nay)
          • Universal distribution Package description format ; (nay)
          • Common Semantics ? (probably)
          • How to inter-link documents about the same program :
              • Bug reports (upstream and in all distros)
                     • Launchpad
                • Security advisories
                • Debian’s Homepage: control field
          • Are we maintaining Free Software distributions in close silos ?
          • External directories (FSF, Freshmeat/Freecode, JoinUp, etc.)
          • What’s usually wrong with [ XML | JSON | YAML | RFC822 ]
              format ?
Intoduction         Use case            My efforts      Package / Project meta-data     Fin



                                       An approach
                               Linked Open Development Meta-Data



          • Let’s try and make as much distro facts as possible available
              to humans + machines ?
          • Adopting the 5          Open Data principles using RDF for distro
              meta-data :

                            make your stuff available on the web
                            make it available as structured data
                            non-proprietary format
                            use URLs to identify things, so that people can point
                            at your stuff (RDF)
                            link your data to other people’s data to provide context
                            (Linked RDF)
Intoduction          Use case         My efforts         Package / Project meta-data   Fin



     Project/program/package traceability over the FLOSS
                         ecosystem

          • Assembling a graph of descriptions of packages/projects
              published as Linked Data (DOAP or ADMS.SW) on their
              forges / project portals.
              For instance :
                • For Debian, from the Debian PTS (already Linked Data proof)
                • For Apache, Gnome, Pypi, from DOAP files (not yet all
                   Linked Data, but close)
                • . . . Add your preferred upstream . . .

          • Consumed by developer/maintainer/packager tools : following
              links between packages, (and their bugs, security alerts), all in
              semantic interoperable meta-data formats (RDF) !
Intoduction                Use case                   My efforts              Package / Project meta-data   Fin



                       Matching project/package descriptions

      Example (SPARQL query to match packages by their
      homepages)
      PREFIX doap : <h t t p : / / u s e f u l i n c . com/ n s / doap>

      SELECT ∗ WHERE
      {
        GRAPH <h t t p : / / p a c k a g e s . qa . d e b i a n . o r g />
        {
          ? dp doap : homepage ? h
        }
        GRAPH <h t t p : / / p r o j e c t s . a p a c h e . o r g />
        {
          ? ap doap : homepage ? h
        }
      }


      “Semantic query” : Trying to match source packages in Debian
      whose upstream project’s homepages match those of the Apache
      project’s DOAP descriptors.
Intoduction             Use case             My efforts             Package / Project meta-data     Fin



                                      Matching packages
      Results : 62 matching Apache projects packaged in Debian (for
      which maintainers did set the Homepage Control field consistently).
      Example (Matching upstream Apache project homepages with
      Debian source packages’)
              dp                             h                          ap
              ivy                            ant.a.o/ivy/               ant.a.o/ivy/
              apr                            apr.a.o/                   apr.a.o/
              apr-util                       apr.a.o/                   apr.a.o/
              libcommons-cli-java            commons.a.o/cli/           commons.a.o/cli/
              libcommons-codec-java          commons.a.o/codec/         commons.a.o/codec/
              libcommons-collections3-java   commons.a.o/collections/   commons.a.o/collections/
              libcommons-collections-java    commons.a.o/collections/   commons.a.o/collections/
              commons-daemon                 commons.a.o/daemon/        commons.a.o/daemon/
              libcommons-discovery-java      commons.a.o/discovery/     commons.a.o/discovery/
              libcommons-el-java             commons.a.o/el/            commons.a.o/el/
              libcommons-fileupload-java      commons.a.o/fileupload/     commons.a.o/fileupload/
              commons-io                     commons.a.o/io/            commons.a.o/io/
              commons-jci                    commons.a.o/jci/           commons.a.o/jci/
              libcommons-launcher-java       commons.a.o/launcher/      commons.a.o/launcher/
              ...                            ...                        ...


      Matching program names gives more results but is ambiguous
Intoduction             Use case         My efforts          Package / Project meta-data   Fin



                                   My current experiment
                                     mining project descriptions



          • Running on my laptop ATM
          • Currently use Python to harvest meta-data from DOAP files
              for :
                 •    Gnome
                 •    Apache
                 •    Pypi.python.org
                 •    Debian
                 •    (add you ?)
          • Down to a virtuoso Triple store : > 2.5 M triples ATM
          • A python app to perform queries
          • May be published as a public service some day
Intoduction      Use case      My efforts   Package / Project meta-data   Fin



      Adding RDF to the Debian Package Tracking System
      http ://packages.qa.debian.org/
Intoduction       Use case        My efforts   Package / Project meta-data   Fin



                  Adding ADMS.SW for FusionForge



          • Adding ADMS.SW support in FusionForge
              • Projects
              • Releases
              • Trove categories
          • Expected deployment on :
              • Cenatic
              • Adullact
              • Debian’s Alioth
Intoduction            Use case            My efforts           Package / Project meta-data   Fin



                        Model : Graph of RDF resources
      Reference Linked Data resources with canonical URI like
      <http://packages.qa.debian.org/PACKAGE#RESOURCE_ID>




      The greyed resources correspond to upstream components
Intoduction                   Use case                      My efforts                       Package / Project meta-data                           Fin



                                           Forget about RDF/XML

      Yes, RDF can be expressed :
           • as XML
           • as Turtle (PREFERRED) : text (close to YAML / RFC 822)
           • as JSON

      Turtle example :
      @prefix         r d f : < h t t p : //www . w3 . o r g /1999/02/22 − r d f −s y n t a x −n s# .
                                                                                                   >
      @prefix         f o a f : < h t t p : // x m l n s . com/ f o a f / 0 . 1 /> .
      @prefix         o w l : < h t t p : //www . w3 . o r g / 2 0 0 2 / 0 7 / o w l# .
                                                                                     >

      < h t t p : // p e o p l e . d e b i a n . o r g /~ o b e r g i x / f o a f . t t l #me>
              a foaf:Person ;
              foaf:name " O l i v i e r ␣ Berger " ;
              foaf:nick " obergix " ;
              foaf:mbox " m a i l t o : o b e r g i x @ d e b i a n . org " ;
              f o a f : h o m e p a g e < h t t p : // p e o p l e . d e b i a n . o r g /~ o b e r g i x /> ;
              o w l : s a m e A s < h t t p : //www     −p u b l i c . t e l e c o m −s u d p a r i s . eu /~ b e r g e r _ o / f o a f . r d f
                        #me> .


      See also RDF Primer — Turtle version
Intoduction                   Use case                     My efforts                       Package / Project meta-data                         Fin



                             Apache2 Debian packaging as RDF

      http://packages.qa.debian.org/a/apache2.ttl
      @ p r e f i x d o a p : < h t t p : // u s e f u l i n c . com/ n s / doap# .
                                                                                  >
      @ p r e f i x a d m s s w : < h t t p : // p u r l . o r g / adms / sw /> .

      < h t t p : // p . qa . d . o / a p a c h e 2#p r o j e c t>
              a admssw:SoftwareProject ;
              doap:name " apache2 " ;
              d o a p : d e s c r i p t i o n " Debian ␣ apache2 ␣ s o u r c e ␣ packaging " ;
              d o a p : h o m e p a g e < h t t p : // p a c k a g e s . d . o / s r c : a p a c h e 2> ;
              d o a p : h o m e p a g e < h t t p : // p . qa . d . o / a p a c h e 2> ;
              d o a p : r e l e a s e < h t t p : // p . qa . d . o / a p a c h e 2#apache2_2 . 2 . 2 2 − 1 1> ;
              schema:contributor [
                  a foaf:OnlineAccount ;
                  f o a f : a c c o u n t N a m e " D e b i a n ␣ Apache ␣ M a i n t a i n e r s " ;
                  f o a f : a c c o u n t S e r v i c e H o m e p a g e < h t t p : // qa . d . o / d e v e l o p e r . php ? l o g i n=
                             d e b i a n −a p a c h e @ l i s t s . d . o>
              ] .

      < h t t p : // p . qa . d . o / a p a c h e 2#apache2_2 . 2 . 2 2 − 1 1>
              a admssw:SoftwareRelease ;
              r d f s : l a b e l " apache2 ␣ 2.2.22 −11 " ;
              d o a p : r e v i s i o n " 2.2.22 −11 " ;
              a d m s s w : p a c k a g e < h t t p : // p . qa . d . o / a p a c h e 2#apache2_2 . 2 . 2 2 − 1 1 . d s c> ;
              a d m s s w : i n c l u d e d A s s e t < h t t p : // p . qa . d . o / a p a c h e 2#u p s t r e a m s r c _ 2 . 2 . 2 2> ;
              a d m s s w : i n c l u d e d A s s e t < h t t p : // p . qa . d . o / a p a c h e 2#d e b i a n s r c _ 2 . 2 . 2 2 − 1 1> .
Intoduction        Use case        My efforts      Package / Project meta-data   Fin



                              The ADMS.SW ontology



      Asset Description Metadata Schema for Software (ADMS.SW)

       • Pilot : EC / Interoperability Solutions for
          European Public Administrations (ISA) -
          cf. Joinup site
       • Exchanging project / packages / releases
          descriptions across development platforms
          and directories
Intoduction          Use case      My efforts    Package / Project meta-data   Fin



                                Open specifications


          • Not too much NIH syndrom : reuses :
              • ADMS / RADion (generic meta-data for semantic assets
                indexing)
              • DOAP (Description of a project)
              • SPDX™ ( Software Package Data Exchange ®)
              • W3C Government Linked Data (GLD) Working Group
              Version 1.0 issued 2012/06/29
          • RDF Validator available
          • RDF is extensible : ADMS.SW / DOAP core + distro-specific
              extensions
Intoduction      Use case      My efforts      Package / Project meta-data   Fin



                        ADMS.SW main concepts
      Project (= Program), Release, Package




      Modeling Debian will require other complements
Intoduction          Use case       My efforts   Package / Project meta-data   Fin



                                Related initiatives




      Related initiatives about package meta-data :
          • AppStream (Software Center, DEP11, etc.)
          • Umegaya (upstream meta-data, links with research
              publications, etc.)
          • DistroMatch (match package names across distributions)
Intoduction          Use case      My efforts    Package / Project meta-data   Fin



                                 Recommendations




          • Upstream authors : please create DOAP descriptions for your
              projects
              https ://github.com/edumbill/doap/wiki
          • Distributions : join the ADMS.SW bandwagon to documents
              package releases
          • Followup-to : <distributions@lists.freedesktop.org> ?
Intoduction            Use case               My efforts               Package / Project meta-data            Fin



                                                      Fin
      More details at :
          • http ://wiki.debian.org/qa.debian.org/pts/RdfInterface
          • Linked Data descriptions of Debian source packages using
              ADMS.SW
          • Authoritative Linked Data descriptions of Debian source
              packages using ADMS.SW, to appear at OSS 2013 (pre-print
              available on demand)

      Contact :
      Micro-blogging : @oberger http://identi.ca/oberger/
      Email : mailto:obergix@debian.org
      Blog : http://www-public.telecom-sudparis.eu/~berger_o/weblog/
                              Copyright 2013 Institut Mines Telecom + Olivier Berger
         License of this presentation : Creative Commons Share Alike (except illustrations which are under
                                         copyright of their respective owners)

Weitere ähnliche Inhalte

Was ist angesagt?

Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded trainingH Ming
 
001 linux revision
001 linux revision001 linux revision
001 linux revisionSherif Mousa
 
Hands on with embedded linux using zero hardware
Hands on with embedded linux using zero hardwareHands on with embedded linux using zero hardware
Hands on with embedded linux using zero hardwareRajesh Sola
 
U-Boot community analysis
U-Boot community analysisU-Boot community analysis
U-Boot community analysisxulioc
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerSherif Mousa
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)Jaime Barragan
 
Embedded Linux Basics
Embedded Linux BasicsEmbedded Linux Basics
Embedded Linux BasicsMarc Leeman
 
Eclipse IDE Yocto Plugin
Eclipse IDE Yocto PluginEclipse IDE Yocto Plugin
Eclipse IDE Yocto Plugincudma
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded LinuxTushar B Kute
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingStephan Cadene
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em PortuguêsOtavio Salvador
 
Introduction to Embedded Linux
Introduction to Embedded LinuxIntroduction to Embedded Linux
Introduction to Embedded LinuxHossain Reja
 
Fight with linux reverse
Fight with linux reverseFight with linux reverse
Fight with linux reversechao yang
 
Kernel Recipes 2013 - Conditional boot
Kernel Recipes 2013 - Conditional bootKernel Recipes 2013 - Conditional boot
Kernel Recipes 2013 - Conditional bootAnne Nicolas
 
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Anne Nicolas
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMSherif Mousa
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoSherif Mousa
 
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesQi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesNational Cheng Kung University
 
Linux day 2016 Yocto Project
Linux day 2016 Yocto ProjectLinux day 2016 Yocto Project
Linux day 2016 Yocto ProjectMarco Cavallini
 

Was ist angesagt? (20)

Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded training
 
001 linux revision
001 linux revision001 linux revision
001 linux revision
 
Hands on with embedded linux using zero hardware
Hands on with embedded linux using zero hardwareHands on with embedded linux using zero hardware
Hands on with embedded linux using zero hardware
 
U-Boot community analysis
U-Boot community analysisU-Boot community analysis
U-Boot community analysis
 
Embedded Linux On A R M
Embedded  Linux On  A R MEmbedded  Linux On  A R M
Embedded Linux On A R M
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
 
Embedded Linux Basics
Embedded Linux BasicsEmbedded Linux Basics
Embedded Linux Basics
 
Eclipse IDE Yocto Plugin
Eclipse IDE Yocto PluginEclipse IDE Yocto Plugin
Eclipse IDE Yocto Plugin
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded Linux
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development Training
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em Português
 
Introduction to Embedded Linux
Introduction to Embedded LinuxIntroduction to Embedded Linux
Introduction to Embedded Linux
 
Fight with linux reverse
Fight with linux reverseFight with linux reverse
Fight with linux reverse
 
Kernel Recipes 2013 - Conditional boot
Kernel Recipes 2013 - Conditional bootKernel Recipes 2013 - Conditional boot
Kernel Recipes 2013 - Conditional boot
 
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesQi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
 
Linux day 2016 Yocto Project
Linux day 2016 Yocto ProjectLinux day 2016 Yocto Project
Linux day 2016 Yocto Project
 

Ähnlich wie Distro Recipes 2013 : Contribution of RDF metadata for traceability among projects and distribut…

Generating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTSGenerating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTSolberger
 
Quadrupling your elephants - RDF and the Hadoop ecosystem
Quadrupling your elephants - RDF and the Hadoop ecosystemQuadrupling your elephants - RDF and the Hadoop ecosystem
Quadrupling your elephants - RDF and the Hadoop ecosystemRob Vesse
 
Effectively using Open Source with conda
Effectively using Open Source with condaEffectively using Open Source with conda
Effectively using Open Source with condaTravis Oliphant
 
Saveface - Save your Facebook content as RDF data
Saveface - Save your Facebook content as RDF dataSaveface - Save your Facebook content as RDF data
Saveface - Save your Facebook content as RDF dataFuming Shih
 
Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012François Belleau
 
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...datascienceiqss
 
Getting started with R & Hadoop
Getting started with R & HadoopGetting started with R & Hadoop
Getting started with R & HadoopJeffrey Breen
 
May 29, 2014 Toronto Hadoop User Group - Micro ETL
May 29, 2014 Toronto Hadoop User Group - Micro ETLMay 29, 2014 Toronto Hadoop User Group - Micro ETL
May 29, 2014 Toronto Hadoop User Group - Micro ETLAdam Muise
 
Advanced Usage of the Debian Packaging System
Advanced Usage of the Debian Packaging SystemAdvanced Usage of the Debian Packaging System
Advanced Usage of the Debian Packaging SystemAdam Gonnerman
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereGanesh Raju
 
Language-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible researchLanguage-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible researchAndrew Lowe
 
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Mark Wilkinson
 
Drupal 7 Feeds Intro Drupal Camp Indianapolis 2011
Drupal 7 Feeds Intro Drupal Camp Indianapolis 2011Drupal 7 Feeds Intro Drupal Camp Indianapolis 2011
Drupal 7 Feeds Intro Drupal Camp Indianapolis 2011jbarclay
 
Introduction to r
Introduction to rIntroduction to r
Introduction to rgslicraf
 
FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011rivierarb
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIYoni Davidson
 

Ähnlich wie Distro Recipes 2013 : Contribution of RDF metadata for traceability among projects and distribut… (20)

Generating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTSGenerating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTS
 
Quadrupling your elephants - RDF and the Hadoop ecosystem
Quadrupling your elephants - RDF and the Hadoop ecosystemQuadrupling your elephants - RDF and the Hadoop ecosystem
Quadrupling your elephants - RDF and the Hadoop ecosystem
 
Effectively using Open Source with conda
Effectively using Open Source with condaEffectively using Open Source with conda
Effectively using Open Source with conda
 
Saveface - Save your Facebook content as RDF data
Saveface - Save your Facebook content as RDF dataSaveface - Save your Facebook content as RDF data
Saveface - Save your Facebook content as RDF data
 
Data in RDF
Data in RDFData in RDF
Data in RDF
 
Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012
 
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
 
Running R on Hadoop - CHUG - 20120815
Running R on Hadoop - CHUG - 20120815Running R on Hadoop - CHUG - 20120815
Running R on Hadoop - CHUG - 20120815
 
Getting started with R & Hadoop
Getting started with R & HadoopGetting started with R & Hadoop
Getting started with R & Hadoop
 
May 29, 2014 Toronto Hadoop User Group - Micro ETL
May 29, 2014 Toronto Hadoop User Group - Micro ETLMay 29, 2014 Toronto Hadoop User Group - Micro ETL
May 29, 2014 Toronto Hadoop User Group - Micro ETL
 
Advanced Usage of the Debian Packaging System
Advanced Usage of the Debian Packaging SystemAdvanced Usage of the Debian Packaging System
Advanced Usage of the Debian Packaging System
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
 
Language-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible researchLanguage-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible research
 
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
 
Drupal 7 Feeds Intro Drupal Camp Indianapolis 2011
Drupal 7 Feeds Intro Drupal Camp Indianapolis 2011Drupal 7 Feeds Intro Drupal Camp Indianapolis 2011
Drupal 7 Feeds Intro Drupal Camp Indianapolis 2011
 
Introduction to r
Introduction to rIntroduction to r
Introduction to r
 
R development
R developmentR development
R development
 
FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-API
 
Omnibus to the future!
Omnibus to the future!Omnibus to the future!
Omnibus to the future!
 

Mehr von Anne Nicolas

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstAnne Nicolas
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIAnne Nicolas
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelAnne Nicolas
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyAnne Nicolas
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureAnne Nicolas
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Anne Nicolas
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataAnne Nicolas
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Anne Nicolas
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxAnne Nicolas
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialAnne Nicolas
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconAnne Nicolas
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureAnne Nicolas
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayAnne Nicolas
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerAnne Nicolas
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationAnne Nicolas
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingAnne Nicolas
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaAnne Nicolas
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedAnne Nicolas
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPAnne Nicolas
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Anne Nicolas
 

Mehr von Anne Nicolas (20)

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmaker
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
 

Kürzlich hochgeladen

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Kürzlich hochgeladen (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

Distro Recipes 2013 : Contribution of RDF metadata for traceability among projects and distribut…

  • 1. Intoduction Use case My efforts Package / Project meta-data Fin Using RDF metadata for traceability among projects and distributions Olivier Berger <mailto:obergix@debian.org> Debian + Télécom SudParis Thursday 04/04/2013 Distro Recipes - Paris
  • 2. Intoduction Use case My efforts Package / Project meta-data Fin Quick Introduction Short bio Olivier BERGER <mailto:olivier.berger@telecom-sudparis.eu> <mailto:obergix@debian.org> Research Engineer at TELECOM SudParis, expert on software development forges, and interoperability in Libre Software development projects. Contributor to FusionForge, Debian, etc.
  • 3. Intoduction Use case My efforts Package / Project meta-data Fin How much duplication ? • Think about all the duplicate bug reports, and the number of people involved. . . usually not the ones who can help, btw • Can you navigate between all of these ? • Does google search help ?
  • 4. Intoduction Use case My efforts Package / Project meta-data Fin Some issues • Universal Free Software Project description format ; (nay) • Universal distribution Package description format ; (nay) • Common Semantics ? (probably) • How to inter-link documents about the same program : • Bug reports (upstream and in all distros) • Launchpad • Security advisories • Debian’s Homepage: control field • Are we maintaining Free Software distributions in close silos ? • External directories (FSF, Freshmeat/Freecode, JoinUp, etc.) • What’s usually wrong with [ XML | JSON | YAML | RFC822 ] format ?
  • 5. Intoduction Use case My efforts Package / Project meta-data Fin An approach Linked Open Development Meta-Data • Let’s try and make as much distro facts as possible available to humans + machines ? • Adopting the 5 Open Data principles using RDF for distro meta-data : make your stuff available on the web make it available as structured data non-proprietary format use URLs to identify things, so that people can point at your stuff (RDF) link your data to other people’s data to provide context (Linked RDF)
  • 6. Intoduction Use case My efforts Package / Project meta-data Fin Project/program/package traceability over the FLOSS ecosystem • Assembling a graph of descriptions of packages/projects published as Linked Data (DOAP or ADMS.SW) on their forges / project portals. For instance : • For Debian, from the Debian PTS (already Linked Data proof) • For Apache, Gnome, Pypi, from DOAP files (not yet all Linked Data, but close) • . . . Add your preferred upstream . . . • Consumed by developer/maintainer/packager tools : following links between packages, (and their bugs, security alerts), all in semantic interoperable meta-data formats (RDF) !
  • 7. Intoduction Use case My efforts Package / Project meta-data Fin Matching project/package descriptions Example (SPARQL query to match packages by their homepages) PREFIX doap : <h t t p : / / u s e f u l i n c . com/ n s / doap> SELECT ∗ WHERE { GRAPH <h t t p : / / p a c k a g e s . qa . d e b i a n . o r g /> { ? dp doap : homepage ? h } GRAPH <h t t p : / / p r o j e c t s . a p a c h e . o r g /> { ? ap doap : homepage ? h } } “Semantic query” : Trying to match source packages in Debian whose upstream project’s homepages match those of the Apache project’s DOAP descriptors.
  • 8. Intoduction Use case My efforts Package / Project meta-data Fin Matching packages Results : 62 matching Apache projects packaged in Debian (for which maintainers did set the Homepage Control field consistently). Example (Matching upstream Apache project homepages with Debian source packages’) dp h ap ivy ant.a.o/ivy/ ant.a.o/ivy/ apr apr.a.o/ apr.a.o/ apr-util apr.a.o/ apr.a.o/ libcommons-cli-java commons.a.o/cli/ commons.a.o/cli/ libcommons-codec-java commons.a.o/codec/ commons.a.o/codec/ libcommons-collections3-java commons.a.o/collections/ commons.a.o/collections/ libcommons-collections-java commons.a.o/collections/ commons.a.o/collections/ commons-daemon commons.a.o/daemon/ commons.a.o/daemon/ libcommons-discovery-java commons.a.o/discovery/ commons.a.o/discovery/ libcommons-el-java commons.a.o/el/ commons.a.o/el/ libcommons-fileupload-java commons.a.o/fileupload/ commons.a.o/fileupload/ commons-io commons.a.o/io/ commons.a.o/io/ commons-jci commons.a.o/jci/ commons.a.o/jci/ libcommons-launcher-java commons.a.o/launcher/ commons.a.o/launcher/ ... ... ... Matching program names gives more results but is ambiguous
  • 9. Intoduction Use case My efforts Package / Project meta-data Fin My current experiment mining project descriptions • Running on my laptop ATM • Currently use Python to harvest meta-data from DOAP files for : • Gnome • Apache • Pypi.python.org • Debian • (add you ?) • Down to a virtuoso Triple store : > 2.5 M triples ATM • A python app to perform queries • May be published as a public service some day
  • 10. Intoduction Use case My efforts Package / Project meta-data Fin Adding RDF to the Debian Package Tracking System http ://packages.qa.debian.org/
  • 11. Intoduction Use case My efforts Package / Project meta-data Fin Adding ADMS.SW for FusionForge • Adding ADMS.SW support in FusionForge • Projects • Releases • Trove categories • Expected deployment on : • Cenatic • Adullact • Debian’s Alioth
  • 12. Intoduction Use case My efforts Package / Project meta-data Fin Model : Graph of RDF resources Reference Linked Data resources with canonical URI like <http://packages.qa.debian.org/PACKAGE#RESOURCE_ID> The greyed resources correspond to upstream components
  • 13. Intoduction Use case My efforts Package / Project meta-data Fin Forget about RDF/XML Yes, RDF can be expressed : • as XML • as Turtle (PREFERRED) : text (close to YAML / RFC 822) • as JSON Turtle example : @prefix r d f : < h t t p : //www . w3 . o r g /1999/02/22 − r d f −s y n t a x −n s# . > @prefix f o a f : < h t t p : // x m l n s . com/ f o a f / 0 . 1 /> . @prefix o w l : < h t t p : //www . w3 . o r g / 2 0 0 2 / 0 7 / o w l# . > < h t t p : // p e o p l e . d e b i a n . o r g /~ o b e r g i x / f o a f . t t l #me> a foaf:Person ; foaf:name " O l i v i e r ␣ Berger " ; foaf:nick " obergix " ; foaf:mbox " m a i l t o : o b e r g i x @ d e b i a n . org " ; f o a f : h o m e p a g e < h t t p : // p e o p l e . d e b i a n . o r g /~ o b e r g i x /> ; o w l : s a m e A s < h t t p : //www −p u b l i c . t e l e c o m −s u d p a r i s . eu /~ b e r g e r _ o / f o a f . r d f #me> . See also RDF Primer — Turtle version
  • 14. Intoduction Use case My efforts Package / Project meta-data Fin Apache2 Debian packaging as RDF http://packages.qa.debian.org/a/apache2.ttl @ p r e f i x d o a p : < h t t p : // u s e f u l i n c . com/ n s / doap# . > @ p r e f i x a d m s s w : < h t t p : // p u r l . o r g / adms / sw /> . < h t t p : // p . qa . d . o / a p a c h e 2#p r o j e c t> a admssw:SoftwareProject ; doap:name " apache2 " ; d o a p : d e s c r i p t i o n " Debian ␣ apache2 ␣ s o u r c e ␣ packaging " ; d o a p : h o m e p a g e < h t t p : // p a c k a g e s . d . o / s r c : a p a c h e 2> ; d o a p : h o m e p a g e < h t t p : // p . qa . d . o / a p a c h e 2> ; d o a p : r e l e a s e < h t t p : // p . qa . d . o / a p a c h e 2#apache2_2 . 2 . 2 2 − 1 1> ; schema:contributor [ a foaf:OnlineAccount ; f o a f : a c c o u n t N a m e " D e b i a n ␣ Apache ␣ M a i n t a i n e r s " ; f o a f : a c c o u n t S e r v i c e H o m e p a g e < h t t p : // qa . d . o / d e v e l o p e r . php ? l o g i n= d e b i a n −a p a c h e @ l i s t s . d . o> ] . < h t t p : // p . qa . d . o / a p a c h e 2#apache2_2 . 2 . 2 2 − 1 1> a admssw:SoftwareRelease ; r d f s : l a b e l " apache2 ␣ 2.2.22 −11 " ; d o a p : r e v i s i o n " 2.2.22 −11 " ; a d m s s w : p a c k a g e < h t t p : // p . qa . d . o / a p a c h e 2#apache2_2 . 2 . 2 2 − 1 1 . d s c> ; a d m s s w : i n c l u d e d A s s e t < h t t p : // p . qa . d . o / a p a c h e 2#u p s t r e a m s r c _ 2 . 2 . 2 2> ; a d m s s w : i n c l u d e d A s s e t < h t t p : // p . qa . d . o / a p a c h e 2#d e b i a n s r c _ 2 . 2 . 2 2 − 1 1> .
  • 15. Intoduction Use case My efforts Package / Project meta-data Fin The ADMS.SW ontology Asset Description Metadata Schema for Software (ADMS.SW) • Pilot : EC / Interoperability Solutions for European Public Administrations (ISA) - cf. Joinup site • Exchanging project / packages / releases descriptions across development platforms and directories
  • 16. Intoduction Use case My efforts Package / Project meta-data Fin Open specifications • Not too much NIH syndrom : reuses : • ADMS / RADion (generic meta-data for semantic assets indexing) • DOAP (Description of a project) • SPDX™ ( Software Package Data Exchange ®) • W3C Government Linked Data (GLD) Working Group Version 1.0 issued 2012/06/29 • RDF Validator available • RDF is extensible : ADMS.SW / DOAP core + distro-specific extensions
  • 17. Intoduction Use case My efforts Package / Project meta-data Fin ADMS.SW main concepts Project (= Program), Release, Package Modeling Debian will require other complements
  • 18. Intoduction Use case My efforts Package / Project meta-data Fin Related initiatives Related initiatives about package meta-data : • AppStream (Software Center, DEP11, etc.) • Umegaya (upstream meta-data, links with research publications, etc.) • DistroMatch (match package names across distributions)
  • 19. Intoduction Use case My efforts Package / Project meta-data Fin Recommendations • Upstream authors : please create DOAP descriptions for your projects https ://github.com/edumbill/doap/wiki • Distributions : join the ADMS.SW bandwagon to documents package releases • Followup-to : <distributions@lists.freedesktop.org> ?
  • 20. Intoduction Use case My efforts Package / Project meta-data Fin Fin More details at : • http ://wiki.debian.org/qa.debian.org/pts/RdfInterface • Linked Data descriptions of Debian source packages using ADMS.SW • Authoritative Linked Data descriptions of Debian source packages using ADMS.SW, to appear at OSS 2013 (pre-print available on demand) Contact : Micro-blogging : @oberger http://identi.ca/oberger/ Email : mailto:obergix@debian.org Blog : http://www-public.telecom-sudparis.eu/~berger_o/weblog/ Copyright 2013 Institut Mines Telecom + Olivier Berger License of this presentation : Creative Commons Share Alike (except illustrations which are under copyright of their respective owners)