ehess:Doctorant
a owl:Class ;
rdfs:label "PhD Student"@en-US ;
rdfs:label "Doctorant.e"@fr-FR ;
dcterms:description "https://fr.wikipedia.org/wiki/Doctorant"@fr-FR ;
rdfs:subClassOf vivo:GraduateStudent ;
rdfs:subClassOf
[ a owl:Class ;
owl:intersectionOf
( foaf:Person
[ a owl:Restriction ;
owl:onProperty vivo:relatedBy ;
owl:someValuesFrom vivo:AppartenanceEnTantQueDoctorant
] )
].
< http://data.ehess.fr/individual/n7szb84w5x> <http://vivoweb.org/ontology/core#relatedBy> <http://data.ehess.fr/individual/n1170>
<http://data.ehess.fr/individual/n1170> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.ehess.fr/ontology/vivo#AppartenanceEnTantQueDoctorant>
<http://data.ehess.fr/individual/n1170> <http://vivoweb.org/ontology/core#relates> <http://data.ehess.fr/individual/7tz7w75uo>
<http://data.ehess.fr/individual/n1170> <http://vivoweb.org/ontology/core#relates> <http://data.ehess.fr/individual/n7szb84w5x>
Everything is normal on the data side.
But even though I manually ran "recompute inferences" several times, the "Doctorant" type wasn't inferred...
1/ Are we beyond the capabilities of Vivo's inference engine or did we make a mistake in the owl?
2/ Does the inference engine run by itself when you modify a record or should wa call /recomputeInferences from a cron?
3/ Does anyone know the syntax to limit the attribution of the "Doctorant" type to people who belong as Phd students to a laboratory currently (considering start/end date)
Sorry for the complexity of our case.
Joachim
Hi Joachim,
While VIVO’s inferred triples are updated incrementally as a listener detects changes to the data, this kind of inference is beyond the scope of VIVO’s built-in reasoning. If you do want to make the inference you describe with a reasoner that’s capable of it, it looks like you’ll want to change your axioms so that Doctorant is equivalent to the intersection, not a subclass of it. Otherwise, just being a member of the intersection class doesn’t automatically imply being a member of the subclass. If you’re feeling adventurous, you could experiment with implementing the edu.cornell.mannlib.vitro.webapp.reasoner.ReasonerPlugin class to do your own custom triple listening and inference. (The plugin classes are enabled in WEB-INF/resources/reasoner_plugins.txt.) You could also experiment with connecting VIVO to a triple store with its own built-in reasoning.
That said, I think you may end up wanting to rethink this approach, and your question about current laboratory membership hints at the general problem. What you’re looking for there is a kind of non-monotonic reasoning, which is incompatible with OWL: e.g., you want to remove the inference that someone is an instance of the Doctorant class when a new assertion is added about the end date of their laboratory membership. That works fine with traditional database semantics, but doesn’t work in the knowledge base where we can always infer that an end date exists for any time interval, even if we don’t have an explicit triple (yet) recording what that end date actually is. All of VIVO’s existing legacy subclasses of Person are likewise problematic and are a well-known area for future ontology improvement. Things like Doctorant or Faculty Member or Librarian are really roles that are realized during the course of a person’s lifetime, not classes the person is an instance of.
Brian
De la: vivo...@googlegroups.com <vivo...@googlegroups.com>
În numele J. Dornbusch
Trimis: miercuri, 18 martie 2020 11:44
Către: VIVO Tech <vivo...@googlegroups.com>
Subiect: [vivo-tech] Vivo not inferring a type
--
You received this message because you are subscribed to the Google Groups "VIVO Tech" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
vivo-tech+...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/vivo-tech/d062c850-1664-4980-9f36-e3716b598b5f%40googlegroups.com.
Hi Joachim,
While VIVO’s inferred triples are updated incrementally as a listener detects changes to the data, this kind of inference is beyond the scope of VIVO’s built-in reasoning. If you do want to make the inference you describe with a reasoner that’s capable of it, it looks like you’ll want to change your axioms so that Doctorant is equivalent to the intersection, not a subclass of it. Otherwise, just being a member of the intersection class doesn’t automatically imply being a member of the subclass. If you’re feeling adventurous, you could experiment with implementing the edu.cornell.mannlib.vitro.webapp.reasoner.ReasonerPlugin class to do your own custom triple listening and inference. (The plugin classes are enabled in WEB-INF/resources/reasoner_plugins.txt.) You could also experiment with connecting VIVO to a triple store with its own built-in reasoning.
That said, I think you may end up wanting to rethink this approach, and your question about current laboratory membership hints at the general problem. What you’re looking for there is a kind of non-monotonic reasoning, which is incompatible with OWL: e.g., you want to remove the inference that someone is an instance of the Doctorant class when a new assertion is added about the end date of their laboratory membership. That works fine with traditional database semantics, but doesn’t work in the knowledge base where we can always infer that an end date exists for any time interval, even if we don’t have an explicit triple (yet) recording what that end date actually is. All of VIVO’s existing legacy subclasses of Person are likewise problematic and are a well-known area for future ontology improvement. Things like Doctorant or Faculty Member or Librarian are really roles that are realized during the course of a person’s lifetime, not classes the person is an instance of.
Brian
De la: vivo...@googlegroups.com <vivo...@googlegroups.com> În numele J. Dornbusch
Trimis: miercuri, 18 martie 2020 11:44
Către: VIVO Tech <vivo...@googlegroups.com>
Subiect: [vivo-tech] Vivo not inferring a type
Hello everyone,
In our local ontology, we want to infer that as long as you belong to a laboratory as "doctorant" (Doctorant = PhdStudent, AppartenanceEnTantQueDoctorant = MembershipAsPhdStudent), you are a Doctorant.
ehess:Doctorant
a owl:Class ;
rdfs:label "PhD Student"@en-US ;
rdfs:label "Docto...@fr-FR ;
To unsubscribe from this group and stop receiving emails from it, send an email to vivo...@googlegroups.com.