PropertiesForNaming
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. http://www.w3.org/2002/12/cal/tzd/America/Chicago#tz
.
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?