Nomen


License

License

MIT
GroupId

GroupId

com.edugility
ArtifactId

ArtifactId

nomen
Last Version

Last Version

1.2.0
Release Date

Release Date

Type

Type

jar
Description

Description

Nomen
Nomen
Project Organization

Project Organization

Edugility
Source Code Management

Source Code Management

https://github.com/ljnelson/nomen/

Download nomen

How to add to project

<!-- https://jarcasting.com/artifacts/com.edugility/nomen/ -->
<dependency>
    <groupId>com.edugility</groupId>
    <artifactId>nomen</artifactId>
    <version>1.2.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.edugility/nomen/
implementation 'com.edugility:nomen:1.2.0'
// https://jarcasting.com/artifacts/com.edugility/nomen/
implementation ("com.edugility:nomen:1.2.0")
'com.edugility:nomen:jar:1.2.0'
<dependency org="com.edugility" name="nomen" rev="1.2.0">
  <artifact name="nomen" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.edugility', module='nomen', version='1.2.0')
)
libraryDependencies += "com.edugility" % "nomen" % "1.2.0"
[com.edugility/nomen "1.2.0"]

Dependencies

compile (1)

Group / Artifact Type Version
org.mvel : mvel2 jar 2.2.7.Final

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

nomen

Intelligent Names for Java

August 23, 2013

Laird Nelson

nomen is a small project that models names for parties.

Many database applications require the storage and processing of human and organizational names. Frequently, names are effectively templates built out of other names that are more atomic in nature. For example, we like to say that a person typically has a first name, a middle name, a last name, and a full name—which is effectively a template built from the other three name types.

Of course, when we say this, we are wrong for at least some subset of people. Or we are wrong in our usage of the names themselves. For example, some people prefer to go by their last or family names. Other times people have only one name. Other times we use these strangely-designated names for sorting purposes (we tend to sort by last name, and when we capture a last name we are typically capturing it for sorting purposes).

When you examine naming deeply, you discover that designating types of names is flawed unless those name types describe at least indirectly what someone intends to do with the name so typed.

You also discover that certain names (or name parts) are fixed, or are drawn from a relatively small finite set of possible values. For example, we know that "Jr." is a sequence of three characters that stands for Junior.

nomen treats all these concepts as first-class notions. A NameValue is a glorified String with either an atomic value ("Laird"), or a template value ("${firstName} ${lastName}"). A NameType is another glorified String that identifies the usage of a given name, and that can be used as a key in templates. A Named is something that can have a name associated with it by (minimally) NameType. And finally, a Name is a union of a Named and a NameValue, together with a template evaluation engine.

Versions

Version
1.2.0
1.1.7
1.1.6
1.1.3
1.1.1
1.1.0
1.0.8
1.0.7