Wikidata talk:WikiProject Informatics/Languages

From Wikidata
Jump to navigation Jump to search

Thank you for creating this subpage. The list of relevant properties looks very helpful. YULdigitalpreservation (talk) 11:47, 3 May 2017 (UTC)[reply]

RFC about sub-category differentiation[edit]

Look here: Category:C (programming language) software (Q7454733).

Lua modules have to know somehow the existence of these free/non-free children categories. Is this solution OK in your opinion? Can we extend this to all the other similar categories? --Valerio Bozzolan (talk) 00:18, 30 June 2017 (UTC)[reply]

Hi Valerio Bozzolan, your approach looks fine to me, but I think that you need not specify any qualifier as you have done here (Category:C (programming language) software (Q7454733)). I would suggest you to make use of property category's main topic (P301) on the pages Category:Free software programmed in C (Q6938227) with property value free software (Q341) and Category:Proprietary software programmed in C (Q31202221) with property value proprietary software (Q218616). Lua modules can (or can be programmed to) make use of category's main topic (P301). You can also make use of programmed in (P277) as a property in the respective pages to specify the programming language. Jsamwrites (talk) 17:25, 30 June 2017 (UTC)[reply]
Uhm. Following your suggestion, what about category combines topics (P971) instead? --Valerio Bozzolan (talk) 18:57, 30 June 2017 (UTC)[reply]
Anyway sadly #here someone don't approve this use. --Valerio Bozzolan (talk) 22:22, 30 June 2017 (UTC)[reply]
category combines topics (P971) is relevant in your case. I think you should try that instead. Jsamwrites (talk) 07:18, 1 July 2017 (UTC)[reply]

Add properties for syntax rules[edit]

What do you think about adding properties about programming language syntax? For example, "case sensitivity", "white-space preservation", "variable naming rules", "statement separator", "data-types"...--Malore (talk) 15:18, 16 May 2018 (UTC)[reply]

@ Malore:Really great idea. One way to do is to make use of introduced feature (P751) or removed feature (P756). I am not sure whether we need a new property for this. John Samuel 16:25, 16 May 2018 (UTC)[reply]
@Jsamwrites: Maybe it can be used has characteristic (P1552). For example, we could use in order to indicate that javascript is case sensitive, but it seems to me that having specific properties is more "semantic".--Malore (talk) 23:18, 16 May 2018 (UTC)[reply]
@Malore: This is an old discussion, but I agree. What's the current status of that? While reviewing programming langages, I notices that, for example, XL (Q1859276)instance of (P31)off-side rule language (Q50843083). Is instance of (P31) the right relationship here? A syntax property would probably convey more semantic value.
Sylvain Leroux (talk) 13:24, 11 April 2020 (UTC)[reply]

Is dialect a class of programming language?[edit]

Copied from Wikidata:Project_chat

I'm not sure dialect (Q2458742) is a valid instance of (P31) programming language (Q9143). Given the description, it looks like it came out of an automatic import from StackOverflow.

It seems more meaningful to use dialect of (P4913) to establish the relationship between the derived language and its base language. I did it on Eta (Q51170461). Should I proceed that way, or do I need to revert that change?

Sylvain Leroux (talk) 22:37, 10 April 2020 (UTC)[reply]

In theory, dialect of (P4913) is only for dialects of human languages.
See also Wikidata:WikiProject Informatics/Programming Language and its talk page.
« Given the description, it looks like it came out of an automatic import from StackOverflow.  » →‎ Given the history, it did not come of an automatic import from StackOverflow. Visite fortuitement prolongée (talk) 07:28, 11 April 2020 (UTC)[reply]
In theory, dialect (Q33384) is only for dialects of human languages. Visite fortuitement prolongée (talk) 09:00, 11 April 2020 (UTC)[reply]
@Visite fortuitement prolongée I stopped editing when I realized both dialect (Q33384) and dialect of (P4913) already appears in several language descriptions. And that dialect of (P4913) requires the subject to be instance of (P31) dialect (Q33384).
Conceptually, is there a difference between the notion of computer-language dialect and of human-language dialect?
Sylvain Leroux (talk) 13:06, 11 April 2020 (UTC)[reply]
dialect (Q33384) are managed by Wikidata:WikiProject Languages, and dialect (Q2458742) are managed by Wikidata:WikiProject Informatics/Programming Language. Visite fortuitement prolongée (talk) 15:45, 11 April 2020 (UTC)[reply]

Object-orientation vs object-oriented programming[edit]

Copied from Wikidata:Project_chat

