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