-
Notifications
You must be signed in to change notification settings - Fork 22
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
Data broken when added after matching "rdfs:subClassOf" declaration. #706
Comments
Hey @Yaakov-Belch! I've investigated, reproduced, and created a specific bug ticket that should address this issue. Just to give you some insight into what's going on under the hood, I found two separate obstacles when investigating this. {
"@context": {
"rdfs": "http://www.w3.org/2000/01/rdf-schema#"
},
"ledger": "fluree-jld/387028092978056",
"insert": [
{
"@id": "Humanoid",
"@type": "rdfs:Class"
},
{
"@id": "Yeti",
"@type": "rdfs:Class", // added this line
"rdfs:subClassOf": { "@id": "Humanoid" }
},
{
"@id": "Person",
"@type": "rdfs:Class", // added this line
"rdfs:subClassOf": { "@id": "Humanoid" }
}
]
} Here, you can see that we're explicitly telling Fluree that Yeti and Person are The second obstacle I found while investigating is that after making the above update, and transacting the data in the order you specified (ontology, then data) the inferencing query still does not return Persons and Yetis when querying for Humanoids. This bug is captured by the ticket I created and should be resolved soon. |
Short description: When you define an ontology containing "rdfs:subClassOf" declarations before adding the data --- then any matching new documents will be broken. They cannot be found by FlureeQL queries. This implies that "rdfs:subClassOf" cannot be used in most practical use cases.
How to reproduce the bug: One way is to create a new data set on https://data.flur.ee/ and execute three cells in the Quick Start Guide in the following order:
By contrast, when you execute these three steps in their original order (add data first, define ontology later, query last), you will get responses including Yetis and Persons.
Here are the four steps spelled out:
Define the ontology:
Add the data:
Search for Humanoids:
This query returns an empty set:
[]
.Search for Yetis:
This query also returns an empty set:
[]
.This indicates that the ontology is not just missing -- but it is corrupting the data.
The text was updated successfully, but these errors were encountered: