OK, I'm convinced about ThingsVersusTheirNames. How do I relate people to their names?

  • foaf:name is out there in the VocabularyMarket. contact:fullname too, if you prefer HashURIs to SlashURIs. (see also: internationalization issues raised in response to OWL requirements. fullName and sortName seem to be better than first/last or even surname/givenName)
  • cyc:nameOfAgent is kinda handy (LinkMe)
  • examples from vcard: FN:Mr. John Q. Public\, Esq. , N:Stevenson;John;Philip,Paul;Dr.;Jr.,M.D.,A.C.P.

What property should I use to name other ordinary places and things?

  • rdfs:label is often used, though it sorta connotes that its subject is an RDFS class or property or some such.
  • rdf:value is sometimes used for this, partly to save the trouble of declaring the RDFS namespace to get to label
  • dc:title is sometimes stretched beyond books and works and stuff and used to name all sorts of stuff
  • cyc:nameString works.
  • TopicMaps use basename, sortname, displayname, plus scopes; e.g. [texas = "TX" / usps]

DanC goes back and forth on this one in TravelTools and GeoInfo. In the palm datebook KB, I used

pdb:fieldName u:subPropertyOf u:label;
 u:comment "name as used in the P5Palm API".

What about properties to relate things to URIs for those things

  • log:uri example, please. use with care! It's a sharp instrument. perhaps one for CwmTips
  • dc:identifier hmm... is log:uri an rdfs:subPropertyOf dc:identifier?
  • see also SubjectIndicator

How should I implement controlled vocabularies?

and in usps, DanC used literals, not URIs, for the controlled namespace of U.S. states:

p:stateAbbr s:label "state abbreviation";
  a ont:UniqueProperty, ont:UnambiguousProperty;
  s:comment "cf. Appendix B. Two-Letter State and Possession Abbreviations";
  s:domain p:State.

This allows you to exploit the fact that "TX" != "KS" is known at the RDF core level, whereas to establish <states#TX> != <states#KS> you need stuff like owl:differentFrom and such.

On the flip side, for timezones, DanC used URIs, e.g.

How can I use naming properties to tell that things are the same?

  • use owl:[[InverseFunctionalProperty]]. e.g. statecode, iata codes, log:uri
  • @@discuss the cost of dropping the unique names assumption, equality reasoning, etc.

How can I use naming properties to tell things apart?

  • use owl:[[FunctionalProperty]], as in mtgppl.

What if somebody changes their name? How do I model time?

  • @@discuss contexts and lifing, ala Guha's thesis
  • consider cyc:subAbstrac
  • sumo seems to use holdsIn
  • see discussion of holdsIn vs. subAbstract in www-rdf-calendar (LinkMe)


more on controlled vocabularies, using string literals, etc.

hmm... HTML anchor text often provides a name... there seem to be two (good) styles: <a href="chapterOne">previous</a>, where the link text is an rdfs:label of the relationship between the source and destination of the link, and <a href="chapterOne">chapter one</a> where the link text is more like an rdfs:label for the target of the link... though it tends to be a context-sensitive name; i.e. you don't need to give the full global title every time you refer between nearby pages. hmm... is this what TopicMaps scopes and names are all about?

Last modified on 14 December 2004, at 09:49