-
Notifications
You must be signed in to change notification settings - Fork 11
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
Retaining non-SKOS information #728
Comments
Interesting question. Not something we've worked on. Currently, anything that can't be passed through a skosprovider is dropped. It would require allowing skosproviders to retain extra info that doens't map directly on the skosprovider interface. Presumably as some form of RDF that gets passed around. Some aspects might benefit from a more structured way, such as allowing skos-xl labels. What do you generally keep on such a label? |
In the example above, the skosxl labels are used to differentiate between labels via type, for example for displaying different labels in different applications. If you have multiple Sidenote: because all data is stored in a relational database with ORM, these kind of changes are difficult to do. I see little reason not to use a triple store to simply store all data in RDF/SKOS. In that scenario, data would not need transformation and there would be no need to drop data. But it would be quite the architectural change. |
The ORM isn't the only problem. The ecosystem depends on providers mapping input to a certain structure and outputting that again. This can be very powerful, anything that implements the provider interface can be given to the RDFProvider and turned into RDF, but it does mean that anything that's not included in the interface isn't available for the next provider. Even if we wrote a TripleStoreProvider, it wouldn't be able to pass anything not defined in the interface. So, the extra data would be dropped or couldn't be accessed in other places. Still, it seems like a good addition to the skosprovider domain model to allow it to store any other statements that don't map to the domain model in https://skosprovider.readthedocs.io/en/latest/api.html#module-skosprovider.skos So, that would require a change there. I would make it a JSON-LD attribute, since that can be handled by pyld, which is already included in the base skosprovider package and doesn't require rdflib (which is or used to be difficullt to install due to c bindings). I've always tried to keep the basic skosprovider a very light install. That way, extra statements can be added to a concept, collection or conceptscheme. People using the regular python code and the basic stuff (labels, notes, relations and so) can safely ignore it but to other people it doesn't get lost and it ensure that reading a rdf skos file through skosprovider_rdf and dumping it again retains all information. |
Started a discussion on the skosprovider interface at OnroerendErfgoed/skosprovider#119 |
Thanks @koenedaele , I appreciate the effort and sorry about the naive assumptions ;) |
I was thinking some more about this recently: if there would be a |
Quick question: we often have non-skos constructs mixed into our conceptschemes to further describe concepts.
This is more or less limited to:
When importing this, this information is ignored, but is it also dropped? Can I get it back when exporting?
The text was updated successfully, but these errors were encountered: