RDF has an explicit data model which contains the idea of resources that are connected together by predicates. This maps well to the entity and field model in Drupal. This is why the RDF mapping API was designed to use the array key 'predicate' to map an RDF predicate to a field.
I believe using the word 'predicate' to refer to bundles (which are explicitly handled as resources/entities in the RDF mapping API) could cause a DX issue. There is already a sizable amount of confusion when people try to understand RDF, so I worry that this will compound matters.
This has been brought up in other issues and in IRC. For example:
http://drupal.org/node/948946#comment-3774622
http://groups.drupal.org/node/60383
If Relation module wants to use a different data model, that is ok, but I worry about using explicit references to RDF when there is no clear way to integrate it with core's RDF Mapping API as far as I can tell. I would be happy to be proved wrong about this though, one less thing to send me into apoplexy.
Comments
Comment #1
naught101 commentedWe changed from the use of "predicate" to "relation_type" to refer to bundles a month or so ago, throughout the module and sub-modules. see #1170508: Kill $predicate!
If you can still find any instances of "predicate" refering to relation bundles in the actual relation module (not in old issues), please let us know, but I'm pretty sure this was fixed-before-reported.
Comment #2
Anonymous (not verified) commentedGlad to hear it, thanks for the update.
It is still used on the project page. I'll post if I see any other occurrences.
Comment #3
naught101 commentedAh yeah, just saw that. That was fixed in the CONCEPTS.txt, but I forgot to update the project page. Now fixed.
Comment #4
Anonymous (not verified) commentedIn the code block on the project page it still uses PREDICATE, easy to miss :)
Comment #5
naught101 commentedI didn't change that on purpose. That's not code, it's just an explanation using linguistic terms. I don't know if there's much I can replace that with.
Comment #6
Anonymous (not verified) commentedI would think that Relation Type would make more sense there, especially since it's used in documentation and code.
As chx said in the other issue, very few people know what the word predicate actually means, so beyond anything having to do with RDF, I think it would be a DX win to change it to something that is more intuitive.
Comment #7
ronald_istos commentedFWIW - I understand that some of the language is hard to replace (although RelationType sounds like a good alternative to predicate).
However, it might be worth considering adding a small warning that if what people are looking for is the ability to relate entities and to annotate those with RDFa so that they can run SPARQL queries this is probably not what they need.
I fully realize this is not your fault - just saying it would help - I already had to explain this a couple of times to people :-)
Comment #8
naught101 commentedGonna close this as it's generally fixed, and there's be massive doc changes since it was last visited. If there are any instances where this is still relevant, please re-open.