Hi,

in addition to the comments of Dave:

On 03.02.23 11:16, Yang-Min KIM wrote:

OWL-B includes:
    Daughter is subclass of Children. (rdfs:subClassOf)
Minor: use singular form for class named, i.e. Child
    If X is Male and has Children Y, X is father of Y. (owl:inverseOf)

That doesn't sound like an owl:inverse statement, but more like an SWRL rule. An owl:inverse does only state property p is inverse of property q, thus, we can infer for any p(x, y) it also holds q(y, x)

Is it a rule or are those really OWL axioms? I doubt you can express that in OWL though without using SWRL. If it is SWRL, then you will a) use Pellet as reasoner or b) write that rule as a custom Jena rule

As Dave mentioned, you example ontology doesn't cover the domain you describe. At least I could find any entity denoted "father" or similar.


Lorenz

On 06.02.23 10:19, Dave Reynolds wrote:
To configure use of a reasoner with fuseki see https://jena.apache.org/documentation/fuseki2/fuseki-configuration.html under the section "Inference".

The reasoners are not graph-aware so the union of your ontology and your instance data all need to appear in the default graph. Either by loading them there directly OR by loading them as separate graphs and setting default union flag.

However, the link you provide to your ontology doesn't match your prose example in any way at all. In particular it seems to be a mix of skos and linkml (whatever that is) and I see virtual no OWL in in there.[*] Though it is a 1.3Mb turtle file so who knows what's lurking. So on the face of it there's no OWL to reason over and you won't get any useful results.

My advice would be to isolate a smaller test example of the kind of reasoning you are trying to do and check that programmatically see https://jena.apache.org/documentation/inference/index.html#OWLexamples

Then, if it seems like inference does work, you can tackle the separate problem of setting that up within fuseki.

Dave

[*] In particular there's no use of rdfs:subClassOf. There are 188 owl:inverseOf states but they are applied to things of type linkml:SlotDefinition which makes no sense at all.

On 03/02/2023 10:16, Yang-Min KIM wrote:
Dear Jena community,

I hope your day is going great.
I have a question about the ontology: we want to request an ontoogy data A that also import another ontology OWL-B.

e.g.

A includes:
     John is Male.
     John has a daughter called Monica.

OWL-B includes:
     Daughter is subclass of Children. (rdfs:subClassOf)
     If X is Male and has Children Y, X is father of Y. (owl:inverseOf)

What I want to query:
     Who is Monica's father?

Expected response:
     John


To get expected response, Jena needs to include OWL-B then manage implicit statement. However, I got results by explicit querying only: Who is John's daughter? -> Monica

I'm sure there is a solution since I see "The OWL reasoner" in <https://jena.apache.org/documentation/inference/index.html#owl>

Are there additional steps to include Ontology structure? (We are using Fuseki's API REST) Is it better to import OWL-B as a default graph or a named graph? and what if we have several OWL files to import?

P.S. here is an example of our OWL file, BIolink Model, downloadable via <https://github.com/biolink/biolink-model/blob/master/biolink-model.ttl>

Thank you for your time.


Reply via email to