Talk:Metaclass (Semantic Web)

rdf:type and reflexivity
Hi, rdf:type is not reflexive, as if it where, we would have doggy_the_dog rdf:type doggy_the_dog ... did I miss something ? subclass of is though, as every class is a subclass of itself. TomT0m (talk) 16:50, 18 April 2015 (UTC)
 * TomT0m, if rdf:type is not reflexive, then how is rdfs:Class and instance of itself? Emw (talk) 17:06, 18 April 2015 (UTC)
 * mmm for me a reflexive relation  is a relation in which for all element   of the domain of the relation,  . If a relation is not reflexive, it implies that for some element x there is not(xRx). So rdfs:Class type rdfs:Class can totally hold if not. Did I miss something in the rdfs:Class definition ? TomT0m (talk) 17:18, 18 April 2015 (UTC)
 * Fair enough, good point. I've changed the wording here accordingly.  That said, a property can be used reflexively even if the property itself is not reflexive.  For example, the property looks at can be used reflexively ("Alice looks at Alice") or not ("Alice looks at Bob). Emw (talk) 19:21, 18 April 2015 (UTC)
 * Of course, what you're trying to say is that the relation is not irreflexive. I don't no if it's worth mentioning here. TomT0m (talk) 14:30, 19 April 2015 (UTC)
 * No, I am not trying to say that the relation is not irreflexive. I am trying to point out a reflexive usage of a property.  The whole sentence about rdfs:Class being an instance of itself is probably not worth mentioning in the article.  Same with RDFS being its own metamodel.  Those are internal and esoteric details, and likely intimidate or distract the reader more than they educate them. Emw (talk) 14:48, 19 April 2015 (UTC)

rdfs part of rdf
I, just so we can talk and try to avoid misunderstanding : RDFS is included into RDF, see https://en.wikipedia.org/wiki/Resource_Description_Framework#RDF_vocabulary and the primer of the W3C: the primer notes RDFS spec as a part of the RDF spec. So there is no point into claiming this is an extension. THis may be true historically but it is now included in RDF. Would you agree ? TomT0m (talk) Another document to prove my point : http://www.omgwiki.org/odmftf/lib/exe/fetch.php?id=archive%3Aftf1&cache=cache&media=10_rdfs_metamodel_rev.pdf TomT0m (talk) — Preceding undated comment added 17:37, 18 April 2015 (UTC)


 * No. Saying RDFS is part of RDF is like saying OWL is part of RDF.  If anything, RDF is part of RDFS and RDF is part of OWL, but not vice versa.  Even then, using the phrase "part of" is semantically imprecise at best.


 * W3C specifications repeatedly refer to RDFS as an extension of RDF, e.g. in http://www.w3.org/TR/rdf11-mt/#rdfs_interpretations where it states "RDF Schema extends RDF", in http://www.w3.org/TR/rdf11-mt/#extensions where it states "RDFS, described later in this document, is one such semantic extension", and in http://www.w3.org/TR/rdf-schema/#h2_abstract where it states "RDF Schema is an extension of the basic RDF vocabulary". Emw (talk) 18:00, 18 April 2015 (UTC)


 * OWL spec is totally outside RDF spec. RDFS spec is defined, as you noted, in the same document. and in RDF Schema is an extension of the basic RDF vocabulary you note basic vocabulary. This does not imply that this vocabulary is not a part of the RDF standard. The issue is minor though, but I think we totally can treat RDF/RDFS as a whole, and it is true that "RDFS is included in the RDF specification". The other questions are much bigger issues because it challenges your understanding of the whole stuff. As this one in some sense. TomT0m (talk) 18:12, 18 April 2015 (UTC) PS:btw this this made your "copyedit" of my text statement a bit strange as you did not try to discuss but removed stuff and added some very dubious if not totally false statements ... can't say I appreciate to be honest. TomT0m (talk) 18:35, 18 April 2015 (UTC)


 * RDFS is not defined in the same document as RDF, and I never said it was. There is clearly more support for referring to RDFS as an extension of RDF than for referring to RDFS as a part of RDF, although the latter wording may not be invalid in a loose interpretation.  I agree the issue is minor and that RDF and RDFS can be discussed in the same section.  Note that I restored your original section title and retained the discussion of rdfs:Class as a metaclass, even though I think the latter's relevance is questionable.  Regarding my copyediting of your statements in the article, I would note that most of your contributions require significant editing for basic grammar, coherency, style, context, and focus, as indicated by the initial version of this article here. Emw (talk) 19:09, 18 April 2015 (UTC)

rdfs and type token distinction
I don't understand how rdfs helps to capture type/token distinction better than rdf alone, because everything that is only the subject of a rdf:type statement can be considered a token, and on the right of rdf:type of a type.

