A library for mapping a concept collection to rdf
Project description
concepttordf
A small Python library for mapping a concept collection to the skos-ap-no specification.
Usage
Install
% pip install concepttordf
Getting started
To create a SKOS-AP-NO concept collection:
from concepttordf import Collection, Concept, Definition
# Create collection object
collection = Collection()
collection.identifier = "http://example.com/collections/1"
collection.name = {"en": "A concept collection",
"nb": "En begrepssamling"}
collection.publisher = "https://example.com/publishers/1"
# Create a concept:
c = Concept()
c.identifier = "http://example.com/concepts/1"
c.term = {"name": {"nb": "inntekt", "en": "income"}}
definition = Definition()
definition.text = {"nb": "ting man skulle hatt mer av",
"en": "something you want more of"}
c.definition = definition
# Add concept to collection:
collection.members.append(c)
# get rdf representation in turtle (default)
rdf = collection.to_rdf()
print(rdf)
Will print the concept according to the specification:
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix ns1: <https://data.norge.no/vocabulary/skosno#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix skosno: <http://difi.no/skosno> .
@prefix skosxl: <http://www.w3.org/2008/05/skos-xl#> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://example.com/collections/1> a skos:Collection ;
rdfs:label "En begrepssamling"@nb,
"A concept collection"@en ;
dct:publisher <https://example.com/publishers/1> ;
skos:member <http://example.com/concepts/1> .
<http://example.com/concepts/1> a skos:Concept ;
ns1:betydningsbeskrivelse [ a ns1:Definisjon ;
rdfs:label "something you want more of"@en,
"ting man skulle hatt mer av"@nb ] ;
skosxl:prefLabel [ a skosxl:Label ;
skosxl:literalForm "income"@en,
"inntekt"@nb ] .
Development
Requirements
% pipx install poetry
% pipx install nox
% pipx inject nox nox-poetry
Install dev tools
% git clone https://github.com/Informasjonsforvaltning/concepttordf.git
% cd concepttordf
% pyenv install 3.10.12
% pyenv install 3.11.9
% pyenv install 3.12.7
% pyenv local 3.10.12 3.11.9 3.12.7
% poetry install
Run all tests
% nox
Run all tests with coverage reporting
% nox -rs tests
Debugging
You can enter into Pdb by passing --pdb to pytest:
nox -rs tests -- --pdb
You can set breakpoints directly in code by using the function breakpoint().
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file concepttordf-3.1.0.tar.gz.
File metadata
- Download URL: concepttordf-3.1.0.tar.gz
- Upload date:
- Size: 16.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.3 CPython/3.12.13 Linux/6.17.0-1008-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
047daac4b81202ed1b8e720fca6a987f7fa044e30a965e813a56a09f2dcfffb9
|
|
| MD5 |
c3474415fa672ac03176677d8a289dbe
|
|
| BLAKE2b-256 |
899c5afb735c0098da3c93406d70f016b706926ac030ba2476f05ead295944a0
|
File details
Details for the file concepttordf-3.1.0-py3-none-any.whl.
File metadata
- Download URL: concepttordf-3.1.0-py3-none-any.whl
- Upload date:
- Size: 22.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.3 CPython/3.12.13 Linux/6.17.0-1008-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
328e035d72057693fe39214e2c2936027002d3ba28e47005a44c3c643f774ca4
|
|
| MD5 |
02a76910b88fc59e8ed8b305d0ed3adf
|
|
| BLAKE2b-256 |
57bafa253a5397211ea8916ff832442776b155f275f5dbc74122d4f4efc3afa1
|