I am using Apache Jena, and I need to use RDF reification to express hypothetical statements about facts. For example, consider this: Alex "assumes" Eva was born between 1980 and 1990
.
Suppose we express the fact that Eva's birth occurred between 1980 and 1990
like below:
@prefix sc: <http://www.my-schema.com>.
<http://www.People.com/Eva> a sc:Person;
sc:born_in [ a sc:interval;
sc:start_time [ a sc:date;
sc:has_value 1980 ];
sc:end_time [ a sc:date;
sc:has_value 1990 ]
].
See the graph below:
As you see, I use Blank Nodes
to model the facts that I want to express in my RDF graph. Also, I want to be able to make statements about these facts like, Alex supposes
...
After some research, I figured out I can use RDF reification to make statements about facts. I read this page regarding the Apache Jena support for reification.
However, the semantics of these reified statements are not clear to me. In other words, when it comes to reasoning, can Apache Jena reason over these statements? I am aware of SPARQL and query re-writing, but I am concerned with the support of reasoning.
For example, with respect to the above example, can I ask Apache Jena:
Give me people who have similar assumptions to Alex regarding Eva's
birth date.
Let's say, someone else assumed Eva was born between 1985 and 1995
and another one assumed Eva was born between 2000 and 2005
. Using the Apache Jena or any other framework, can we automatically reason over these statements?
If it is a broad question, then I appreciate it if someone elaborate a bit on the semantic interpretation of RDF reified statements. I couldn't find a good resource about it.