- From: Dimitris Kontokostas <kontokostas@informatik.uni-leipzig.de>
- Date: Thu, 4 Dec 2014 11:40:05 +0200
- To: Holger Knublauch <holger@topquadrant.com>
- Cc: public-data-shapes-wg <public-data-shapes-wg@w3.org>
- Message-ID: <CA+u4+a16qYXtfNH6gH6eiC_uOfntVc7bfO5jmWj5xX4MsYyWXQ@mail.gmail.com>
> As a concrete example, HL7 RIM reuses a generic collection to capture
>>> e.g. a patient's given and family name name:
>>>
>>> ShExC:
>>> start= <NameShape>
>>> <NameShape> {
>>> dt:COLL.item { err:person-name-family LITERAL },
>>> dt:COLL.item { err:person-name-given LITERAL }+
>>> }
>>>
>>
>> The above basically states that family name must only be a LITERAL in the
>> context of a NameShape. However, I would argue that all family names must
>> be LITERALs, so this constraint should be globally enforced on the class
>> "Item" (whatever that class is called). I guess if we take this out, then
>> it becomes
>>
>> ShExC:
>> start= <NameShape>
>> <NameShape> {
>> dt:COLL.item { err:person-name-family },
>> dt:COLL.item { err:person-name-given }+
>> }
>>
>
> +1
> I also think that something like rdfs:range is needed. Of course we could
> rename it to e.g. shapes:propertyRange but the idea is the same.
> For this we could optionally re-use the existing ontology definitions or
> part of them [1].
>
Taking this a little further, we should be able to define global (on a
graph level) property constraints without the need to assign them to a
Class / Shape.
Here's an example on how Wikidata does something similar.
https://www.wikidata.org/wiki/Property_talk:P1047
https://www.wikidata.org/wiki/Property_talk:P640
https://www.wikidata.org/wiki/Property_talk:P1212
Dimitris
--
Dimitris Kontokostas
Department of Computer Science, University of Leipzig
Research Group: http://aksw.org
Homepage:http://aksw.org/DimitrisKontokostas
Received on Thursday, 4 December 2014 09:41:00 UTC