29
KGovLD Registry egister. Image by http://www.flickr.com/photos/tekniskamuseet/

Ukgovld registry-intro

Embed Size (px)

Citation preview

Page 1: Ukgovld registry-intro

UKGovLD Registry

A register. Image by http://www.flickr.com/photos/tekniskamuseet/

Page 2: Ukgovld registry-intro

UKGovLD Registry Motivation

Coordinated publication of reference information as Linked Data

We want people to use URIs to identify things– organizations– spatial objects– codes and code lists– ontologies, thesauri and concepts– licenses– ...

Page 3: Ukgovld registry-intro

UKGovLD Registry but 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 and

deprecating terms?

Page 4: Ukgovld registry-intro

UKGovLD Registry Linked Data Registry

Tooling to enable organizations to create and manage authoritative lists of identifiers

as resolvable URIs

• open specification• open source implementation• not necessarily a single central instance

Page 5: Ukgovld registry-intro

UKGovLD Registry What’s it do?

1. Manage lists of identifiers– lists of things (entities) identified by URIs

described using RDF

2. Repository– optionally store entity descriptions – easy to create a new, resolvable URI

3. Namespace management– delegate parts of namespace for others to run

Page 6: Ukgovld registry-intro

UKGovLD Registry Information model

• collections of items are Registers• hierarchical

http://register.base/def/colours

http://register.base/def

Page 7: Ukgovld registry-intro

UKGovLD Registry Information model

http://register.base/def/colours

submitter, status, modified, ...

http://register.base/def/colours/_red

http://register.base/def

• entry in a Register is a RegisterItem• metadata about the entity being registered• within the registry namespace

Page 8: Ukgovld registry-intro

UKGovLD Registry Information model

http://register.base/def/colours

submitter, status, modified, ...

http://register.base/def/colours/_red

http://register.base/def

• RegisterItem points to the entity URI• can be local (managed) or external• registry stores an RDF description in both cases

label “red”notation “#FF0000”

http://register.base/def/colours/red or maybehttp://colours.r.us/scheme/red

Page 9: Ukgovld registry-intro

UKGovLD Registry Information model

• metadata important • but complicates things• then there’s versioning

reg:Register entity

reg:register

reg:definition

reg:entity

reg:RegisterItem reg:EntityReferencereg:RegisterItem reg:EntityReference

Page 10: Ukgovld registry-intro

UKGovLD Registry Information 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 entity

reg:register

reg:definition

reg:entity

reg:RegisterItem reg:EntityReferencereg:RegisterItem reg:EntityReference

induced membership relation default is

rdfs:membercontainer view

full view

Page 11: Ukgovld registry-intro

UKGovLD Registry Item 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 register

manager

Page 12: Ukgovld registry-intro

UKGovLD Registry Versioning 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

Page 13: Ukgovld registry-intro

UKGovLD Registry Other 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– ....

Page 14: Ukgovld registry-intro

UKGovLD Registry Dataset registration - experimental

• would like to know how identifiers are being used 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 descriptions

possible future direction• Example visual browsing

Page 15: Ukgovld registry-intro

UKGovLD Registry Dataset registration

Page 16: Ukgovld registry-intro

UKGovLD Registry Summary

• Tooling for collaborative management of sets of Linked Data identifiers

• Very general– register anything– get collections, search, history, security

• Proof of concept implementation• Next steps pilot on concrete use cases

Page 17: Ukgovld registry-intro

UKGovLD Registry Links

• Design notes and API detailshttps://github.com/der/ukl-registry-poc/wiki

• Proof of concept deploymenthttp://ukgovld-registry.dnsalias.net/ No service guarantees

Page 18: Ukgovld registry-intro

UKGovLD Registry

reg:Register

rdfs:label [1..*]dct:description [1..*]reg:owner [1] (foaf:Agent)reg:manager [1] (foaf:Agent)dct:license [0..*]reg:containedItemClass [0..*]reg:operatingLanguage [0..*]reg:governancePolicy [0..*] (rdfs:Resource)reg:validationQuery [0..*]dct:modified [0..1] (inferred)void:uriLookupEndpoint [0..*]void:uriSpace [0..1]void:exampleResource [0..*]void:openSearchDescription [0..*]

