UKGovLD RegistryA register. Image by http://www.flickr.com/photos/tekniskamuseet/
UKGovLD RegistryMotivationCoordinated publicationof reference informationas Linked DataWe want people to use URIs to identify things– organizations– spatial objects– codes and code lists– ontologies, thesauri and concepts– licenses– ...
UKGovLD Registrybut it’s not trivial ...Each organization use its own namespace?– need infrastructure and expertise to serve the data– fragmented namespace– where do consumers get the complete authoritative list?Shared namespace?– how to allocate new identifiers in that shared space?– how to collaboratively maintain identifiers and lists?– how to scale?Either way:– how to manage the life-cycle of introducing anddeprecating terms?
UKGovLD RegistryLinked Data RegistryTooling to enable organizations to create andmanage authoritative lists of identifiersas resolvable URIs• open specification• open source implementation• not necessarily a single central instance
UKGovLD RegistryWhat’s it do?1. Manage lists of identifiers– lists of things (entities) identified by URIsdescribed using RDF2. Repository– optionally store entity descriptions– easy to create a new, resolvable URI3. Namespace management– delegate parts of namespace for others to run
UKGovLD RegistryInformation model• collections of items are Registers• hierarchicalhttp://register.base/def/colourshttp://register.base/def
UKGovLD RegistryInformation modelhttp://register.base/def/colourssubmitter,status,modified, ...http://register.base/def/colours/_redhttp://register.base/def• entry in a Register is a RegisterItem• metadata about the entity being registered• within the registry namespace
UKGovLD RegistryInformation modelhttp://register.base/def/colourssubmitter,status,modified, ...http://register.base/def/colours/_redhttp://register.base/def• RegisterItem points to the entity URI• can be local (managed) or external• registry stores an RDF description in both caseslabel “red”notation “#FF0000”http://register.base/def/colours/redor maybehttp://colours.r.us/scheme/red
UKGovLD RegistryInformation model• metadata important• but complicates things• then there’s versioningreg:Register entityreg:registerreg:definitionreg:entityreg:RegisterItem reg:EntityReferencereg:RegisterItem reg:EntityReference
UKGovLD RegistryInformation model• default linked data view of Register is simplified• configurable– alternative membership property or inverse property– make a register look like a skos:Collection, skos:ConceptScheme etc– also acts as a LDP container• but can request full view (?_view=withMetadata)reg:Register entityreg:registerreg:definitionreg:entityreg:RegisterItem reg:EntityReferencereg:RegisterItem reg:EntityReferenceinduced membershiprelation default isrdfs:membercontainer viewfull view
UKGovLD RegistryItem status• controls visibility– not accepted => doesn’t appear (register view, validation)• guidance to consumers– experimental/stable => no effect on behaviour• workflow is external– how/whether to approve submissions up to the registermanager
UKGovLD RegistryVersioning and history• changes to an item generates new version– metadata record is versioned _red:1 _red:2 ....– separate copy of entity (separate named graph)• Register is versioned if items added– or their status is changed• API supports– list versions– version at point in time (including for Register)– get version
UKGovLD RegistryOther features• API– REST(ish) API for all operations• User interface– template-driven example UI• Security– allows for delegation• Search– built in text search over registered entities• Delegation– supports proxy/forwarding of parts of namespace• Dataset registration– ....
UKGovLD Registry Dataset registration - experimental• would like to know how identifiers are beingused and how they connect data sets• support registration of RDF data sets– currently register VoID descriptions with link sets– URIset (e.g. a register) one type of VoID data set– analysis tools for generating VoID descriptionspossible future direction• Example visual browsing
UKGovLD RegistrySummary• Tooling for collaborative management of setsof Linked Data identifiers• Very general– register anything– get collections, search, history, security• Proof of concept implementation• Next steps pilot on concrete use cases
UKGovLD RegistryLinks• Design notes and API detailshttps://github.com/der/ukl-registry-poc/wiki• Proof of concept deploymenthttp://ukgovld-registry.dnsalias.net/No service guarantees
UKGovLD Registry Federation, delegation and namespacesCase 1: External entities– identifier published in different namespace– want to include it in authoritative listSolution:– just register as a referenced entity– already seen this– authoritative because it’s on the list– can record properties of the entity, and maintainhistory– no namespace management involved
UKGovLD RegistryReferenced entities/local/id/local-authorityRegistry External servicee.g. opencommunities.orgHosted by LA directlyManaged by LA, stored in registry
UKGovLD RegistryCase 2: Namespace allocation– want someone else to serve part of the registrynamespace– might be a single item or a complete register sub tree– e.g. allocating namespace in location.data.gov.uk forserving INSPIRE spatial object identifiersSolution:– reg:NamespaceForward– can be a redirect (30X) or proxy (200)– no constraints on whether target acts like a Registry– target ought to serve linked data with URIs in the rightnamespace, but not requiredFederation, delegation and namespaces
UKGovLD RegistryNamespace forward/local/id/local-authorityRegistry External web sitecould be anything
UKGovLD Registry Federation, delegation and namespacesCase 3: Federated register– want someone else to run part of the registryinfrastructure but act like one big registry– integrated search, validation etcSolution:– reg:FederatedRegister– can be a redirect (30X) or proxy (200)– target endpoint must comply with Registry API atleast for search, validation and entity lookup
UKGovLD Registry Federation, delegation and namespacesCase 4: Delegating a register– some one else to serve the list of contents of theregister– but they only have triple store, not full registryimplementationSolution:– solution eg:DelegatedRegister– specify SPARQL endpoint and triplepattern to enumerate membersreg:DelegatedRegisterreg:delegationTarget reg:enumerationSubject [0..1]reg:enumerationPredicate [0..1]reg:enumerationObject [0..1]
UKGovLD RegistryDelegated register/local/id/local-authorityRegistryExternal SPARQL service