-
Notifications
You must be signed in to change notification settings - Fork 21
Adding new property hasFirstMember
. Resolves #549.
#667
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
Conversation
skos:prefLabel "has first member"^^xsd:string ; | ||
skos:scopeNote "Given the open-world assumption, the absence of a predecessor does not entail that an ordered member is the first member of an ordered collection. This property is used to explicitly indicate the first member."^^xsd:string ; | ||
. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks nearly perfect. We didn't mention this at the meeting, but it occurs to me you could also add a restriction on OrderedCollection
to the effect that it is either empty or has a first member. (Note that due to OWA the first member doesn't have to be stated.)
A little nitpicky, but most commonly I see the OWA spelled "Open World Assumption" rather than the hyphenated lowercase version, though I know this is also used.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For OrderedCollection
, maybe something like the following would work? If so, should I go ahead and include in this PR?
gist:OrderedCollection
a owl:Class ;
owl:equivalentClass [
a owl:Class ;
owl:intersectionOf (
gist:Collection
[
a owl:Restriction ;
owl:onProperty gist:hasMember ;
owl:allValuesFrom gist:OrderedMember ;
]
[
owl:unionOf (
[
owl:complementOf [
a owl:Restriction ;
owl:onProperty gist:hasMember ;
owl:someValuesFrom gist:OrderedMember ;
] ;
]
[
a owl:Restriction ;
owl:onProperty gist:hasFirstMember ;
owl:someValuesFrom gist:OrderedMember ;
]
) ;
]
) ;
] ;
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure I follow; it looks like it is literally saying the following:
skos:definition "A collection that only has ordered members and either has a first member that is an ordered member or has no members that are ordered members."^^xsd:string ;
Is this your intention? A slightly simpler alternative to complement would be to use max cardinality of 0
The complement is not correct: you need to use owl:Thing instead of gist:OrderedMember to say that the set has no members. Otherwise the complement includes things which have objects other than OrderedMembers as members. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See comments.
@rjyounes Ah, that's right! I will go ahead and work the correct version into the PR. |
Actually, my previous comment may be incorrect given the first restriction. However, why not reduce the nesting - and impro ve the comprehensibility - as follows?
And since the range of
Or, if you prefer, since
Which makes me realize that |
good point. |
I have no objection to going the functional route, but in #549 it looks like we wanted to allow for "first-place ties," so to speak. |
Good point, you're right, we do want first place ties, so not functional. |
But it now occurs to me that it's an inverse functional property, since each OrderedMember belongs to a unique OrderedCollection and points to a unique object. |
I think that's right, given an ordered member is just the proxy for the real thing. |
OK, I think the latest two commits get it right. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything you've done is perfect. Can you add one sentence to the scope note along the lines of "Since ordered collections may not be strictly ordered, there can be more than one first member."
After that it's good to go.
No description provided.