In rdfs however, even a metaclass is an instance of class. So it is a type in a sense, but a higher order type, not a plain type with tokens instances. TomT0m (talk) 16:58, 18 April 2015 (UTC)


 * Please capitalize "RDF" and "RDFS" when discussing those things, per convention.


 * You're right about the question at hand, though. I've updated that coverage per your comment. Emw (talk) 15:39, 19 April 2015 (UTC)

Focus of the introduction to OWL and RDF
Re. thinking about it I think it is a bad idea to focus in the introduction to OWL and RDF are they are just one of the many ontology languages, and the metaclass concept may apply to all of them. I'd rather cite them as a (significant) example, and focus on how useful metaclasses are with mapping real world concepts such as species, more technically on their application as pattern of classes (example : they map very well to definition like a chemical element is a type of atom defined by the same atomic number, where the atomic number is defined in the metaclass instanciation, and third by their use in modelling of languages itself, to contextualize the mention that RDFS is its own metamodel. All of these are real application of Metaclasses. Then we focus in the body of the article. TomT0m (talk) 10:06, 20 April 2015 (UTC)


 * TomT0m, in the Semantic Web, metaclasses are overwhelmingly discussed in the context of OWL and RDFS. I think the current introduction gives them proportionate emphasis relative to their prominence in reliable sources.  SKOS, OBO, and niche ontology languages may also support metaclasses, but I don't think their prominence in reliable sources warrants discussing that in the introduction beyond something to the effect of "and other languages".  Also, those other languages aren't currently discussed in the article.  Implementation in RDF, RDFS, and OWL comprises the main content of the article, thus summarizing that material as the current introduction does is good summary style.


 * I do not think discussing the use of metaclasses in implementing the RDFS or OWL languages themselves is a good idea in the introduction. The only sources I've seen mention that are targeted to a niche within a niche; general sources on metaclasses rarely mention it.  Briefly mentioning such metaclass usage in the body as you've done makes sense to me, though.
 * OK, no big deal, I guess it is still a cultural stuff, in france we often prefer to define the notions independantly of contrete implementations or tools, then give examples on technologies that uses the concept. TomT0m (talk)


 * I agree that briefly discussing metaclasses in the context of chemical elements in the introduction is reasonable. The current introduction does so in the fourth paragraph.


 * Regarding your chemical element proposal, though, I would note that your definition "a chemical element is a type of atom defined by the same atomic number" is subtly but importantly off. A chemical element is not a type of atom, but rather a type of chemical substance.  More precisely, a chemical element is a chemical substance consisting of a single type of atom distinguished by its atomic number.  For example, molecular hydrogen (H2) is not a type of atom (it consists of two atoms), but it is a chemical element because it is a chemical substance consisting of a single type of atom defined by the same atomic number.  Similarly, a liter of liquid hydrogen would also be an example of a chemical element because all its atoms have 1 proton in their nucleus (i.e. atomic number 1).  But a liter of liquid hydrogen is not a type of atom, as it consists of many atoms. Emw (talk) 12:25, 23 April 2015 (UTC)
 * Yes, I always take the definition given in french article and courses, see for example a definition gave on a french pedagogical site On donne le nom d’élément chimique à l’ensemble des entités chimiques (atomes, isotopes ou ions) caractérisées par le même nombre Z de protons dans leur noyau. Les éléments chimiques sont représentés par leur symbole chimique. (The name chemical element is given to the set of all chemicals entities (atoms, isotope or ions) characterized by the same Z protons' number in their kernel. So really it's just a cultural stuff and a matter of choice. I must admit I don't like the english definition because it's too complicated : a single type of atom defined by the same atomic number. is the definition in france, and you add in english the constraint that makes it must be like existing in a bottle, making it equivalent to pure chemical substance. The pure chemical substance addition seems curbersome in most example we could give. But it's no big deal if we give the definition we use. I think it's a problem that a single type of atom defined by the same atomic number.'' does not have traditionally a names in english. :) TomT0m (talk) 13:01, 23 April 2015 (UTC)

