• Stars
    star
    30
  • Rank 839,658 (Top 17 %)
  • Language
    Java
  • License
    GNU General Publi...
  • Created almost 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Java library for representing, parsing and encoding URNs as in RFC2141 and RFC8141 (Maintained by @claussni)

urnlib

Build Maven Central

Java library for representing, parsing and encoding URNs as specified in RFC 2141 and RFC 8141.

The initial URN RFC 2141 of May 1997 was superseeded by RFC 8141 in April 2017. RFC 8141 added support for path characters and optional request, query and fragment parts. While URNs look very similiar to URIs and are somewhat related, different equality rules apply for URNs in regard to URN character encoding rules. Also some synactic rules about case-insensitivity are actually to be defined by the implementing system handling the URNs.

This library provides classes for representing, parsing and constructing an Uniform Resource Name (URN) and its parts Namespace Identifier (NID), Namespace Specific String (NSS) and optional Resolution, Query and Fragment components (RQF). If you don't need RFC 2141 URNs explicitly, always use RFC 8141 URNs because that is the current valid specification and RFC 8141 is backward compatible to RFC 2141.

Further it defines and interface de.slub.urn.URNResolver for URN resolving implementations.

The library is compiled for Java 7.

Usage

import de.slub.urn.URN;
import de.slub.urn.URNSyntaxError;
import de.slub.urn.URN_8141;

import static de.slub.urn.RFC.RFC_8141;

class Demo {
    public void foo() throws URNSyntaxException {
        // Create a RFC 2141 compliant URN (not recommended)
        URN urn1 = URN.rfc2141().parse("urn:examle:1234");

        // Create a RFC 8141 compliant URN (recommended)
        URN urn2 = URN.rfc8141().parse("urn:examle:foo/1234?=cq=cz#bar");

        // Access fragment part of a supposedly RFC 8141 compliant URN
        if (urn2.supports(RFC_8141)) {
            String fragment = ((URN_8141) urn2).getRQFComponents().fragment();
        }
    }
}

Where to find releases?

The master branch of the repository contains the latest developments. Releases are tagged. There are two ways of getting releases of this library. Binaries are obtained through Maven dependencies. Sources via the GitHub Releases download section.

The recommended way is by declaring a dependency, for example in your projects POM file:

<dependency>
  <groupId>de.slub-dresden</groupId>
  <artifactId>urnlib</artifactId>
  <version>[2.0,2.1)</version>
</dependency>

Licensing

The source code is under GNU GENERAL PUBLIC LICENSE, Version 3 (or later) as stated in the source file headers. So if you want to use the source code or a changed version, the source code and the source code using it is automatically licensed under this license.

The binaries (JAR artifacts) however are licensed under The Apache License, Version 2.0 and can be used in commercial products without any licensing changes to that product.

More Repositories

1

switchconfig

Web GUI to configure Cisco switches via SSH (Maintained by @schorschii)
PHP
37
star
2

dfg-viewer

The DFG Viewer is a free web service for browsing digitized books from remote library repositories in a rich and dynamic environment.
Less
29
star
3

lod-explorativ

lod-explorativ is a prototype of a Svelte webapp which let you explore bibliographic resources from a topic's point of view.
Svelte
14
star
4

docsa

SLUB Document Classification and Similarity Analysis
Python
10
star
5

ocrd_manager

frontend for ocrd_controller and adapter towards ocrd_kitodo
Shell
10
star
6

ocrd_kitodo

Docker integration of Kitodo.Production and OCR-D
XSLT
9
star
7

mets-mods2tei

Convert bibliographic meta data in MODS format to TEI headers
Python
8
star
8

efre-lod-elasticsearch-tools

collection of python scripts for a toolchain to feed an ElasticSearch-Index with bibliographic metadata and harvest RDF out of it
Python
8
star
9

slub_digitalcollections

Templates, Styles and Configuration for Kitodo.Presentation based Digital Collections by SLUB Dresden
Less
7
star
10

webgl-image-filter

JavaScript
7
star
11

textract2page

Convert AWS Textract JSON to PRImA PAGE XML
Python
6
star
12

marc2jsonl

simple MARC21 to Line-delimited JSON converter using xbib/marc
Java
6
star
13

ocrd_controller

Path to network implementation of OCR-D
Dockerfile
6
star
14

singlemarcrecord

generates single record MARC files
Python
5
star
15

labe

Merging citations with catalog data.
Python
5
star
16

efre-lod-api

Flask API to access the elasticsearch-data transformed by efre-lod-elasticsearch tools and use it for openrefine-reconcilation
Python
4
star
17

oer-display

Prototype for the presentation of a good-practice collection of Open Educational Ressources
CSS
4
star
18

vk2-georeference

PLpgSQL
4
star
19

php-mods-reader

PHP
4
star
20

esfstats

A Python3 program that extracts some statistics regarding field coverage from an elasticsearch index
Python
3
star
21

librml

Source code for librml.org (Maintained by @Erikmitk)
HTML
3
star
22

ddev-dfgviewer

DDEV Development System for the DFG-Viewer
PHP
3
star
23

data.slub-dresden.de

SLUB: Bibliographic Linked Open Data API documentation
SCSS
3
star
24

ddev-ddb-zeitungsportal

DDEV Development System for the DDB-Zeitungsportal
PHP
3
star
25

3d-viewer

Three.js based 3D viewer component for WissKi and the DFG-Viewer.
JavaScript
3
star
26

slub-find-extend

PHP
3
star
27

csv2scldj

a CSV 2 schema conform line-delimited JSON converter for the commandline
Java
3
star
28

statsdelta

A commandline command (Python3 program) that compares two (CSV) statistics with each other and generates delta values from the (old and the new) values
Python
2
star
29

jsonl-fstats

