I really don't see the issue here. SHACL, like ShEx is a language to express data shapes. I adopted using ShEx in a wikidata context 2016 when ShEx was demonstrated at a tutorial at the SWAT4HCLS conference [1] in Amsterdam, where it was discussed in both a tutorial and a hackathon topic. At that conferene, I was convinced that ShEx is helpful in maintaining quality in Wikidata. ShEx offers not only the means to validate data shapes in Wikidata, but it also provides a way to document how primary data is expressed in Wikidata. In 2016 I joined the ShEx community group [2]. Since I have been actively using ShEx in defining shapes in various projects on Wikidata (e.g. Gene Wiki and Wikicite). It is not that this happened in secrecy. On the contrary, it was discussed at both Wikimedia [3,4] and non-Wikimedia events [5,6,7].
It is also not the case that SHACL has not been discussed in this context, on the contrary, I have very good memories of a workshop where both were debated (see page 24 ;) ) [8]
IMHO the statement that we all should adhere to one standard, simply because it is a standard, is not a valid argument. Imagine having to dictate that we all should speak English because it is the standard language. In every single talk that I have given since 2016, proponents of SHACL have been very vocal in asking the same question over and over again "why not SHACL?", where the discussion never went beyond, "You should because it is a standard". It is also a bit disingenuous to suggest we all should adhere to SHACL because it is the standard, while in the same sentence calling it a "Recommendation".
Although initially, I was open to SHACL as well (I use both Mac and Linux, so why not open up to different alternatives in data shapes), (Some) Arguments for me to prefer ShEx over SHACL are: 1. Already in 2017 there were different (open) implementations. At the time SHACL didn't have much tooling to choose from, other than one javascript implementation and a proprietary software package. 2. ShEx has a more intuitive way of describing Shapes, which is the compact syntax (ShExC). SHACL seems to have adopted the compact syntax as well, but only yesterday [9]. 3. The culture in the Shape Expression community group aligns well with the culture in Wikidata. 4. I don't want to be shackled to one standard (pun intended). I assume the name was chosen with a shackle in mind, which puts constraints at the core of the language. Wikidata already has different methods in place to deal with constraints and constraint violations. In the context of Wikidata, ShEx should specifically not be intended to impose constraints, on the contrary, it allows expressing of disagreement or variants of different shapes, whether conflict or not. Which fits well with the NPOV concept. Symbols do matter.
For a less personal comparison, I refer to the "Validating RDF data" book which describes both ShEx and SHACL, and has a specific chapter on how they compare and differ [10]
Up until now, I have been using ShEx in repositories outside the Wikidata ecosystem (e.g. Github), but I am really excited about the release of this extension. I am curious about how the wiki extension will influence the maintenance of schemas. Schemas are currently often expressed as static images, while in practice the schemas are as fluid as the underlying data itself. Being able to document these changes dynamically (the wiki way), can be very interesting. One specific expectation I have is that it might make it easier to write federated SPARQL queries. Currently, when writing these federated queries we often have to rely on either a set of example queries or a one-time schema description, which makes it hard to write those queries, because of schemas changing constantly. Federated SPARQL queries now really is a process of "slot machine" querying, where one has to explore the underlying schema, query by query. With a wiki in place and a community maintaining these ever-changing schema's, I expect better documentation.
The data shape community, instead of adhering to one language, should really be proud to have produced two very helpful languages. ShEx and SHACL are similar but do have differences so both have merit to exist and I wish we could steer away from this ShEx vs SHACL feud. It really isn't helping the cause, i.e. being able to express schemas in a formal language. Honestly, this fued really reminds me of the famous monty python sketch, "The machine that says Bing". Let us focus on the patient and not on the "Bing".
Just my 2ct.
[1] http://www.swat4ls.org/workshops/amsterdam2016/ [2] https://www.w3.org/community/shex/ [3] https://www.wikidata.org/wiki/Wikidata:WikidataCon_2017/Submissions/Using_Sh... [4] https://meta.wikimedia.org/wiki/WikiCite_2017/Program [5] https://figshare.com/articles/Using_Shape_Expressions_ShEx_to_model_validate... [6] https://2017.semantics.cc/satellite-events/linked-data-quality-assessment-an... [7] http://swib.org/swib18/programme.html [8] https://upload.wikimedia.org/wikipedia/commons/d/d6/WikiCite_2017_report.pdf [9] https://lists.w3.org/Archives/Public/public-shacl/2019May/0012.html [10] http://book.validatingrdf.com/
On Wed, May 29, 2019 at 10:05 PM Antoine Zimmermann < antoine.zimmermann@emse.fr> wrote:
Hello,
Could you explain why the non-standard ShEx has been chosen rather than the W3C Recommendation SHACL?
I would assume that if one has several options for bringing a functionality to something that largely promotes interoperability (like Wikidata), the default choice should be a standard, and /only if/ one has a carefully crafted argumentation to reject it, one would opt for something else.
For those who may not know, the W3C RDF Data Shapes Working Group worked between 2014 and 2017 on defining a standard for describing data shapes in RDF. ShEx existed already and was a candidate for standardisation. Eventually, another standard emerged, Shapes Constraint Language (SHACL, see https://www.w3.org/TR/shacl/).
Disclaimer: I did not contribute to either SHACL or ShEx, and I do not know them enough to judge which one is better.
Best, --AZ
On 19/05/2019 15:32, Léa Lacroix wrote:
Hello all,
After several months of development and testing together with the WikiProject ShEx https://www.wikidata.org/wiki/Wikidata:WikiProject_ShEx, Shape Expressions are about to be enabled on Wikidata.
*First of all, what are Shape Expressions?*
ShEx (Q29377880) https://www.wikidata.org/wiki/Q29377880 is a
concise,
formal modeling and validation language for RDF structures. Shape Expressions can be used to define shapes within the RDF graph. In the case of Wikidata, this would be sets of properties, qualifiers and references that describe the domain being modeled.
See also:
- a short video about ShEx https://www.youtube.com/watch?v=AR75KhEoRKg made by community members during the Wikimedia hackathon 2019
- introduction to ShEx http://shex.io/shex-primer/
- more details about the language http://shex.io/shex-semantics/
*What can it be used for?*
On Wikidata, the main goal of Shape Expressions would be to describe what the basic structure of an item would be. For example, for a human, we probably want to have a date of birth, a place of birth, and many other important statements. But we would also like to make sure that if a statement with the property “children” exists, the value(s) of this property should be humans as well. Schemas will describe in detail what is expected in the structure of items, statements and values of these statements.
Once Schemas are created for various types of items, it is possible to test some existing items against the Schema, and highlight possible errors or lack of information. Subsets of the Wikidata graph can be tested to see whether or not they conform to a specific shape through the use of validation tools. Therefore, Schemas will be very useful to help the editors improving the data quality. We imagine this to be especially useful for wiki projects to more easily discuss and ensure the modeling of items in their domain. In the spirit of Wikidata not restricting the world, Shape Expressions are a tool to highlight, not prevent, errors.
On top of this, one could imagine other uses of Schemas in the future, for example building a tool that would suggest, when creating a new item, what would be the basic structure for this item, and helping adding statements or values. A bit like this existing tool, Cradle https://tools.wmflabs.org/wikidata-todo/cradle/#/, that is currently not based on ShEx.
*What is going to change on Wikidata?*
- A new extension will be added to Wikidata: EntitySchema https://www.mediawiki.org/wiki/Extension:EntitySchema, defining the Schema namespace and its behavior as well as special pages related to it.
- A new entity type, EntitySchema, will be enabled to store Shape Expressions. Schemas will be identified with the letter E.
- The Schemas will have multilingual labels, descriptions and aliases (quite similar to the termbox on Items), and the schema text one can fill with a syntax called ShEx Compact Syntax (ShExC) http://shex.io/shex-semantics/#shexc. You can see an example here https://wikidata-shex.wmflabs.org/wiki/EntitySchema:E2.
- The external tool shex-simple <
https://tools.wmflabs.org/shex-simple/wikidata/packages/shex-webapp/doc/shex...
is directly linked from the Schema pages in order to check entities of your choice against the schema.
*When is this happening?*
Schemas will be enabled on on test.wikidata.org http://test.wikidata.org on May 21st and on wikidata.org http://wikidata.org on May 28th. After this release, they will be integrated to the regular maintenance just like the rest of Wikidata’s features.
*How can you help?*
Before the release, you can try to edit or create Shape Expressions on our test system <https://wikidata-shex.wmflabs.org/wiki/Main_Page
If you find any issue or feature you’d like to have, feel free to create a new task on Phabricator with the tag |shape-expressions|
Once Schemas are enabled, you can discuss about it on your favorite wikiprojects: for example, what types of items would you like to
model?
- You can also get more information about how to create a Schema <
https://www.wikidata.org/wiki/Wikidata:WikiProject_ShEx/How_to_get_started%3...
*See also: *
- Main Phabricator board https://phabricator.wikimedia.org/tag/shape_expressions/
- Technical documentation of the extension https://meta.wikimedia.org/wiki/Extension:EntitySchema
- To enhance the interface, you can use this user script <
https://www.wikidata.org/wiki/User:Zvpunry/EntitySchemaHighlighter.js%3E
to highlight items and properties in the schema code and turn the IDs into links
If you have any questions, feel free to reach me. Cheers,
-- Léa Lacroix Project Manager Community Communication for Wikidata
Wikimedia Deutschland e.V. Tempelhofer Ufer 23-24 10963 Berlin www.wikimedia.de http://www.wikimedia.de
Wikimedia Deutschland - Gesellschaft zur Förderung Freien Wissens e. V.
Eingetragen im Vereinsregister des Amtsgerichts Berlin-Charlottenburg unter der Nummer 23855 Nz. Als gemeinnützig anerkannt durch das Finanzamt für Körperschaften I Berlin, Steuernummer 27/029/42207.
Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata
Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata