How to use Libraries.io data from millions of open source projects
This month Libraries.io released metadata on over 25 million open source projects.
Tháng này Libraries.io đã phát hành siêu dữ liệu về hơn 25 triệu dự án nguồn mở.
21 Jul 2017, by Benjamin Nickolls
Theo: https://opensource.com/article/17/7/librariesio-data
Bài được đưa lên Internet ngày: 21/07/2017
Xem thêm: Khoa học mở - Open Science
Điều gì xảy ra nếu chúng ta áp dụng các kỹ thuật mà Google đã áp dụng để đánh chỉ mục Internet từ năm 1998 cho thế giới phần mềm nguồn mở (PMNM) nhỉ? Điều đó chính xác là những gì Andrew Nesbitt đã làm trong năm 2014, điều đã dẫn tới tạo ra Libraries.io, một dự án nguồn mở đánh chỉ mục các dự án nguồn mở khác. Tháng này Libraries.io đã phát hành siêu dữ liệu về hơn 25 triệu dự án nguồn mở.
Bạn có thể tải nó về ngay bây giờ từ Zenodo, nhưng bạn có thể làm gì với nó chứ? Để hiểu có gì trong tập hợp dữ liệu này, tôi sẽ ngó qua cách nó được thu thập.
Dữ liệu được thu thập như thế nào
Mọi thứ trong Libraries.io bắt đầu bằng các trình quản lý gói. Chúng ta đánh chỉ mục siêu dữ liệu các dự án từ 33 trình quản lý gói, điền đầy các khoảng trống từ các kho nguồn của chúng ở những nơi chúng ta có thể.
Chúng ta phân tích cú pháp các bản kê dự án - viên đá quý, package.json, hoạt tương tự - gồm mã từ các dự án khác và lưu trữ các đường liên kết giữa chúng.
Các dự án và các kho là một trong nhưng khác biệt chính được làm trong tập hợp dữ liệu này. Các dự án thường là các thành phần được phân phối qua một hoặc nhiều trình quản lý gói hơn. Các kho có thể thuộc về một dự án nhưng thường xuyên nhất chúng là những người tiêu dùng, kết hợp các dự án vào ứng dụng hoặc dịch vụ.
Các yếu tố phụ thuộc kho - hơn 100 triệu yếu tố đó - là rất cốt lõi đối với tập hợp dữ liệu này. Chúng xác định các đường liên kết giữa các kho và các dự án chúng xây dựng nên. Sử dụng các đường liên kết đó chúng ta có thể dễ dàng phát hiện ra các dự án phổ biến nhất được sử dụng trong nguồn mở. Nhưng chúng ta có thể đi xa hơn.
Các yếu tố phụ thuộc xác định các liên kết giữa các dự án, từng liên kết với tập hợp các yếu tố phụ thuộc riêng của chúng, được biết tới như là các yếu tố phụ thuộc sâu hoặc bắc cầu. Chúng ta có thể duyệt qua các cấu trúc dạng cây nổi lên để phát hiện các dự án có giá trị nhất được sử dụng trong nguồn mở.
2 trường hợp điển hình đã gắn kết Andrew và tôi với nhau: Andrew đã xây dựng Libraries.io để giải quyết vấn đề phát hiện và khuyến cáo, trong khi tôi đã xem xét để nhận diện các dự án PMNM sống còn sau vụ Heartbleed trong OpenSSL.
Tất nhiên, không mẩu phần mềm nào là không thay đổi cả. Các phiên bản xác định sự phát hành dự án theo đó các yếu tố phụ thuộc được ánh xạ, từng phiên bản có cây phụ thuộc của riêng nó. Các kho có thể xác định sự phụ thuộc vào phiên bản ‘được ghim’ duy nhất hoặc một dãy các phiên bản, như >1.1.5. Trong các trường hợp nơi mà trình quản lý gói không hỗ trợ khái niệm các thẻ (tags) phiên bản được sử dụng để lần vết các phiên bản của các dự án để thay vào đó, việc kéo các phiên bản được gắn thẻ từ nguồn của chúng.
Cuối cùng, chúng ta có sự thuận tiện của bảng các dự án được bình thường hóa với các lĩnh vực kho có liên quan mà dữ liệu dự án và kho sẽ lưu cho bạn bằng việc tự bạn tạo ra các đường liên kết đó.
Vì thế đó là những gì chúng ta phải làm việc với, chúng ta có thể làm gì với nó nhỉ? Libraries.io cung cấp cho chúng ta vài ví dụ.
Tìm kiếm
Không ngạc nhiên rằng tiếp cận được Google chọn được chuyển vị thành PMNM tạo ra máy tìm kiếm tuyệt vời.
Bản thân Libraries.io trước nhất là máy tìm kiếm xuyên nền tảng, sử dụng tính phổ biến và đo đếm các giá trị để ưu tiên cho các thành phần được sử dung phổ biến nhất. Libraries.io cũng hỗ trợ tìm kiếm trên các trang của bên thứ 3 như trình quản lý gói Bower và nhà cung cấp tìm kiếm DuckDuckGo.
Mục tiêu của Libraries.io là tạo ra hệ sinh thái nguồn mở mạnh hơn. Chúng ta sẽ làm điều này nhanh nhất bằng việc trở thành một tiện ích cho các dịch vụ hướng trọng tâm vào các lập trình viên. Phát hành dữ liệu này có thể được sử dụng để tạo bản đồ và API của ibraries.io có thể được sử dụng để giữ cho bản đồ đó được cập nhật. Đội đặc biệt quan tâm hỗ trợ các trình quản lý gói khác đang vật lộn với sự tìm kiếm.
Các công cụ của lập trình viên
Tốc độ sản xuất và tính phức tạp của phần mềm đang gia tăng. Các lập trình viên dựa vào các công cụ để tự động hóa nhiều quy trình có thẻ nếu khác lấy đi thời gian từ việc giải quyết các vấn đề mới, thú vị.
Libraries.io giúp các lập trình viên trôi nổi đối với các yếu tố phụ thuộc biến đổi liên tục đối với nền tảng các ứng dụng của họ, nhấn mạnh các vấn đề tiềm tàng đối với những người duy trì, như các phần mềm lỗi thời, bị phản đối và không duy trì được, và các dự án với sự không tương thích về giấy phép. Công cụ CI non nớt của chúng tôi DependencyCI.com xây dựng các kiểm soát đó trong quá trình phát triển trong khi hỗ trợ sự phát triển của Libraries.io.
Sự ưu tiên và sự đóng góp
Libraries.io đang làm việc rồi với các tổ chức có quan tâm tới các vấn đề được nhấn mạnh trong báo cáo Cầu và Đường cho Quỹ Ford của Nadia Egbhal, một tỏn 2 quỹ hỗ trợ cho đội. Báo cáo này đã làm rõ vấn đề rất thực tế về cách chưa hỗ trợ đúng mức vài dự án nguồn mở chính mà tất cả chúng ta phụ thuộc vào - trong công việc, ở nhà, và ở bất kỳ đâu. Thế giới đang rà soát lại vấn đề này và Libraries.io là một trong các tài nguyên trung tâm đang được sử dụng để xử lý nó.
Trong vòng 2 năm quan, chúng tôi đã và đang thí điểm với dữ liệu này cho bản thân chúng tôi. Chúng tôi đã xây dựng các trang để nhấn mạnh các dự án quan trọng, các dự án với quá ít sự chú ý và quá ít sự đóng góp. Việc soi sáng các dạng dự án đó, khuyến cáo họ cho những người đóng góp đang xem xét tạo ảnh hưởng bằng thời gian của họ hoặc hưởng lợi trực tiếp từ những đóng góp của riêng họ là một trong các tiếp cận mà Libraries.io đang nắm lấy để tạo ra hệ sinh thái mạnh hơn và nâng cao chất lượng của tất cả các phần mềm.
Nếu bạn muốn sử dụng dữ liệu của Libraries.io thì bạn có thể tải nó về ngay bây giờ từ Zenodo. Để có thêm thông tin, hãy kiểm tra tài liệu đó.
What if we applied the techniques Google applied to index the internet back in 1998 to the world of open source software? That's exactly the thought Andrew Nesbitt had in 2014 which lead to the creation of Libraries.io, an open source project for indexing other open source projects. This month Libraries.io released metadata on over 25 million open source projects.
You can download it right now from Zenodo, but what can you do with it? To understand what is contained within this dataset, I'll take a quick look at how it's collected.
Everything in Libraries.io begins with package managers. We index project metadata from 33 package managers, filling in gaps from their source repositories where we can. We parse project manifests—a gemfile, package.json, or similar—that includes code from other projects and stores the links between them.
Projects and repositories are one of the key distinctions made in this dataset. Projects are typically the components distributed through one or more package managers. Repositories may belong to a project but most frequently they are consumers, incorporating projects into an application or service.
Repository dependencies—over 100 million of them—are the very core of this dataset. They define links between repositories and the projects that they build upon. Using these links we can easily uncover the most popular projects used in open source. But we can go further.
Dependencies define the links between projects, each with their own set of dependencies, known as transitive or deep dependencies. We can walk the tree-like structures that emerge to uncover the most valuable projects used in open source.
These two use-cases are the glue that brought Andrew and I together: Andrew built Libraries.io to solve the discovery and recommendation problem, while I was looking at identifying critical OSS projects after the Heartbleed issue in OpenSSL.
Of course, no piece of software is an immutable constant. Versions define a release of a project upon which dependencies are mapped, each version having its own dependency tree. Repositories may define a dependency on one single 'pinned' version or a range of versions i.e. >1.1.5. In cases where a package manager does not support the concept of a version tags are used to track releases of projects instead, pulling tagged releases from their source.
Finally, we have the convenience of a de-normalized table projects with related repository fields which in-lines the project and repository data to save you creating those links yourself.
So that's what we have to work with, what can we do with it? Libraries.io provides us with some examples.
It's unsurprising that the approach taken by Google transposed onto open source software results in a great search engine.
Libraries.io itself is primarily a cross-platform search engine, using the popularity and value measures to prioritize the most commonly used components. Libraries.io also supports search on third party sites like the package manager Bower and search provider DuckDuckGo.
The goal is for Libraries.io to create a stronger open source ecosystem. We'll do this quickest by becoming a utility for developer-centered services. This data release can be used to create the map and the Libraries.io's API can be used to keep the map up to date. The team is particularly keen to support other package managers struggling with search.
The rate of production and complexity of software is accelerating. Developers rely on tools to automate many of the processes that would otherwise take time away from solving new, interesting problems.
Libraries.io helps developers stay afloat of the constantly-shifting dependencies for the foundation of their applications, highlighting potential issues to maintainers, such as outdated, deprecated, and unmaintained software, and projects with license incompatibilities. Our fledgling CI tool DependencyCI.com builds these checks into the development process while supporting the development of Libraries.io.
Libraries.io is already working with organizations who are concerned by the issues highlighted in Nadia Egbhal's Roads and Bridges report for the Ford Foundation, one of the two foundations supporting the team. This report brought to light the very real problem of how under-supported some of the key open source projects that we all depend upon are—at work, at home, and everywhere in-between. The world is waking up to this problem and Libraries.io is one of the central resources being used to tackle it.
For the last two years, we've been experimenting with this data ourselves. We've built pages to highlight important projects, projects with too little attention and too few contributors. Shining a light on these kinds of projects, recommending them to contributors who are looking to make an impact with their time or to benefit directly from their own contributions is one of the approaches Libraries.io is taking to create a stronger ecosystem and raise the quality of all software.
If you would like to use Libraries.io's data you can download it right now from Zenodo. For more information check out the documentation.
Dịch: Lê Trung Nghĩa
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Blog này được chuyển đổi từ http://blog.yahoo.com/letrungnghia trên Yahoo Blog sang sử dụng NukeViet sau khi Yahoo Blog đóng cửa tại Việt Nam ngày 17/01/2013.Kể từ ngày 07/02/2013, thông tin trên Blog được cập nhật tiếp tục trở lại với sự hỗ trợ kỹ thuật và đặt chỗ hosting của nhóm phát triển...
Các bài trình chiếu trong năm 2024
Tập huấn thực hành ‘Khai thác tài nguyên giáo dục mở’ cho giáo viên phổ thông, bao gồm cả giáo viên tiểu học và mầm non tới hết năm 2024
Các lớp tập huấn thực hành ‘Khai thác tài nguyên giáo dục mở’ tới hết năm 2024
Các tài liệu dịch sang tiếng Việt tới hết năm 2024
‘Digcomp 2.2: Khung năng lực số cho công dân - với các ví dụ mới về kiến thức, kỹ năng và thái độ’, EC xuất bản năm 2022
Tổng hợp các bài của Nhóm các Nhà cấp vốn Nghiên cứu Mở (ORFG) đã được dịch sang tiếng Việt
Tổng hợp các bài của Liên minh S (cOAlition S) đã được dịch sang tiếng Việt
Năm Khoa học Mở & Chuyển đổi sang Khoa học Mở - Tổng hợp các bài liên quan
Hội nghị Đối tác Dữ liệu Mở châu Á năm 2021 do Việt Nam lần đầu tiên chủ trì
Các khung năng lực trong hành động
Phong trào Bình dân học vụ số: Mục tiêu, đối tượng, nội dung, nguồn lực, phương thức tổ chức thực hiện
Lễ công bố công khai Trung tâm Năng lực Kim cương châu Âu và dự án ALMASI
Khung năng lực AI cho giáo viên
Sư phạm Mở là gì (Trang của Đại học British Columbia, Canada)
Ngày Phần mềm Tự do, Ngày Phần cứng tự do, Ngày Tài liệu Tự do
‘Khung năng lực AI cho giáo viên’ - bản dịch sang tiếng Việt
Bạn cần biết những gì về các khung năng lực AI mới của UNESCO cho học sinh và giáo viên
Bàn về 'Lợi thế của doanh nghiệp Việt là dữ liệu Việt, bài toán Việt' - bài phát biểu của Bộ trưởng Nguyễn Mạnh Hùng ngày 21/08/2025
Các bài trình chiếu trong năm 2024
Triển khai Khuyến nghị Khoa học Mở của UNESCO, cập nhật 15/10/2024
Các tài liệu dịch sang tiếng Việt tới hết năm 2024
‘Tài liệu quan điểm của KR21 về Giữ lại Quyền Tác giả: Giữ lại các quyền trong kết quả đầu ra nghiên cứu để cho phép phổ biến mở kiến thức’ - bản dịch sang tiếng Việt
‘LƯU Ý KHÁI NIỆM: Hội nghị Tài nguyên Giáo dục Mở Thế giới lần 3 năm 2024 của UNESCO “Tài sản Công cộng Kỹ thuật số: Giải pháp Mở và AI vì Quyền truy cập Toàn diện tới Tri thức”’ - bản dịch sang tiếng Việt
‘KHUYẾN NGHỊ VÀ HƯỚNG DẪN TRUY CẬP MỞ KIM CƯƠNG cho các cơ sở, nhà cấp vốn, nhà bảo trợ, nhà tài trợ, và nhà hoạch định chính sách’ - bản dịch sang tiếng Việt
Tập huấn thực hành ‘Khai thác tài nguyên giáo dục mở’ cho giáo viên phổ thông, bao gồm cả giáo viên tiểu học và mầm non tới hết năm 2024
DeepSeek đã gây ra sự hoảng loạn trên thị trường — nhưng một số người cho rằng việc bán tháo là quá mức
Dữ liệu để phân loại AI
“Chúng tôi không có hào nước”: Sự đổi mới đột phá của AI nguồn mở
Ứng dụng và phát triển Tài nguyên Giáo dục Mở (OER) tại Việt Nam
Nhà khoa học AI hàng đầu của Meta cho biết thành công của DeepSeek cho thấy 'các mô hình nguồn mở đang vượt trội hơn các mô hình độc quyền'