I noticed object-orientation (Q2011845) is wrongly used instead of object-oriented programming (Q79872) as the programming paradigm (P3966) for at least one programming language. I suggest:

  1. A rule should be added to programming paradigm (P3966) so it warns if applied to something else than instance of (P31) programming paradigm (Q188267)
  2. and object-oriented programming (Q79872) should be made facet of (P1269) object-orientation (Q2011845)

What do you think?

Sylvain Leroux (talk) 21:50, 10 April 2020 (UTC)[reply]

Here are my responses.

  1. Yes, I agree that a rule should be added to programming paradigm (P3966) limiting them to only the subclasses of programming paradigm (Q188267).
  2. object-orientation (Q2011845) misses an English Wikipedia article and a description. I am wondering whether object-orientation (Q2011845) and object-oriented programming (Q79872) refers to the concept 'object-oriented programming'. John Samuel (talk) 11:55, 24 April 2020 (UTC)[reply]
Thanks @Jsamwrites:. I think I found some reference since I asked. I will double-check and make the necessary changes after that.

ECMAScript vs JavaScript[edit]

WikiProject Informatics has more than 50 participants and couldn't be pinged. Please post on the WikiProject's talk page instead.

I have trouble fixing the mess between ECMAScript (Q259138) and JavaScript (Q2005). In my understanding, both areinstance of (P31) computer language (Q629206) and not instance of (P31) implementation of a programming language (Q4117406). But aside, there are related (how?) and there is a lot of redundant data between the two items. Not mentioning historically ECMAScript based on (P144) JavaScript, but today, JavaScript based on (P144) ECMAScript. I doubt the circular relationship here is a good one.

Any ideas or suggestions? --Sylvain Leroux (talk) 11:37, 24 April 2020 (UTC)[reply]

@Sylvain Leroux: Maybe add ECMAScript (Q259138)based on (P144)JavaScript (Q2005) as deprecated rank. Maybe ECMAScript (Q259138)subclass of (P279)JavaScript (Q2005) with deprecated rank will also make sense. Then add the inverse of these relations. Not sure though, maybe there right answer is to use preferred rank for the current relations instead. I would double check on the guidelines for deprecated rank first. Iwan.Aucamp (talk) 12:02, 24 April 2020 (UTC)[reply]
Thanks for the suggestion @Iwan.Aucamp:. Isn't there something wrong in making something a subclass of (P279) of an instance of (P31) ?  – The preceding unsigned comment was added by Sylvain Leroux (talk • contribs).
@Sylvain Leroux: yes, there would be something wrong with making something a subclass of (P279) of an instance of (P31), ignore that :) Iwan.Aucamp (talk) 12:28, 24 April 2020 (UTC)[reply]
Why exactly « deprecated rank » ? It’s not a statement believed to be true but found to be false after all at all. author  TomT0m / talk page 13:44, 24 April 2020 (UTC)[reply]
@TomT0m, Sylvain Leroux: according to Help:Ranking#Deprecated_rank the using "deprecated rank" is wrong for this, and you should rather use end time/start time. Iwan.Aucamp (talk) 18:42, 24 April 2020 (UTC)[reply]

Programming language concept tree[edit]

More I dig into the programming languages-related items, more I have difficulties in understanding the current model. I ping the Project Ontology because this is related to the semantic and the concept tree used to describe programming languages. WikiProject Ontology has more than 50 participants and couldn't be pinged. Please post on the WikiProject's talk page instead.

For example, if I draw the concept tree graph around JScheme (Q4041741), I obtain that:

In plain words:

  • JScheme is an interpreter (a kind of programming tool), that implements the version of the Scheme language defined in the R4RS standard.
  • Scheme is a programming language that follows the functional programming paradigm.

When I look at my drawing, the implementation of a programming language (Q4117406) and programming language specification (Q7248507) looks clear to me. But the part related to programming paradigm (Q188267) is much more confusing. Especially:

EDIT: More I think about the issues above, more the subclasses below programming language (Q9143) reminds me of materialized views. For example, in the current model, the set of items such that (subject)instance of (P31)functional programming language (Q3839507) is (or should be) the exact equivalent to the set of items such as (subject)programming paradigm (P3966)functional programming (Q193076). Or is there a benefit I miss?

Comments? Ideas? Suggestions?

--Sylvain Leroux (talk) 15:14, 24 April 2020 (UTC)[reply]

reading discussions on https://www.wikidata.org/wiki/Property_talk:P31, and looking at the various "autofix" there, it appears any computer language should be made instance of (P31) programming language (Q9143) (directly, not through a sub-class). Then, the various programming paradigms supported must be referred through programming paradigm (P3966) only. For an extra justification, we have Angela Merkel (Q567)instance of (P31)human (Q5) and not Angela Merkel (Q567)instance of (P31)woman (Q467).

--Sylvain Leroux (talk) 13:38, 25 April 2020 (UTC)[reply]