reg:subregister

reg:RegisterItem

rdfs:label [1..*]dct:description [0..*]dct:dateSubmitted [1] (automatic)dct:dateAccepted [0..1]dct:modified [0..1] (inferred)reg:itemClass [1..*]reg:submitter [1] (foaf:Agent)dct:license [0..*]reg:status [1..*]reg:category [0..*] (skos:Concept)reg:notation [0..1]reg:alias [0..*]reg:hasView [0..*]reg:representationOf [0..*]

reg:register

reg:predecessor

version:Version

owl:versionInfo [1]

time:Inteval

version:interval

dct:replacesdct:replacedBy

version:VersionedThing

version:currentVersion

reg:Statusreg:statusNotAccepted

reg:statusSubmittedreg:statusInvalid

reg:statusAcceptedreg:statusValid

reg:statusExperimental reg:statusStable

reg:statusDeprecatedreg:statusSupersededreg:statusRetired

dct:isVersionOf

reg:status

reg:EntityReference

reg:entity [1]reg:sourceGraph [0..1]

reg:definition

Void:Dataset

ldp:Container

ldp:membershipPredicatereg:inverseMembershipPredicate

Full information model

Page 19: Ukgovld registry-intro

UKGovLD Registry Status lifecycle

Page 20: Ukgovld registry-intro

UKGovLD Registry Conceptual architecture

router

renderer

requestprocessor

user credentials

roles and bindings

auth

registrycorelogic

Registry RDF store

text index

style and templates

external UI

adminUI

logaudittrail

stor

e AP

I

nginx

proxy

confAPI

Page 21: Ukgovld registry-intro

UKGovLD Registry Federation, delegation and namespaces

reg:Delegated

reg:delegationTarget

reg:NamespaceForward

reg:forwardingCode [0..1]

reg:DelegatedRegister

reg:enumerationSubject [0..1]reg:enumerationPredicate [0..1]reg:enumerationObject [0..1]

reg:Register

reg:FederatedRegister

reg:forwardingCode [0..1]

Page 22: Ukgovld registry-intro

UKGovLD Registry Federation, delegation and namespaces

Case 1: External entities– identifier published in different namespace– want to include it in authoritative list

Solution:– just register as a referenced entity– already seen this– authoritative because it’s on the list– can record properties of the entity, and maintain

history– no namespace management involved

Page 23: Ukgovld registry-intro

UKGovLD Registry Referenced entities

/local

/id

/local-authority

Registry External service e.g. opencommunities.org

Hosted by LA directly

Managed by LA, stored in registry

Page 24: Ukgovld registry-intro

UKGovLD Registry

Case 2: Namespace allocation– want someone else to serve part of the registry namespace– might be a single item or a complete register sub tree– e.g. allocating namespace in location.data.gov.uk for serving

INSPIRE spatial object identifiers

Solution:– 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 right

namespace, but not required

Federation, delegation and namespaces

Page 25: Ukgovld registry-intro

UKGovLD Registry Namespace forward

/local

/id

/local-authority

Registry External web sitecould be anything

Page 26: Ukgovld registry-intro

UKGovLD Registry Federation, delegation and namespaces

Case 3: Federated register– want someone else to run part of the registry

infrastructure but act like one big registry– integrated search, validation etc

Solution:– reg:FederatedRegister– can be a redirect (30X) or proxy (200)– target endpoint must comply with Registry API at

least for search, validation and entity lookup

Page 27: Ukgovld registry-intro

UKGovLD Registry Federated register

/local

/id

/local-authority

RegistryFederated registry

/local-authority

/id

Page 28: Ukgovld registry-intro

UKGovLD Registry Federation, delegation and namespaces

Case 4: Delegating a register– some one else to serve the list of contents of the

register– but they only have triple store, not full registry

implementation

Solution:– solution eg:DelegatedRegister– specify SPARQL endpoint and triple

pattern to enumerate members

reg:DelegatedRegister

reg:delegationTarget [1]reg:enumerationSubject [0..1]reg:enumerationPredicate [0..1]reg:enumerationObject [0..1]

Page 29: Ukgovld registry-intro

UKGovLD Registry Delegated register

/local

/id

/local-authority

RegistryExternal SPARQL service