In her post, Jeni explores the issues around naming RDF terms. The community gathered a couple of experiences and suggestions in the last years, some entry points are:
- SUBJECT'(s)? PREDICATE (:|is) OBJECT
- OBJECT is SUBJECT'(s)? PREDICATE
- OBJECT is (the)? PREDICATE of SUBJECT
- SUBJECT has PREDICATE (:)? OBJECT
- (the|a)? PREDICATE(s)? of SUBJECT (is|are) OBJECT ((,|and|&) OBJECT)*
As soon as you add (has|is|of) to one PREDICATE, you get problems with the other notations, so role-noun seems to be a good fit.
Unfortunately, one (non-trivial) problem remains: People (and Web 2.0 apps) also like 'SUBJECT PREDICATE_VERB OBJECT' (e.g. "likes", "bookmarked", "said", "posted", "is listening to" ...) and I don't have a proper idea how to handle those automatically yet, other than hard-coding support for the typical social media verbs. It could be possible to use wordnet to detect verbs and derive a canonicalized form, and then model those patterns as activities (activity = liking, bookmarking, saying, posting, listening, plus ACTIVITY_PERSON and ACTIVITY_TARGET or somesuch). If anyone has a suggestion, I'd be happy to hear it.
Comments and Trackbacks
So maybe the answer is to have labels of different types, extending the ones that Ian pointed to, that explicitly indicate the type of the label -- singular-noun, plural-noun, singular-verb, plural-verb -- and to choose appropriate labels based on the context in which the label is being displayed or the sentence structure in which the label is used.
So for example, "father" fits in - "has father" and "is father of"; but "hasFather" and "fatherOf" stick out like sore thumbs.
Sorry, I am a blogger and a non-programmer. Any help is appreciated. Thanks!