Thứ Ba, 28 tháng 5, 2013

Các catalog dự án và các mô tả dự án có sử dụng DOAP

Project Catalogues and Project Descriptors using DOAP
By Ross Gardler, Published: 02 January 2007, Reviewed: 11 February 2013
Bài được đưa lên Internet ngày: 11/02/2013
Lời người dịch: Một vấn đề quan trọng đối với các dự án phần mềm tự do nguồn mở (PMTDNM) là việc quảng bá cho dự án để có được càng nhiều người sử dụng và càng nhiều lập trình viên đóng góp cho dự án càng tốt. Công việc đó có thể làm được một cách tự động thông qua các website, các catalog giới thiệu - mô tả dự án trên trực tuyến với định dạng DOAP - định dạng Mô tả Dự án (Description of a Project). Bên cạnh đó, cũng còn có các công cụ khác nữa có thể giúp làm được như vậy và/hoặc có thể hỗ trợ làm việc với DOAP được tốt hơn. Bài viết là rất cần cho những người thực sự đang quản lý một dự án PMTDNM hiện nay.
Các dự án nguồn mở cần phải được đưa ra thị trường nếu chúng muốn lôi cuốn những người sử dụng và những người đóng góp. Hầu hết các dự án có một webiste mô tả cộng việc của họ nhưng làm thế nào họ lôi cuối mọi người tới website của họ ngay từ lần đầu tiên? Trong khi nhiều dự án có thể dựa vào các máy tìm kiếm để được thấy, thì có một số lượng các catalog dự án ngày một gia tăng mà một dự án nên cân nhắc được liệt kê trong đó, nhưng việc duy trì các khoản đầu vào trong một số lượng lớn các catalog có thể là một qui trình mất thời gian. Tài liệu này giới thiệu định dạng Mô tả của một Dự án - DOAP (Description of a Project) cho việc quản lý các chi tiết dự án trong các catalog đang nổi lên.
Trình mô tả dự án mở
Việc liệt kê dự án của bạn trong các catalog trực tuyến như Freecode là một tác vụ nặng nề, và có thể một khá nhiều thời gian. Hơn nữa, một phát hành mới hoặc thay đổi đáng kể trong dự án của bản thiết lập neenn các yêu cầu mà ai đó phải cập nhật từng khoản đầu vào vằng việc viếng thăm từng site của catalog, một lần nữa là một qui trình mất thời gian. Trong nhiều trường hợp, điều này có nghĩa là các dự án hoặc không được liệt kê hoặc các khoản đầu vào của họ trở nên lạc hậu, tạo ra một ấn tượng hiểu sai về tính bất lực trong dự án.
Những gì cần thiết là cách thức đối với các dự án để cập nhật tất cả các catalog cùng một lúc. May thay, Web ngữ nghĩa - Symantic Web (các dữ liệu được cung cấp ở dạng mà các máy dễ dàng xử lý được) đưa ra đúng cơ chế như vậy. Một Mô tả của một dự án - DOAP (Description of a Project) là một tài liệu máy đọc được mà được sử dụng để chia sẻ thông tin về một dự án. Một trình mô tả DOAP có thể được sử dụng cho:
  • việc nhập dễ dàng các dự án vào trong các danh bạ
  • việc cập nhật các danh bạ được tự động
  • trao đổi dữ liệu được giữa các danh bạ
  • thiết lập cấu hình tự động cho các tài nguyên như các danh sách thư, các danh bạ được chỉa sẻ và các trình theo dõi các vấn đề
  • việc hỗ trợ người duy trì các gói, những người tạo thành các nguồn cho các nhà phân phối
