[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#762952: debsources: Produce RDF meta-data interlinked with the PTS'

Package: qa.debian.org
Severity: wishlist
User: qa.debian.org@packages.debian.org
Usertags: debsources


(Transfering a previous item on the TODO list to a debbugs ticket)

* TODO Produce RDF meta-data interlinked with the PTS'
The idea would be to generate machine parseable meta-data, as RDF,
through content-negociation which would allow to interlink source
package descriptions with those generated by the PTS 

I'm refering to the "old" PTS and not distro tracker, unless it is enhanced to include RDF production (see #685605 for more details).

Here's a more elaborate discussion (reused from a thread started off from my TODO addition) :

The idea would be that some informations (meta-data) about the source
packages (and why not other contents of the package sources) can be
accessed from the pages of sources.debian.net.

One basic use case could be : "How can I know which version of
the upstream archive, Debian used for package X that I can find on
sources.debian.net. Is it the same as the .tgz I've just found on my
machine ?"

For instance, say a user is interested in the libjaxen-java package. She
may be browsing
http://sources.debian.net/src/libjaxen-java/1.1.6-1. From there she may
deduce that this version 1 of the Debian package of version 1.1.6 of the
upstream program, and then turn to the PTS at
http://packages.qa.debian.org/libjaxen-java and look for details about
that version in the PTS.

My point is that if you need to discover such meta-data programatically,
you may either use some dedicated APIs, or some machine-readable version
of the same URL, typically using content-negociation on the same URL as
the human readable version.

There is such a machine readable standard, RDF, which is used by the RDF
interface of the PTS [0]. 

So, you may try 
 $ curl -L -H 'Accept: text/turtle' http://packages.qa.debian.org/libjaxen-java

And get something like :

       a admssw:SoftwareRelease ;
       admssw:includedAsset <http://packages.qa.debian.org/libjaxen-java#upstreamsrc_1.1.6> .

       a admssw:SoftwareRelease ;
       admssw:package <http://packages.qa.debian.org/libjaxen-java#libjaxen-java_1.1.6.orig.tar.gz> .

       a admssw:SoftwarePackage ;
       dcterms:description "Upstream source archive for libjaxen-java version 1.1.6-1 (potentially re-archived by Debian)" ;
       schema:downloadUrl <http://http.debian.net/debian/pool/main/libj/libjaxen-java/libjaxen-java_1.1.6.orig.tar.gz> ;
       schema:fileSize "292815" ;
       spdx:checksum [
         spdx:algorithm <http://packages.qa.debian.org/#checksumAlgorithm_md5sum> ;
         spdx:checksumValue "8ea1a25eaa0d09213f8d794b232e6619"
       ] ;
       admssw:status <http://packages.qa.debian.org/#released> .

This excerpt, for instance exhibits the pointer to the downloadable
version of the upstream .orig source archive, and some traceability
about it (md5sum).

This allows, in principle, to match a version downloaded from upstream
to the one used by Debian and displayed by debsources.

So, either the debsources could provide such meta-data directly, or
point back at the meta-data published by the PTS.

[0] https://wiki.debian.org/qa.debian.org/pts/RdfInterface

-- System Information:
Debian Release: jessie/sid
  APT prefers testing-updates
  APT policy: (500, 'testing-updates'), (500, 'testing-proposed-updates'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.14-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Reply to: