Hello,
Our project has progressed to the point where we are reliably storing both TBox and ABox triples, and in a named graph as well as background. At this stage we are using reasoning successfully too, albeit for the simplest use case of performing queries using class hierarchies.
We now wish to map across publicly available ontologies. That is, we wish to map our proprietary classes to public domain classes. For those on the list familiar with medical applications, a few of the desired mappings would be to SNOMED-CT and FHIR, for examples, but in general to a heterogeneous set where definitions may be in common but structured and named differently. By way of illustration, an example of mapping two public ontologies similar to our desired use case:
MedDRA
meddra:10027599 rdf:type meddra:MedDRAConcept.
meddra:10027599 rdfs:label “Migraine”.
SNOMED CT
snomed:37796009 rdf:type snomed:SNOMEDConcept.
snomed:37796009 rdfs:label “Migraine
(Disorder)”.
To perform the mapping, we would assert the following triple in the database:
meddra:10027599 owl:sameAs snomed:37796009.
Whereas I could put them all in the same graph, I have been of the belief that maintaining them would be easier and less "jumbled" to use separate named graphs for each ontology. A less superficial reason would be to avoid the overhead of inference being across all ontologies every time; in general, a given query or operation would only need to map from our proprietary to one of, rather than all of, the public ones. The application would in general need multiple, but "one query at a time", and my understanding is that Stardog allows queries to be scoped to specific graphs rather than always being all graphs. It does depend on a given query allowing multiple explicitly identified graphs in its scope (such that graphs not so named would not participate in the given query).
Am I on the right track?
Thank you,
Andy