Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inference does not properly handle subtypes, especially for multiple parent types #188

Open
franzlst opened this issue Jan 8, 2021 · 1 comment

Comments

@franzlst
Copy link

franzlst commented Jan 8, 2021

In our custom OWL ontology, we have defined the following type hierarchy (excerpt):

owl:Thing
	Entity
		Physical
			Object
				Agent
					Robot
						LbrArm
							Lbr3
							Lbr4
				SelfConnectedObject
					CorpuscularObject
						Artifact
							Device
								Robot
									LbrArm
										Lbr3
										Lbr4

Here Robot shows up twice in the hierarchy, as it is defined as subtype of both Agent and Device:

<rdf:Description rdf:about="http://purl.org/ieee1872-owl/cora-bare#Robot">
    <rdfs:subClassOf rdf:resource="http://purl.org/ieee1872-owl/sumo-cora#Agent"/>
    <rdfs:subClassOf rdf:resource="http://purl.org/ieee1872-owl/sumo-cora#Device"/>
</rdf:Description>

Now I want to get all information about Lbr3:

SELECT  ?s ?p ?o
WHERE {  <https://ontology.SHORTENED.de/SHORTENED#Lbr3> ?p ?o  }

On my system, I get the following result:

s p o
rdf:type rdfs:Class
rdf:type owl:Class
rdfs:subClassOf http://purl.org/ieee1872-owl/cora-bare#Robot
rdfs:subClassOf https://ontology.SHORTENED.de/SHORTENED#LbrArm
rdfs:subClassOf https://ontology.SHORTENED.de/SHORTENED#Lbr3
rdfs:subClassOf rdfs:Resource

I would have expected that the result includes also subClassOf entries for owl:Thing, Entity, Physical, Object, Agent and Device, but the entries stop at Robot.

Related to this issue is when querying information about an instance of Lbr3, named example_lbr:

SELECT  ?s ?p ?o
WHERE {  <https://ontology.SHORTENED.de/SHORTENED#example_lbr> ?p ?o  }
s p o
  rdf:type http://purl.org/ieee1872-owl/cora-bare#Robot
  rdf:type owl:NamedIndividual
  rdf:type https://ontology.SHORTENED.de/SHORTENED#LbrArm
  rdf:type https://ontology.SHORTENED.de/SHORTENED#Lbr3
  rdf:type t744
  rdf:type t752

The result shows two unnamed nodes (t744 and t752). I could imagine that these relate to Device and Agent. But what don't they have names and why are the types not listed up to Thing?

@franzlst
Copy link
Author

Interestingly, a colleague of mine has the very same setup (including the *.properties file). For the same query

SELECT  ?s ?p ?o
WHERE {  <https://ontology.SHORTENED.de/SHORTENED#example_lbr> ?p ?o  }

his result shows the full type hierarchy:

p o
rdf:type http://purl.org/ieee1872-owl/sumo-cora#Artifact
rdf:type http://purl.org/ieee1872-owl/sumo-cora#CorpuscularObject
rdf:type http://purl.org/ieee1872-owl/sumo-cora#Entity
rdf:type http://purl.org/ieee1872-owl/sumo-cora#Object
rdf:type http://purl.org/ieee1872-owl/sumo-cora#Physical
rdf:type http://purl.org/ieee1872-owl/sumo-cora#SelfConnectedObject
rdf:type http://purl.org/ieee1872-owl/cora-bare#Robot
rdf:type owl:NamedIndividual
rdf:type https://ontology.SHORTENED.de/SHORTENED#LbrArm
rdf:type https://ontology.SHORTENED.de/SHORTENED#Lbr3
rdf:type t1053
rdf:type t1122

So in summary, there are three issues here:

  • on my setup, the inference regarding type hierarchy is not complete
  • the inference for the same (what else could be different?) setup is inconsistent
  • unions do not show up as named nodes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant