0

I'm working on a transformation work in which I need to transform a property graph dataset into a RDF dataset. There are so many n-ary relationships that need to be traited as a class, but I do not know how to affect an unique identification on these relations. I tried to use the row index but I've got more than one file on this work so this can't work. So I would like to know how do you affect an unique identification to relationships, if the URI is the solution, how do we do this in OntoRefine mapping? Thank you for your answers.

Lee

1 Answers1

1

There are several ways to address this:

  • Ideally, use some characteristics of the related entities to make a deterministic URL. Eg if you're making a position (membership) node between a person and an org that involves a mandatory role and start date, you could use a URL like org/<org_id>/person/<person_id>/role/<role_id>/date/<date>
  • Use a blank node. In that case you don't need to worry about a URN
  • Use the row index if you prepend it with the table/file name (as a constant)
  • Use the GREL function random(). It doesn't produce a globally unique identifier, but if you ask for a large enough range, it'll be unique with a very high probability
  • Use a Jython function, as shown at How to create UUID in Openrefine based on the MD5 hash of the values
  • If you do your mapping using SPARQL, then use the builtin uuid() function
Vladimir Alexiev
  • 2,477
  • 1
  • 20
  • 31