Public Names
Copyright (C) 2005-2006 Laurent A.V. Szyster
The Public Names protocol defines a simple semantic data model for articulated text. A simple computer system can use this protocol to map articulated text into a uniform context graph, and eventually use it to infer relevant routes between contexts in a public network.
Definition
(Updated 1 Oct 2006, at last.)
A Public Name is either a text string of at least one UNICODE character which does not contain a Public Name, or a set of more than one unique and non-null Public Names sorted lexicographically, encoded as a sequence of
[len]":"[Public Names]","
where len is the decimal length of the Public Names text string (see netstrings, the original equivalent for 8 bit byte strings).
Examples
For instance:
4:Name,6:Public,6:System,3:The,
is a valid public name, as well as the four strings composing it:
The Public Name System
but all the strings below:
0:, 2:Hi,3:Ben,1:!, 4:fast,4:kill,4:kill,8:pussycat,
are invalid Public Names.
Here are another set of valid Public Names articulated from selected CDATA in an RSS feed. A publication date:
Sat, 17 Sep 2005 00:34:47 +0000
5:+0000, 8:00:34:47, 15: 2:17, 4:2005, 3:Sep, , 3:Sat,
and an item title:
Justin Mason: TiVo Co-Opts Anti-Spam Terminology
56:
12:
2:Co,
4:Opts,
,
14:
4:Anti,
4:Spam,
,
11:Terminology,
4:TiVo,
,
17:
6:Justin,
5:Mason,
,
Each one captures some of the original text articulation as a set of semantic relations between sets of names, between semantic fields.
Application
Wether you ask DNS for the IP address of:
nightmare.com
or search a web service for some hyperlinks about:
"Sam Rushing" Medusa
you will use punctuation, whitespace or quotes to articulate the semantic relations of proximity between the text strings that compose your statements.
The equivalent Public Names
3:com,9:nightmare,
and
16:7:Rushing,3:Sam,,6:Medusa,
provide a more general encoding of articulated byte strings.
Any articulated set text strings can be encoded as a Public Name, regardless of its original order or direction.
As articulated sets of strings, Public Names also enable a simple computer system to semantically validate its input against dispersion, to map a non-dispersed semantic graph from the articulated text strings and eventually to infer semantic proximity between the Public Names mapped.
Practically, Public Names can be indexed in a simple hash table as pairs of text strings. For instance (using the Python representation of hash tables):
{
'Sam': '7:Rushing,3:Sam,',
'Rushing': '7:Rushing,3:Sam,',
'7:Rushing,3:Sam,': '16:7:Rushing,3:Sam,,6:Medusa,',
'Medusa': '16:7:Rushing,3:Sam,,6:Medusa,',
'com': '3:com,9:nightmare,',
'nightmare': '3:com,9:nightmare,',
}
Such hash is a non-dispersed, or well-articulated, semantic graph if where both keys and values are Public Names.