• Stars
    star
    29
  • Rank 832,219 (Top 17 %)
  • Language
    Java
  • License
    GNU General Publi...
  • Created about 8 years ago
  • Updated 12 months 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
30
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

ocrd_manager

frontend for ocrd_controller and adapter towards ocrd_kitodo
Shell
10
star
5

docsa

SLUB Document Classification and Similarity Analysis
Python
10
star
6

ocrd_kitodo

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

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
8

mets-mods2tei

Convert bibliographic meta data in MODS format to TEI headers
Python
7
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

marc2jsonl

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

ocrd_controller

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

singlemarcrecord

generates single record MARC files
Python
5
star
14

labe

Merging citations with catalog data.
Python
5
star
15

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
16

textract2page

Convert AWS Textract JSON to PRImA PAGE XML
Python
4
star
17

vk2-georeference

PLpgSQL
4
star
18

esfstats

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

oer-display

Prototype for the presentation of a good-practice collection of Open Educational Ressources
CSS
3
star
20

librml

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

ddev-dfgviewer

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

data.slub-dresden.de

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

ddev-ddb-zeitungsportal

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

3d-viewer

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

slub-find-extend

PHP
3
star
26

csv2scldj

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

php-mods-reader

PHP
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

index

2
star
31

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
32

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
33

ocrd_monitor

Web frontend for ocrd_manager
Python
2
star
34

SUCC

Saxony UniCode Converter
Perl
2
star
35

nbnurnlib

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

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
37

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
38

vkviewer

JavaScript
2
star
39

lookup-tables

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

jsonld2compactjsonldldj

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

es2json

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

pymarc2jsonl

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

addid

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

slub-find-neutral

JavaScript
1
star
45

ddev-slub-katalog

DDEV Development System for the SLUB Catalog
JavaScript
1
star
46

kitodo-production-docker

Kitodo.Production Docker
Shell
1
star
47

solr-fstats

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

vk2-extension

JavaScript
1
star
49

slub_web_kartenforum

SLUB VK2 Kartenforum
JavaScript
1
star
50

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
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

addfullrecord

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

kartenforum_georeference

Georeference backend for the SLUB Virtual Map Forum ("Kartenforum").
Python
1
star
56

pylibrml

Python LibRML (Proof of concept; unmaintained at the moment)
HTML
1
star
57

iiif-mirador-wrapper-application

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

ldj-distinctvalues

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

slub_events

EXT:slub_events
PHP
1
star
60

mirador-components-workspace-plugin

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

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
62

slub_zotero

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

slub_web_sachsendigital

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

ldjstructurestats

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

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
66

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
67

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
68

dnburnlib

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