get field statistic of a line delimited JSON document
Python
2
star
30

slub_web_kartenforum

SLUB VK2 Kartenforum
JavaScript
2
star
31

kartenforum_georeference

Georeference backend for the SLUB Virtual Map Forum ("Kartenforum").
Python
2
star
32

index

2
star
33

dswarm-springer-journals-mappings

contains all d:swarm projects and the content of their input data models (for testing) for the Springer Journals mappings (to UBL Intermediate Format and finc Solr schema)
2
star
34

pylibrml

Python LibRML (Proof of concept; unmaintained at the moment)
HTML
2
star
35

ocrd_monitor

Web frontend for ocrd_manager
Python
2
star
36

searchmarcrecord

a Python3 program that searches a single MARC record via a given id (controlfield 001) in a given (binary) MARC records file and writes it into a single (binary) MARC file
Python
2
star
37

SUCC

Saxony UniCode Converter
Perl
2
star
38

marcsigel

a commandline command (Python3 program) that adds a Sigel to a given collection of binary MARC records (into MARC field 935 a; and optionally deduplicates this collection to another given collection)
Python
2
star
39

nbnurnlib

Java library for representing, parsing and encoding National Bibliography Numbers as Uniform Resource Names
Java
2
star
40

mirador-annotations-extend-plugin

A Plugin for Mirador3 based on the mirador-annotations-plugin which contains an adapted user panel with additional tools.
JavaScript
2
star
41

vkviewer

JavaScript
2
star
42

lookup-tables

A (sample) project to store and maintain arbitrary lookup tables (as CSV)
1
star
43

jsonld2compactjsonldldj

a commandline command (Python3 program) that transforms a given JSON-LD record array to line-delimited, compact JSON-LD records
Python
1
star
44

pymarc2jsonl

MARC21 to MarcXchange formatted ld-JSON and reverse converter based on pymarc
Python
1
star
45

addid

adds (url-safe) base64 encoded ids (without padding) to given finc Solr schema conform line-delimited JSON
Python
1
star
46

slub-find-neutral

JavaScript
1
star
47

es2json

elasticsearch bulk harvester which is using the scroll-API
Python
1
star
48

ddev-slub-katalog

DDEV Development System for the SLUB Catalog
JavaScript
1
star
49

kitodo-production-docker

Kitodo.Production Docker
Shell
1
star
50

vk2-extension

JavaScript
1
star
51

ddev-profile-service

Development System for the SLUB Profile Service
PHP
1
star
52

slub-typo3-dist

1
star
53

pvldb

Bibliometric Analysis of the Proceedings of the VLDB Endowment (PVLDB)
R
1
star
54

solr-fstats

A Python3 program that extracts some statistics regarding field coverage from a Solr index.
Python
1
star
55

slub_zotero

This TYPO3 Plugin is supposed to make a zotero.org hosted bibliography visible on a website.
PHP
1
star
56

addfullrecord

add fullrecord field into given finc Solr schema conform line-delimited JSON
Python
1
star
57

librmlbuilder

WebUI for building LibRML objects
Vue
1
star
58

exhibition-adb-next

next based semantic enabled frontend for the exhibition catalog
TypeScript
1
star
59

iiif-mirador-wrapper-application

A wrapper application which provides additional features for usage with Mirador 3.
JavaScript
1
star
60

musiconn-performance-data-pipeline

musiconn.performance data transformation pipelines and utilities
TypeScript
1
star
61

kartenforum_ansible

Ansible deployment scripts for the SLUB Virtual Map Forum ("Kartenforum")
Jinja
1
star
62

ldj-distinctvalues

output all the distinct values of a given path of given line-delimited jsonfile(s).
Python
1
star
63

slub_events

EXT:slub_events
PHP
1
star
64

mirador-components-workspace-plugin

A lightweight Plugin for Mirador3 which contains an adapted user interface.
JavaScript
1
star
65

ddev-kartenforum

DDEV Development System for the SLUB Kartenforum
PHP
1
star
66

replacemarcchars

a commandline command (Python3 program) that takes binary MARC records (e.g. originally stored in a JSON value) as input and replace some characters in it to be really binary MARC compatible
Python
1
star
67

slub_web_sachsendigital

SitePackage and Configuration of Sachsen.Digital website
JavaScript
1
star
68

liszt_bibliography

Manages an elasticsearch index obtained from a zotero library and other data sources, displays a bibliography listing
PHP
1
star
69

ldjstructurestats

a commandline command (Python3 program) that determines the structure of given line-delimited JSON records
Python
1
star
70

liszt_catalograisonne

presentation system for the Franz Liszt catalog raisonné project
PHP
1
star
71

liszt_common

common tools for the Liszt catalog raisonné
Shell
1
star
72

entityfactssheetsharvester

a commandline command (Python3 program) that retrieves EntityFacts sheets from a given CSV with GND identifiers and returns them as line-delimited JSON records
Python
1
star
73

entityfactspicturesharvester

a commandline command (Python3 program) that reads depiction information (images URLs) from given EntityFacts sheets (as line-delimited JSON records) and retrieves and stores the pictures and thumbnails contained in this information
Python
1
star
74

entityfactspicturesmetadataharvester

a commandline command (Python3 program) that reads depiction information (images URLs) from given EntityFacts sheets (as line-delimited JSON records) and retrieves the (Wikimedia Commons file) metadata of these pictures (as line-delimited JSON records)
Python
1
star
75

dnburnlib

Java library for encoding National Bibliography Numbers for URN Service of the German National Library as Uniform Resource Names
Java
1
star
76

ldjesmaterializer

a commandline command (Python3 program) that takes line-delimited JSON records and some arguments as input and materializes information from other records (stored in an elasticsearch index) into them
Python
1
star