Skip to main content

A library for mapping a concept collection to rdf

Project description

concepttordf

!Tests codecov PyPI Read the Docs

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"}
collection.name = {"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 ;
    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.8.2
% pyenv install 3.9.6
% pyenv local 3.8.2 3.9.6
% 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

concepttordf-2.0.2.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

concepttordf-2.0.2-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file concepttordf-2.0.2.tar.gz.

File metadata

  • Download URL: concepttordf-2.0.2.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.8.10 Linux/5.15.0-1017-azure

File hashes

Hashes for concepttordf-2.0.2.tar.gz
Algorithm Hash digest
SHA256 284c8116f3b2083d47dcfbd4f867407d5cd01b597d7a92aec55f0555ff222168
MD5 6dc03cd5ff36730bebed2d730c4d64f2
BLAKE2b-256 479635c51ae8280cecf7cc00edb3bccd13f8af4e18e49b22c0e9af23ce22297b

See more details on using hashes here.

File details

Details for the file concepttordf-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: concepttordf-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.8.10 Linux/5.15.0-1017-azure

File hashes

Hashes for concepttordf-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cc203e394c37431170554a951141379053c341c1f317830bafa3bee1624312a3
MD5 09f74b49202f3f5f80782e1a8a394073
BLAKE2b-256 63e53bc53499ec09bc31e1edeaf2d61f1d478ddc3a42a64fac23cb7bd6cb1b35

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page