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.
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
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 .
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.
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.
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
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.