2

1

What would be the good way of representing the date of start and end of employment for a person?

Use Cases:

  • Mr Smith has been employed by Acme Inc. from 2009-07-06 to 2010-06-05
  • Ms Harvey has been employed by Acme Inc. since 2005-04-03 (and she is still currently employed)

How to use it?

  • In a company keeping the record of employment of all employees? (useful when people have done small contracts, in and out a few times.)
  • Across companies, finding out people who have been in the same company at the same time (a bit like a temporal, theyrule.net)
  • Analyzing the tendencies of market transfer from one company to another. One employee leaves and 2 or 3 follow in the next months.
flag

3 Answers

1

There is a resume vocabulary you might consider. This suggests cv:startDate cv:endDate cv:isCurrent

where cv is http://captsolo.net/semweb/resume/cv.rdfs

For more details: Uldis Bojars. Resume ontology. Available at: http://purl.org/captsolo/semweb

link|flag
5

The approach we took in the org organization ontology was to have a separate resource of type org:Membership to represent the (n-ary) relation between a person and an organization. That way we can represent the temporal scope of the relation using org:memberDuring. We use the OWL Time ontology to represent the time period because that allows you say, for example, that one interval follows from another without knowing the exact dates.

link|flag
3

One way to do this would be to use generic "starts" and "ends" properties that you assign to a triple (or a named graph if you prefer) like this:

ex:ng { ex:smith foaf:worksFor ex:acme }
ex:ng :starts "2009-07-06"^^xsd:date ;
      :ends   "2010-06-05"^^xsd:date .

Or you could use a custom format for temporal intervals and write something like:

ex:ng :validDuring "[2009-07-06,2010-06-05]" .

which allows you to put several intervals during which the triples were true (e.g., Mr Smith was employed twice by the same company).

The advantage of this approach is that it is very generic, and you can even apply inferences on temporal labels. The disadvantage is that it needs named graphs or some kind of reification to which attach the temporal annotation, and such annotations are currently not well supported by implementations. Several research papers described temporal extensions of RDF, more or less along the line of what I present above [1,2,3] but I'm not sure what they have in terms of implementation, although I think (AFAICR) that [2] were trying to make something scalable and efficient for practical data.

  • [1] Gutierrez, C., Hurtado, C., and Vaisman, A. Temporal RDF. In Proceedings of European Conference on the Semantic Web (ECSW’05), pages 93–107, 2005.
  • [2] Pugliese, A., Udrea, O., and Subrahmanian, V. 2008. Scaling RDF with Time. In Proceeding of the 17th international Conference on World Wide Web (WWW'08), pages 605-614, 2008.
  • [3] Tappolet, J., and Bernstein, A. Applied Temporal RDF: Efficient Temporal Querying of RDF Data with SPARQL. In Proceedings of European Semantic Web Conference (ESWC'09), pages 308–322. 2009.
link|flag

Your Answer

Get an OpenID
or

Not the answer you're looking for? Browse other questions tagged or ask your own question.