Metadata-Version: 2.4
Name: abouttag
Version: 1.4.0
Summary: Normalizes about tags for Fluidinfo
Author-email: "Nicholas J. Radcliffe" <njr@StochasticSolutions.com>
License-Expression: MIT
Project-URL: Homepage, http://github.com/njr0/abouttag/
Project-URL: Repository, https://github.com/njr0/abouttag
Keywords: fluidinfo,about,tag,normalization,canonicalization,standardarization
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: rfc3986>=1.5.0
Dynamic: license-file

# OVERVIEW

This package provides functions for generating 'semantic' identifiers
for various kinds of entities. The basic goals for these identiers
are:
 - IDs should be descriptive ('semantic'), rather than opaque:
    - e.g. `book:animal farm (george orwell)`
      rather than `OL23269355M`
 - Ideally, IDs should be constructable from accurate knowledge of the entity
   without recourse to a source of truth. In the case of books, for example,
   the title and author, _as printed on the book cover or spine_, should
   normally be enough to construct the identifier, given knowledge of the
   normalization scheme used.
 - Most IDs should be unique and unambiguous, but this is a lower priority
   than the previous two: occasional clashes might occur and will require
   disambiguation.

These identifiers are based on English at the moment, but might be extended.
Accents and other diacritics are accepted in input and can either be
removed as part of normalization for the purposes of constructing the
identifiers, or left. The abouttag package defaults to leaving them
('u' versions rather than 'a' versions of normalization functions).


# HISTORY AND USES

This scheme was first developed in the context of FluidDB/Fluidinfo,
a short-lived online, collaborative, tag-based database developed by
Terry Jones in the early 2000s. FluidDB allowed users to attach tags
with value to objects, and these objects has a system tag calle
about which was used to identify what the object was _about_.

For more information on the ideas that motivated this module,
see posts at https://abouttag.blogspot.com.   A good place to
start is [this blog post](https://abouttag.blogspot.com/2010/03/about-tag-conventions-in-fluiddb.html)

It is now being used in [CheckEagle](https://checkeagle.com) to extend its
social bookmarking capabilities to cover URIs and other string-based
object identifiers as well as URLs. Like FluidDB, the tags in CheckEagle
can have typed values. CheckEagle uses the non-u versions, i.e. ones that
strip accepts, which is not the default in this package. In time, there
will probably be a new package with CheckEagle's conventions.


EXAMPLE

Examples of usage are provided in the examples directory.
Some simple examples are:

    from abouttag.books import book
    from abouttag.music import album, artist, track
    from abouttag.film import film, movie

    print book('One Hundred Years of Solitude', 'Gabriel García Márquez')
    print book('The Feynman Lectures on Physics',
               'Richard P. Feynman', 'Robert B. Leighton',
               'Matthew Sands')
    print track('Bamboulé', 'Bensusan and Malherbe')
    print album('Solilaï', 'Pierre Bensusan')
    print artist('Crosby, Stills, Nash & Young')
    print film('Citizen Kane', '1941')
    print movie("L'Âge d'Or", '1930')


INSTALLATION

    pip install -U abouttag

DEPENDENCIES

    rfc3986





