Using explicit RDF Property -


i'm not sure how interpret semantics of following rdf triples. interpreting them correctly?

example a

subject - predicate - object tom     -    age    -   24  

i read predicate age has value 24. seems unintuitive. however, can read 24 related tom predicate age makes better semantic sense me.

example b

subject -   predicate    -  object tom     -  hasproperty   -    age age     -   hasvalue     -    24  

this conveys age property of tom. value of property 24. makes explicit how age relates tom.

in 1 example, age predicate, in other example, object. in both cases information encoded more or less same addition of explicit property in example b.

yes, interpreting them correctly.

both examples encode same information (namely age of tom 24). in first example, done via direct binary relation. rewritten in first-order predicate logic reads:

age(tom, 24) 

in second example, relation has been reified object, , reads

hasproperty(tom, age)  hasvalue(age, 24) 

an advantage of first approach is (obviously) shorter , more directly interpretable. possible advantage of second approach since relation age object, can additional things it. example in addition stating value (a number), add unit of measurement expressed in, adding simple additional statement:

hasunit(age, dogyears) 

or in triple-form:

age  - hasunit - dogyears 

of course, in second example, assuming tom has age. after all, if add knowledge called dick 26, , reuse relationship identifier age, we'd get:

hasproperty(tom, age) hasproperty(dick, age) hasvalue(age, 24) hasvalue(age, 26) 

now, how tell 24 , 26? can't, because they're both linked same relation object. in practice, when reifying relations in fashion, make relation object specific occurrence of relation. example:

hasproperty(tom, ageoftom) isa(ageoftom, age)  hasvalue(ageoftom, 24)  hasproperty(dick, ageofdick) isa(ageofdick, age)  hasvalue(ageofdick, 26) 

Comments

Popular posts from this blog

c - Bitwise operation with (signed) enum value -

xslt - Unnest parent nodes by child node -

YouTubePlayerFragment cannot be cast to android.support.v4.app.Fragment -