namespaces-inconsistency-issue

(Difference between revisions)

Jump to: navigation, search
m (Brief Definitions)
m
Line 2: Line 2:
This page outlines a disputed inconsistency that the Microformat's community has had for a number of years. Namely, in the way the community defines "namespace" and the position it takes against that definition of a namespace.
This page outlines a disputed inconsistency that the Microformat's community has had for a number of years. Namely, in the way the community defines "namespace" and the position it takes against that definition of a namespace.
-
 
-
=History=
 
-
 
-
In June of 2007, while discussing what should be the name of a song, album or audio recording for hAudio, [http://microformats.org/discuss/mail/microformats-new/2007-June/000511.html it was suggested that TITLE be re-used from hCard]. This kicked off a debate about whether it would be appropriate to re-use TITLE because [http://microformats.org/discuss/mail/microformats-new/2007-June/000512.html TITLE was previously defined in hCard as "job title"]. Manu pointed out that [http://microformats.org/discuss/mail/microformats-new/2007-June/000511.html this was not the proper English definition for TITLE], would confuse authors, and inquired as to why TITLE was defined in such a constrained way. It was shown that [http://microformats.org/discuss/mail/microformats-new/2007-June/000512.html TITLE re-used the definition of TITLE from the VCARD specification], and since TITLE had been set as such, re-defining it to become in-line with the English definition of TITLE would have ramifications on hCard implementations out in the field.
 
-
 
-
A suitable replacement for TITLE was discussed and, [http://microformats.org/discuss/mail/microformats-new/2007-October/001009.html FN was adopted for hAudio].
 
-
 
-
Several months later, Martin McEvoy [http://microformats.org/discuss/mail/microformats-new/2008-January/001375.html raised the issue again] - that FN is not a suitable replacement for the title of an audio recording. Manu [http://microformats.org/discuss/mail/microformats-new/2008-February/001401.html argued that TITLE should be brought in line with the English definition] once again, and another argument about namespacing started on the microformats-new mailing list. This discussion revolved around an assertion that Manu was making about Microformat's [http://microformats.org/wiki/namespaces having a stance against namespacing], but then turning around and [http://microformats.org/discuss/mail/microformats-new/2008-February/001401.html inconsistently using "emulated namespaces"] as a replacement when there was no other option but to namespace (such as in hAtom - "entry-title", "entry-summary", "entry-description")
 
-
 
-
Manu asserted further that the community has an inconsistent stance on namespaces because the community's [http://microformats.org/discuss/mail/microformats-new/2008-February/001401.html definition of namespacing was not standard]. It deviated from the definition in the field of linguistics, programming language design, and mainstream computer science literature. To illustrate the point, it was shown what the standard definition of 'namespace' is using [http://microformats.org/discuss/mail/microformats-new/2008-February/001426.html a number of text books on the subject].
 
-
 
-
Manu is currently challenging the vague and inconsistent definition of namespace that is being used in the Microformats community and is asking for further refinement on the types of namespaces that are and are not allowed in the Microformats community.
 
-
 
-
== Resolution ==
 
-
 
-
Danny Ayers resolves pretty much all of the above regarding "namespaces" in his email:
 
-
 
-
http://microformats.org/discuss/mail/microformats-new/2008-February/001438.html
 
-
 
-
This resolution is being contested by Manu since none of the namespaces pages were updated as a result of the discussion. [[User:ManuSporny|ManuSporny]] 19:45, 4 Feb 2008 (PST)
 
=Brief Definitions=
=Brief Definitions=
Line 33: Line 13:
<dt>namespace</dt>
<dt>namespace</dt>
<dl>A namespace is a named scope.</dl>
<dl>A namespace is a named scope.</dl>
 +
<dt>fully qualified namespace</dt>
 +
<dl>Fully qualified namespaces </dl>
 +
<dt>emulated namespace</dt>
 +
<dl>A namespace can be emulated by using an identifer naming convention. For example, png_create_write_struct, png_get_signature, png_read_row, png_set_invalid are examples of C functions that use an emulated namespace called 'png'.</dl>
 +
 +
=Required Changes=
 +
 +
These are the changes that would need to be made to the [namespaces] page to bring the Microformats definition of a namespace in line with the commonly understood definition of a namespace.
 +
 +
* The three brief definitions on context, scope and namespace should be included in the page
=Definitions=
=Definitions=
Here are excerpts from the definitions and links to further definitions supporting the arguments listed on this page.
Here are excerpts from the definitions and links to further definitions supporting the arguments listed on this page.
 +
 +
The general definition of context is:
 +
 +
<pre>
 +
Discourse that surrounds a language unit and helps to determine its interpretation.
 +
</pre> --- [http://wordnet.princeton.edu/perl/webwn?s=context Wordnet: context]
 +
 +
The definition of scope is:
 +
 +
<pre>
 +
In computer programming, scope is an enclosing context where values and expressions are
 +
associated. Various programming languages have various types of scopes. The type of scope
 +
determines what kind of entities it can contain and how it affects them -- or semantics.
 +
Scopes can:
 +
 +
    * contain declarations or definitions of identifiers;
 +
    * contain statements and/or expressions which define an executable algorithm or part
 +
      thereof;
 +
    * nest or be nested.
 +
 +
A namespace is a scope that uses the enclosing nature of the scope to group logically
 +
related identifiers under a single identifier. Thus, scopes can affect the name resolution
 +
for their contents.
 +
</pre> --- [http://en.wikipedia.org/wiki/Scope_%28programming%29 Wikipedia: scope]
The general definition of namespace is defined as:
The general definition of namespace is defined as:
Line 44: Line 58:
technical terms, or words) it holds and allowing disambiguation of items having the  
technical terms, or words) it holds and allowing disambiguation of items having the  
same name (residing in different namespaces)...
same name (residing in different namespaces)...
-
</pre> --- [http://en.wikipedia.org/wiki/Namespace Wikipedia:namespace]
+
</pre> --- [http://en.wikipedia.org/wiki/Namespace Wikipedia: namespace]
The Computer Science definition of namespace is:
The Computer Science definition of namespace is:
Line 56: Line 70:
Languages that support namespaces specify the rules that determine which namespace an  
Languages that support namespaces specify the rules that determine which namespace an  
identifier (i.e., not its definition) belongs.
identifier (i.e., not its definition) belongs.
-
</pre> --- [http://en.wikipedia.org/wiki/Wikipedia:Namespace Wikipedia:Namespace(computer science)]
+
</pre> --- [http://en.wikipedia.org/wiki/Namespace_%28programming%29 Wikipedia: Namespace (computer science)]
-
The definition of scope is:
+
The Computer Science definition of an "emulated namespace" is:
<pre>
<pre>
-
In computer programming, scope is an enclosing context where values and expressions are  
+
In programming languages that do not provide language support for namespaces, namespaces
-
associated. Various programming languages have various types of scopes. The type of scope
+
can be emulated to some extent by using an identifier naming convention. For example,
-
determines what kind of entities it can contain and how it affects them -- or semantics.
+
C libraries such as Libpng often use a fixed prefix for all functions and variables that
-
Scopes can:
+
are part of their exposed interface. Libpng exposes identifiers such as:
-
    * contain declarations or definitions of identifiers;
+
  png_create_write_struct
-
    * contain statements and/or expressions which define an executable algorithm or part
+
  png_get_signature
-
      thereof;
+
  png_read_row
-
    * nest or be nested.
+
  png_set_invalid
-
A namespace is a scope that uses the enclosing nature of the scope to group logically
+
This gives reasonable assurance that the identifiers are unique and can therefore be used
-
related identifiers under a single identifier. Thus, scopes can affect the name resolution
+
in larger programs without fear of identifier naming collisions.
-
for their contents.
+
</pre> --- [http://en.wikipedia.org/wiki/Namespace_%28computer_science%29#Emulating_namespaces Wikipedia: Namespace emulation]
-
</pre> --- [http://en.wikipedia.org/wiki/Scope_%28programming%29 Wikipedia:Scope]
+
-
The general definition of context is:
+
 
 +
The Computer Science definition of a "fully qualified namespace" is:
<pre>
<pre>
-
Discourse that surrounds a language unit and helps to determine its interpretation.
+
In computer programming, a fully qualified name is an unambiguous name that specifies which object, function, or variable a call refers to absolutely. To fully-qualify most often means to explicitly refer to namespaces that would otherwise be implicit because of the scope of the call.
-
</pre> --- [http://wordnet.princeton.edu/perl/webwn?s=context Wordnet:context]
+
</pre> --- [http://en.wikipedia.org/wiki/Fully_qualified_name Wikipedia:fully qualified name]
 +
 
 +
=History=
 +
 
 +
In June of 2007, while discussing what should be the name of a song, album or audio recording for hAudio, [http://microformats.org/discuss/mail/microformats-new/2007-June/000511.html it was suggested that TITLE be re-used from hCard]. This kicked off a debate about whether it would be appropriate to re-use TITLE because [http://microformats.org/discuss/mail/microformats-new/2007-June/000512.html TITLE was previously defined in hCard as "job title"]. Manu pointed out that [http://microformats.org/discuss/mail/microformats-new/2007-June/000511.html this was not the proper English definition for TITLE], would confuse authors, and inquired as to why TITLE was defined in such a constrained way. It was shown that [http://microformats.org/discuss/mail/microformats-new/2007-June/000512.html TITLE re-used the definition of TITLE from the VCARD specification], and since TITLE had been set as such, re-defining it to become in-line with the English definition of TITLE would have ramifications on hCard implementations out in the field.
 +
 
 +
A suitable replacement for TITLE was discussed and, [http://microformats.org/discuss/mail/microformats-new/2007-October/001009.html FN was adopted for hAudio].
 +
 
 +
Several months later, Martin McEvoy [http://microformats.org/discuss/mail/microformats-new/2008-January/001375.html raised the issue again] - that FN is not a suitable replacement for the title of an audio recording. Manu [http://microformats.org/discuss/mail/microformats-new/2008-February/001401.html argued that TITLE should be brought in line with the English definition] once again, and another argument about namespacing started on the microformats-new mailing list. This discussion revolved around an assertion that Manu was making about Microformat's [http://microformats.org/wiki/namespaces having a stance against namespacing], but then turning around and [http://microformats.org/discuss/mail/microformats-new/2008-February/001401.html inconsistently using "emulated namespaces"] as a replacement when there was no other option but to namespace (such as in hAtom - "entry-title", "entry-summary", "entry-description")
 +
 
 +
Manu asserted further that the community has an inconsistent stance on namespaces because the community's [http://microformats.org/discuss/mail/microformats-new/2008-February/001401.html definition of namespacing was not standard]. It deviated from the definition in the field of linguistics, programming language design, and mainstream computer science literature. To illustrate the point, it was shown what the standard definition of 'namespace' is using [http://microformats.org/discuss/mail/microformats-new/2008-February/001426.html a number of text books on the subject].
 +
 
 +
Manu is currently challenging the vague and inconsistent definition of namespace that is being used in the Microformats community and is asking for further refinement on the types of namespaces that are and are not allowed in the Microformats community.
 +
 
 +
=Sympathetic to the Cause=
 +
 
 +
Below is a list of people that would like the namespace inconsistency more directly addressed by implementing the changes listed above in the "Required Changes" section.
 +
 
 +
* [[User:ManuSporny|ManuSporny]] 07:54, 5 Feb 2008 (PST)
 +
 
 +
= Resolution =
 +
 
 +
Danny Ayers resolves pretty much all of the above regarding "namespaces" in his email:
 +
 
 +
http://microformats.org/discuss/mail/microformats-new/2008-February/001438.html
 +
 
 +
This resolution is being contested by Manu since none of the namespaces pages were updated as a result of the discussion. [[User:ManuSporny|ManuSporny]] 19:45, 4 Feb 2008 (PST)
 +
 
 +
=References=
 +
 
 +
References that support the commonly understood definition of namespace:
-
Other References that support the common definition of namespace:
+
* [http://en.wikipedia.org/wiki/Namespace Wikipedia:namespace]
 +
* [http://en.wikipedia.org/wiki/Scope_%28programming%29 Wikipedia:Scope]
 +
* [http://wordnet.princeton.edu/perl/webwn?s=context Wordnet:context]
 +
* History of Programming Languages II, By Thomas J. Bergin, Richard G. Gibson, p.265
 +
* Programming and Problem Solving with C++, By Nell B. Dale, Chip Weems, p.369
 +
* Computer-Aided Verification '90: Proceedings of a DIMACS Workshop, June 18-21, 1990. p.571
 +
* Handbook of Object Technology By Saba Zamir, p.15

Revision as of 15:54, 5 February 2008

Contents

Introduction

This page outlines a disputed inconsistency that the Microformat's community has had for a number of years. Namely, in the way the community defines "namespace" and the position it takes against that definition of a namespace.

Brief Definitions

Here are the definitions that the namespace inconsistency deals with:

context</dt>
A context is an enclosing structure that provides semantic meaning to the elements that it encloses.
scope</dt>
A scope is an enclosing context where values and expressions are associated. The term is interchangeable with context.
namespace</dt>
A namespace is a named scope.
fully qualified namespace</dt>
Fully qualified namespaces
emulated namespace</dt>
A namespace can be emulated by using an identifer naming convention. For example, png_create_write_struct, png_get_signature, png_read_row, png_set_invalid are examples of C functions that use an emulated namespace called 'png'.

Required Changes

These are the changes that would need to be made to the [namespaces] page to bring the Microformats definition of a namespace in line with the commonly understood definition of a namespace.

  • The three brief definitions on context, scope and namespace should be included in the page

Definitions

Here are excerpts from the definitions and links to further definitions supporting the arguments listed on this page.

The general definition of context is:

Discourse that surrounds a language unit and helps to determine its interpretation.
--- Wordnet: context

The definition of scope is:

In computer programming, scope is an enclosing context where values and expressions are 
associated. Various programming languages have various types of scopes. The type of scope 
determines what kind of entities it can contain and how it affects them -- or semantics. 
Scopes can:

    * contain declarations or definitions of identifiers;
    * contain statements and/or expressions which define an executable algorithm or part 
      thereof;
    * nest or be nested.

A namespace is a scope that uses the enclosing nature of the scope to group logically 
related identifiers under a single identifier. Thus, scopes can affect the name resolution 
for their contents.
--- Wikipedia: scope

The general definition of namespace is defined as:

...a namespace is an abstract container providing context for the items (names, or 
technical terms, or words) it holds and allowing disambiguation of items having the 
same name (residing in different namespaces)...
--- Wikipedia: namespace

The Computer Science definition of namespace is:

A namespace is an abstract container or environment created to hold a logical grouping 
of unique identifiers (i.e., names). An identifier defined in a namespace is associated 
with that namespace. The same identifier can be independently defined in multiple 
namespaces. That is, the meaning associated with an identifier defined in one namespace 
may or may not have the same meaning as the same identifier defined in another namespace. 
Languages that support namespaces specify the rules that determine which namespace an 
identifier (i.e., not its definition) belongs.
--- Wikipedia: Namespace (computer science)

The Computer Science definition of an "emulated namespace" is:

In programming languages that do not provide language support for namespaces, namespaces 
can be emulated to some extent by using an identifier naming convention. For example, 
C libraries such as Libpng often use a fixed prefix for all functions and variables that 
are part of their exposed interface. Libpng exposes identifiers such as:

   png_create_write_struct
   png_get_signature
   png_read_row
   png_set_invalid

This gives reasonable assurance that the identifiers are unique and can therefore be used 
in larger programs without fear of identifier naming collisions.
--- Wikipedia: Namespace emulation


The Computer Science definition of a "fully qualified namespace" is:

In computer programming, a fully qualified name is an unambiguous name that specifies which object, function, or variable a call refers to absolutely. To fully-qualify most often means to explicitly refer to namespaces that would otherwise be implicit because of the scope of the call.
--- Wikipedia:fully qualified name

History

In June of 2007, while discussing what should be the name of a song, album or audio recording for hAudio, it was suggested that TITLE be re-used from hCard. This kicked off a debate about whether it would be appropriate to re-use TITLE because TITLE was previously defined in hCard as "job title". Manu pointed out that this was not the proper English definition for TITLE, would confuse authors, and inquired as to why TITLE was defined in such a constrained way. It was shown that TITLE re-used the definition of TITLE from the VCARD specification, and since TITLE had been set as such, re-defining it to become in-line with the English definition of TITLE would have ramifications on hCard implementations out in the field.

A suitable replacement for TITLE was discussed and, FN was adopted for hAudio.

Several months later, Martin McEvoy raised the issue again - that FN is not a suitable replacement for the title of an audio recording. Manu argued that TITLE should be brought in line with the English definition once again, and another argument about namespacing started on the microformats-new mailing list. This discussion revolved around an assertion that Manu was making about Microformat's having a stance against namespacing, but then turning around and inconsistently using "emulated namespaces" as a replacement when there was no other option but to namespace (such as in hAtom - "entry-title", "entry-summary", "entry-description")

Manu asserted further that the community has an inconsistent stance on namespaces because the community's definition of namespacing was not standard. It deviated from the definition in the field of linguistics, programming language design, and mainstream computer science literature. To illustrate the point, it was shown what the standard definition of 'namespace' is using a number of text books on the subject.

Manu is currently challenging the vague and inconsistent definition of namespace that is being used in the Microformats community and is asking for further refinement on the types of namespaces that are and are not allowed in the Microformats community.

Sympathetic to the Cause

Below is a list of people that would like the namespace inconsistency more directly addressed by implementing the changes listed above in the "Required Changes" section.

Resolution

Danny Ayers resolves pretty much all of the above regarding "namespaces" in his email:

http://microformats.org/discuss/mail/microformats-new/2008-February/001438.html

This resolution is being contested by Manu since none of the namespaces pages were updated as a result of the discussion. ManuSporny 19:45, 4 Feb 2008 (PST)

References

References that support the commonly understood definition of namespace:

  • Wikipedia:namespace
  • Wikipedia:Scope
  • Wordnet:context
  • History of Programming Languages II, By Thomas J. Bergin, Richard G. Gibson, p.265
  • Programming and Problem Solving with C++, By Nell B. Dale, Chip Weems, p.369
  • Computer-Aided Verification '90: Proceedings of a DIMACS Workshop, June 18-21, 1990. p.571
  • Handbook of Object Technology By Saba Zamir, p.15
namespaces-inconsistency-issue was last modified: Wednesday, December 31st, 1969

Views