From W3C Wiki
Jump to: navigation, search

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?