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

Reply via email to