Dominic Oldman ResearchSpace URI Generation Dominic Oldman ResearchSpace
Linked Data & URI Web Pages have web addresses. Cool URIs don’t change Web Pages have web addresses. Data has identifiers but we need to use Web http identifiers if we want to use the data on the Web. Once we have mapped data we need to transform it into Linked Data and apply unique identifiers.
Design Principles - Good URIs Use HTTP URIs Provide at least one machine-readable representation of the resource identified by the URI A URI structure will not contain anything that could change. URI Opacity – are semantically meaningless. Don’t create URIs expecting them to be used as such.
UK Gov. Guidelines Designing URI Sets for the UK Public Sector – Oct 2009
Use cases – CH records I have an identifier for a particular entity For example, when I have an object ID I can use it for my URI. If an object has an identifier of 123654 then my URI for that object is: id/object/123654 If I have another piece of information about the object and no other objects, then I can use the base object ID for other URIs. For example, the dimension for the objects are for this object, therefore I can say: id/object/123654/dimension/height Or perhaps id/object/123654/dimension/1 Don’t mistake id/object/123654/dimension/height as semantically identifying a height. It is not, it is just a convenient way of creating a unique URI and is equivalent to id/object/123654/dimension/1
Use cases, cont The Dimension may have a dimension unit. E.g., cm, mm, kg, etc. These are not unique to the object and are not identified by the object. Therefore you should not use id/object/123654/dimension/1/cm The unit value is terminology and may have its own identified. E.g. id/units/1234 Or if the unit hasn’t got a unique ID then if it is unique across the database then id/units/cm, or id/units/mm, or id/units/kilograms.
Summary Where something has a unique ID across the database then use it. Where I don’t have a unique ID but have a term that is used consistently across the database, then http://data.researchspace.org/id/thesauri/embossed Where I don’t have a unique ID and it is unique to the record and/or I can’t say whether it might be used again for a different purpose, then use the appropriate entity ID as the root. http://data.researchspace.org/id/object/1234654/dimension
Make up a unique id using the object id
3M URI Generator = data.researchspace.org/{id}/{concept}/{reference} <generator_policy> <generator name=“MyIdentifierURI" prefix=“Rspace"> <pattern>{id}/{concept}/{reference}</pattern> </generator> = data.researchspace.org/{id}/{concept}/{reference}
Fill in Generator Form <generator_policy> <generator name=“MyIdentifierURI" prefix=“Rspace"> <pattern>{id}/{concept}/{reference}</pattern> </generator>
= http://data.researchspace.org/id/object/reference Reference = XPATH statement “priref/text()” REMEMBER PATH is from the Domain source //record/priref/text()
Dimension Example with UUID Mapping Table URI Generator
Finish with Dimension Type