Wikidata:Property proposal/dialect of (computer language)
dialect of
editOriginally proposed at Wikidata:Property proposal/Creative work
Description | computer language of which an item with this property is a dialect. For human language dialects, use "dialect of" (P4913) instead. |
---|---|
Data type | Item |
Domain | programming language (Q9143) |
Allowed values | programming language (Q9143) |
Example 1 | APLX (Q4653328) dialect of APL (Q296187) |
Example 2 | Cython (Q975594) dialect of Python (Q28865) |
Example 3 | Common Lisp (Q849146) dialect of Lisp (Q132874) |
Planned use | For any item which is a dialect of a computer language, conversion from part of (P361) and instance of (P31) dialect (Q2458742) |
See also | dialect of (P4913) for human language. dialect (Q2458742) |
Motivation
editCurrently computer language dialects are designed using a combination of instance of (P31) dialect (Q2458742) and part of (P361) "base language" or based on (P144) "base language". Worth noticing dialect (Q2458742) subclass of (P279) programming language (Q9143).
I see several issues with the current schema:
- A programming language can be (and some currently are) defined as instance of (P31) dialect (Q2458742) only.
- By defining a computer language as instance of (P31) dialect (Q2458742) we miss the most meaningful piece of information which is "which computer language this item is a dialect of"
- based on (P144) and part of (P361) are not specific enough.
In plain English, one would say "I program in a dialect of Python", "Scheme is a dialect of Lisp". On the other hand "I program in a dialect" or "Scheme is a dialect" seems to convey much less information. And statements such as "She's an expert in computer language dialects" have little meaning.
So alongside with this proposal, I suggest:
- deprecating dialect (Q2458742), since dialects can anyhow be identified by having the property "dialect of",
- or no longer making dialect (Q2458742) subclass of (P279) programming language (Q9143) but subclass of (P279) derivative work (Q836950). This would prevent situations where a computer language is defined only as an instance of (P31) dialect (Q2458742). Similarly, it word prevent "dialect" to appear as the result of queries for classes of programming languages (object-oriented programming language, functional programming language, and so on).
EDIT: "dialect of" could be instance of (P31) derivative work (P4969)
Sylvain Leroux (talk) 14:00, 12 April 2020 (UTC)
Discussion
edit- Support the usage of using dialect, when there are references stating this. John Samuel (talk) 14:35, 12 April 2020 (UTC)
- Comment Although not specific to the domain, why based on (P144) wouldn't fit ? --FabC (talk) 00:17, 13 April 2020 (UTC)
@FabC: based on (P144) convey the idea a language is an evolution of another, not just a variation. For example, C (Q15777) based on (P144) B (Q797302). Despite similarities in their syntax, I would hardly say than the C language is a dialect of B. I also saw influenced by (P737) sometimes used in a similar manner: B (Q797302) influenced by (P737) BCPL (Q810009).
However, in my understanding:
- based on (P144) should be used to identify an ancestor, that is the starting point leading to the design of a new language. The C → B example above is a perfect fit. Similarly GNU Bash (Q189248) based on (P144) Bourne shell (Q844595)
- influenced by (P737) should be used to identify one or several sources for ideas, concepts or syntax elements used in a language. For example, C++ (Q2407) influenced by (P737) Simula (Q212569) and C++ (Q2407) influenced by (P737) Ada (Q154755). For a different example AWK (Q213970) influenced by (P737) C (Q15777)
- on the othe hand, a dialect is a variation of a language designed to fit a particular need, or to quote enwiki: a dialect is a (relatively small) variation or extension of the language that does not change its intrinsic nature. As per item's description: Common Lisp (Q849146) is a dialect of Lisp (Q132874)
Sylvain Leroux (talk) 03:28, 13 April 2020 (UTC)
WikiProject Informatics has more than 50 participants and couldn't be pinged. Please post on the WikiProject's talk page instead. Visite fortuitement prolongée (talk) 19:57, 12 April 2020 (UTC)
- Support, but I think it would be easy to confuse it with implementation of (P4428). --Tinker Bell ★ ♥ 03:24, 13 April 2020 (UTC)
@Tinker Bell: I wasn't aware of implementation of (P4428). From a quick look, it seems used to describe the relationship between a product and some language specification like in: Turbo C++ (Q1194352) implementation of (P4428) C++ (Q2407) or JScript (Q553514) implementation of (P4428) ECMAScript (Q259138). But I agree there is a thin blurred line here. Sylvain Leroux (talk) 03:46, 13 April 2020 (UTC)
- Support Thanks to Sylvain for the clarification. --FabC (talk) 10:58, 13 April 2020 (UTC)
- Support Iwan.Aucamp (talk) 13:06, 13 April 2020 (UTC)
There are no more contributions for a few days now, and the reception was positive, so I changed the property proposal to status=ready. Feel free to revert if that's was not the proper action to take. --Sylvain Leroux (talk) 13:05, 18 April 2020 (UTC)
- Question What about just using of (P642) qualifier on instance of (P31) dialect (Q2458742) statement? --SilentSpike (talk) 15:21, 18 April 2020 (UTC)
- I don't know if using of (P642) we can enforce the rule that a dialect of should only refer to instance of (P31)/subclass of (P279)* programming language (Q9143). But if we can, that would be an option @SilentSpike:.
- However, we could have the same reasoning for implementation of (P4428) that could be replaced by instance of (P31) implementation (Q245962) of (P642) or even based on (P144) that could be replaced by instance of (P31) derivative work (P4969) of (P642). I also looked at the talk page for of (P642) and on Wikidata:Property_proposal/Archive/8#P642. From what I read there regarding the scope of P642, I still believe that a dedicated dialect of property would be the most meaningful way to express the corresponding relationship between two programming languages. --Sylvain Leroux (talk) 01:48, 19 April 2020 (UTC)
- I forgot to mention in my previous comment I expressed some concern above regarding dialect (Q2458742). After rethinking about your suggestion SilentSpike (talk • contribs • logs) I really have the feeling that in our context dialect (Q2458742) is meaningless by itself and only makes sense when used with a qualifier like in instance of (P31) dialect (Q2458742) of (P642). Or am I wrong? --Sylvain Leroux (talk) 12:55, 19 April 2020 (UTC)
- @Sylvain Leroux, Jsamwrites, FabC, Iwan.Aucamp, SilentSpike: Done --Tinker Bell ★ ♥ 07:03, 21 April 2020 (UTC)
- Thanks @Tinker Bell:. I will review the concerned items this week. --Sylvain Leroux (talk) 08:04, 21 April 2020 (UTC)