Update links in README.rst (#107)
Update setup.py (#108)
Drop support for Python 3.6 (#114)
An empty or invalid language tag as query parameter is raising 500 Exception (#110)
Last release at this location. Development will move to main Onroerend Erfgoed Github account for future versions.
Allow passing a list of languages to the label function. Eg. passing [‘nl-BE’, ‘en’] will first try to match with any form of Dutch, then any form of English and finally anything else. Bear in mind that nl-BE will also match with nl, so passing [‘nl-BE’, ‘nl’, ‘en’] is superfluous. (#80)
Better error handling when registering a Conceptscheme with the registry (or removing it). (#102)
Add a CITATION.cff file to make it easier to cite Skosprovider. (#104)
Drop support for Python 2. Only version 3.6 and higher are supported now. (#74)
Remove pyup suspport. (#85)
Update pyld and other dependencies. (#76)
Add check on allowed_instance_scopes being None. (#69)
Allow getting a provider URI without loading a Conceptscheme. (#72)
Try not to load the full conceptscheme when registering a provider in the registry. (#72)
Add dumpers to transform a provider, a conceptscheme, a concept or collection in to a dictionary compatible with a JSON-LD context that has been added. This makes it possible to transform a provider into Linked Data.
Make handling of the hierarchy involving collections as thesaurus arrays more logical. A collection now has an attribute
skosprovider.skos.Collection.infer_concept_relationsthat indicates if the members of a collection should be seen as narrower concepts of a superordinate concept. This is generally important when expanding a concept to all it’s narrower concepts for searching. (#57)
Add a new query option for querying matches with concepts from external conceptschemes to
A registry can now carry metadata just like a provider.
A registry now has an attribute
skosprovider.registry.Registry.instance_scopethat indicates how the registry is managed in the application process. All providers need to indicate what kinds of instance_scope they’re compatible with. Especially important for SQLAlchemyProvider run in a web application. (#63, #66)
Fix a bug that made it impossible for a
SimpleCsvProviderto read sources. (#36)
Drop support for Python 3.3, 3.4 and 3.5. Adds support for 3.8. This is the last version that will support Python 2. Version 0.8.0 will drop support for Python 2.7.
A provider can now receive a dataset keyword containing a dict. If present, this
dictneeds to have a uri attribute.
Update some requirements.
Allow marking a note as containing HTML. (#17)
Add languages attribute to
skosprovider.skos.ConceptSchemeto make it possible to track what languages are being used in a thesaurus. (#19)
Add a sources attribute to
Concept. Every source is an object that currently only has one attribute, a citation. This looks like a good universal common denominator. Just as with notes, a citation may contain HTML. (#20, #24)
Add sorting to
skosprovider.providers.VocabularyProvider.get_children_display(). Sorting can be done on id, label or sortlabel. The last option makes it possible to introduce arbitrary sorting for concepts, eg. to sort periods chronologically. The sort order can be specified with the sort_order parameter. (#21)
skosprovider.providers.VocabularyProvider.expand_concept()that was deprecated since 0.2.0.
Fixed a bug with
skosprovider.skos.dict_to_note()that would assign None instead of und as the language for labels and notes that have no language.
Improved checking for valid URIs with e.g.
skosprovider.skos.ConceptScheme. This was causing weird issues with registering a provider to the
skosprovider.providers.DictionaryProviderreads a dictionary containing a URI and that URI’s None, generate a URI. (#12)
Upgrade to the newest version of language-tags, this fixes a showstopping bug on Windows machines. (#16)
Added an examples folder with a script that demonstrates the API using a DictionaryProvider.
Added a wheel config file.
Release 0.5.1 was a brown-paper-bag release due to some mucking about with pypi.
Make it possible to pass a language tag to
skosprovider.registry.Registry.find()that will be passed on to all relevant registered providers. This determines in what language the labels of the returned concepts will displayed. (#10) [dieuska]
Make it possible to pass a language tag to
skosprovider.registry.Registry.get_all()that will be passed to all registered providers. This determines in what language the labels of the returned concepts will displayed.
Fixed some errors with the
skosprovider.utils.dict_dumper(). It didn’t dump the matches or the subordinate_arrays of concepts.
Wrote some new documentation on what a provider is and how to use it. Some other documentation work as well such as documenting the language parameter in the API better.
Changed the default language from None to the official IANA language code und (undetermined). This is a minor BC break for users dealing with labels that have not been assigned a language.
ProviderUnavailableExceptionto let a provider signal that an underlying backend is not available.
Fix a problem with SKOS matches.
BC compatibilty break with 0.4.0 and 0.4.1: renamed the matchtypes broader to broad and narrower to narrow to be more inline with the SKOS standard.
Noteobjects attached if available.
Fix a problem in find operations when a concept or collection had no label attached to it. (#6) [dieuska]
Dropped support for Python 2.6 and 3.2.
Added ability to add
ConceptSchemeto every provider. This ConceptScheme can then be passed on to Concepts and Collections. This allows Concepts and Collections that have left the context of their provider, to still refer back to the
ConceptSchemeand thus the
skosprovider.providers.VocabularyProviderwhere they originated.
When querying the
Registryfor providers, a URI of an accompanying ConceptScheme can now also be used.
Collection. These attributes are based on the SKOS-THES specification. They allow linking Concepts and Collections for the purpose of displaying a hierarchy.
Expanded support for languages with language-tags library. When generating a label, the language specification handles inexact language matches better. Eg. when asking for a label with language nl for a concept that only has nl-BE labels, these will now be returned while in the past this was not guaranteed.
Added subject to the metadata of a providers. This is a list of subjects or tags that help describe or type the provider. The
Registrycan now be searched for providers with a certain subject through the
Added support for URI. A
skosprovider.skos.ConceptSchemecan now have a URI.
skosprovider.urimodule to handle generating of URIS.
skosprovider.providers.VocabularyProvider. This method returns the Top Concepts in a ConceptScheme (the concepts that don’t have a broader concept).
get_children_display()methods to handle generating a display hierarchy for a certain provider.
A method that used to return a list of dicts containing an id and a label, now also returns a uri and a type (concept/collection) for each dict. (#2)
Provide list of valid noteTypes and labelTypes as attributes of Note and Label so they can be used externally. (#4)
Reworking tests. Now using pytest in stead of nose.
Adding code coverage based on Coveralls.
skosprovider.providers.MemoryProviderforward compatible by constructing
skosprovider.skos.Collectionobjects with keywords.
Soms minor fixes in documentation.
Added an extra unit test.
Major rewrite and refactoring. Tried to keep BC in place as much as possible, but did change some stuff.
Added a read only SKOS domain model in the
Providers no longer return dicts as concepts, but instances of
Added support for skos collections with a
Expanded concept query syntax. Now allows for querying on type (concept or collection) and on collection membership. See
Find empty label now returns no results
Find without a label now calls get_all
Providers can be removed from the registry
Added the ability to get a single provider from the registry
No longer possible to register the same provider twice
Some pep8 fixes
Add support for tox
Now tested for python 3.2
Added skos:notes as an example to the unit tests.