On Fri, Nov 22, 2024 at 4:48 AM Andy Seaborne <a...@apache.org> wrote: > What's the use case?
I'm working on a TDB backed "BeliefBase" to use with AgentSpeak (Jason) agent programs. Beliefs there look a bit like Prolog predicates, so you can have something like married(tommy,gina) to say "Tommy and Gina are married". And the arity can, of course, go higher - arbitrarily high as far as I know. Anyway, I had originally thought that I might want to use Reification as part of my approach to modeling this, but in the end I realized it actually makes more sense to have a concrete, identifiable "base" Resource for the arity-0 version of the belief, and then additional Statements that "attach" the additional Terms using a Property. Right now I'm using RDFS.member, although that's probably not right. :-) That said, I've now come back to the Reification thing for a slightly different reason. I have triples now that look like this: ---------------------------------------- | x | y | z | ================================================================================================================================================= ======================================== | <http://ontology.fogbeam.com/belief/161e3e20-7453-4377-9c27-23267531c015> | <http://ontology.fogbeam.com/belief/BDIBelief> | <http ://ontology.fogbeam.com/belief/foobar> | | <http://ontology.fogbeam.com/belief/161e3e20-7453-4377-9c27-23267531c015> | <https://ontology.fogbeam.com/predicate/predicateIndicator> | "foob ar/2" | | <http://ontology.fogbeam.com/belief/161e3e20-7453-4377-9c27-23267531c015> | <https://ontology.fogbeam.com/predicate/arity> | "2" | | <http://ontology.fogbeam.com/belief/161e3e20-7453-4377-9c27-23267531c015> | <http://www.w3.org/2000/01/rdf-schema#member> | "1.0" | | <http://ontology.fogbeam.com/belief/161e3e20-7453-4377-9c27-23267531c015> | <http://www.w3.org/2000/01/rdf-schema#member> | "20.0 " | ------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------- and when I load the Beliefs from the triplestore I'd like to make sure the embedded terms in a belief like foobar(1,20) show up in the right order. So now I'm wondering if it might make sense to reify one of the Statements like <http://ontology.fogbeam.com/belief/161e3e20-7453-4377-9c27-23267531c015> | <http://www.w3.org/2000/01/rdf-schema#member> | "1.0" so I can add a "termIndex" Property. I could use the same pattern of explicitly create a concrete resource for each Term and everything, but it feels like it would complicate the code a lot to do that. Anyway, I'll keep experimenting with this and see what I can cook up. Any suggestions are greatly appreciated though. > RDF 1.2 (RDF-star) may be what you are looking for. It is reification, > in the abstract sense. It differentiates between the use of a triple, > and the abstract concept of a triple as a concept; all triples "exist", > what matters for provenance or claims is when they are used in a graph. OK, I'll have to do some reading on that. I've been away from Jena / RDF / SemanticWeb stuff a bit for the past few years until recently and wasn't familiar with this until now. But from this blurb I found online "RDF-star allows descriptions to be added to edges in a graph such as scores, weights, temporal aspects and provenance to edges in a graph." This sounds like exactly what I'm trying to do. Phil