IRC log of shapes on 2016-03-17

Timestamps are in UTC.

17:57:28 [RRSAgent]
RRSAgent has joined #shapes
17:57:28 [RRSAgent]
logging to
17:57:30 [trackbot]
RRSAgent, make logs rdf-data-shapes
17:57:30 [Zakim]
Zakim has joined #shapes
17:57:32 [trackbot]
Zakim, this will be SHAPES
17:57:32 [Zakim]
I do not see a conference matching that name scheduled within the next hour, trackbot
17:57:33 [trackbot]
Meeting: RDF Data Shapes Working Group Teleconference
17:57:33 [trackbot]
Date: 17 March 2016
17:58:09 [Arnaud]
17:58:14 [Arnaud]
chair: Arnaud
18:01:09 [Arnaud]
18:01:18 [simonstey]
18:01:45 [Dimitris]
Dimitris has joined #shapes
18:01:47 [hknublau]
hknublau has joined #shapes
18:01:54 [BartvanLeeuwen]
BartvanLeeuwen has joined #shapes
18:02:48 [hknublau]
18:03:05 [pfps]
pfps has joined #shapes
18:03:08 [pfps]
18:03:45 [Arnaud]
same as group
18:03:46 [Dimitris]
18:03:48 [simonstey]
18:03:58 [simonstey]
18:04:18 [pfps]
see agenda for instructions
18:04:32 [hsolbrig]
hsolbrig has joined #shapes
18:04:40 [hsolbrig]
present+ hsolbrig
18:05:22 [simonstey]
scribe: simonstey
18:05:45 [Arnaud]
PROPOSED: Approve minutes of the 10 March 2016 Telecon:
18:05:53 [pfps]
minutes look OK
18:05:55 [simonstey]
topic: minutes from last week
18:06:35 [Arnaud]
RESOLVED: Approve minutes of the 10 March 2016 Telecon:
18:07:09 [simonstey]
TOPIC: Disposal of Raised Issues
18:07:22 [Arnaud]
PROPOSED: Open ISSUE-134 knowing inverse, ISSUE-135 and/or syntactic sugar, ISSUE-136 Property pair names, ISSUE-137 language tag
18:07:37 [hknublau]
18:07:45 [simonstey]
18:07:45 [kcoyle]
18:07:51 [Dimitris]
18:07:51 [hsolbrig]
18:07:53 [ericP]
18:08:11 [Arnaud]
RESOLVED: Open ISSUE-134 knowing inverse, ISSUE-135 and/or syntactic sugar, ISSUE-136 Property pair names, ISSUE-137 language tag
18:08:17 [simonstey]
TOPIC: ISSUE-80: Scheme URIs
18:08:21 [simonstey]
18:08:21 [trackbot]
issue-80 -- Constraint to limit IRIs against scheme/namespace, possibly with dereferencing -- open
18:08:21 [trackbot]
18:08:51 [simonstey]
Arnaud: we talked about it last week; eric sent out an email about how stem works in shex.. where do we stand now?
18:09:14 [jamsden]
jamsden has joined #shapes
18:09:29 [simonstey]
ericP: was I about to send a proposal on how this would look like in shacl?
18:10:20 [simonstey]
Arnaud: thought this would be a low hanging fruit
18:11:01 [simonstey]
18:11:05 [simonstey]
18:11:05 [trackbot]
issue-129 -- Existential constraints should be consistent -- open
18:11:05 [trackbot]
18:11:50 [simonstey]
Arnaud: dimitris raised that issue
18:12:22 [simonstey]
... we should spend little bit of time discussing it; some votes were already cast
18:12:59 [simonstey]
Dimitris: the definition of extential constraints might not be the best one
18:13:16 [pfps]
18:13:16 [simonstey]
... but e.g. hasValue works different from other constraint types in shacl
18:13:52 [simonstey]
... while others only work over exisiting values, this does not
18:14:20 [simonstey]
pfps: holger had a perfect description for that
18:14:50 [simonstey]
... i see no possibility of changing the meaning of hasValue since it works exactly as it should
18:15:30 [simonstey]
Arnaud: so you are saying there is nothing to be fixed?
18:15:33 [Arnaud]
ack pfps
18:16:04 [simonstey]
pfps: no.. espec. the meaning of the newer ones need some fiddling
18:17:03 [simonstey]
... the problem doesn't go away if you get rid of the existential ones
18:18:13 [simonstey]
... e.g., equals, minCount have a clear meaning and people would scream at us if we change it
18:18:51 [simonstey]
ericP: i'm wondering whether people actually understand the implications of what you are saying?
18:19:49 [Dimitris]
18:19:53 [simonstey]
pfps: when people do db querying, they get confused if they get no answers for a query
18:20:50 [simonstey]
Arnaud: example: there must not be a property with a certain value less than x
18:21:10 [Arnaud]
ack Dimitris
18:21:11 [simonstey]
... does the value need to exist?
18:21:29 [simonstey]
Dimitris: this is not an implementation issue; that's the easy part
18:21:59 [simonstey]
... I was worried about users actually understanding the meaning of hasValue
18:22:32 [simonstey]
... it could e.g., be changed to sh:requiredValue
18:22:44 [jamsden]
18:22:48 [pfps]
The definition for hasValue is "The property sh:hasValue can be used to verify that the focus node has a given RDF node among the values of the given predicate. " This seems to be very obvious.
18:22:51 [Arnaud]
ack jamsden
18:22:53 [pfps]
18:23:23 [simonstey]
jamsden: what's the confusion here?
18:23:54 [pfps]
For sh:in "The property sh:in exclusively enumerates the values that a property may have. When specified, each value of the given property must be a member of the specified list. "
18:24:06 [Arnaud]
ack pfps
18:24:06 [pfps]
Both seem quite obvious and the right definition
18:24:14 [kcoyle]
18:24:22 [simonstey]
pfps: there is no such thing as undefined in SPARQL
18:24:33 [simonstey]
... it's there or not
18:25:00 [ericP]
18:25:17 [Dimitris]
18:25:28 [Arnaud]
ack kcoyle
18:25:32 [simonstey]
... the current definitions seem pretty obvious to me
18:25:37 [simonstey]
jamsden: same for me
18:26:09 [Dimitris]
Jim, the problem is that sh:in ("foo") and sh:hasValue "foo" behave differently
18:26:11 [pfps]
In RDF values are not associated with properties.
18:26:13 [pfps]
18:26:46 [simonstey]
kcoyle: the cardinality constraints are on the property and not the value, right?
18:26:54 [hsolbrig]
how about "includesValue"
18:27:14 [simonstey]
pfps: in shacl, everytime you are doing something you have a property in hand
18:27:26 [hsolbrig]
"has" tends to be fuzzy whether we're dealing with a set or an individual
18:27:44 [Arnaud]
ack pfps
18:27:50 [hsolbrig]
or, to be more orthogonal with "in", just "has"
18:28:10 [ericP]
{ [ sh:predicate :foo; sh:hasValue 1; sh:hasValue 2 ] } \ { <s> :foo 1,2,3 }
18:28:10 [hsolbrig]
18:28:44 [hsolbrig]
18:28:45 [ericP]
{ [ sh:predicate :foo; sh:in ( 1 2 ) ] } \ { <s> :foo 1,2,3 } => fail
18:29:08 [simonstey]
pfps: e.g. sh:in looks at each of the values separately (for each of those values..)
18:29:32 [ericP]
+1 to harold's proposal
18:29:42 [ericP]
though i'm curious about use cases for this
18:29:44 [simonstey]
... minCount on the other hand works over the whole set of properties
18:29:57 [ericP]
maybe ditch sh:hasValue ?
18:30:22 [Arnaud]
ack ericP
18:30:48 [simonstey]
... two triples that have the same S, P but different Os resemble something like multivalued properties
18:31:17 [Dimitris]
18:31:44 [simonstey]
18:31:56 [Arnaud]
ack simonstey
18:32:30 [Labra]
Labra has joined #shapes
18:32:31 [hknublau]
hasValue is very common in filters
18:32:48 [Arnaud]
ack hsolbrig
18:32:50 [kcoyle]
I think hasValue has lots of uses -- unless I misunderstand it
18:33:17 [pfps]
I agree with Holger that hasValue would be very common in filters
18:34:19 [simonstey]
hsolbrig: the confusion comes from the fact that its meaning can be understood as "its value includes"
18:34:34 [simonstey]
... or "its value is"
18:35:11 [ericP]
hknublau, can you describe how hasValue is used in filters?
18:35:23 [simonstey]
18:35:37 [Arnaud]
ack simonstey
18:36:20 [hknublau]
"Every person who has bornIn = USA must not travel to Cuba"
18:36:56 [simonstey]
Arnaud: so how do we make progress here?
18:37:25 [simonstey]
pfps: whoops.. my proposal is simple -> do nothing
18:38:22 [simonstey]
Arnaud: lets give it another week, there is no rush on closing now
18:38:36 [Labra]
present+ labra
18:39:04 [simonstey]
topic: Type, instance, subclass in SHACL documents
18:39:40 [simonstey]
Arnaud: there was extensive discussion on that on the mailing list
18:39:53 [simonstey]
18:39:53 [trackbot]
issue-65 -- Consistency and cohesiveness of nomenclature (e.g., shapes, scopes, and constraints) -- open
18:39:53 [trackbot]
18:39:55 [simonstey]
18:39:55 [trackbot]
issue-120 -- The spec must be more precise and consistent about when a resource is a shape, a class, and an instance of a class -- closed
18:39:55 [trackbot]
18:40:15 [simonstey]
... those issues might be related to that topic
18:41:32 [simonstey]
pfps: I'm pretty sure that SPARQL isn't using "instance" anywhere in its spec
18:41:34 [Dimitris]
\me sparql says "for instance..."
18:41:59 [Dimitris]
s/me sparql says "for instance..."//
18:42:26 [simonstey]
hknublau: we certainly need to improve the wording
18:42:41 [ericP]
pfps, SPARQL 1.1 uses instance for the notion of "instance mapping"
18:42:48 [ericP]
(and a few instances of "for instance")
18:43:18 [simonstey]
... we have some redudancies in the document that where meant to support understanding but might ended up confusing people
18:44:19 [pfps]
the overhead will be about 100 words in a long document
18:44:20 [simonstey]
... I do not agree with pfps that we are violating any ???
18:45:07 [simonstey]
Arnaud: we need to make sure that the spec isn't wrong
18:46:10 [simonstey]
... for me the downside of pfps' proposal is that it might be a bit painful of having to write "SHACL instance" everytime
18:46:27 [pfps]
18:46:32 [simonstey]
... but at the same time I'm sensitive to his proposal
18:46:39 [Arnaud]
ack pfps
18:46:48 [simonstey]
... since people might not read the document from the beginning to the end
18:47:33 [Dimitris]
18:47:38 [Arnaud]
ack Dimitris
18:47:43 [simonstey]
pfps: I think we need to be cristal clear about the difference between SHACL instance and RDF(S) instance
18:48:23 [simonstey]
Dimitris: we could try to remove all uses of instance, but we've to see
18:49:18 [simonstey]
18:49:37 [simonstey]
Arnaud: Syntax and metamodel Complexity and Possible simplifications
18:49:47 [simonstey]
18:51:03 [simonstey]
pfps: I found a hole in the metamodel.. which is kind of disturbing
18:51:07 [hknublau]
18:51:47 [simonstey]
... when a property is both a target of a inversepropertyconstraint as well as a propertyconstraint, it behaves strange
18:52:54 [simonstey]
[... pfps writing down an example ...]
18:53:04 [pfps]
sh:shape sh:property [ a sh:InversePropertyConstraint ; sh:predicate ex:foo ; sh:minCount 2 ]
18:54:26 [simonstey]
[ericP & pfps discussing the example]
18:54:26 [Arnaud]
ack hknublau
18:54:38 [ericP]
validating <X> as the above:
18:54:43 [simonstey]
hknublau: it's unfinished but not broken
18:55:00 [simonstey]
... both of your examples are invalid shape graphs
18:55:14 [pfps]
sh:shape sh:property [ a sh:PropertyConstraint ;a sh:InversePropertyConstraint ; sh:predicate ex:foo ; sh:minCount 2 ]
18:55:18 [ericP]
<Y> :foo <X>. <Z> :foo <X>. <X> :foo <Y>. <X> :foo <Z> .
18:55:24 [simonstey]
... what we could do is, making propertyconstraint and inversepropconstraint disjoint
18:56:25 [simonstey]
... so a constraint can't be both at the same time
18:56:40 [ericP]
<Y> :foo <X>. <Z> :foo <X>. <X> :foo <W>. <X> :foo <K> .
18:57:38 [simonstey]
ericP: in shex we just have a flag that says whether something is forwards or backwards
18:58:55 [simonstey]
pfps: people can do a lot of silly, stupid and/or smart things in RDF
19:00:53 [simonstey]
... you don't want to have to deal with defending your syntax against stupid/silly/.. proposals just because you weren't explicit enough in specifying what's allowed and what's not
19:01:21 [simonstey]
Arnaud: I want people to investigate pfps proposal
19:01:59 [ericP]
pfps, did OWL address this by saying that a parsing OWL from RDF fails if there is more than one way to parse it?
19:02:19 [iovka]
iovka has joined #shapes
19:02:22 [simonstey]
... I think pfps has made a fair amount of effort in providing information about his proposal
19:02:34 [pfps]
OWL solves this problem by making string requirements on graphs that are valid OWL ontologies
19:02:48 [Arnaud]
19:03:26 [pfps]
I believe that Holdger said that syntax with positional arguments was an anti-pattern
19:03:30 [simonstey]
... I want to step back from discussing specific issues and discuss pfps proposal
19:04:12 [simonstey]
ericP: maybe pfps wants to give us a short description of his proposal now?
19:04:52 [ericP]
19:06:09 [simonstey]
pfps: 1) sh:property/invprop. you have to pull out the property and put it in a list; the benefit is that you don't have to worry about not knowing in which direction you have to go
19:07:01 [simonstey]
... 2) sh:pattern is a little bit odd right now
19:07:12 [ericP]
current: ex:MyShape a sh:Shape ; sh:constraint [ a sh:Shape ; sh:predicate ex:myProperty ; sh:class ex:Person ; sh:in ( ex:Susan ex:Bill ) ] .
19:07:15 [ericP]
pfps: ex:MyShape a sh:Shape ; sh:fillers ( ex:myProperty [ a sh:Shape ; sh:class ex:Person ; sh:in ( ex:Susan ex:Bill ) ] ) .
19:08:05 [ericP]
current: ex:MyShape a sh:Shape ; sh:property [ a sh:Shape ; sh:predicate ex:myProperty ; sh:class ex:Person ; sh:in ( ex:Susan ex:Bill ) ] .
19:08:08 [ericP]
pfps: ex:MyShape a sh:Shape ; sh:propValue ( ex:myProperty [ a sh:Shape ; sh:class ex:Person ; sh:in ( ex:Susan ex:Bill ) ] ) .
19:08:47 [simonstey]
... you can't have two properties inside the square brackets to combine together
19:09:24 [simonstey]
... currently it's painful to repeat things
19:10:30 [simonstey]
... 3) you can actually put e.g. sh:minCount anywhere in the shape
19:10:44 [ericP]
ex:PersonShape sh:minCount 1e10 .
19:11:29 [simonstey]
... there are no more node/property/invpropertyconstraints anymore
19:11:55 [simonstey]
... there are only shapes; very similar to shex
19:14:44 [simonstey]
Arnaud: I'm wondering whether the WG thinks we should spend time on looking into this or not
19:15:15 [Arnaud]
STRAWPOLL: continue investigating Peter's proposal there may be something there (+1: agree, 0: not sure, -1: disagree)
19:15:18 [ericP]
19:15:19 [hsolbrig]
19:15:19 [simonstey]
19:15:20 [hknublau]
19:15:22 [Labra]
19:15:22 [kcoyle]
19:15:26 [pfps]
+1 (surprise!)
19:15:45 [Dimitris]
0- ( I think there are good elements but not user friendly)
19:16:03 [jamsden]
19:16:08 [simonstey]
but we might adopt some bits and pieces
19:16:26 [pfps]
I note that I have updated my previous SHACL implementation for this new syntax. It is about 80% complete.
19:16:32 [jamsden]
I don't see the motivation for such a significant change at this late date
19:17:27 [pfps]
to be fair, RDF makes for complex, long, and hard-to-understand syntax
19:18:10 [jamsden]
these issues just aren't that compelling to me
19:18:54 [jamsden]
what is the process for assessing, evaluating and deciding on a resolution?
19:19:00 [simonstey]
Arnaud: I encourage everybody to have a read on pfps proposal
19:19:09 [simonstey]
TOPIC: Comparative expressiveness of ShEx and SHACL
19:19:29 [simonstey]
iovka's email:
19:19:52 [simonstey]
19:20:29 [simonstey]
iovka: I'm a formal methods person; so in order to understand SHACL I generated an abstraction of SHACL
19:21:33 [simonstey]
... I used presburger arithmetics for caputring shex (not needed for shacl)
19:21:44 [simonstey]
19:22:28 [simonstey]
iovka: future goal is to come up with a transformation between shex <-> shacl
19:23:45 [simonstey]
... I would need some support from someone who's more familiar with shacl than me for checking whether I captured shacl correctly or not
19:25:01 [pfps]
19:25:10 [Arnaud]
ack pfps
19:25:14 [simonstey]
Arnaud: I'm quite grateful on what iovka is doing
19:25:41 [iovka]
19:26:25 [Arnaud]
ack iovka
19:26:35 [simonstey]
pfps: the reason why I jumped on hasValue is that I'm not sure whether the current formalism is actually capable of capturing it (haven't looked at it though)
19:27:19 [simonstey]
iovka: I had a brief look at it today and it appears to be one of the easiest constraints
19:27:33 [ericP]
iovka expressed [] sh:hasValue 1 can be captured in ShEx as <S> EXTRA :foo { :foo [1] }
19:27:53 [ericP]
s/can be captured in/as/
19:28:49 [pfps]
my time is likely to be very limited for a while starting very soon now
19:29:45 [simonstey]
I will have a read
19:30:42 [Arnaud]
trackbot, end meeting
19:30:42 [trackbot]
Zakim, list attendees
19:30:42 [Zakim]
As of this point the attendees have been Arnaud, simonstey, hknublau, pfps, Dimitris, hsolbrig, labra
19:30:43 [iovka]
19:30:50 [trackbot]
RRSAgent, please draft minutes
19:30:50 [RRSAgent]
I have made the request to generate trackbot
19:30:51 [trackbot]
RRSAgent, bye
19:30:51 [RRSAgent]
I see no action items