ukgovld registry-intro

Post on 08-May-2015

166 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

UKGovLD Registry

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

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

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?

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

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

UKGovLD Registry Information model

• collections of items are Registers• hierarchical

http://register.base/def/colours

http://register.base/def

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

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

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

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

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

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

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

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

UKGovLD Registry Dataset registration

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

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

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

UKGovLD Registry Status lifecycle

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

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]

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

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

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

UKGovLD Registry Namespace forward

/local

/id

/local-authority

Registry External web sitecould be anything

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

UKGovLD Registry Federated register

/local

/id

/local-authority

RegistryFederated registry

/local-authority

/id

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]

UKGovLD Registry Delegated register

/local

/id

/local-authority

RegistryExternal SPARQL service

top related