original reasearch ?
Can you be more specific ? TomT0m (talk) 11:14, 11 May 2015 (UTC)


 * Several sections are well-referenced and clearly supported by the literature, but this goal seems to have been neglected in the intro, which is held in place by one meagre citation. While some of the stuff in the intro is expanded on and referenced in later sections, that doesn't mean intros are free from the usual expectation of verifiability. This is particularly true of the last paragraph, which contains a number of seemingly-bold statements, which don't appear to be sourced or explained anywhere else in the article. I've highlighted a few examples:


 * Having arisen from the fields of knowledge representation, description logic and formal ontology, Semantic Web languages have a closer relationship to philosophical ontology than do conventional programming languages such as Java or Python. Accordingly, the nature of metaclasses is informed by philosophical notions such as abstract objects, the abstract and concrete, and type-token distinction.  Metaclasses permit concepts to be construed as tokens of other concepts while retaining their ontological status as types.  This enables types to be enumerated over, while preserving the ability to inherit from types.  For example, metaclasses could allow a machine reasoner to infer from a human-friendly ontology how many elements are in the periodic table, or, given that number of protons is a property of chemical element and isotopes are a subclass of elements, how many protons exist in the isotope hydrogen-2.


 * In addition, the punning topic takes up a large chunk of the article — both in the intro and the dedicated section — but is entirely unreferenced. (If the examples are drawn from the literature, it wouldn't hurt to cite them as well.)


 * chocolateboy (talk) 14:03, 11 May 2015 (UTC)
 * I'm also curious (and skeptic) about the first bold quote. Time to ping then. TomT0m (talk) 17:13, 11 May 2015 (UTC)

domain fork of metaclass
The first sentence is currently: "In the Semantic Web, a metaclass is a class whose instances are classes."

And 'class' is never linked to another article which expands on what a class is.

On metaclass, the first sentence is currently: "In object-oriented programming, a metaclass is a class whose instances are classes."

Is a class in the Semantic Web the same as a class in computer programming? If not, what is it? John Vandenberg (chat) 01:35, 23 July 2015 (UTC)
 * Interesting question. I don't know the policies about this kind of cases here but I think the two notions, although obviously apparented, are different. A metaclass in OWL or RDF and a metaclass in python inherits the differences of OWL and RDF and python : they all are languages, but python is a programming language, and RDF is a knowledge representation one. While pythons encodes computer instructions, OWL encodes logical properties and are a declarative family of languages. Another good example is the difference of a classes in math and classes in computer programming and in knowledge representation : classes in ontologies, especially in OWL, are closer to the class notion in mathematics. I would oppose a merge of class in maths (Class (set theory)) and classes in programming (although there does not seem to have an article). You will be also interested in the class (knowledge representation) I created to be consistent, does not seemed fair that they do not have an article on their own. The main difference beetween maths and knowledge representation is that maths does not have to speak about the real world, but if you look closely classes in OWL are a special case of classes in maths : a class is a set defined by a logical formula on the properties of its members. But knowledge representation has the same differences that pure maths have with any other sciences, which leads to priciples like the class/token distinction that applies to the latter but not the former. So I created different articles. But of course the notions have to be linked somehow.
 * In the Wikidata era, I would say that they at least deserves different item and that merging would lead to a Bonny and Clyde case :) TomT0m (talk) 11:17, 23 July 2015 (UTC)
 * Thanks for creating Class_(knowledge_representation) . I'm not interested in trying to merge articles, despite the provocative use of 'fork' in the section title. ;-)
 * See Talk:Class (knowledge representation) and Talk:Metaclass for establishing some more fundamentals. John Vandenberg (chat) 23:41, 23 July 2015 (UTC)

Quantification of "whose instances"
The article implicitly suggests two different definitions of metaclasses.

 Metaclasses are classes some of whose instances are classes. Metaclasses are classes all of whose instances are classes. 

The (A) quantification is supported in the article's introduction as well as in the RDF and RDFS subsection. It is stated that metaclasses [can] be easily created by using rdf:type in a chain-like fashion , i.e. the two RDF triples  and ensure that  is a metaclass.

The (B) quantification is supported in the recently added Metaclass classification section through a reference to a paper by D. Foxvog. (According to the paper's page 2, metaclasses are classes each of whose instances is necessarily a class .)

Moreover, the article does not provide any references which would support the (A) case. On the other hand, several references exist (they can be found in the literature) that support the (B) case: in addition to, there is Stefik &amp; Bobrow , Magkanaraki et al. , and Koide &amp; Takeda .

In, metaclasses are delimited as exactly the subclasses of the  (the authors make a claim that classes of classes should not be considered metaclasses unless they are descendants of  ). In all metaclasses must hold  as superclass. In, the class  from the SUMO ontology is given as an example of an ill-structured metaclass that should be remedied by making it a subclass of. See What Is a Metaclass? for details. Hundblue (talk) 17:28, 30 March 2016 (UTC)

The delimitation of metaclasses as subclasses of a built-in metaclass can also be observed in the paper about Protégé-2000 that is cited in the Protégé subsection: all metaclasses inherit from the system class  (page 10). Hundblue (talk) 19:57, 30 March 2016 (UTC)