3 ms·
Your first example takes <brian> parentOf <bct> <brian> name 'Brian' <bct> name 'Brendan' and deduces 'Brendan' hasParentNamed 'Brian' How i
by cousin_it 19y ago
Your first example takes
<brian> parentOf <bct>
<brian> name 'Brian'
<bct> name 'Brendan'
and deduces
'Brendan' hasParentNamed 'Brian'
How is this substantially different from the second example? Forgive me if I'm thick; I'm honestly trying to understand.
- bct 19y agoIt's not deducing a third property "hasParentNamed". It's joining the two graphs so that you can do a query like this: SELECT ?parentName WHERE { ?child name 'Brendan' ?parent parentOf ?child ?parent name ?parentName } to find the name of Brendan's parent. You're being quite patient with me, thanks. :)
- cousin_it 19y agoStill not getting it, here's your second example in that syntax: SELECT ?son WHERE { <brian> parentOf ?son ?son gender <male> } What's the fundamental difference? That one example yields a new RDF triple, and the other yields a query result? Surely this is just a matter of representation.
- bct 19y agoGood point. I think you've changed my mind about the utility of inferencing :). The difference between querying and inferencing isn't what I was trying to emphasise, though. My point was the difference between being designed for making queries/inferences within a dataset, and being designed for joining distinct datasets. Querying within a dataset is easy: SQL, XPath, XQuery, LINQ, etc. You can write rules for transforming any data model that you can query. RDF isn't anything special in these areas (though I do think that SPARQL is an awfully nice query language). What it gives you is a way to link and merge datasets.