OKMImport
From MWCSWiki
A possible HRN naming strategy:
- Object HRNs:
- Look at all the data in the import, and determine the set of all resources referred to. (The resource set.)
- For each resource in the resource set, give it an HRN and remove it from the resource set if any of the following predicates are present for it, in order:
- rdfs:label
- foaf:name
- dc:title
- other stuff?
- Repeat until nothing left in the resource set:
- Pick an element from the resource set.
- Present all its known properties to the user, and ask which one to use as HRN.
- For all other elements in the resource set that also have that property, use it as the HRN too.
- Remove all thusly labeled resource from the resource set.
- Predicate HRNs:
- If present, use an actual label for the predicate as the URI.
- Use the "Fragment" part of the URI for the predicate.
- If there is a collision, ask the user for an HRN for it.
- Role HRNs:
- If present, use an actual label for the predicate as the URI.
- Use the "Fragment" part of the type's URI for the role name.
- If there is a collision, ask the user for an HRN for it.
Handling roles
- Any triple with no domain we put in the default RolePlayer.
- Any triple with exactly one domain makes us excited. We create a Role (if not already created; see naming rules above) and create a RolePlayer for that resource and stick that field/relationship in that RolePlayer.
- Any triple with more than one domain makes us sad. We just put it in the DRP. (default RolePlayer.)
Provenance
- Every triple, except HRN-related triples, gets reified with divergent data tags. The user has the opportunity to give a name for the source.
Etc
- We don't handle collections at all yet. Barf if you see any.

