Upload
dave-reynolds
View
166
Download
1
Embed Size (px)
Citation preview
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