Sử dụng DOAP
DOAP tạo thuận lợi cho việc xây dựng các đăng ký dự án bằng việc cho phép các site 'trình tổng hợp' kéo vào các hồ sơ của dự án từ nhiều nguồn khác nhau và kết hợp chúng thành một cơ sở dữ liệu duy nhất. Để cho một dự án sẽ được kết hợp theo một trình tổng hợp như vậy, dự án cần phải tạo ra một tệp DOAP (xem phần tiếp sau) và xuất bản nó đâu đó có thể truy cập được thông qua một yêu cầu http hoặc https. Điều này thường có nghĩa rằng nó được xuất bản trên website của dự án. Sau đó dự án có thể hoặc lưu ý trực tiếp cho trình tổng hợp thu lượm các tệp, như xem xét chúng cho các bản cập nhật. Một khi website của trình tổng hợp biết về một tệp DOAP đặc biệt nào đó, thì nó có thể hướng dẫn tệp đó cho những thay đổi và vì thế cập nhật các hồ sơ của nó bất kỳ khi nào tệp DOAP được cập nhật.
Vì, để có hiệu ứng tối ưu, tệp DOAP được lưu trữ cục bộ đối với dự án, không cần thiết đối với những người duy trì dự án phải viếng thăm site của trình tổng hợp để cập nhật các hồ sơ của chúng. Họ đơn giản cập nhật tệp DOAP cục bộ và chờ cho site của trình tổng hợp thu lượm thông tin mới. Tất nhiên, vì tệp DOAP được làm để truy cập được thông qua một yêu cầu http hoặc https, bất kỳ catalog nào khác được DOAP trợ giúp cũng có thể truy cập được thông tin mieenxn là chúng biết tìm ở đâu.
Khi một dự án được liệt kê trong nhiều catalog được trợ giúp bằng DOAP hơn, các lợi ích của việc cập nhật từ xa bắt đầu nhân bản. Tất cả điều mà người duy trì dự án cần phải làm là cập nhật tệp của chúng, và tất cả các catalog sẽ tự chúng được cập nhật tự động. Việc cập nhật này xảy ra như thế nào là phụ thuộc vào cách mà catalog được triển khai. Một số catalog sử dụng một ATOM feed, các catalog khác thì định kỳ thu thập các tệp.
Phát hiện các tệp DOAP mới cũng có thể được hỗ trợ bằng việc đưa ra một liên kết cho tệp DOAP của bạn tới một tong những trang wiki mới mà liệt kê các tệp DOAP. Một lần nữa, một catalog có thể sử dụng danh sách các liên kết này để khám phá các tệp DOAP còn chưa được biết trước đó. Một ví dụ về các trang wiki được sử dụng cho mục đích này là Semantic Web Bulletin Board.
Các catalog của các chuyên gia và các mở rộng DOAP
Các catalog DOAP có thể là khổng lồ, khi mà chúng không thường hạn chế các dự án nào sẽ được liệt kê. Một catalog lớn và rộng như vậy không phải luôn là những gì được một người sử dụng yêu cầu. Một người sử dụng có thể muốn xem một danh sách các dự án mà trực tiếp có liên quan tới một sự quan tâm đặc biệt. Ví dụ, một thành viên của dự án X có thể có quan tâm để xem một catalog có chứa tất cả các dự án phổ biến mà phụ thuộc vào sự án X. Như một sự lựa chọn, họ có thể muốn thấy một catalog của tất cả các dự án mà dự án X phụ thuộc vào.
Một ví dụ về một catalog của các chuyên gia như thế này có thể thấy tại Quỹ Phần mềm Apache - ASF (Apache Software Foundation). ASFF có nhiều dự án tích cực và cho tới khi họ đã áp dụng DOAP thì đã không có trọng điểm nào nơi mà các bên có quan tâm có khả năng có được một tóm tắt về tất cả các dự án đó. Với sự áp dụng DOAP, ASF có khả năng giới thiệu projects.apache.org, một webiste cung cấp nhiều cách thức khác nhau để xem các dự án đang có sẵn trong ASF. Ví dụ, có khả năng để truy xuất một danh sách tất cả các dự án có liên quan tới XML, hoặc tất cả các dự án được viết trong một ngôn ngữ lập trình đặc biệt.
Một khía cạnh thú vị của catalog của ASF là nó đã mở rộng ngôn ngữ mô tả DOAP để đưa vào thông tin bổ sung mà chỉ phù hợp với ASF. DOAP được thiết kế đặc biệt để cho phép dạng mở rộng này mà không gây ảnh hưởng tới các catalog khác đang sử dụng tệp DOAP y hệt. Ví dụ, ASF đã bổ sung thêm các thẻ tag để lấy thong tin về Ban Quản lý Dự án (Project Management Committee) đối với từng dự án. Thông tin này được hiển thị trong catalog của projects.apache.org, nhưng có thể bị các catalog khác bỏ qua.
Tạo và quản lý các tệp DOAP
Thiết lập được DOAP là một điều tốt lành cho một dự án, vậy một người quản lý dự án định tạo và duy trì một tệp DOAP thế nào?
Các tệp DOAP là các tệp văn bản, nên bạn có thể sử dụng trình soạn thảo văn bản ưa thích để làm việc với chúng. Như một sự lựa chọn, bạn có thể sử dụng trình soạn thảo XML ưa thích của bạn. Cũng có một ít các công cụ dựa vào web có sẵn cho bạn để sử dụng, ví dụ Matic DOAP. Tuy nhiên, chúng không cung cấp các phương tiện cho việc soạn sửa một tệp DOAP đang tồn tại (chúng đơn giản giúp bạn tạo tệp ban đầu).
Nếu bạn có quan tâm trong việc tạo ra công cụ sinh DOAP dựa vào web của riêng bạn mà hỗ trợ bất kỳ sự tùy biến nào, thì một điểm khởi đầu tốt có thể là Apache Labs DOAPizer. Đây là một ứng dụng bằng Javascript minh họa sự tạo ra một DOAP với các mở rộng ASF.
Các dự án tạo các chế tác phần mềm có thể thấy rằng công cụ quản lý xây dựng được chọn của họ, như Apache Maven, tạo thuận lợi cho việc quản lý các tệp DOAP dự án của bạn một cách tự động như một phần của chu kỳ quản lý dự án thông thường.
Một số site đặt chỗ dự án, như SourceForge, cũng đưa ra các giao diện lập trình ứng dụng cho việc mở ra thông tin về các dự án có sử dụng DOAP. Trong trường hợp này, thông tin bạn cung cấp như một phần của mô tả dự án của bạn sẽ được sử dụng để phổ biến DOAP từ site đó.
Một tệp DOAP trông như thế nào?
DOAP là một sơ đồ Khung Định nghĩa Tài nguyên - RDF (Resource Definition Framework); đó là, nó là một bảng từ vựng cho việc mô tả một chủ đề cụ thể, trong trường hợp này là một dự án. Nó thường được viết như một tài liệu XML (RDF/XML). Bên dưới là một ví dụ đơn giản của một tệp DOAP cơ bản mô tả chức năng dự án Foo Bar OSS.
Foo Bar OSS
Platform for making Foo into Bar
There are too many Foo's in the world. This project provides a suite of tools for automatically converting various types of Foo into just about any kind of Bar.
Java
FooBar-Milestone2
2006-01-01
0.2
2007-1-16
Foo Man
Có nhiều yếu tố hơn có thể được sử dụng trong các tài liệu DOAP. Một danh sách của chúng không được cung cấp ở đây, nhưng sơ đồ hoàn chỉnh có thể thấy ở website của dự án DOAP (https://github.com/edumbill/doap/wiki).
Một ưu điểm của việc sử dụng RDF là nó dễ dàng mở rộng bảng từ vựng DOAP. Một sự mở rộng như vậy có thể thấy trong ví dụ ở trên. Lưu ý rằng người duy trì được mô tả bằng việc sử dụng định dạng RDF khác được gọi là Friend của một Friend - FOAF (bạn của bạn). Điều này có nghĩa là bảng từ vựng DOAP cần không tự quan tâm về cách mô tả một con người. Tương tự, như được thảo luận ở trên, ASF từng có khả năng để mở rộng bảng từ vựng DOAP để đưa vào thông tin phù hợp cho chỉ các dự án của Apache.
Một ví dụ nữa về việc mở rộng DOAP với các sơ đồ khác tới ở dạng của việc đảm bảo tệp DOAP của bạn được sử dụng trong hơn một ngôn ngữ. Ví dụ, các liên kết có thể được dán nhãn với sơ đồ siêu dữ liệu Dublin Core để phân biệt giữa các trang tải về trong các ngôn ngữ khác nhau, như có thể thấy bên dưới.
Java Platform
Việc tạo và duy trì catalog riêng của bạn
Cũng dễ dàng như để cập nhật các catalog của những người khác với DOAP, cũng rất dễ dàng để tạo các catalog của riêng bạn bằng việc sử dụng các tệp DOAP. Trước khi xem xét làm thế nào, chúng ta hãy xem xét vì sao một dự án có thể muốn làm điều này.
Như hầu hết các người quản trị web (webmasters) biết, chìa khóa cho việc có được một xếp hạng cao trong hầu hết các máy tìm kiếm là có nội dung cập nhật có giá trị và thường xuyên trên site. Hơn nữa, việc cung cấp một dịch vụ hữu dụng cho những người viếng thăm là rất quan trọng và làm gia tăng các cơ hội họ sẽ liên kết ngược về bạn. Một cách bao trùm từng trong số các cơ sở đó là để duy trì một catalog các dự án có liên quan tới dự án của riêng bạn theo một số cách thức. Điều này có thể được thực hiện bằng việc sử dụng thẻ tag chủng loại trong tệp DOAP. Nếu vài dự án được liệt kê với cùng chủng loại y hệt đó, sẽ có cơ hội để làm việc cùng và giúp cho nhiều dự án trở nên bền vững (bản dịch tiếng Việt) hơn.
Không có DOAP thì cần thiết phải khuyến khích tất cả các dự án được liệt kê phải duy trì các khoản đầu vào của họ trong catalog của họ, nó tiêu tốn các tài nguyên của họ và vì thế sẽ không có khả năng xảy ra. Như một sự lựa chọn, ai đó trong dự án của bạn có thể duy trì từng khoản đầu vào, nhưng điều đó tiêu tốn các tài nguyên dự án của riêng bạn. Tuy nhiên, nếu các dự án được liệt kê trong một catalog của dự án, thì nó có thể cũng có lợi cho dự án của bạn. Bạn có thể thấy các dự án có liên quan và những người khác cũng sẽ thấy dễ dàng hơn, tới lượt nó, có thể giúp bạn xây dựng một cộng đồng (bản dịch tiếng Việt) xung quanh dự án của bạn.
Phần mềm cho sự tạo ra các catalog từ các tệp DOAP còn chưa được chín muồi. Mã đằng sau projects.apache.org là sẵn sàng từ Apache nhưng phần lớn vẫn còn được xem như một dự án nội bộ.
Như một sự lựa chọn, Apache Forrest có mã thực nghiệm trong trình cài cắm projectInfo mà sẽ tạo ra một site tương tự như của site projects.apache.org. Bất kể thực tế là những dự án đó vẫn còn trong các giai đoạn sớm của chúng, thì chúng đều làm việc tốt.
Các lựa chọn khác bao gồm Exhibit từ MIT, một khung xuất bản dữ liệu có cấu trúc hạng nhẹ cho phép bạn tạo các trang web với sự hỗ trợ cho việc sắp xếp, lọc, và trực quan hóa bằng việc chỉ viết HTML và có khả năng lựa chọn một số mã CSS và Javascript. Dự án Exhibit không đặc biệt nhằm vào các tệp DOAP, mà nó làm việc rất tốt với chúng.
Open source projects need to be marketed if they want to attract users and contributors. Most projects have a website describing their work but how do they attract people to their website in the first instance? While many projects may rely on search engines to be found, there are a growing number of project catalogues that a project should consider being listed in, but maintaining entries in a large number of catalogues can be a time consuming process. This document introduces the Description of a Project (DOAP) format for managing project details in emerging catalogues.
An Open Project Descriptor
Listing your project in online catalogues such as Freecode is an onerous task, and can take up a considerable amount of time. Furthermore, each new release or significant change in your project setup requires someone to update each entry by visiting each catalogue’s site, again a time-consuming process. In many cases, this this means projects are either not listed or their entries become stale, giving a misleading impression of inactivity in the project.
What is needed is a way for projects to update all catalogues simultaneously. Fortunately, the Semantic Web (data provided in a form that is easily processed by machines) provides just such a mechanism. A Description of a Project (DOAP) is a machine- readable document that is used to share information about a project. A DOAP descriptor can be used for:
  • easy importing of projects into directories
  • automated updating of directories
  • data exchange between directories
  • automatic configuration for resources such as mailing lists, shared repositories and issue trackers
  • assisting package maintainers who bundle resources for distributors
DOAP in use
DOAP facilitates the building of project registries by allowing ‘aggregator’ sites to pull in project records from many different sources and combine them into a single database. In order for a project to be incorporated in such an aggregator, the project needs to create a DOAP file (see next section) and publish it somewhere where it is accessible via an http or https request. This usually means that it is published on the project’s website. Then the project can either notify the aggregator directly of the location of this file, or register it at one of the sites from which the aggregator harvests the files, i.e. examines them for updates. Once the aggregator website knows about a particular DOAP file, it can monitor the file for changes and therefore update its records whenever the DOAP file is updated.
Since, for optimal effect, the DOAP file is stored locally to the project, there is no need for project maintainers to visit the aggregator site in order to update their records. They simply update their local DOAP file and wait for the aggregator site to harvest the new information. Of course, since the DOAP file is made accessible via an http or https request, any other DOAP-enabled catalogue can also access the information as long as they know where to look.
As a project is listed in more DOAP enabled catalogues, the benefits of remote updating start to multiply. All the project maintainer needs to do is update their file, and all catalogues should automatically update themselves. How this updating occurs is dependent on how the catalogue is implemented. Some catalogues use an ATOM feed, other catalogues periodically harvest files.
Discovery of new DOAP files can also be supported by submitting a link to your DOAP file to one of the new wiki pages that list DOAP files. Again, a catalogue may use this list of links to discover previously unknown DOAP files. An example of wiki pages used for this purpose are the Semantic Web Bulletin Board .
Specialist catalogues and DOAP extensions
DOAP catalogues can be vast, as they do not generally restrict which projects are listed. Such a large and broad catalogue is not always what is required by a user. A user may want to view a list of projects that are directly related to a particular interest. For example, a member of project X may be interested to see a catalogue containing all known projects that are dependent on project X. Alternatively, they may wish to see a catalogue of all projects that project X depends upon.
An example of a specialist catalogue such as this can be found at The Apache Software Foundation (ASF). The ASF has many active projects and until they adopted DOAP there was no central point where interested parties were able to get a summary of all those projects. With the adoption of DOAP, the ASF are able to produce projects.apache.org, a website that provides many different ways of viewing the available projects within the ASF. For example, it is possible to retrieve a list of all XML-related projects, or all projects written in a particular programming language.
An interesting aspect of the ASF catalogue is that it has extended the DOAP description language to include additional information that is only relevant to the Apache Software Foundation. DOAP is specifically designed to allow this kind of extension without affecting other catalogues using the same DOAP file. For example, the ASF has added tags to capture information about the Project Management Committee for each project. This information is displayed in the projects.apache.org catalogue, but may be ignored by other catalogues.
Creating and Managing DOAP Files
Having established that DOAP is a good thing for a project, how does a project manager go about creating and maintaining a DOAP file?
DOAP files are text files, so you can use your favourite text editor to work with them. Alternatively, you can use your favourite XML editor. There are also a few web-based tools available for you to use, for example DOAP A Matic. However, these do not provide a means for editing an existing DOAP file (they simply help you create the initial file).
If you are interested in creating your own web-based DOAP generation tool that supports any customisations, then a good starting point would be the Apache Labs DOAPizer. This is a Javascript application that illustrates the creation of a DOAP with ASF extensions.
Projects creating software artifacts may find that their chosen build management tool, such as Apache Maven, provides a facility for managing your project’s DOAP files automatically as part of the normal project management cycle.
Some project hosting sites, such as SourceForge, also provide APIs for exposing information about projects using DOAP. In this case, the information you provide as part of your project description will be used to populate the DOAP from the site.
What does a DOAP file look like?
DOAP is a Resource Definition Framework (RDF) schema; that is, it is a vocabulary for describing a particular topic, in this case a project. It is commonly written as an XML document (RDF/XML).
Below is a simple example of a basic DOAP file describing the fictional Foo Bar OSS project.
Foo Bar OSS
Platform for making Foo into Bar
There are too many Foo's in the world. This project provides a suite of tools for automatically converting various types of Foo into just about any kind of Bar.
Java
FooBar-Milestone2
2006-01-01
0.2
2007-1-16
Foo Man
There are many more elements that can be used in DOAP documents. A full list of them is not provided here, but the complete schema can be seen at the DOAP project website (see Further reading).
One advantage of using RDF is that it is easy to extend the DOAP vocabulary. Such an extension can be seen in the above example. Note that the maintainer is described using another RDF format called Friend of a Friend (FOAF). This means that the DOAP vocabulary need not concern itself with how to describe a person. Similarly, as discussed above, the ASF has been able to extend the DOAP vocabulary to include information relevant to Apache projects only.
A further example of extending DOAP with other schemas comes in the form of ensuring your DOAP file is of use in more than one language. For example, links can be labelled with the Dublin Core meta data schema to distinguish between download pages in various languages, as can be seen below.
Java Platform
Creating and maintaining your own catalogue
As well as being easy to update other people’s catalogues with DOAP, it is also very easy to create your own catalogues using DOAP files. Before looking at how, let us consider why a project may want to do this.
As most webmasters know, the key to getting a high rank on most search engines is to have valuable and constantly updating content on the site. Furthermore, providing a useful service to your visitors is of great importance and increases the chances that they will link back to you. One way of covering each of these bases is to maintain a catalogue of projects that are related to your own project in some way. This can be done by using the category tag in the DOAP file. If several projects are listed with the same category, there may be an opportunity to work together and help multiple projects in becoming more sustainable.
Without DOAP it is necessary to encourage all listed projects to maintain their entries in your catalogue, which consumes their resources and so is unlikely to happen. Alternatively, someone in your project can maintain each entry, but that consumes your own project’s resources. However, if the projects listed in the catalogue maintain a DOAP file, the only additional overhead in managing that catalogue is maintaining a list of projects within it. If you have created your DOAP file and have your project listed in a project catalogue, it can benefit your project as well. You can find related projects and be found by others more easily, which in turn can help you in building a community around your project.
Software for the creation of catalogues from DOAP files has yet to fully mature. The code behind projects.apache.org is available from Apache but is still largely considered an internal project. Alternatively, Apache Forrest has experimental code in its projectInfo plugin that will produce a similar site to that at projects.apache.org. Despite the fact that these projects are still in their early stages, they both work well.
Other options include Exhibit from MIT, a lightweight structured data publishing framework that lets you create web pages with support for sorting, filtering, and rich visualizations by writing only HTML and optionally some CSS and Javascript code. The Exhibit project is not specifically targeted at DOAP files, but it works very well with them.
Dịch: Lê Trung Nghĩa

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.