finally a bnode with a uri

Naming Properties and Relations (comment)

A local comment to JeniT's post about predicate names
I was incapable of adding a comment to Jeni's interesting post about RDF predicate Names (markdown-related, my fault), so I'll quickly post it here, as I'm pondering similar things, too.

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:
I personally find "role-noun" easier to support in RDF apps than the older hasPropertyOf (now often considered anti-)pattern. And inverse properties are just painful, as they usually require some form of inference to streamline the user experience.

Not sure if that's helpful information, but for a project around semantic note-taking/logging, I played with different notations users might be comfortable with, for entering factoids using an unstructured input form (à la Twitter). I could identify the following patterns that still seemed to be acceptable (as shared/supported syntax). All of them can be implemented using role-noun predicates (assuming that predicate labels are similar to the predicate names):
  • 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)*
(There are more patterns, for things like tagging and typing, but the examples above are the predicate-related grammar rules).

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

Thanks for this post. I think there's a big difference between the hasProperty or hasPropertyOf anti-pattern and the use of a meaningful verb for a predicate, just as you point out. The choice might just come down to the (meaning of the) individual predicate: it's hard to think of a verb form of "father" that isn't "has father", but equally hard to think of an accurate noun form of "knows" that isn't something horrible like "known person".

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.
Comment by Jeni Tennison on 2009-09-15 21:24:37 UTC
Yeah, foaf:knows is the perfect counter-example for role-noun. (My tongue-in-cheek "hack" is "knowee", but even in the app's UI we use "contact" or something like that. So, full agreement in the general case: there are surely quite a few relations that work more intuitively as verbs, not nouns)
Comment by Benjamin Nowack on 2009-09-16 09:09:48 UTC
I like open.vocab.org's approach to naming properties. It suggests that whatever term you choose, it should drop nicely into "has ..." and "is ... of".
So for example, "father" fits in - "has father" and "is father of"; but "hasFather" and "fatherOf" stick out like sore thumbs.
Comment by Toby Inkster on 2009-09-21 10:45:08 UTC
Can anyone tell me how I can use Semantic Crunchbase to look up all of the Startup Companies in Houston? (also separate lookups for Service Provicers / VCs / People, etc. in Houston?)
Sorry, I am a blogger and a non-programmer. Any help is appreciated. Thanks!
Comment by Kurt Stoll on 2009-10-14 00:52:32 UTC
Hi Kurt, can't really provide support for Semantic CB, but http://bit.ly/HWhua might get you started. The data isn't very up to date, I'm afraid, a re-launch is planned, but I don't know when I'll find the time.
Comment by Benjamin Nowack on 2009-10-14 09:49:43 UTC
0 comments are currently in the approval queue.

Comments are disabled for this post.

Earlier Posts

Archives/Search

YYYY or YYYY/MM
No Posts found

Feeds