-
Notifications
You must be signed in to change notification settings - Fork 18
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
Allow empty collections #570
Comments
The issue is in |
gist:OrderedCollection
gist:Collection
gist:Collection
I agree that empty collections are useful. It could be a queue that changes over time, and might be empty. |
It robs |
I'm working on this issue now, and I'd like to get feedback on 3 things: (1) To allow for empty collections,
Like what was said in previous comments, every owl class is a subClass of the class restriction above, so it's inert. However, it (a) establishes a pattern for creating subclasses and (b) it hints that the (2) I'm assuming we also want to make empty groups possible, but I have a question about
which (a) does not allow for empty groups and (b) allows for non-person members of groups. The skos:definition suggests it should not allow for non-person members: (3) This one should be it's own issue, but probing whether it should be raised or not. Should |
We are moving in the direction of SHACL instead of 'inert' axioms. Other examples are min 0 restrictions. The idea is that hints can be placed in annotations. We now use
The use of the word 'grouping' in the definition conflicts with gist:Group. I propose to get rid of gist:Group. I have never used it. If we did want it, it should have a more specific name, such as GroupOfPersons. It would be defined as a subclass of gist:Collection and have an allValuesFRom restirciton with gist:Person as the filter class. But I cannot see any reason to keep it. |
Thanks @uscholdm. I think what you've said about gist:Collection is correct. I suspect you're right about eliminating |
I am not sure about empty groups as opposed to collections. Let's hold off on changing it and add an issue to determine whether Group should be removed. Then it's a moot issue. The only problem with allowing empty collections is that I also agree with your proposed restriction on |
Regarding empty collections: we all know that mathematically a set may have no members. But we are dealing with the real world: are there use cases for empty collections? |
There's an imagined use case in the initial comment, though I'm not confident it really motivates allowing for empty Collections. To say there's a collection that hasn't been populated yet is very different from saying there's an empty collection. @rjyounes we discussed this issue when you were out of town, but I'd like to revisit it again to make sure we really want to do this. |
Examples of empty Collections:
|
Understood that these are examples of empty collections, but what I'm wondering is if we ever have a need to model them. @wslooney I don't understand your distinction between an empty collection and one that hasn't been populated yet, from either a logical or a modeling perspective. Yes, we will discuss this again today. |
A knowledge graph reflect the state of knowledge at a moment in time, not the state of the world at a moment in time. In the case of the university gradebook that hasn't been populated yet, I'm thinking of like an even that hasn't started yet. That is has no hasMember relations reflects the knowledge that we don't yet have about who the members are, it doesn't reflect that its a memberless gradebook. I grant that there may be other cases however where we can't think of this way. For example for inventory, we may have a collection grouping of all the eggs and the grouping gets updated each day with the time of the update and number of eggs at the time of the update. If it's sold out the grouping is empty, and it's not matter of temporality. |
The conceptual difference is clear, but any empty collection is represented in the graph in the same way: a The crux of the issue is still whether we have a use case for empty collections. |
Decision: Allow empty collections, meaning:
|
Changes inferencing in a way that no one is likely to care about, so we don't consider this a major change. |
Fixed in gist 11.1.0. |
This was discussed during the gist overview during the 2021 Summit.
The empty set (and by extension, empty list) is an important concept and widely useful.
For a use-case, imagine there were a university professor that had a course, and wanted to keep an
OrderedCollection
of students with the order basis being their grade (0-100). For administrative purposes, it would be nice to add the course into the data, and give it this ordering, before actually having students with grades.Note that in the above example, student-with-grade would be the proxy object for student. The course might be full of students, though none of them have grades yet. The structure of having an
OrderedCollection
would be useful at that moment.The current implementation defines a
gist:OrderedCollection
as something that hasOrderedMember
's, but perhaps an alternative definition defines the fact thatgist:OrderedCollection
's contain 0 or moreOrderedMember
's. This keeps the scope to beingOrderedMembers
, but might also include emptiness.The text was updated successfully, but these errors were encountered: