This GitHub Action action creates a knowledge graph from structured or semi-structured sources using RML mappings and Morph-KGC.
The mapping file extension needs to be .rml.ttl
or .rml.nt
.
In order to execute the action include the word morph-kgc
in the comment of the commit, otherwise the action will not be triggered.
Create a .github.workflows/morph-kgc.yaml
file in the repository with the following example workflow:
name: morph-kgc
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
validate:
runs-on: ubuntu-latest
name: action-morph-kgc
steps:
- name: checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: commit trigger
id: 'commit_trigger'
run: |
case "${{ github.event.head_commit.message }}" in
*morph-kgc* ) echo "::set-output name=trigger::true";;
* ) echo "::set-output name=trigger::false";;
esac
- name: installing morph-kgc
run: |
if ${{ steps.commit_trigger.outputs.trigger }}
then
pip install morph-kgc
fi
- name: action-morphkgc
uses: ./
id: 'action-morphkgc'
with:
na_filter: 'yes'
na_values: ',#N/A,N/A,#N/A N/A,n/a,NA,<NA>,#NA,NULL,null,NaN,nan,None'
output_dir: 'morph-kgc'
output_file: 'result'
output_format: 'N-QUADS'
only_printable_characters: 'no'
safe_percent_encoding: ':/'
- name: running morph-kgc
run: |
if ${{ steps.action-morphkgc.outputs.run }} && ${{ steps.commit_trigger.outputs.trigger }}
then
python3 -m morph_kgc ./morph-kgc-exec/config.ini
rm -r ./morph-kgc-exec
git config --global user.name 'github-actions[bot]'
git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com'
git add .
set +e
git status | grep "nothing to commit, working tree clean"
if [ $? -eq 0 ]; then set -e; echo "INFO: No changes since last run"; else set -e; \
git commit -m "morph-kgc result for ${{ github.actor }} - ${{ github.event.number }}" --allow-empty; git push --force; fi
fi
The output directory for morph-kgc.
Default value
: output
File to write the results to. If it is empty (no value) then an independent output file is generated for each group of the mapping partition.
Default value
: result
RDF serialization to use for output results.
Valid values
: N-TRIPLES, N-QUADSDefault value
: N-QUADS
Remove characters in the genarated RDF that are not printable.
Valid values
: yes, no, true, false, on, off, 1, 0Default value
: no
Set of ASCII characters that should not be percent encoded. All characters are encoded by default.
Example value
: :/Default value
:
If specified, the values from the option na_values will be interpreted as NULL.
Valid values
: yes, no, true, false, on, off, 1, 0Default value
: yes
Set of values to be interpreted as NULL when retrieving data from the input sources. The valid values are a list of values separated by commas.
Tells the pipeline if morph-kgc needs to be executed.
true
if there are mapping files.false
if there are no mapping files.
El trabajo realizado en este repositorio ha sido elaborado por Miguel Jorge Garcia-Muñoz en el contexto de un Trabajo Fin de Grado de la ETSIINF del curso 2021-2022, bajo la dirección de Oscar Corcho.