From 548a75205c33723ce0cbb68eb3a078680df03494 Mon Sep 17 00:00:00 2001 From: Boris Pelakh Date: Wed, 29 Apr 2020 09:32:12 -0400 Subject: [PATCH] Remove obsolete tools, update documentation. --- README.md | 39 ++++++-------------------- bundle.bat | 40 --------------------------- tools/sed.exe | Bin 82944 -> 0 bytes tools/serialize.bat | 25 ----------------- tools/serialize.sh | 64 ------------------------------------------- tools/versionize.bat | 27 ------------------ tools/versionize.sh | 59 --------------------------------------- version.txt | 1 - 8 files changed, 9 insertions(+), 246 deletions(-) delete mode 100644 bundle.bat delete mode 100644 tools/sed.exe delete mode 100644 tools/serialize.bat delete mode 100755 tools/serialize.sh delete mode 100644 tools/versionize.bat delete mode 100755 tools/versionize.sh delete mode 100644 version.txt diff --git a/README.md b/README.md index aac19ea2..07c13317 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,22 @@ + # gist upper enterprise ontology This repository has the raw files that we use to build the release files. If you just want the release files then you can download them from our [website](https://www.semanticarts.com/gist). ## Prerequisites to build the output files -You must have `java` installed for the serializer to work. See JRE Installation instructions -[here](https://jdk.java.net/). +1. You must have `java` installed for the serializer to work. See JRE Installation instructions [here](https://jdk.java.net/). +1. You must also install the [ontology toolkit](https://github.com/semanticarts/ontology-toolkit), which also requires [Python](https://www.python.org/downloads/) 3.6 or greater. -## To release (Windows) +## To release -To generate a folder suitable for ZIP-ing up and releasing Gist: +1. To generate a folder suitable for ZIP-ing up and releasing Gist, run -1. Make sure you edit `version.txt` and put in the desired version number with -**no leading nor trailing spaces** + `onto_tool bundle -v version bundle.yaml` -1. From this folder, run the `bundle.bat` script (double-click or run from command line). It will + where `` is a [semantic version](https://semver.org/), e.g. `9.2.0`. It will serialize the OWL, and create a ZIP-able folder containing everything needed for a web -download. The folder will have a name like `gist8.0.0_webDownload` +download. The folder will have a name like `gist_webDownload`. You can override +this by adding `-v output ` to the command. 1. ZIP up the resulting folder and put it where we host our downloads. - -## Serializer tool - -You can also run the `serialize` tool manually to format RDF OWL files to our standard format. - -Examples: - -Call it without arguments to show usage, e.g.: - - C:\dev\gist> tools\serialize.bat - - Serialize tool - - usage: serialize somefile.owl - e.g.: serialize gistAddress.owl - - -Call it with an argument to serialize the specified file in place (overwrites the file!), e.g.: - - C:\dev\gist> tools\serialize.bat OntologyFiles\gistAddress.owl - 1 file(s) copied. - serializing OntologyFiles\gistAddress.owl diff --git a/bundle.bat b/bundle.bat deleted file mode 100644 index 16bdd627..00000000 --- a/bundle.bat +++ /dev/null @@ -1,40 +0,0 @@ -@echo off -REM Bundle releasable files into a folder for web download - -setlocal -set DIR=%~dp0 -set TOOLSDIR=%DIR%\tools - -REM Get version number from one place. -for /f "delims=" %%v in ('type version.txt') do set VERSION=%%v - -REM Create a distribution directory -cd OntologyFiles -set ZIPDIR=..\gist%VERSION%_webDownload -mkdir %ZIPDIR% - -REM Standardize the owl files' format -for %%f in (*.owl) do call %TOOLSDIR%\serialize %%f - -REM Add version number to distribution's .OWL file names -for %%f in (*.owl) do copy %%f %ZIPDIR%\%%~nf%VERSION%%%~xf - -REM Inject version number into OWL file IRIs -for %%f in (%ZIPDIR%\*.owl) do call %TOOLSDIR%\versionize %VERSION% %%f - -REM Inject version number into catalog file -copy bundle-catalog-v001.xml %ZIPDIR%\catalog-v001.xml -call %TOOLSDIR%\versionize %VERSION% %ZIPDIR%\catalog-v001.xml - -REM Include the license file & Release notes in the download -copy ..\LICENSE.txt %ZIPDIR% -copy ReleaseNotes.txt %ZIPDIR% - -REM Create a deprecated items directory for the distribution -set DEPDIR=%ZIPDIR%\Deprecated -mkdir %DEPDIR% - -REM Move select items into deprecation directory -move %ZIPDIR%\gistDeprecated*.owl %DEPDIR% - -pause diff --git a/tools/sed.exe b/tools/sed.exe deleted file mode 100644 index 75ffba78aeeecb41d86c6921ad5fe6d3c99fcf31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82944 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 diff --git a/tools/serialize.bat b/tools/serialize.bat deleted file mode 100644 index a54cee01..00000000 --- a/tools/serialize.bat +++ /dev/null @@ -1,25 +0,0 @@ -@echo off - -REM serialize an owl file -setlocal - -set DIR=%~dp0 - -if "%1" == "" goto :usage - -set FILE=%1 -set TMPFILE=%1.bak -copy %FILE% %TMPFILE% -echo serializing %FILE% - -java -jar %DIR%/rdf-toolkit.jar -tfmt rdf-xml -sdt explicit -dtd -ibn -s %TMPFILE% -t %FILE% && del %TMPFILE% - -goto :eof - -:usage -echo. 1>&2 -echo Serialize tool 1>&2 -echo. 1>&2 -echo usage: %~n0 somefile.owl 1>&2 -echo e.g.: %~n0 gistAddress.owl 1>&2 -echo. 1>&2 diff --git a/tools/serialize.sh b/tools/serialize.sh deleted file mode 100755 index b8d635b9..00000000 --- a/tools/serialize.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# serialize.sh -# Reserializes one or more OWL files into a standard format using rdf-toolkit. - -usage() { - scriptname=`basename "$0"` - echo Formats OWL files into a standard format. Operates on a single file, all files in a directory, or a set of files specified with a wildcard. - echo Usage: $scriptname [ file \| directory \| wildcard expression ] - echo Examples: - echo $scriptname ./OntologyFiles/gistAddress.owl - echo $scriptname ../OntologyFiles - echo "$scriptname ../OntologyFiles/*.owl" -} - -serialize_file() { - file=$1 - # Require '.owl' extension. rdf-toolkit throws exceptions on non-RDF input. - # Avoid the exceptions on the '.txt' and '.xml' files stored in ../OntologyFiles. - # Later improvement: check actual file format rather than file extension. - # Should also extend to other RDF formats such as Turtle. - filename=`basename "$file"` - ext=${filename##*.} - if [ $ext != 'owl' ] ; then - echo Skipping file $file. - return - fi - echo Reserializing $file into a standard format. - tmp=$file.bak - cp $file $tmp - java -jar ./rdf-toolkit.jar -tfmt rdf-xml -sdt explicit -dtd -ibn -s $tmp -t $file - rm $tmp -} - -serialize_directory() { - dir=$1 - for file in $dir/*; do - serialize_file $file - done -} - -args=("$@") - -# Check for at least one arg -if [ ${#args[@]} -lt 1 ] ; then - usage - exit -fi - -if [ ${#args[@]} -eq 1 ] ; then - file=$1 - if [ -f $file ] ; then - serialize_file $file - elif [ -d $file ]; then - # Remove a trailing slash (for printing filenames). - file=${file%/} - serialize_directory $file - fi -else - for i in "${args[@]}"; do - serialize_file $i - done -fi - -echo Done! diff --git a/tools/versionize.bat b/tools/versionize.bat deleted file mode 100644 index ad7d7799..00000000 --- a/tools/versionize.bat +++ /dev/null @@ -1,27 +0,0 @@ -@echo off - -REM Versionize an owl file -setlocal - -set DIR=%~dp0 - -if "%2" == "" goto :usage - -set FILE=%2 -set VERSION=%1 -set TMPFILE=%FILE%.bak -copy %FILE% %TMPFILE% - -echo versionizing %FILE% to version %VERSION% - -%DIR%\sed.exe "s/X.x.x/%VERSION%/g" %TMPFILE% > %FILE% && del %TMPFILE% - -goto :eof - -:usage -echo. 1>&2 -echo Versionize tool 1>&2 -echo. 1>&2 -echo usage: %~n0 versionNumber somefile.owl 1>&2 -echo e.g.: %~n0 9.0.0 gistAddress.owl 1>&2 -echo. 1>&2 diff --git a/tools/versionize.sh b/tools/versionize.sh deleted file mode 100755 index b05d75d1..00000000 --- a/tools/versionize.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash -# versionize.sh -# Versionizes one or more OWL files. - -usage() { - scriptname=`basename "$0"` - echo Versionizes OWL files. Operates on a single file, all files in a directory, or a set of files specified with a wildcard. - echo Usage: $scriptname versionNumber [ file \| directory \| wildcard expression ] - echo Examples: - echo $scriptname 9.0.0 ../OntologyFiles/gistAddress.owl - echo $scriptname 9.0.0 ../OntologyFiles - echo "$scriptname 9.0.0 ../OntologyFiles/*.owl" -} - -versionize_file() { - version=$1 - # Remove a trailing slash - file=${2%/} - echo Versioning $file to $version - # For in-place substitution, Mac requires sed -i '' where - # Linux uses just -i; the version below works on both. - sed -i.bak "s/X.x.x/$version/g" $file - rm $file.bak -} - -versionize_directory() { - version=$1 - dir=$2 - for file in $dir/*; do - versionize_file $version $file - done -} - -args=("$@") - -# Check for at least two args -if [ ${#args[@]} -lt 2 ] ; then - usage - exit -fi - -version=$1 - -if [ ${#args[@]} -eq 2 ] ; then - file=$2 - if [ -f $file ] ; then - versionize_file $version $file - elif [ -d $file ]; then - # Remove a trailing slash (for printing filenames). - file=${file%/} - versionize_directory $version $file - fi -else - for i in "${args[@]:1}"; do - versionize_file $version $i - done -fi - -echo Done! diff --git a/version.txt b/version.txt deleted file mode 100644 index 47da986f..00000000 --- a/version.txt +++ /dev/null @@ -1 +0,0 @@ -9.1.0