Ukgovld registry-webinar-v3


Published on

1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Ukgovld registry-webinar-v3

  1. 1. UKGovLD RegistryA register. Image by
  2. 2. UKGovLD RegistryOutline• Background and motivation• Details– information model– core functionality– advanced topics– status• Applying it• Discussion and next steps
  3. 3. UKGovLD RegistryMotivationSupport coordinated publication of referenceinformation as Linked DataWe want people to use URIs to identify things– codes and code lists– ontologies, thesauri and concepts– units of measure– organizations– spatial objects– licenses– coordinate reference systems– ...
  4. 4. 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?
  5. 5. UKGovLD RegistryLinked Data RegistryInfrastructure to enable organizations to createand manage identifiers and authoritative lists– allocation and registration of approved codes,vocabularies and reference URIs– management of shared namespaces, includingclash-free allocation and delegation– registration of published datasets supportingdiscovery and cross-reference
  6. 6. UKGovLD RegistryThree functions• identifier & list management– create, update, reserve, lifecycle, versioning ...• repository– managed identifiers (information served from registry) as wellas referenced identifiers• namespace management– delegate a list or part of namespace to others– federate to other repositories=> very general platform– can register anything you can give a URI and RDF description– use only the aspects you need for a given situation– “registry does X” does not mean it answers every X-shaped needyou might have
  7. 7. UKGovLD RegistryConceptual architecturerouterrendererrequestprocessorusercredentialsroles andbindingsauthregistrycorelogicRegistryRDF storetext indexstyle andtemplatesexternalUIadminUIlogaudittrailstoreAPInginxproxyconfAPI
  8. 8. UKGovLD RegistryRunning examples• Code list of colours– simple, neutral• UK Local authorities– centrally created identifiers v. local creation?– local control and maintenance?– offloading management
  9. 9. UKGovLD RegistryOutline• Background and motivation• Details– information model– core functionality– advanced topics– status• Applying it• Discussion and next steps
  10. 10. UKGovLD RegistryInformation model• hierarchy of Registers• things in registers are Register Items – metadata• thing described by a RegisterItem called an entity//reg1 /def /system/def/colours /def/weather-types/def/colours/_red /def/colours/_green(describes /def/colours/red) (describes /def/colours/green)Naming convention:metadata item has “_”
  11. 11. UKGovLD RegistryInformation modelcomplicated by:– item v. entity– versioningreg:Register entityreg:registerreg:definitionreg:entityreg:RegisterItem reg:EntityReferencereg:RegisterItem reg:EntityReference
  12. 12. UKGovLD RegistryInformation model• default linked data view of Register is simplified• configurable– alternative membership property or inverse property– so can make a register look like a skos:Collection,skos:ConceptScheme, owl:Ontology ...– 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
  13. 13. UKGovLD RegistryFull information model• Derives from ISO 19135Geographic information - procedures for item registration• Also considered OASIS ebRIM– not so suited to flexible RDF model– RegRep API did provide API checklist• Container model compatible with Linked DataPlatform (1st draft!)• Versioning model based on approached usedin Environment Agency linked data
  14. 14. UKGovLD Registryreg:Registerrdfs: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:subregisterreg:RegisterItemrdfs: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:registerreg:predecessorversion:Versionowl:versionInfo [1]time:Intevalversion:intervaldct:replacesdct:replacedByversion:VersionedThingversion:currentVersionreg:Statusreg:statusNotAcceptedreg:statusSubmittedreg:statusInvalidreg:statusAcceptedreg:statusValidreg:statusExperimentalreg:statusStablereg:statusDeprecatedreg:statusSupersededreg:statusRetireddct:isVersionOfreg:statusreg:EntityReferencereg:entity [1]reg:sourceGraph [0..1]reg:definitionVoid:Datasetldp:Containerldp:membershipPredicatereg:inverseMembershipPredicateFull information model
  15. 15. UKGovLD RegistryStatus lifecycle
  16. 16. UKGovLD RegistryStatus lifecycle• controls visibility– not accepted => doesn’t appear (register view, validation)• guidance to consumers– experimental/stable => no effect on behaviour• workflow is external– registry provides machinery to• store status• control who is authorized to change the status• some validation of submissions• list submissions in a given state– how/whether submissions are scrutinized, how decision ismade up to the register manager
  17. 17. UKGovLD RegistryOutline• Background and motivation• Details– information model– core functionality– advanced topics– status• Applying it• Discussion and next steps
  18. 18. UKGovLD RegistryFunctions: basic access• read (GET)– entity, item (its metadata), specific versions– register (metadata, list of contents, page-able, prior states)– content negotiation – Turtle, RDF/XML, JSON/LD, HTML• entity lookup– return what registry knows about any URI• validate– test a set of URIs to see they are known and Accepted(within a register sub-tree)• search– free text search (within a register sub-tree)
  19. 19. UKGovLD RegistryDemo• Browse of colours register• RDF of colours register and a colour
  20. 20. UKGovLD RegistryFunctions: Registration• single entity– POST simple entry to register– basic metadata created automatically– UI allows for extensible forms to create entries• entity with metadata– include explicit RegisterItem to annotate– allows you to register an external URI– can register multiple entries at once this way• batch registration– register a complete collection – register + contents– e.g. upload a complete skos:ConceptScheme or skos:Collection– can configure bulk types
  21. 21. UKGovLD RegistryStatus and validation• some automated checks at registration– minimal properties of entity (label, type)– type matches one of (optional) allowed types for this register– register can specify SPARQL ASK queries for validation• item status– default is “Submitted”– can set initial status in API or explicit metadata, if you have theauthority– can change status through API or UI following the lifecycle– administrators can force a status change outside lifecycle• approval process– is outside the registry itself– just have property to state the policy and API/UI to do the updates– some operations may have their own complex workflow
  22. 22. 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
  23. 23. UKGovLD RegistryDemo• Add a new colour via form• Change its status• Update it• View history• Upload a complete concept scheme• Show registration of referenced entities
  24. 24. UKGovLD RegistryOutline• Background and motivation• Details– information model– core functionality– advanced topics– status• Applying it• Discussion and next steps
  25. 25. UKGovLD Registry Federation, delegation and namespacesreg:Delegatedreg:delegationTargetreg:NamespaceForwardreg:forwardingCode [0..1]reg:DelegatedRegisterreg:enumerationSubject [0..1]reg:enumerationPredicate [0..1]reg:enumerationObject [0..1]reg:Registerreg:FederatedRegisterreg:forwardingCode [0..1]
  26. 26. 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
  27. 27. UKGovLD RegistryReferenced entities/local/id/local-authorityRegistry External servicee.g. opencommunities.orgHosted by LA directly
  28. 28. 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 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
  29. 29. UKGovLD RegistryNamespace forward/local/id/local-authorityRegistry External web sitecould be anything
  30. 30. 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
  31. 31. UKGovLD RegistryFederated register/local/id/local-authorityRegistryFederated registry/local-authority/id
  32. 32. 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 [1]reg:enumerationSubject [0..1]reg:enumerationPredicate [0..1]reg:enumerationObject [0..1]
  33. 33. UKGovLD RegistryDelegated register/local/id/local-authorityRegistryExternal SPARQL service
  34. 34. UKGovLD RegistryDemo• Proxy namespace• Delegated register (if time)
  35. 35. UKGovLD RegistrySecurity model• authentication– OpenID (e.g. Google, Google profile)• authorization– permissions• Register, Update, StatusUpdate, Force, Grant, GrantAdmin• inherit down the tree• e.g.: Register,Update:/example/local– can grant to known user or anyone authenticated– bundled into roles• Maintainer – Update, Grant• Manager – Register, StatusUpdate, Update, Grant• Authorized – Register, Update, StatusUpdate - for experimental areas• Administrator - anything
  36. 36. UKGovLD Registry message queue infrastructure (tbd)• publish/subscribe on notification of changes– plug in audit trail recording– replicate to duplicate stores for read-only loadbalance– hook for workflow• scheduling analysis of registrations– e.g. analyse registered datasets to map andvisualize identifier usage
  37. 37. UKGovLD RegistryStatus• Proof of concept– API implementation build on top of Jena and Lucene– everything except federated search– UI based on simple templating– proxy mode handled by dynamic reconfig of external nginx– open source (license details to be agreed)• Remaining planned work– notification– registration of datasets– packaging and deployment instructions– optional: some GML rendering support?• Next steps– pilot applying it
  38. 38. UKGovLD RegistryConceptual architecturerouterrendererrequestprocessorusercredentialsroles andbindingsauthregistrycorelogicRegistryRDF storetext indexstyle andtemplatesexternalUIadminUIlogaudittrailstoreAPInginxproxyconfAPI
  39. 39. UKGovLD RegistryOutline• Background and motivation• Details– information model– core functionality– advanced topics– status• Applying it• Discussion and next steps
  40. 40. UKGovLD RegistryLocal authorities example• illustrated various options– maintain list in register• some might be managed in registry, LA can edit• some might be served by LA• some might be served by DCLG• single list supporting search, validation– DCLG run a registry service and federated (or justforward) part of namespace– DCLG maintain master list in triple store, usedelegated register
  41. 41. UKGovLD RegistryDataset registration• would like to know how identifiers are being usedand how they connect data sets• support registration of RDF data sets– queue separate analysis suite to extract usageinformation– create metadata– add these back into the registry record– support visual browse• POC does not include analysis and visualizationbut provides hooks to third party modules• e.g. Epimorphics InfoMap visualizer
  42. 42. UKGovLD RegistryDataset analysis
  43. 43. UKGovLD RegistryWMO application of Registrypublishing existing authoritativecode-tables as web-accessibleresources43
  44. 44. UKGovLD Registry WMO data exchange governanceWMO No. 306 Manual on Codes: the ‘crown-jewels’ of WMO … decadesof expert effort in developing and maintaining a ‘shared language’ fordescribing meteorological phenomena.44
  45. 45. UKGovLD Registry Model-driven data exchange standardsWMO data product specifications are being updated in line withcommunity best practice ; a model driven approach based on the ISO19100-series of International Standards enables a semantic model to beencoded in a variety of formats – including GML.This is very similar to the approach taken within INSPIRE.45GML/XMLdata products«conformsto»XML Schema 1.0Schematron .Validation schemaand rulesValidatabledata products******************************************************************«derivedfrom»Application Schema(aka ‘conceptual model’)Technology independent description ofcontent and structure of information tobe exchanged for a given applicationFullMoon
  46. 46. UKGovLD Registry Binding data model to WMO code-tables46Excerpt from BUFR edition 4 Code- and Flag-tablesIWXXM METAR/SPECI«CodeList»RunwayDepositsURI: values:vocabulary = “”extensibility = “none”«DataType»AerodromeRunwayState+ runway : Runway [0..1]+ cleared : Boolean [0..1]+ contamination : RunwayContamination [0..1]+ snowClosure : Boolean [0..1]+ depositType : RunwayDeposits [0..1]+ depthOfDeposit : DepthOfDeposit [0..1]+ brakingAction : BrakingAction [0..1]+ frictionCoefficient : FrictionCoefficient [0..1]
  47. 47. UKGovLD Registry Code-table as web-accessible register47
  48. 48. UKGovLD Registry Referencing terms from data products48
  49. 49. UKGovLD RegistryNAMESPACE FORWARD:publishing a simple ontology withinthe namespace of the registry49
  50. 50. UKGovLD Registry Pre-determined propertiesWMO code-tables (e.g. Common code-tableC-6: List of units) have a number of specificproperties defined …50
  51. 51. UKGovLD Registry Published definitions requiredTo represent the information from the code-tables in RDF we need toreference definitions of those properties …51
  52. 52. UKGovLD Registry A simple ontologyAs the properties support the definition of the code-tables themselves,the definitions are published within the namespace of the registry …52
  53. 53. UKGovLD Registry A simple ontology (with #frag IDs)Following de facto practice, the definitions are published using the#fragment identifier pattern …53
  54. 54. UKGovLD Registry Namespace forward (proxy)The #fragment identifier pattern means that the registry’s “/ID”‘containment’ pattern is not applicable – therefore we register theentire ontology as a single DELEGATED resource using a PROXY pattern54
  55. 55. UKGovLD Registry Namespace forward: configurationThe NAMESPACE FORWARD is configured using the web UI by anauthenticated user with appropriate permissions …(but can also be done programmatically via the RESTful API)55
  56. 56. UKGovLD Registry Externally managed HTTP server54.246.66.105 is an anonymous HTTP server (hosted on Amazon EC2)with content negotiation configured for HTML, RDF/XML and TTL – all ofwhich are provided as static resources …56UKGovLD Registryukgovld-registry.dnsalias.netApache2 +mod_negotiation54.246.66.105NGINX
  57. 57. UKGovLD Registry Tracking changes; version & historyThis approach enables one to track changes as new versions of theontology are published; with each new version published to a newdirectory one can amend the delegation target to update the registry.57
  58. 58. UKGovLD RegistryDiscussion• use cases for where to apply this?• missing features needed for these?• what would it take to pilot one?
  59. 59. UKGovLD RegistryLinks• Design notes and API details• Proof of concept deployment service guarantees
  60. 60. UKGovLD Registry
  61. 61. UKGovLD RegistryConvenient views• full RegisterItem/Register structure complex• versioning makes that a lot worse//registryRegisterVersionedThing//registry:1RegisterVersion//registry/_regRegisterItemVersionedThing//registry/_reg:1RegisterItemVersion//registry/regRegisterVersionedThing//registry/reg/_fooRegisterItemVersionedThing//registry/reg/foo(entity)//registry/reg:1RegisterVersion//registry/reg/_foo:1RegisterItemVersiondct:versionOfdct:versionOf dct:versionOfdct:versionOfreg:registerreg:registerreg:definitionreg:definition//registry/_reg:2RegisterItemVersion//registry:2RegisterVersion//registry/reg:2RegisterVersion//registry/reg/_foo:2RegisterItemVersion