Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Namespace guidelines for functions and procedures #255

Open
Mats-SX opened this issue Sep 28, 2017 · 0 comments
Open

Namespace guidelines for functions and procedures #255

Mats-SX opened this issue Sep 28, 2017 · 0 comments
Labels

Comments

@Mats-SX
Copy link
Member

Mats-SX commented Sep 28, 2017

CIR-2017-255

During oCIG call 5 the issue of potential future conflicts in function names was raised. In particular, the following scenario was expressed as an example:

  • A vendor X adds a vendor-specific function foo()
  • The oCIG decides that foo() is generally useful and adopts it as a standard function
  • The oCIG disagrees with (a detail of) the semantics of foo() as implemented by X
  • The standardised function foo() is now in direct conflict with foo() in X's implementation; the users of X suffers from queries breaking

To avoid this situation, the namespace part of a function name could be used; the function foo() would be implemented as X.foo() in X's implementation, and when adopted in the standard as just foo() it would not be in conflict.

Although no procedures are currently part of the standard, the same argument applies to them in the event that any should be accepted into the standard in the future.

Request

The exact form of the namespace part should be standardised so that each vendor can use a unique, consistent namespace for their vendor-specific functions and procedures. These namespace forms would thus be well-known and could be avoided by users when these write their own user-defined functions and procedures.

Suggestions

A reverse domain name descriptor, eg org.neo4j could be utilised -- this could optionally be coupled with the constraint that the specific domain is also owned by the vendor (which guarantees uniqueness via ICANN).

@Mats-SX Mats-SX added the CIR label Sep 28, 2017
Mats-SX added a commit to Mats-SX/openCypher that referenced this issue Sep 29, 2017
This enables user-defined and vendor-specific functions
to protect functions via a namespace part.

References opencypher#255
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant