NOTE: This is a legacy document. The current specification is being
developed in https://volute.g-vo.org/svn/trunk/projects/semantics/vocinvo2/
Build tree for the IVOA vocabulary SKOS files.
Configuring and building from a checkout
========================================
To build everything, including both the document and the distributed
SKOS files, you need:
* rapper: from
* redland-bindings for Python, also from librdf.org
* cwm: you need version cwm-1.2.1 from
(it might work with
other versions, but that one works for me).
* BibTeX, to build the bibliography in doc/
* xsltproc or Saxon (xsltproc built with libxslt 10111 is OK; Saxon 8 is OK)
Then do:
% ./configure CWM=/BLAH/cwm-1.2.1/cwm
% make
Depending on where you've installed the redland-bindings, you may need
to set PYTHONPATH on the command line here.
(yes, autoconf is slightly over the top for a project which isn't
designed to be built after distribution, but it's the most
straightforward way to do the various substitutions required, avoiding
a lot of Makefile fuss).
[ You may have to play about with the cwm command a bit. I know that
versions of cwm before 1.2.1 wouldn't work with the .../cwm command; I
think it's OK by that version ]
If you have problems installing xsltproc, install Saxon (which
requires Java) and give the
./configure option --with-saxon=/path/to/saxon8.jar
Document only
=============
If you only want to build the document, then all you need to have
installed is BibTeX, plus either xsltproc or Saxon; and all you need to do is:
% ./configure
% cd doc
% make
It doesn't matter in this case if rapper, python and tar aren't found,
and you don't need to install cwm in this case.
Note that this works because the (generated) configure script is
checked in to the repository, to make this step more convenient: this
implies that if you do need to adjust configure.ac you do need to
regenerate the ./configure script by hand.
There is nothing to build after distribution.
Maintenance
===========
To add a vocabulary:
1. Create the appropriate subdirectory under src/, say src/NewVocab
2. Add a Makefile.in in that directory which creates at least
src/NewVocab/NewVocab.ttl, src/NewVocab/NewVocab.rdf and
src/NewVocab/Notes. The Makefile.in should allow its release
information to be set in the same way that src/AVM/Makefile.in (for
example) does.
3. Add NewVocab to src/Makefile.in's SUBDIRS variable.
4. Add the new Makefile.in to the bottom of configure.ac and
regenerate ./configure using autoconf.
To make a release:
1. Copy the trunk to a tagged tree using, for example,
% svn copy https://volute.googlecode.com/svn/trunk/ \
https://volute.googlecode.com/svn/tags/vocabularies-0.01 \
-m "Tag release 0.01 of vocabularies project"
2. Check out that tag using
% svn export https://volute.googlecode.com/svn/tags/vocabularies-0.01/projects/vocabularies
and build a distribution using just the instructions above. If
any minor fixes are required, it's probably OK to check out a
working copy, fix things on that tag-branch, then and re-merge
them with the trunk, but I haven't done that myself.
3. Upload the distribution tarball to the 'downloads' section of
volute.googlecode.com (at present). In future, (the contents of)
this distribution tarball should be submitted to the IVOA
documents process. Details to come.
4. Make check-uris.sh, copy it to check-uris-{tag}.sh, and add it to
the repository. This provides a convenient way for the website
maintainer to check the installed files, without being obliged to
build the project. For example:
% ./check-uris-rec-1.19.sh