
Internet Engineering Task Force
Internet-Draft                                              B.Fastenrath
Intended status: Experimental                           December 9, 2010
Expires: June 12, 2011


        Ethics Search Protocol (ESP) for Internet Search Engines
            <draft-fastenrath-ethics-search-protocol-00.txt>

Abstract

   This document contains a specification for imprints, ethical
   policies and social contracts, the annotation of these, as well
   as the annotation of arbitrary content that can be referenced
   by fully qualified URIs, the submission of digitally signed tickets
   concerning imprints, ethical policies, social contracts or
   annotations, and a search interface for internet search engines.

Status of this Memo

   This memo defines an experimental protocol for the Internet
   community.  This memo does not specify an Internet standard of
   any kind.  Discussion and suggestions for improvement are
   requested.  Distribution of this memo is unlimited.

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   Comments are solicited and should be addressed to the project's
   wiki or mailing list at http://savannah.nongnu.org/projects/esp.

Copyright Notice

   Copyright (c) 2010 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info)
   in effect on the date of publication of this document.  Please review
   these documents carefully, as they describe your rights and
   restrictions with respect to this document.




Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 01]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

Table of Contents

   1. Introduction.....................................................5
   1.1 Motivation......................................................5
   1.2 Notational Conventions..........................................5
   1.3 Reference Implementation........................................5
   1.4 Overview........................................................6
   1.5 Expected Use....................................................7
   1.5.1 Ethical Communities...........................................7
   1.5.2 Ethical Economies.............................................8
   1.5.3 Search Engines................................................8
   2. The ESP Specification............................................9
   2.1 Documents.......................................................9
   2.2 Requests and Responses..........................................9
   2.3 Databases.......................................................9
   2.4 XSD Header.....................................................10
   3. Simple Types....................................................11
   3.1 Identifier.....................................................11
   3.2 Path...........................................................11
   3.3 Prefix.........................................................11
   3.4 PrefixedPath...................................................11
   3.5 SynonymResolution..............................................12
   3.6 Acronym........................................................12
   3.7 Digits.........................................................13
   3.8 Continent......................................................13
   3.9 TradeZone......................................................13
   3.10 CurrencyType..................................................13
   3.11 CertificationRequirement......................................14
   3.12 ExtImpCategory................................................14
   3.13 PolicyMatchOperator...........................................15
   3.14 PolicyClass...................................................15
   3.15 Latitude......................................................15
   3.16 Longitude.....................................................16
   3.17 Revision......................................................16
   3.18 SignatureType.................................................16
   3.19 AdvertisementType.............................................17
   3.20 OfferType.....................................................17
   3.21 KeywordMatchType..............................................18
   3.22 EntityType....................................................18
   3.23 RegisterType..................................................19
   3.24 LanguageList..................................................19
   3.25 RegionCode....................................................20
   3.26 LoCode........................................................20
   3.27 AreaCode......................................................21
   3.28 PageType......................................................21
   3.29 PhoneType.....................................................21
   3.30 EmailType.....................................................22
   3.31 EmailAddress..................................................22
   3.32 SecureHash....................................................22
   3.33 Fingerprint...................................................23
   3.34 CoordinateQuality.............................................23
   3.35 Severity......................................................23



Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 02]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

   4. Complex Types...................................................24
   4.1 Meta...........................................................24
   4.2 Link...........................................................24
   4.3 Header.........................................................25
   4.4 Message........................................................26
   4.5 Currency.......................................................26
   4.6 PhoneNumber....................................................26
   4.7 WebPage........................................................27
   4.8 Phone..........................................................27
   4.9 Email..........................................................27
   4.10 Text..........................................................28
   4.11 Area..........................................................28
   4.12 ServiceInformation............................................29
   4.13 Coordinates...................................................29
   4.14 Address.......................................................30
   4.15 AddressPattern................................................31
   4.16 MembershipOrganization........................................31
   4.17 DateRange.....................................................31
   4.18 TicketSystem..................................................32
   4.19 Identity......................................................33
   4.20 Contacts......................................................33
   4.21 Register......................................................34
   4.22 RegisterPattern...............................................35
   4.23 Certification.................................................35
   4.24 OrganizationalUnit............................................35
   4.25 EntityPattern.................................................36
   4.26 Entity........................................................37
   4.27 AuthenticEntity...............................................38
   4.28 PolicyMatchGroup..............................................38
   4.29 PolicyReference...............................................39
   4.30 PolicyGroup...................................................39
   4.31 PolicyStatement...............................................40
   4.32 Signature.....................................................41
   4.33 Community.....................................................41
   4.34 Filter........................................................42
   4.35 NamespaceDocumentReference....................................42
   4.36 ReferenceGroup................................................43
   4.37 Reference.....................................................43
   4.38 Category......................................................44
   4.39 Hit...........................................................45
   4.40 Match.........................................................46
   4.41 CategorizedLink...............................................46
   4.42 WebSearchParameters...........................................47
   4.43 OrganizationSearchParameters..................................48
   4.44 FormEditor....................................................49
   4.45 Forum.........................................................49
   4.46 AnnotationSpace...............................................50
   4.47 Vote..........................................................50
   4.48 MultilingualText..............................................51
   4.49 Footnote......................................................52
   4.50 Paragraph.....................................................53
   4.51 Chapter.......................................................54



Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 03]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

   5. Top Level Types.................................................55
   5.1 TicketSearchRequest............................................55
   5.2 CategoryNamespace..............................................56
   5.3 SearchParameters...............................................57
   5.4 SearchProfile..................................................58
   5.5 SearchResult...................................................59
   5.6 VotingScheme...................................................60
   5.7 EvaluationScheme...............................................61
   5.8 Advertisement..................................................62
   5.9 Annotation.....................................................63
   5.10 TicketList....................................................64
   5.11 Ticket........................................................65
   5.12 Receipt.......................................................67
   5.13 RegionCodes...................................................68
   5.14 Imprint.......................................................69
   5.15 SocialContract................................................70
   5.16 PolicyDocument................................................71
   5.17 Esp...........................................................72
   6. Security considerations.........................................73
   7. IANA Considerations.............................................73
   8. References......................................................73
   8.1 Normative References...........................................73
   8.2 Informative References.........................................74
































Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 04]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

1. Introduction

   The Ethics Search Protocol (ESP) is an application-level protocol for
   the retrieval and search of web resources using HTTP [RFC2616] and
   XML 1.0 [W3C.REC-xml-20081126].  The protocol specifies the format
   of static objects, queries and responses as XML schemata
   [W3C.REC-xmlschema-0-20041028].  The specification of more compact
   alternative formats is beyond the scope of this memo.
   The specification of imprints, ethical policies and social contracts
   derived from ethical policies is the main purpose of the ESP
   protocol.  The protocol allows to annotate these objects and to
   post tickets referring to these objects in standard formats.
   In addition annotations and tickets can refer to any other content
   that can be referenced by an URI (e.g. EAN-numbered products).

1.1 Motivation

   Many consumers are today surrounded by offers of unknown ethical
   quality.  The verification of production standards is often
   impossible and where governmental or third party standards exist
   there is a strong tendency to undermine these standards by discount
   vendors and retailers.  One problem is that consumers seldom get the
   chance to communicate ethical requirements because the proper
   communication channels do not exist and many producers prefer to
   measure consumer preferences with a one dimensional scale, the sales.
   The purpose of this memo is to offer a specification for that
   missing communication channel.

1.2 Notational Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

   The "implementation" of a policy refers to the use of a policy in a
   social contract and the "extension" of a policy refers to creating
   a derivative policy from both another policy or from a policy scheme,
   which is a template for the structure of a policy.

   The more often used XSD schema keywords have been abbreviated.
   The abbreviations are CT for "xsd:ComplexType", ST for
   "xsd:simpleType", SEQ for "xsd:sequence", CHOICE for "xsd:choice",
   A for "xsd:attribute", E for "xsd:element", RESTRICTION for
   "xsd:restriction", PATTERN for "xsd:pattern", N for "name", T for
   "type", MIN for "minOccurs", and MAX for "maxOccurs".

1.3 Reference Implementation

   A reference implementation is being developed as Open Source
   and will be released under the GNU General Public License.
   The homepage of the project is http://esp.nongnu.org/.




Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 05]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

1.4 Overview

   The protocol specified by this document tries to allow search engine
   supported search for ethical policies and requirements.  As the
   ethical policies themselves will have to be written in human language
   and not in a computer language, and it seems desireable to keep it
   this way, possible requirements and policies need to be categorized
   and are made navigable as inheritance trees of derived policies or
   derived requirements.  The ESP document types PolicyDocument,
   Imprint, and SocialContract are the core of specifying ethical
   policies and can be stored as signed documents on web servers of
   organizations that offer an ethical standard and want to advertise it
   according to this specification.

   A search engine crawler can gather these documents and construct a
   database that contains knowledge of all additional criteria the
   search parameter specification of ESP requires in addition to web
   site indices.  This includes but is not limited to the trade register
   or association register numbers of entities, their digital signatures
   and their address and contact information.  This set of information
   becomes known about any organization that advertises an ethical
   policy, a social contract, that certifies policies or contracts,
   that allows other organizations to extend their policies or policy
   schemes or that acts as a trade register, association register, or
   other registry.  In the case of registries the digital signature or
   register number may not be available as ESP does not assume that
   such information have to be available about government operated
   registries.  The protocol does not specify how these documents are
   gathered as the operation of web crawlers is sufficiently
   established.  This specification includes the specification of search
   parameter types and response types, of annotation and ticket
   submission and reponse types, and of service and product
   namespace databases.

   Advertisable services are specified independently from this document 
   as the services available in a given area may vary widely and depend
   on cultural and technological parameters that are beyond the scope of
   this document.  Region codes used by ESP can be ISO 3166-2 codes, UN
   location codes, or native ESP region codes.  The exclusive use of
   ISO 3166-2 was considered insufficient because ISO 3166-2 is not
   freely available.














Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 06]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

1.5 Expected Use

   An organization that wants to be found by its social contract will
   have to write and publish a social contract in XML format.  The social
   contract consists of a collection of policy references, each
   referring to a specific policy document.  Each of the policies
   implemented and their individual levels of implementation can be
   independent search parameters in an ESP search profile.

   Policies written for public use can be made available to be used
   without further modifications in the social contracts of
   organizations that implement those policies (implementors).
   Implementors are otherwise free to write their own policies,
   extending policies or policy schemes that are available to be
   extended.  Extending a policy may require certification by the
   policy author, authoring group, or third party certification agents.

   Organisations will usually be interested to cooperate with other
   organisations with similar or matching policies to make the common
   subset of their policies an extendable policy or policy scheme
   further down the inheritance tree, so that their policies can become
   more widely known and can be demanded by a broader audience.

   Government or non-government organisations that have recommendations
   for other organisations can offer their recommendations as extendable
   policies or policy schemes and advertise the existance of their
   policies to implementors and potential customers, in order to make a
   certain ethical policy interesting to implement for organizations
   which are open to ethical suggestions by third parties.

1.5.1 Ethical Communities

   Individual search engine users are expected to define their own
   search profiles and include whatever policies or policy scheme they
   deem necessary.  An extension to this is the use of predefined
   ethics published by communities that try to uphold certain ethical
   standards.  The ethical requirements of a community are effectively
   included into the search profile of an individual user by referring
   to a specific community.  The community profile may either be applied
   ahead of any further requirements of the user or it may be used to
   define ethical requirements by name which can then be referred to
   by the same names in the search profil of the user.  It is conceivable
   that the definition of search profiles and the verification of
   company policies could become an interesting addition to curricula
   for high schools.










Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 07]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

1.5.2 Ethical Economies

   Closed economic systems or partially closed economic systems that
   adhere to common ethical policies can be modelled with ESP.  Examples
   for this are regional economies using local currencies (e.g. WIR)
   or charge card systems that advocate ethical policies and require
   adherence to these policies by all points of acceptance.  While both
   are possible without ESP the system might encourage adoption.

1.5.3 Search Engines

   Search engines are expected to gather information about ethical
   requirements from user profiles.  This is an important information
   channel that delivers information about ethics that are requested
   by potential customers and customers.  Users do not have to
   identify themselves when submitting search profiles so the identity
   of a search engine user is not necessarily attached to his or her
   search request.
   It is recommended to sign profiles, to give more emphasis to the
   ethical demands one tries to uphold.



































Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 08]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

2. The ESP Specification

2.1 Documents

   Static documents required by the ESP protocol are social contracts,
   policies, imprints, and annotations.  Social contracts and policies
   should be named after their revision numbers.  Imprints SHOULD be
   named imprint.xml and be placed in the top level directory of a web
   site they apply to.

   A policy document should either be placed in the top level directory
   of an organization that offers only a single type of policy or be
   placed in a directory corresponding to the policy in question.  The
   name of the policy file should be it's revision number with four
   digits for the year, a dot and a single digit for the revision number
   within the given year.

   An annotation should be placed in an AnnotationSpace, which can be
   a web forum, NNTP server, or dedicated database.  It is possible to
   publish an annotation by publishing an XML file that contains an
   Annotation type to any web site that is not a dedicated annotation
   space.  A web crawler discovering an annotation that is not part of
   an annotation space should treat the annotation like any other
   annotation.  The mime type of annotations SHOULD be
   "application/x-esp-annotation" and the extension SHOULD be ".ean"
   A crawler discovering an annotation outside a dedicated annotation
   space may not recognize it as an annotation if the mime type 
   or extension are not as expected.

2.2 Requests and Responses

   The request types are SearchProfile, Ticket, and TicketSearchRequest.
   The reponses to these requests are SearchResult, Receipt, and
   TicketList.  Requests and reponses SHOULD be transported as HTTP
   content but tickets MAY also be submitted by SMTP or NNTP.
   If a ticket system accepts posting by SMTP or NNTP the receipt
   MUST be sent to the originator of the ticket as specified by
   the ticket, even if the ticket does not request a reply or asks
   to avoid a reply, as the receipt should be processed automatically
   by the originator's system; a receipt is not considered a reply.
   Receipts can be identified by their mime type
   "application/x-esp-receipt" and can be filtered conveniently
   by the mail user agent of the recipient.












Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 09]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

2.3 Databases

   The ESP specification knows two database types, ServiceNamespace and
   RegionCodes.  The RegionCodes database is unique and defines the
   native region codes to be used by the ESP protocol.

   The CategoryNamespace is a database of category names.
   A CategoryNamespace can categorize services, product groups,
   policies, tickets, and other complex types in ESP whose
   categorization may be better kept outside the main specification to
   allow dynamic extensions by the user community.

   When something is categorized by a CategoryNamespace a reference to
   that namespace is usually found as an attribute of the element in
   question or of an enclosing element.  The most common uses are
   Reference and ReferenceGroup.

   Examples for CategoryNamespaces that categorize products and services
   are the North American Product Classification System [NAPCS], the
   North American Industry Classification System [NAICS], the United
   Kingdom Standard Industrial Classification of Economic Activities
   [UKSIC], the International Standard Industrial Classification [ISIC]
   of the United Nations, and the Statistical Classification of Economic
   Activities in the European Community [NACE].

   Every service offered by an organisation must lie inside a service
   category namespace but not all services must lie inside the same
   service category namespace.
   Search engines or information providers may translate between well
   known service category namespaces, if the same service description
   can be found in several namespaces.

2.4 XSD Header

   This is the header for the following XSD Schema.  Together with all 
   chunks of the XSD Schema found in this document the full XSD Schema
   for ESP can be extracted from this specification.  This document was
   generated from the following source file:
   http://esp.nongnu.org/esp.xsd.gz

  <?xml version="1.0" encoding="UTF-8"?>
  <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns="http://esp.nongnu.org/2005.1"
     targetNamespace="http://esp.nongnu.org/2005.1"
     elementFormDefault="qualified"
     attributeFormDefault="unqualified">









Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 10]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3. Simple Types

3.1 Identifier

   An identifier for implementation levels, labels, and signs.

  <ST N="Identifier">
   <RESTRICTION base="xsd:string">
    <PATTERN value="[a-z0-9\.\-_, ]+"/>
   </RESTRICTION>
  </ST>

3.2 Path

   A path of identifiers, separated by slashes.

  <ST N="Path">
   <RESTRICTION base="xsd:string">
    <PATTERN value="[a-z0-9\.\-_, /]+"/>
   </RESTRICTION>
  </ST>

3.3 Prefix

   A prefix for a path, usually a namespace selector.

  <ST N="Prefix">
   <RESTRICTION base="xsd:string">
    <PATTERN value="([a-z][a-z0-9]*)?"/>
   </RESTRICTION>
  </ST>

3.4 PrefixedPath

   A path of identifiers separated by slashes with a prefix separated
   by a colon.

  <ST N="PrefixedPath">
   <RESTRICTION base="xsd:string">
    <PATTERN value="([a-z][a-z0-9]*)?:[a-z0-9\.\-_, /]+"/>
   </RESTRICTION>
  </ST>













Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 11]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.5 SynonymResolution

   Possible strategies for synonym resolution:
   "outgoing only" means synonyms can point into other namespaces but
   synonyms from other namespaces cannot point into this one.
   "listed namespaces only" means synonyms from other namespaces
   can point into this namespace only if they are referred to by
   this namespaces (with the element "synonym-ns" to
   CategoryNamespace)
   "intransitiv" means other namespaces can point into this
   namespace but the synonyms of entries of other namespaces are not
   automatically assumed to be synonyms to entries of this namespace.
   "no amalgamation" means other namespaces can point into this
   namespace as long as that does not lead to amalgamation of entries
   in this namespace.
   "unrestricted" means other namespaces can point into this namespace
   without restrictions.
   The result of synonym resolution for other namespaces is that a
   search for something categorized as B from namespace NS-B may be
   resolved to something categorized as A from namespace NS-A when
   A refers to B as a synonym and synonym resolution rules allow it to
   be resolved; searching for objects categorized as A will always
   find objects categorized as B, if A refers to B, because this
   outgoing reference is explicit and synonym resolution restrictions
   only apply to implicit (i.e. inverse or indirect) resolution.

  <ST N="SynonymResolution">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(outgoing only)|(listed namespaces only)|(intransiti
v)|(no amalgamation)|(unrestricted)"/>
   </RESTRICTION>
  </ST>

3.6 Acronym

   A two or three letter acronym used for ISO 3166-1 country codes.

  <ST N="Acronym">
   <RESTRICTION base="xsd:string">
    <PATTERN value="[a-z]{1,3}"/>
   </RESTRICTION>
  </ST>













Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 12]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.7 Digits

   A non-zero number of digits.

  <ST N="Digits">
   <RESTRICTION base="xsd:string">
    <PATTERN value="[0-9]+"/>
   </RESTRICTION>
  </ST>

3.8 Continent

   A continent name.

  <ST N="Continent">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(Africa)|(America)|(Asia)|(Europe)|(Australia)"/>
   </RESTRICTION>
  </ST>

3.9 TradeZone

   A trade zone.

  <ST N="TradeZone">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(AU)|(EU)|(NAFTA)|(CSN)|(ASEAN)"/>
   </RESTRICTION>
  </ST>

3.10 CurrencyType

   A currency type.

  <ST N="CurrencyType">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(national currency)|(timebank)|(LET)|(regional curre
ncy)|(sectoral currency)"/>
   </RESTRICTION>
  </ST>















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 13]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.11 CertificationRequirement

   The certification requirement level of different implementation
   levels of a policy can be "none", "available", or "required", which
   means no certification is available, certification is available and
   certification is required at the corresponding implementation level.

  <ST N="CertificationRequirement">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(none)|(available)|(required)"/>
   </RESTRICTION>
  </ST>

3.12 ExtImpCategory

   Possible extension or implementation categories are "free",
   "revocable", "on request", "certification available",
   "certification depends on implementation level",
   "certification required", and "private".

   "free" means the policy can be extended without pior consent.
   "revocable" indicates a policy may be freely extended or
   implemented but is revocable by the authoring group and,
   possibly, third parties.
   "on request" means the policy can only be properly implemented
   with the consent of the authoring group.  A certification may
   not be required.
   "certification available" means a certification is possible but
   not required.
   "certification depends on implementation level" means that the
   policy has implementation levels that require certification.
   "certification required" means certification is generally required.
   "private" indicates policies that are not for public re-use.

  <ST N="ExtImpCategory">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(free)|(revocable)|(on request)|(certification avail
able)|(certification depends on implementation level)|(certification req
uired)|(private)"/>
   </RESTRICTION>
  </ST>














Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 14]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.13 PolicyMatchOperator

   The operator of a PolicyMatchGroup, either "all" (AND), or "one"
   (OR).
   This is equivalent to the common choice "with all of the words" or
   "with at least one of the words" in search engines' input masks
   but concerning policies here.

  <ST N="PolicyMatchOperator">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(all)|(one)"/>
   </RESTRICTION>
  </ST>

3.14 PolicyClass

   Possible policy categories are "policy scheme", "extendable policy",
   and "final policy".  Policies can extend policy schemes and
   policies can extend other policies.
   Final policies cannot be extended.

  <ST N="PolicyClass">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(policy scheme)|(extendable policy)|(final policy)"/
>
   </RESTRICTION>
  </ST>

3.15 Latitude

   The geographical latitude of a geographical coordinate
   (Lat. N + > 0, Lat. S - < 0).

  <ST N="Latitude">
   <RESTRICTION base="xsd:string">
    <PATTERN value="N|S|0 [-]?[0-9]{2}(:[0-9]{2}){1,2}"/>
   </RESTRICTION>
  </ST>

















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 15]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.16 Longitude

   The geographical longitude of a geographical coordinate
   (E + > 0, Long. W - < 0).

  <ST N="Longitude">
   <RESTRICTION base="xsd:string">
    <PATTERN value="E|W|0 [-]?[0-9]{3}(:[0-9]{2}){1,2}"/>
   </RESTRICTION>
  </ST>

3.17 Revision

   A revision number of the form "(year).(revision)"

  <ST N="Revision">
   <RESTRICTION base="xsd:string">
    <PATTERN value="20[0-9]{2}\.[0-9]+"/>
   </RESTRICTION>
  </ST>

3.18 SignatureType

   The available signature types, currently only OpenPGP.

  <ST N="SignatureType">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(OpenPGP)"/>
   </RESTRICTION>
  </ST>

























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 16]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.19 AdvertisementType

   The type of advertisement: "sale", "sharing pool",
   "service", "lodging", "auction", "short-term resale",
   "medium-term resale", and "long-term resale"

   "sale" indicates a first hand sale.
   "sharing pool" indicates a pool of objects available for lending.
   "service" indicates a service being advertised.
   "lodging" indicates the availability of a lodging opportunity.
   "auction" indicates an object will be auctioned.
   "short-term resale" indicates intend of resale within 1 month.
   "medium-term resale" indicates intend of resale within 6 month.
   "long-term resale" indicates intend of resale after 6 month.
   "long-term resale" may also be used to indicate that an object
   has been newly acquired with the intend to sell it before its
   expiration.

  <ST N="AdvertisementType">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(sale)|(sharing pool)|(service)|(lodging)|(auction)|
(short-term resale)|(medium-term resale)|(long-term resale)"/>
   </RESTRICTION>
  </ST>

3.20 OfferType

   The offer can be "private", "commercial", or "community".

   "private" indicates an offer by an individual.
   "commercial" indicates an offer by a commercial entity.
   "community" indicates an offer inside a community that
   may not be available outside the community.

  <ST N="OfferType">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(private)|(commercial)|(community)"/>
   </RESTRICTION>
  </ST>
















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 17]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.21 KeywordMatchType

   The types of keyword match operators are "all", "exact", "any", and
   "without".
   This is equivalent to the common choice "with all of the words" or
   "with at least one of the words" in search engines' input masks.

   see also: PolicyMatchOperator

  <ST N="KeywordMatchType">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(all)|(exact)|(any)|(without)"/>
   </RESTRICTION>
  </ST>

3.22 EntityType

   A general classification for the type of organization, one of
   "coop", "NGO", "LLC", "company", "association", "government agency",
   "statutory corporation", "working committee", "individual",
   or "other".

  <ST N="EntityType">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(coop)|(NGO)|(LLC)|(company)|(association)|(governme
nt agency)|(statutory corporation)|(working committee)|(individual)|(oth
er)"/>
   </RESTRICTION>
  </ST>


























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 18]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.23 RegisterType

   A classification for the type of trade register or association
   register, one of "gov. trade register",
   "gov. association register", "private registrar",
   "NGO registry", "chamber of commerce", "chamber of crafts",
   "tax and revenue office", "membership register", "social security",
   "health insurance", and "passport registration office"
   The last three are only applicable for individuals.

  <ST N="RegisterType">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(gov\. trade register)|(gov\. association register)|
(private registrar)|(NGO registry)|(chamber of commerce)|(chamber of cra
fts)|(tax and revenue office)|(membership register)|(social security)|(h
ealth insurance)|(passport registration office)"/>
   </RESTRICTION>
  </ST>

3.24 LanguageList

   A list of 2 or 3 letter ISO 639 language codes, e.g.:
   "br,en,ban,fr,ja,nl,pt,sa,zh"
   (see http://en.wikipedia.org/wiki/ISO_639)

  <ST N="LanguageList">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(,?[a-z]{2,3}(-[A-Z]{2,3})?)+"/>
   </RESTRICTION>
  </ST>

























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 19]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.25 RegionCode

   An ISO 3166-2 region code, an ESP native region code or an UN
   location code.  The ISO 3166-2 region code cannot be recommended here,
   as it is not freely available.  An UN location code may be used to
   specify a location within a region as a reference to that region.
   [UN/LOCODE-2010-1]
   Specifying an ISO 3166-2 code requires the prefix "iso:", so an
   actual code would be "iso:us-ca".  An UN location code requires the
   prefix "locode:", so an actual code would be "locode:de-cgn".  A list
   of valid ESP native region codes is available at
   http://esp.nongnu.org/xml/regions.xml.txt.gz
   There is no prefix required, e.g.: "de-nrw", "lu-*", or "us-ca".
   The reason for the presence of region codes in this specification is
   that the use of mandatory region codes makes address information more
   redundant and region codes allow more fine grained regional
   searches than the use of country codes.

  <ST N="RegionCode">
   <RESTRICTION base="xsd:string">
    <PATTERN value="((iso:)|(locode:))?[a-z]{2}-(\*|[a-z0-9]{1,3})"/>
   </RESTRICTION>
  </ST>

3.26 LoCode

   An UN location code [UN/LOCODE-2010-1] may be used to specify a
   location or the closest location that does have an UN location code.

  <ST N="LoCode">
   <RESTRICTION base="xsd:string">
    <PATTERN value="[a-z]{2}-[a-z0-9]{1,3}"/>
   </RESTRICTION>
  </ST>





















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 20]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.27 AreaCode

   A telephone area code in the format +<international>-<area code>.
   Phone numbers within an element that contains an area code attribute
   may omit the area code, otherwise every phone number has to include
   an areaCode attribute.
   This is always required for mobile phones, 0800 numbers and other
   numbers that do not have an area code prefix.

  <ST N="AreaCode">
   <RESTRICTION base="xsd:string">
    <PATTERN value="\+[0-9]{1,3}(\-[0-9]{1,6})?"/>
   </RESTRICTION>
  </ST>

3.28 PageType

   A general classification for a web page:
   "homepage", "sitemap", "press releases", "history/profile"
   "rss news feed", "information retrieval", "imprint", "forum",
   or "3rd party information"

   This could become a CategoryNamespace in future.

  <ST N="PageType">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(homepage)|(sitemap)|(press releases)|(history/profi
le)|(rss news feed)|(information retrieval)|(imprint)|(forum)|(3rd party
 information)"/>
   </RESTRICTION>
  </ST>

3.29 PhoneType

   A general classification for a phone number: "reception", "office",
   "hotline", "service", "mobile", "fax", "private", or "other".

  <ST N="PhoneType">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(reception)|(office)|(hotline)|(service)|(mobile)|(f
ax)|(private)|(other)"/>
   </RESTRICTION>
  </ST>












Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 21]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.30 EmailType

   A general classification for an email address:
   "general", "customer service", "webmaster", "press contact",
   "legal department", "complaint", "office", "editorial department",
   "private", or "other".

   This could become a CategoryNamespace in future.

  <ST N="EmailType">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(general)|(customer service)|(webmaster)|(press cont
act)|(legal department)|(complaint)|(office)|(editorial department)|(pri
vate)|(other)"/>
   </RESTRICTION>
  </ST>

3.31 EmailAddress

   A restricted type that matches only email addresses.

  <ST N="EmailAddress">
   <RESTRICTION base="xsd:string">
    <PATTERN value="[^@]*@[^@]*\.[a-z]*"/>
   </RESTRICTION>
  </ST>

3.32 SecureHash

   A base64 encoded secure hash code.  Currently only SHA1 is allowed.
   This is not security relevant, it is supposed to promote immutability
   of policies.  A policy should be considered immutable once published
   and a successor should receive a different name.

  <ST N="SecureHash">
   <RESTRICTION base="xsd:string">
    <PATTERN value="sha1:[A-Za-z0-9\+/=]*"/>
   </RESTRICTION>
  </ST>
















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 22]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

3.33 Fingerprint

   An OpenPGP fingerprint.

  <ST N="Fingerprint">
   <RESTRICTION base="xsd:string">
    <PATTERN value="pgp:([A-F0-9]{4}\p{Zs}+){9}[A-F0-9]{4}"/>
   </RESTRICTION>
  </ST>

3.34 CoordinateQuality

   The quality of a geographic coordinate, either one of 
   "exact", "block", "house number approximation", "street",
   "postal code", "district", "city", "region", "country",
   or "+-10^[1-9]m".

  <ST N="CoordinateQuality">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(\+\-10\^[1-9]m)|(exact)|(block)|(house number appro
ximation)|(street)|(postal code)|(district)|(city)|(region)|(country)"/>
   </RESTRICTION>
  </ST>

3.35 Severity

   A severity rating for a problem or incident: "critical", "severe",
   "serious", "noteworthy", "intermediate", "harmless", or
   "insignificant".

   A similar rating scheme for product quality has been omitted
   because it is to weak to be of any use as a product rating.
   The problem to be solved lacks generally accepted units of
   measurement and is not one-dimensional.  The type EvaluationScheme
   addresses the problem instead.

  <ST N="Severity">
   <RESTRICTION base="xsd:string">
    <PATTERN value="(critical)|(severe)|(serious)|(noteworthy)|(intermed
iate)|(harmless)|(insignificant)"/>
   </RESTRICTION>
  </ST>













Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 23]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4. Complex Types

4.1 Meta

   A source element for HTML meta data.  The meta data can be inserted
   into statically and dynamically generated HTML pages generated
   from a document based on this schema.

  <CT N="Meta">
   <A N="name" T="xsd:string" use="required"/>
   <A N="content" T="xsd:string" use="required"/>
  </CT>

4.2 Link

   A source element for HTML meta data.

  <CT N="Link">
   <A N="rel" T="xsd:string"/>
   <A N="rev" T="xsd:string"/>
   <A N="href" T="xsd:string"/>
   <A N="title" T="xsd:anyURI"/>
  </CT>
































Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 24]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.3 Header

   A header for document meta data and categorization.  Categories can
   be transformed to HTML meta data but the preferred format to specify
   categories in ESP is to use the "categories" element.  Categories
   encountered in the "meta" attributes SHOULD be ignored and be
   replaced with properly specified categories.

   The following meta tag names are recommended:
   "author", "description", and "keywords"

   The following tags SHOULD be generated:
   "expires", "rfcNNNN.cat"

   Categories SHOULD be converted to HTML meta data by converting
   namespaces to LINK tags and category references to meta tags:

   <link rel="rfcNNNN.ns" id="<prefix>" href="<namespace url>">
   <meta name="rfcNNNN.cat" content="<prefix>:<path>">

   This may be modified for Dublin Core compatibility in future.

   The namespaces used for meta tags SHOULD be categorized as
   either "information/content" or "information/meta", according to the
   category namespace "http://esp.nongnu.org/ns/category/2005.1".

  <CT N="Header">
   <SEQ>
    <E N="meta" T="Meta" MIN="0" MAX="unbounded"/>
    <E N="link" T="Link" MIN="0" MAX="unbounded"/>
    <E N="categories" T="ReferenceGroup" MIN="0" MAX="1"/>
   </SEQ>
  </CT>






















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 25]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.4 Message

   A complex type that can contain plain text, HTML formatted text or
   elements following another XSD schema, that is outside the scope of
   this document to define.
   The "schema" attribute MUST refer to an XSD schema if the content of
   the message is in XML format.  The targetNamespace of the schema
   referred to by the "schema" attribute may be useful to select
   applicable xslt stylesheets from the local system or user
   preferences.
   The "xsltStyleSheet" attribute MAY refer to a recommended stylesheet
   that can be used to format the content of the message to HTML.
   The "mimeType" attribute MUST specify the mime type of the content.

  <CT N="Message" mixed="true">
   <A N="mimeType" T="xsd:string" use="required"/>
   <A N="schema" T="xsd:anyURI"/>
   <A N="xsltStyleSheet" T="xsd:anyURI"/>
  </CT>

4.5 Currency

   A type of currency that is accepted.  The "url" attribute may refer to
   the web page of a community currency, timebank, LET, barter exchange
   or other medium of exchange.

  <CT N="Currency">
   <A N="type" T="CurrencyType"/>
   <A N="url" T="xsd:anyURI"/>
  </CT>

4.6 PhoneNumber

   A telephone number with a separate area code or an
   internet telephone contact.

  <CT N="PhoneNumber">
   <A N="areaCode" T="AreaCode"/>
   <A N="local" T="Digits"/>
   <A N="ext" T="Digits"/>
   <A N="url" T="xsd:anyURI"/>
   <A N="sip" T="EmailAddress"/>
  </CT>












Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 26]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.7 WebPage

   A web page with name, url and type.

  <CT N="WebPage">
   <A N="type" T="PageType" use="required"/>
   <A N="name" T="xsd:string"/>
   <A N="url" T="xsd:anyURI" use="required"/>
  </CT>

4.8 Phone

   A phone contact with type, name, number and an email address
   to negotiate calls or to avoid calls to this number.

  <CT N="Phone">
   <SEQ>
    <E N="number" T="PhoneNumber" MIN="1" MAX="1"/>
   </SEQ>
   <A N="type" T="PhoneType" use="required"/>
   <A N="name" T="xsd:string"/>
   <A N="email" T="EmailAddress"/>
  </CT>

4.9 Email

   An email address with type, name and the actual email address.

  <CT N="Email">
   <A N="type" T="EmailType" use="required"/>
   <A N="name" T="xsd:string"/>
   <A N="address" T="EmailAddress" use="required"/>
  </CT>






















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 27]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.10 Text

   A reference to translations of the containing document.  The URL of a
   translation is the concatenation of the "baseUrl" attribute and a
   language code mentioned by the "translations" list.

  <CT N="Text">
   <A N="translations" T="LanguageList"/>
   <A N="baseUrl" T="xsd:anyURI"/>
  </CT>

4.11 Area

   An area can be described as a polygon of coordinates (specified by
   "point" elements) or it can be described by "region",
   "country", "continent", or "tradeZone" elements.
   The "radius" attribute specifies the radius in kilometers
   around given points that is part of the area, with the perimeters
   between points shifted outwards by the radius, as a tangent line.
   Specifying both points and regions (or countries) restricts the area
   described as a polygon to the given regions (or countries).
   Specifying either "continent" or "tradeZone" makes the area
   exactly the area of the specified continent(s) and trade zone(s).

  <CT N="Area">
   <SEQ>
    <E N="point" T="Coordinates" MIN="0" MAX="unbounded"/>
    <E N="region" T="RegionCode" MIN="0" MAX="unbounded"/>
    <E N="country" T="Acronym" MIN="0" MAX="unbounded"/>
    <E N="continent" T="Continent" MIN="0" MAX="5"/>
    <E N="tradeZone" T="TradeZone" MIN="0" MAX="5"/>
   </SEQ>
   <A N="radius" T="xsd:int"/>
  </CT>





















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 28]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.12 ServiceInformation

   A set of service information.  The "area" element describes the area
   of service.  The "group" element describes the services offered.
   The ReferenceGroup MUST refer to category namespaces of type
   "offering/service", according to category namespace
   "http://esp.nongnu.org/ns/category/2005.1".

  <CT N="ServiceInformation">
   <SEQ>
    <E N="area" T="Area" MIN="0" MAX="unbounded"/>
    <E N="group" T="ReferenceGroup" MIN="1" MAX="unbounded"/>
   </SEQ>
  </CT>

4.13 Coordinates

   Geographic coordinates.

  <CT N="Coordinates">
   <A N="quality" T="CoordinateQuality"/>
   <A N="loCode" T="LoCode"/>
   <A N="latitude" T="Latitude"/>
   <A N="longitude" T="Longitude"/>
  </CT>






























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 29]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.14 Address

   An address with optional contact information and coordinates.
   The element "supplement" can be used to specify any type of
   the address that does not fit the standardized fields.
   The "since" attribute can be used to specify since when the
   address is valid or when it will become valid.  The "until" attribute
   can be used to specify when the address becomes invalid or
   when it has become invalid.

  <CT N="Address">
   <SEQ>
    <E N="supplement" T="xsd:string" MIN="0" MAX="unbounded"/>
    <E N="phone" T="Phone" MIN="0" MAX="unbounded"/>
    <E N="email" T="Email" MIN="0" MAX="unbounded"/>
    <E N="web" T="WebPage" MIN="0" MAX="unbounded"/>
    <E N="coordinates" T="Coordinates" MIN="0" MAX="1"/>
   </SEQ>
   <A N="regionCode" T="RegionCode" use="required"/>
   <A N="areaCode" T="AreaCode" use="required"/>
   <A N="street" T="xsd:string" use="required"/>
   <A N="houseNumber" T="xsd:string" use="required"/>
   <A N="postalCode" T="xsd:string" use="required"/>
   <A N="postOfficeBox" T="xsd:string"/>
   <A N="city" T="xsd:string" use="required"/>
   <A N="since" T="xsd:date"/>
   <A N="until" T="xsd:date"/>
  </CT>



























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 30]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.15 AddressPattern

   An address pattern.  All attributes and elements that are present
   correspond to attributes and elements of the same name in the Address
   type but no attribute or element is mandatory.

  <CT N="AddressPattern">
   <SEQ>
    <E N="phone" T="xsd:string" MIN="0" MAX="1"/>
    <E N="email" T="xsd:string" MIN="0" MAX="1"/>
    <E N="web" T="xsd:string" MIN="0" MAX="1"/>
   </SEQ>
   <A N="regionCode" T="RegionCode"/>
   <A N="areaCode" T="AreaCode"/>
   <A N="street" T="xsd:string"/>
   <A N="postalCode" T="xsd:string"/>
   <A N="postOfficeBox" T="xsd:string"/>
   <A N="city" T="xsd:string"/>
  </CT>

4.16 MembershipOrganization

   A membership organisation.

  <CT N="MembershipOrganization">
   <SEQ>
    <E N="name" T="xsd:string" MIN="1" MAX="1"/>
    <E N="address" T="Address" MIN="1" MAX="unbounded"/>
    <E N="id" T="Identity" MIN="1" MAX="1"/>
   </SEQ>
   <A N="url" T="xsd:anyURI" use="required"/>
   <A N="memberSince" T="xsd:date" use="required"/>
   <A N="lastChanged" T="xsd:date" use="required"/>
  </CT>

4.17 DateRange

   A range of dates.

  <CT N="DateRange">
   <A N="from" T="xsd:date" use="required"/>
   <A N="to" T="xsd:date" use="required"/>
  </CT>












Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 31]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.18 TicketSystem

   A ticket submission interface.  The URL given as the "url" attribute
   to the "ticket" element MUST react to HTTP GET requests by delivering
   human readable content and MUST be able to receive HTTP POST requests
   that deliver a properly XML formatted Ticket and MUST respond with an
   XML formatted Receipt.  If more than one "login" element is given all
   ticket URLs MUST be able to accept any choice of login.
   The URL given as the "view" attribute MUST react to HTTP GET requests
   by delivering human readable content and MUST be able to receive HTTP
   POST requests that deliver an XML formatted TicketSearchRequest and
   respond with an XML formatted TicketList.  If ticket systems share
   logins a single identity provider can allow to log in to all sites
   using the same provider.  This is only intended to prevent abuse of
   the ticket system, not necessarily to be very secure.  Ticket
   submission may also require a prior login at the url given as the
   identityProvider attribute of the login element.  A login may require
   the use of HTTP cookies.  A ticket system may offer NNTP access by
   specifying an additional "nntp" attribute.
   The "type" attribute MUST be a reference to a CategoryNamespace of
   type "ticket/type", according to the category namespace
   "http://esp.nongnu.org/ns/category/2005.1".
   If posting to the ticket system requires a special editor to fill
   in the required elements of an XSD schema conveniently the "editor"
   attribute MUST refer to this editor.

  <CT N="TicketSystem">
   <SEQ>
    <E N="ns" T="NamespaceDocumentReference" MIN="0" MAX="unbounded"/>
    <E N="login" MIN="0" MAX="unbounded">
     <CT>
      <A N="identityProvider" T="xsd:anyURI" use="required"/>
     </CT>
    </E>
    <E N="ticket" MIN="1" MAX="unbounded">
     <CT>
      <A N="name" T="xsd:string"/>
      <A N="type" T="PrefixedPath" use="required"/>
      <A N="url" T="xsd:anyURI" use="required"/>
      <A N="view" T="xsd:anyURI" use="required"/>
      <A N="nntp" T="xsd:anyURI"/>
     </CT>
    </E>
    <E N="editor" T="FormEditor" MIN="0" MAX="1"/>
   </SEQ>
  </CT>









Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 32]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.19 Identity

   A digital identity.  Currently the only type of identity supported
   is an OpenPGP fingerprint.

  <CT N="Identity">
   <A N="name" T="xsd:string"/>
   <A N="fingerprint" T="Fingerprint" use="required"/>
  </CT>

4.20 Contacts

   Contacts grouped by region.  To specify contacts in more than one
   region one Contacts element per region or area must be specified.
   The "name" attribute of the OrganizationalUnit describes the name
   of a group of contacts, e.g. a regional office or other
   organizational unit.

  <CT N="Contacts">
   <SEQ>
    <E N="orgUnit" T="OrganizationalUnit" MIN="1" MAX="1"/>
    <E N="ticket" T="TicketSystem" MIN="0" MAX="unbounded"/>
    <E N="phone" T="Phone" MIN="0" MAX="unbounded"/>
    <E N="email" T="Email" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="regionCode" T="RegionCode" use="required"/>
   <A N="areaCode" T="AreaCode" use="required"/>
  </CT>



























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 33]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.21 Register

   A register, e.g. a trade register.
   Individuals may specify the registry type "passport registration
   office" and use their passport number as the registration number.
   In some numbering schemes unique registrar numbers are assigned to
   different registrars working with a common numbering scheme.
   This number can be specified as the "registrarIdentityNumber"
   attribute.  Sometimes registry numbers include a registry identity
   number; this number SHOULD be dublicated as the
   "registrarIdentityNumber" attribute, without removing it from the
   number attribute.
   The registrar identity number is usually assigned by a government
   agency or working group, which should be specified as a superior
   registrar to a registrar.
   The "search" attribute, if present, MUST contain a URL that
   accepts HTTP POST requests containing SearchParameters and
   responds with SearchResults.  The scope of the search may be
   limited to entities registered with that registry.

  <CT N="Register">
   <SEQ>
    <E N="entity" T="Entity" MIN="1" MAX="1"/>
   </SEQ>
   <A N="type" T="RegisterType" use="required"/>
   <A N="registrarIdentityNumber" T="xsd:string"/>
   <A N="number" T="xsd:string" use="required"/>
   <A N="search" T="xsd:anyURI"/>
   <A N="since" T="xsd:date"/>
   <A N="until" T="xsd:date"/>
  </CT>
























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 34]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.22 RegisterPattern

   A search pattern for a register, e.g. a trade register.

  <CT N="RegisterPattern">
   <SEQ>
    <E N="entity" T="EntityPattern" MIN="1" MAX="1"/>
   </SEQ>
   <A N="type" T="RegisterType"/>
   <A N="registrarIdentityNumber" T="xsd:string"/>
   <A N="number" T="xsd:string"/>
   <A N="since" T="xsd:date"/>
   <A N="until" T="xsd:date"/>
  </CT>

4.23 Certification

   A certification URL.  The URL is expected to refer to a human readable
   web page or an XML formatted annotation of the type "certificate".

  <CT N="Certification">
   <SEQ>
    <E N="certifyingEntity" T="AuthenticEntity" MIN="1" MAX="1"/>
   </SEQ>
   <A N="certificateUrl" T="xsd:anyURI" use="required"/>
  </CT>

4.24 OrganizationalUnit

   An organizational unit.  OrganizationalUnits may form hierarchies with
   the innermost OrganizationalUnit being the organizational unit
   referred to, e.g.: ( abbr=UN ( ou=ECOSOC ( ou=UNESCO ))).  The "ou"
   attribute specifies an abbreviation for each OrganizationalUnit.

  <CT N="OrganizationalUnit">
   <SEQ>
    <E N="orgUnit" T="OrganizationalUnit" MIN="0" MAX="1"/>
   </SEQ>
   <A N="name" T="xsd:string" use="required"/>
   <A N="ou" T="xsd:string" use="required"/>
  </CT>














Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 35]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.25 EntityPattern

   An organizational entity search pattern.  All attributes and elements
   that are present correspond to attributes and elements of the same
   name in the Entity and AuthenticEntity types but no attribute
   or element is mandatory.
   If no representing organization exists an individual can publish an
   imprint with the register type "passport registration office".
   Further register types for individuals may be added as required.

  <CT N="EntityPattern">
   <SEQ>
    <E N="orgUnit" T="OrganizationalUnit" MIN="0" MAX="1"/>
    <E N="address" T="AddressPattern" MIN="0" MAX="unbounded"/>
    <E N="id" T="Identity" MIN="0" MAX="1"/>
    <E N="register" T="RegisterPattern" MIN="0" MAX="1"/>
    <E N="certification" T="EntityPattern" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="type" T="EntityType"/>
   <A N="since" T="xsd:date"/>
   <A N="birthday" T="xsd:date"/>
   <A N="name" T="xsd:string"/>
   <A N="abbr" T="xsd:string"/>
  </CT>































Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 36]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.26 Entity

   An organizational entity with a name, address, any number of service
   namespaces and certifications.  This entity may not have an identity
   or register number, for example if the entity is a trade register
   that does not have a register number itself.  The "since" attribute
   and the "birthday" attribute are synonyms.  The "imprint" attribute,
   if present, MUST refer to an imprint following the ESP scheme.

  <CT N="Entity">
   <SEQ>
    <E N="orgUnit" T="OrganizationalUnit" MIN="0" MAX="1"/>
    <E N="address" T="Address" MIN="1" MAX="unbounded"/>
    <E N="id" T="Identity" MIN="0" MAX="1"/>
    <E N="register" T="Register" MIN="0" MAX="unbounded"/>
    <E N="certification" T="Certification" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="type" T="EntityType" use="required"/>
   <A N="since" T="xsd:date"/>
   <A N="birthday" T="xsd:date"/>
   <A N="name" T="xsd:string" use="required"/>
   <A N="abbr" T="xsd:string"/>
   <A N="imprint" T="xsd:anyURI"/>
  </CT>































Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 37]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.27 AuthenticEntity

   An organizational entity with a name, address, register number, any
   number of service namespaces, and certifications.  This entity MUST
   have a register number and an identity.  The "since" attribute
   and the "birthday" attribute are synonyms.  The "imprint" attribute
   MUST refer to an imprint following the ESP scheme.

  <CT N="AuthenticEntity">
   <SEQ>
    <E N="orgUnit" T="OrganizationalUnit" MIN="0" MAX="1"/>
    <E N="address" T="Address" MIN="1" MAX="unbounded"/>
    <E N="id" T="Identity" MIN="1" MAX="1"/>
    <E N="register" T="Register" MIN="1" MAX="unbounded"/>
    <E N="certification" T="Certification" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="type" T="EntityType" use="required"/>
   <A N="since" T="xsd:date"/>
   <A N="birthday" T="xsd:date"/>
   <A N="name" T="xsd:string" use="required"/>
   <A N="abbr" T="xsd:string"/>
   <A N="imprint" T="xsd:anyURI" use="required"/>
  </CT>

4.28 PolicyMatchGroup

   A PolicyMatchGroup is a collection of PolicyReferences and further
   PolicyMatchGroups.  Every group can require that all its elements
   match ("all") or that one of its elements matches ("one").
   A group that has a name can be referred to in further groups only
   by that name, omitting the operator, policies and groups.
   PolicyMatchGroups specified in a community's SearchProfile may be
   used by name in a personal SearchProfile, as the Community
   SearchProfiles referred to are effectively included at the
   beginning of the personal search profile.  This allows a community
   to specify search criteria for users of the community's profile
   without making them requirements for all members of the community.

  <CT N="PolicyMatchGroup">
   <SEQ>
    <E N="policy" T="PolicyReference" MIN="0" MAX="unbounded"/>
    <E N="group" T="PolicyMatchGroup" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="operator" T="PolicyMatchOperator"/>
   <A N="name" T="xsd:string"/>
  </CT>









Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 38]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.29 PolicyReference

   A PolicyReference is a reference to a policy, given by the "url"
   attribute.  The content of the URL MUST be a PolicyDocument.
   The "level" attribute is an implementation level of the
   PolicyDocument the URL refers to.  Specifying a URL that does not
   refer to a PolicyDocument or a level that is not an implementation
   level of that PolicyDocument is an error.

   The "info" and "comment" elements allow to annotate a reference
   to a policy.

   The "type" attribute MUST be a reference into a CategoryNamespace,
   which should be the default namespace for policy categories.
   The namespace MUST be categorized as "policy/type" according to the
   category namespace "http://esp.nongnu.org/ns/category/2005.1".

  <CT N="PolicyReference">
   <SEQ>
    <E N="info" T="xsd:anyURI" MIN="0" MAX="1"/>
    <E N="comment" T="xsd:string" MIN="0" MAX="1"/>
   </SEQ>
   <A N="type" T="PrefixedPath" use="required"/>
   <A N="hash" T="SecureHash" use="required"/>
   <A N="url" T="xsd:anyURI" use="required"/>
   <A N="level" T="Identifier"/>
  </CT>

4.30 PolicyGroup

   A policy group is a collection of policy statements that have a
   common topic.  The grouping allows to display policies as directory
   trees and serves only the purpose of navigation by the end user.

  <CT N="PolicyGroup">
   <SEQ>
    <E N="policy" T="PolicyStatement" MIN="0" MAX="unbounded"/>
    <E N="policyGroup" T="PolicyGroup" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="name" T="xsd:string"/>
   <A N="lastChanged" T="xsd:date" use="required"/>
  </CT>













Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 39]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.31 PolicyStatement

   A policy statement is a reference to a policy, given by the "url"
   attribute.  The content of the URL MUST be a PolicyDocument.
   The "level" attribute is an implementation level of the
   PolicyDocument the URL refers to.  Specifying a URL that does not
   refer to a PolicyDocument or a level that is not an implementation
   level of that PolicyDocument is an error.
   The "Certification" element, if present, refers to a certificate
   that documents adherance to the specified policy.
   The "type" attribute of a policy statement together with the "type"
   attribute of the enclosing policy group must match the type of the
   policy it refers to.  This is redundant and allows to verify the
   type safety and integrity of the reference.

   The "info" and "comment" elements allow to annotate a reference
   to a policy.

   The "type" attribute MUST be a reference into a CategoryNamespace,
   which should be the default namespace for policy categories.
   The namespace MUST be categorized as "policy/type" according to the
   category namespace "http://esp.nongnu.org/ns/category/2005.1".

  <CT N="PolicyStatement">
   <SEQ>
    <E N="info" T="xsd:anyURI" MIN="0" MAX="1"/>
    <E N="comment" T="xsd:string" MIN="0" MAX="1"/>
    <E N="certification" T="Certification" MIN="0" MAX="1"/>
   </SEQ>
   <A N="type" T="PrefixedPath" use="required"/>
   <A N="hash" T="SecureHash" use="required"/>
   <A N="lastChanged" T="xsd:date"/>
   <A N="url" T="xsd:anyURI" use="required"/>
   <A N="level" T="Identifier"/>
  </CT>




















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 40]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.32 Signature

   A digital signature.  The type of signature MUST be OpenPGP.
   The signature signs the previous non-signature XML element, starting
   with the opening angular bracket and ending with the closing angular
   bracket.

  <CT N="Signature">
   <SEQ>
    <E N="base64" T="xsd:base64Binary" MIN="1" MAX="1"/>
   </SEQ>
   <A N="type" T="SignatureType" use="required"/>
   <A N="version" T="xsd:string" use="required"/>
  </CT>

4.33 Community

   An online or offline community that may recommend certain ethical
   standards.  The "profile" element refers to a search profile
   specifying ethical requirements of the community.  A community may
   have more than one profile.
   "profile" elements in a Community may refer to further profiles
   offered by a community.  These profiles are for informational purposes
   only and are not applied unless referred to by a SearchProfile.
   The "categories" element, if present, specifies a categorization
   for the community.  The default namespace with the empty prefix (":")
   refers to "http://esp.nongnu.org/ns/community/2005.1".
   The ReferenceGroup MUST refer to category namespaces of type
   "community", according to category namespace
   "http://esp.nongnu.org/ns/category/2005.1".

  <CT N="Community">
   <SEQ>
    <E N="categories" T="ReferenceGroup" MIN="0" MAX="1"/>
    <E N="profile" T="xsd:anyURI" MIN="1" MAX="unbounded"/>
    <E N="entity" T="AuthenticEntity" MIN="1" MAX="1"/>
    <E N="forum" T="Forum" MIN="0" MAX="unbounded"/>
    <E N="annotationSpace" T="AnnotationSpace" MIN="0" MAX="unbounded"/>
   </SEQ>
  </CT>















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 41]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.34 Filter

   Filters can be applied by the search engine or by the user
   application to reduce search results.
   Filtering continues until the search result is reduced below the
   number of desired maximum matches.  Filtering is terminated with
   the result of the last filter processed as the end result when
   less than the desired number of minimum matches remains.

  <CT N="Filter">
   <SEQ>
    <E N="policyMatch" T="PolicyMatchGroup" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="apply" T="xsd:boolean"/>
  </CT>

4.35 NamespaceDocumentReference

   A reference to a namespace document.  The "prefix" attribute is a
   prefix to be assigned to the namespace referenced by the "url"
   attribute.
   A prefix of length zero is valid and allows a path, that is
   abbreviated with this prefix, to begin with a colon.
   The "name" attribute is an arbitrary name that may explain
   the purpose or context in which the namespace is referred to.

  <CT N="NamespaceDocumentReference">
   <A N="url" T="xsd:anyURI" use="required"/>
   <A N="name" T="xsd:string"/>
   <A N="prefix" T="Prefix"/>
  </CT>
























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 42]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.36 ReferenceGroup

   A group of references into a namespace.  The "ns" element is a URL to
   a namespace document (containing a CategoryNamespace)
   and the "path" attribute of the "ref" element is a prefixed path
   within a document, each Identifier corresponding to
   a product group, service group or other directory entry.
   The optional "url" attribute may be used when the context requires a
   reference to further information, e.g. a reference to a
   human readable web page inside the ServiceInformation type, further
   describing a service offered.
   The "name" attribute is an arbitrary name that may explain
   the purpose or context in which the group is used.

  <CT N="ReferenceGroup">
   <SEQ>
    <E N="ns" T="NamespaceDocumentReference" MIN="0" MAX="unbounded"/>
    <E N="ref" MIN="0" MAX="unbounded">
     <CT>
      <A N="path" T="PrefixedPath" use="required"/>
      <A N="url" T="xsd:anyURI"/>
     </CT>
    </E>
   </SEQ>
   <A N="name" T="xsd:string"/>
  </CT>

4.37 Reference

   A reference into a namespace.  The "ns" attribute is a URL to a
   namespace document (containing a CategoryNamespace)
   and the "ref" attribute is a slash separated path of Identifiers
   within that document, each Identifier corresponding to
   a product group, service group or other directory entry.

  <CT N="Reference">
   <A N="ns" T="xsd:anyURI" use="required"/>
   <A N="ref" T="Path" use="required"/>
  </CT>
















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 43]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.38 Category

   A category is an element of a CategoryNamespace that can be
   referred to by a PrefixedPath.
   The namespace prefix is separated with a colon (":") and
   category labels use the slash ("/") as the separator character.
   Path examples could be
   "ns0:craft/carpentry" for a service category or
   "ns1:power source/solar power/solar cells" for a product
   category.
   The "label" attribute specifies the label of the category which
   forms a path together with the labels of enclosing categories.
   The "url" attribute may point to a more elaborate description
   of the category.
   The "redirect" attribute in connection with a "deprecated" attribute
   means the category has been moved or replaced by another category.
   The "redirect" attribute alone means the category is intended
   as a reference to another category.
   The "include" element refers to another CategoryNamespace of the
   same type that is included as a subtree under the Category
   the include appears in.
   The "synonym" references refer to categories in other namespaces,
   specified by the "synonym-ns" element of the enclosing
   CategoryNamespace.

  <CT N="Category">
   <SEQ>
    <E N="name" T="MultilingualText" MIN="0" MAX="1"/>
    <E N="description" T="MultilingualText" MIN="0" MAX="1"/>
    <E N="include" T="xsd:anyURI" MIN="0" MAX="unbounded"/>
    <E N="synonym" MIN="0" MAX="unbounded">
     <CT>
      <A N="ref" T="PrefixedPath"/>
     </CT>
    </E>
    <E N="category" T="Category" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="label" T="Identifier" use="required"/>
   <A N="since" T="xsd:date"/>
   <A N="until" T="xsd:date"/>
   <A N="deprecated" T="xsd:date"/>
   <A N="redirect" T="Path"/>
   <A N="url" T="xsd:anyURI"/>
  </CT>











Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 44]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.39 Hit

   A matching URL.  The quality is a relative rating that can be defined
   by the search engine operator.  The links attribute contains the
   number of pages that link to this page.
   The "about" attribute contains the number of pages that are about
   this page, referring to it with a (link rel="about" href="URL") tag
   in the HTML header.
   Search engines may evaluate the meta tag "about/digest/sha1"
   (from http://www.nongnu.org/esp/ns/meta/2005.1) and expire links that
   no longer refer to the original content.
   The annotations attribute gives the number of annotations for this
   URL.  Annotations in this context are only XML formatted objects that
   follow this XSD Schema and contain an Annotation type.

  <CT N="Hit">
   <SEQ>
    <E N="abstract" T="xsd:string" MIN="0" MAX="1"/>
    <E N="metaData" T="xsd:string" MIN="0" MAX="1"/>
    <E N="snippet" T="xsd:string" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="name" T="xsd:string" use="required"/>
   <A N="url" T="xsd:anyURI" use="required"/>
   <A N="quality" T="xsd:int"/>
   <A N="lastChanged" T="xsd:date"/>
   <A N="lastChecked" T="xsd:date"/>
   <A N="links" T="xsd:int"/>
   <A N="about" T="xsd:int"/>
   <A N="annotations" T="xsd:int"/>
  </CT>

























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 45]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.40 Match

   A match contains the matching entity and a service description.
   Service types are contained in service type namespaces, which are to
   be specified by service type namespace providers, e.g. a chamber of
   commerce or a yellow pages service.
   The Match may also contain any number of URLs that match further
   search criteria, as for instance textual search criteria and service
   description criteria.

  <CT N="Match">
   <SEQ>
    <E N="entity" T="Entity" MIN="0" MAX="unbounded"/>
    <E N="page" T="Hit" MIN="0" MAX="unbounded"/>
    <E N="service" T="PrefixedPath" MIN="0" MAX="unbounded"/>
   </SEQ>
  </CT>

4.41 CategorizedLink

   A search description for a categorized piece of information or
   offering.
   The "uri" attribute contains the URL of a web page that a link or
   annotation refers to.
   The "productGroup", "serviceType", or "lodgingCategory" attributes
   indicate that a matching object must be an Avertisement of
   corresponding type, in which case the "uri" attribute is ignored.
   The "categories" element specifies required categories of the objects
   to be found.
   The "scheme" attribute restricts results to Annotations or
   Advertisements referring to the given VotingScheme or
   EvaluationScheme.

  <CT N="CategorizedLink">
   <SEQ>
    <CHOICE MIN="0" MAX="1">
     <E N="productGroup" T="Reference" MIN="0" MAX="1"/>
     <E N="serviceType" T="Reference" MIN="0" MAX="1"/>
     <E N="lodgingCategory" T="Reference" MIN="0" MAX="1"/>
    </CHOICE>
    <E N="categories" T="ReferenceGroup" MIN="0" MAX="1"/>
   </SEQ>
   <A N="scheme" T="xsd:anyURI"/>
   <A N="uri" T="xsd:anyURI"/>
  </CT>










Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 46]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.42 WebSearchParameters

   A collection of common web search parameters.  All elements that are
   specified add cumulative restrictions.  The search for meta tags
   is supposed to allow searching for information categories from
   namespaces of type "information/content" and "information/meta",
   and searching for pages that specify
   <link rel="about" href="URL"> or <link rel="copyright" href="URL">
   (e.g. for http://creativecommons.org/)
   The elements linksTo and annotates allows to search for pages
   that link conventionally to the given URL or that annotate the
   given URL with an ESP Annotation.
   The element advertisement allows to search for Advertisements.

  <CT N="WebSearchParameters">
   <SEQ>
    <E N="text" MIN="0" MAX="unbounded">
     <CT>
      <A N="keywords" T="xsd:string"/>
      <A N="type" T="KeywordMatchType"/>
     </CT>
    </E>
    <E N="meta" T="Meta" MIN="0" MAX="unbounded"/>
    <E N="linksTo" T="CategorizedLink" MIN="0" MAX="unbounded"/>
    <E N="annotates" T="CategorizedLink" MIN="0" MAX="unbounded"/>
    <E N="advertisement" T="CategorizedLink" MIN="0" MAX="unbounded"/>
    <E N="lastChange" MIN="0" MAX="1">
     <CT>
      <A N="after" T="xsd:date"/>
     </CT>
    </E>
   </SEQ>
  </CT>






















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 47]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.43 OrganizationSearchParameters

   A collection of common organization and service search parameters.
   All elements that are specified add cumulative restrictions.
   From each "service" element specified at least one service must
   match a service offered by an entity in the search result.
   The "services" ReferenceGroup MUST refer to category namespaces of
   type "offering/service", according to category namespace
   "http://esp.nongnu.org/ns/category/2005.1".

  <CT N="OrganizationSearchParameters">
   <SEQ>
    <E N="entity" T="EntityPattern" MIN="0" MAX="unbounded"/>
    <E N="service" T="ReferenceGroup" MIN="0" MAX="unbounded"/>
    <E N="serviceAvailableSince" MIN="0" MAX="1">
     <CT>
      <A N="before" T="xsd:date"/>
     </CT>
    </E>
    <E N="entityEstablished" MIN="0" MAX="1">
     <CT>
      <A N="before" T="xsd:date"/>
     </CT>
    </E>
    <E N="lastChange" MIN="0" MAX="1">
     <CT>
      <A N="after" T="xsd:date"/>
     </CT>
    </E>
   </SEQ>
  </CT>
























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 48]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.44 FormEditor

   If posting to a Forum or AnnotationSpace requires a special editor to
   fill in the required elements of an XSD schema conveniently this
   type MUST refer to an editor implemented as a Java Applet, Java
   WebStart or similar web application. 
   The editor may interact with services exposed by the web browser, as,
   for example, the NNTP reader and NNTP posting.  Specifying the
   interface for service exposure is beyond the scope of this document.

  <CT N="FormEditor">
   <A N="url" T="xsd:anyURI" use="required"/>
   <A N="languages" T="LanguageList" use="required"/>
  </CT>

4.45 Forum

   An internet forum.  A forum may share an NNTP server with a
   TicketSystem and/or AnnotationSpace.  A suggested hierarchy for the 
   NNTP server is "(lang.)(name.)ticket.*", "(lang.)(name.)forum.*" and 
   "(lang.)(name.)annotations.*".  The "url" attribute refers to a web
   page that allows to access the forum as a web forum.  If posting to
   the forum requires a special editor to fill in the required elements
   of an XSD schema conveniently the "editor" attribute MUST refer to
   this editor.

  <CT N="Forum">
   <SEQ>
    <E N="editor" T="FormEditor" MIN="0" MAX="1"/>
   </SEQ>
   <A N="name" T="xsd:string" use="required"/>
   <A N="url" T="xsd:anyURI" use="required"/>
   <A N="nntp" T="xsd:anyURI"/>
   <A N="languages" T="LanguageList" use="required"/>
  </CT>




















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 49]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.46 AnnotationSpace

   A storage space for Annotations.  Annotations can be stored as web
   pages on a web server, as NNTP messages in an NNTP server or in a
   dedicated database.
   The "url" attribute specifies a login web page for visitors of the
   annotation space.  The "nntp" attribute specifies an NNTP server, if
   available.  The "index" attribute specifies an index suitable for
   search engine crawlers, e.g. a web page of daily indices containing
   new additions.
   If posting to the annotationSpace requires a special editor to fill
   in the required elements of an XSD schema conveniently the "editor"
   attribute MUST refer to this editor.
   An AnnotationSpace should be able to store Advertisements.

  <CT N="AnnotationSpace">
   <SEQ>
    <E N="editor" T="FormEditor" MIN="0" MAX="1"/>
   </SEQ>
   <A N="name" T="xsd:string" use="required"/>
   <A N="url" T="xsd:anyURI" use="required"/>
   <A N="nntp" T="xsd:anyURI"/>
   <A N="index" T="xsd:anyURI"/>
   <A N="languages" T="LanguageList" use="required"/>
  </CT>

4.47 Vote

   A single vote.

  <CT N="Vote">
   <SEQ/>
   <A N="name" T="xsd:string" use="required"/>
   <A N="choice" T="xsd:string" use="required"/>
  </CT>




















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 50]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.48 MultilingualText

   A multilingual text with common ISO 639 language codes as attributes,
   each attribute refering to the translation of its language.
   An exception is the "trs" code for pinyin transcription of
   chinese text or other transcriptions.

  <CT N="MultilingualText">
   <A N="ar" T="xsd:string"/>
   <A N="br" T="xsd:string"/>
   <A N="cs" T="xsd:string"/>
   <A N="da" T="xsd:string"/>
   <A N="de" T="xsd:string"/>
   <A N="el" T="xsd:string"/>
   <A N="en" T="xsd:string"/>
   <A N="es" T="xsd:string"/>
   <A N="et" T="xsd:string"/>
   <A N="fr" T="xsd:string"/>
   <A N="fi" T="xsd:string"/>
   <A N="hi" T="xsd:string"/>
   <A N="hu" T="xsd:string"/>
   <A N="it" T="xsd:string"/>
   <A N="ja" T="xsd:string"/>
   <A N="lv" T="xsd:string"/>
   <A N="lt" T="xsd:string"/>
   <A N="mt" T="xsd:string"/>
   <A N="nl" T="xsd:string"/>
   <A N="pl" T="xsd:string"/>
   <A N="pt" T="xsd:string"/>
   <A N="ru" T="xsd:string"/>
   <A N="sk" T="xsd:string"/>
   <A N="sl" T="xsd:string"/>
   <A N="sv" T="xsd:string"/>
   <A N="tr" T="xsd:string"/>
   <A N="zh" T="xsd:string"/>
   <A N="trs" T="xsd:string"/>
  </CT>


















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 51]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.49 Footnote

   A footnote for text contained in a paragraph.
   "abbr" is the abbreviated literature reference, e.g. "LIT-172".
   "url" is a reference to an online version of the paper, if available.
   "title" is the title of the paper.
   "publisher" is the name of the publisher.
   "published" is the publishing date.
   "author" is a comma separated list of the authors.
   "urn" is a urn for the paper, if available, e.g.
         "urn:isbn:0123456789" for ISBN numbers.
   "page" is the page number of the reference in the printed version.

  <CT N="Footnote">
   <A N="abbr" T="xsd:string"/>
   <A N="url" T="xsd:anyURI"/>
   <A N="title" T="xsd:string"/>
   <A N="publisher" T="xsd:string"/>
   <A N="published" T="xsd:date"/>
   <A N="author" T="xsd:string"/>
   <A N="urn" T="xsd:anyURI"/>
   <A N="page" T="xsd:string"/>
  </CT>
































Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 52]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.50 Paragraph

   The "level" attribute refers to the implementation level(s) that
   require(s) adherance to this paragraph.  The "label" attribute is to
   be reproduced as an HTML label in HTML formatted versions of the
   enclosing document.
   If the "title" attribute is omitted the label can be used as a title.
   The "type" attribute, if present, refers to a categorization of the
   content of the paragraph,
   e.g.: ":liabilities/legal measures/dissuasion/authorized parties".
   Further categorizations can be added with "category" elements,
   but should be considered secondary to the "type" categorization. 
   The default namespace with the empty prefix (":")
   refers to "http://esp.nongnu.org/ns/policy_structure/2005.1".
   A paragraph with the "final" attribute set to true may not be
   modified in policies extending this policy.

  <CT N="Paragraph" mixed="true">
   <SEQ>
    <E N="category" T="PrefixedPath" MIN="0" MAX="unbounded"/>
    <E N="abstract" T="xsd:string" MIN="0" MAX="1"/>
    <E N="footnote" T="Footnote" MIN="0" MAX="unbounded"/>
    <E N="paragraph" T="Paragraph" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="lastChanged" T="xsd:date" use="required"/>
   <A N="level" T="Identifier"/>
   <A N="title" T="xsd:string"/>
   <A N="label" T="xsd:string" use="required"/>
   <A N="type" T="PrefixedPath"/>
   <A N="final" T="xsd:boolean"/>
  </CT>
























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 53]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

4.51 Chapter

   The "level" attribute refers to the implementation level(s) that
   require(s) adherance to this paragraph.  The "label" attribute is to
   be reproduced as an HTML label in HTML formatted versions of the
   enclosing document.
   The "type" attribute refers to a categorization of the content of the
   chapter,
   e.g.: ":liabilities/legal measures/dissuasion/authorized parties".
   Further categorizations can be added with "category" elements,
   but should be considered secondary to the "type" categorization. 
   The default namespace with the empty prefix (":")
   refers to "http://esp.nongnu.org/ns/policy_structure/2005.1".

  <CT N="Chapter">
   <SEQ>
    <E N="category" T="PrefixedPath" MIN="0" MAX="unbounded"/>
    <E N="abstract" T="xsd:string" MIN="0" MAX="1"/>
    <E N="paragraph" T="Paragraph" MIN="1" MAX="unbounded"/>
   </SEQ>
   <A N="lastChanged" T="xsd:date" use="required"/>
   <A N="level" T="Identifier"/>
   <A N="title" T="xsd:string" use="required"/>
   <A N="label" T="xsd:string" use="required"/>
   <A N="type" T="PrefixedPath"/>
  </CT>





























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 54]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5. Top Level Types

5.1 TicketSearchRequest

   A ticket search request that may be sent with a HTTP POST request to
   the URL given as the "view" attribute of a ticket system.
   All elements that may be specified more than once match a ticket
   if one of the specified values matches a given ticket.
   The "refersTo" element is a list of URIs to be matched against the
   "uri" elements in a Ticket.

  <CT N="TicketSearchRequest">
   <SEQ>
    <E N="originator" T="EntityPattern" MIN="0" MAX="unbounded"/>
    <E N="about" T="EntityPattern" MIN="0" MAX="unbounded"/>
    <E N="submission" T="DateRange" MIN="0" MAX="1"/>
    <E N="modification" T="DateRange" MIN="0" MAX="1"/>
    <E N="type" T="Reference" MIN="0" MAX="unbounded"/>
    <E N="status" T="Reference" MIN="0" MAX="unbounded"/>
    <E N="severity" T="Severity" MIN="0" MAX="unbounded"/>
    <E N="signedBy" T="Identity" MIN="0" MAX="unbounded"/>
    <E N="refersTo" T="xsd:anyURI" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="submittersSign" T="Identifier"/>
   <A N="ourSign" T="Identifier"/>
  </CT>





























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 55]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.2 CategoryNamespace

   A namespace document specifying categories.
   A namespace provider can be an open service, like dmoz.org, or any
   other entity that maintains a list of categories.  In the case of 
   product group categories these might for instance be standardization
   organizations or consumer protection groups.  In the case of service
   categories these might be yellow pages services, chambers of commerce
   or trade registers.
   The last part of the URL of a CategoryNamespace document should
   be it's revision number.
   The revision number of a category namespace should be changed when
   structure is removed from the namespace.  The revision number of a
   category namespace does not have to be changed when structure is
   added to the namespaces, this includes "deprecated" and "redirect"
   attributes of categories.
   The reason for this is that removing structure can invalidate
   references into the namespace while adding structure cannot.
   When structure is removed it is beneficial that older references
   keep referring to the old structure.
   The "include" element refers to another CategoryNamespace of the
   same type that is included as a subtree under the root.
   The "synonym-ns" elements refer to other namespaces that are
   used to define synonyms for categories (see Category).

  <CT N="CategoryNamespace">
   <SEQ>
    <E N="synonym-ns" T="NamespaceDocumentReference" MIN="0" MAX="unboun
ded"/>
    <E N="category" T="Category" MIN="1" MAX="unbounded"/>
    <E N="include" T="xsd:anyURI" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="ns" T="xsd:anyURI" use="required"/>
   <A N="type" T="Path" use="required"/>
   <A N="languages" T="LanguageList" use="required"/>
   <A N="lastChanged" T="xsd:date" use="required"/>
   <A N="revision" T="Revision" use="required"/>
   <A N="superceded-by" T="xsd:anyURI"/>
   <A N="synonym-resolution" T="SynonymResolution"/>
  </CT>















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 56]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.3 SearchParameters

   A set of standard search parameters.  The "result" and "restrictions"
   attributes can specify constraints, like the mininum and maximum
   numbers of hits and the regions, countries, languages, and sites
   to be considered.  A request to store the result for future retrieval
   can be specified with the "keepResultUntil" attribute.
   If a "destination" attribute is specified either the "searchRadius"
   attribute MUST be present and specify the search radius in kilometers
   or the "serviceArea" attribute MUST indicate that only services
   with a defined service area that contains the destination should be
   returned.  It is allowed to specify both attributes, in which case
   the searchRadius is a filter for the maximum distance between the
   service's point of origin and the destination.
   Specifying web search parameters and organization search
   parameters restricts the search to web pages of organizations that
   match the given organization search parameters while organization
   search parameters alone only cause the explicitly listed web sites
   of those organizations to be returned (one per organization).
   The "profile" element allows to specify a search profile.
   Any search profile retrieved from a URL MAY be cached by the search
   engine for as long as HTTP expiration rules indicate.
   The "modified" attribute can be used to indicate that a profile may
   have been modified within that period.

  <CT N="SearchParameters">
   <SEQ>
    <E N="profile" T="SearchProfile" MIN="0" MAX="1"/>
    <E N="web" T="WebSearchParameters" MIN="0" MAX="1"/>
    <E N="org" T="OrganizationSearchParameters" MIN="0" MAX="1"/>
    <E N="result" MIN="1" MAX="1">
     <CT>
      <A N="maximumHits" T="xsd:int"/>
      <A N="minimumHits" T="xsd:int"/>
      <A N="keepResultUntil" T="xsd:dateTime"/>
     </CT>
    </E>
    <E N="restrictions" MIN="0" MAX="1">
     <CT>
      <SEQ>
       <E N="destination" T="Coordinates" MIN="1" MAX="1"/>
       <E N="country" T="Acronym" MIN="0" MAX="unbounded"/>
       <E N="region" T="RegionCode" MIN="0" MAX="unbounded"/>
       <E N="site" T="xsd:string" MIN="0" MAX="unbounded"/>
      </SEQ>
      <A N="languages" T="LanguageList"/>
      <A N="serviceArea" T="xsd:boolean"/>
      <A N="searchRadius" T="xsd:int"/>
     </CT>
    </E>
   </SEQ>
   <A N="modified" T="xsd:dateTime"/>
  </CT>


Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 57]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.4 SearchProfile

   A profile that can be specified as an additional search criterion
   for search engines that support search based on ESP.  The search
   profile can also refer to policy schemes instead of policies, in
   which case all derived policies will be matched.

   The "include" element allows to include any number of further
   profiles into the specified profile.  The included profiles MUST be
   retrieved and SHOULD be cached by a search engine.

   The "url" of a profile should specify the original URL of the
   profile, if the profile is publicly available.

   The "apply" attribute decides wether the criteria specified in the
   search profile are actually applied or only evaluated to define
   named PolicyMatchGroups that can be reused by other search profiles.

   The mime type for ESP profiles is application/x-esp-profile.

  <CT N="SearchProfile">
   <SEQ>
    <E N="criteria" T="PolicyMatchGroup" MIN="0" MAX="unbounded"/>
    <E N="community" T="Community" MIN="0" MAX="unbounded"/>
    <E N="filter" T="Filter" MIN="0" MAX="unbounded"/>
    <E N="include" T="xsd:anyURI" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="apply" T="xsd:boolean"/>
   <A N="url" T="xsd:anyURI"/>
  </CT>

























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 58]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.5 SearchResult

   The standard result format for search based on ESP.  The number of
   results is the total number of matches for the given criteria and
   community, no filters applied.  The result may be stored for retrieval
   by third parties under the URL specified by the attribute "url" and
   until the date given in the "until" attribute.
   When an error attribute is present an error occured and the error
   attribute specifies the error in detail.
   The "ns" element is used to abbreviate service names in the
   following match elements.

  <CT N="SearchResult">
   <SEQ>
    <E N="ns" T="NamespaceDocumentReference" MIN="0" MAX="unbounded"/>
    <E N="match" T="Match" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="results" T="xsd:int" use="required"/>
   <A N="url" T="xsd:anyURI"/>
   <A N="until" T="xsd:date"/>
   <A N="more" T="xsd:anyURI"/>
   <A N="errorNumber" T="xsd:int"/>
   <A N="error" T="xsd:string"/>
  </CT>































Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 59]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.6 VotingScheme

   A voting scheme is a list of votes and possible choices for each
   vote.  If an "until" attribute is given a voting is considered closed
   at the given date and time.
   The "info" and "results" pages can refer to human readable web pages.
   If the URL of a voting scheme is changed this creates a new voting.

  <CT N="VotingScheme">
   <SEQ>
    <E N="header" T="Header" MIN="0" MAX="1"/>
    <E N="originator" T="Entity" MIN="1" MAX="1"/>
    <E N="vote" MIN="1" MAX="unbounded">
     <CT>
      <SEQ>
       <E N="description" T="MultilingualText" MIN="0" MAX="1"/>
       <E N="choice" T="xsd:string" MIN="0" MAX="unbounded"/>
      </SEQ>
      <A N="name" T="xsd:string" use="required"/>
     </CT>
    </E>
   </SEQ>
   <A N="name" T="xsd:string" use="required"/>
   <A N="until" T="xsd:dateTime"/>
   <A N="info" T="xsd:anyURI"/>
   <A N="results" T="xsd:anyURI"/>
  </CT>




























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 60]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.7 EvaluationScheme

   The type evaluation scheme has the same elements and attributes as
   the type VotingScheme but some attributes have been removed.  The
   different purposes made it seem likely that future additions would
   further separate both types.  The "expire" attribute has been removed
   from VotingScheme.

   An evaluation scheme remains valid until its expiration date, given by
   the "expire" attribute.  Annotations referring to an evaluation scheme
   must expire before the evaluation scheme or expire on the same day as
   the evaluation scheme.

  <CT N="EvaluationScheme">
   <SEQ>
    <E N="header" T="Header" MIN="0" MAX="1"/>
    <E N="originator" T="Entity" MIN="1" MAX="1"/>
    <E N="vote" MIN="1" MAX="unbounded">
     <CT>
      <SEQ>
       <E N="description" T="MultilingualText" MIN="0" MAX="1"/>
       <E N="choice" T="xsd:string" MIN="0" MAX="unbounded"/>
      </SEQ>
      <A N="name" T="xsd:string" use="required"/>
     </CT>
    </E>
   </SEQ>
   <A N="name" T="xsd:string" use="required"/>
   <A N="info" T="xsd:anyURI"/>
   <A N="expire" T="xsd:dateTime"/>
  </CT>
























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 61]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.8 Advertisement

   The mime type for ESP advertisements is
   application/x-esp-advertisement.  The "evaluationScheme" attribute,
   if given, refers to an EvaluationScheme suitable for product
   evaluation.

  <CT N="Advertisement">
   <SEQ>
    <E N="header" T="Header" MIN="0" MAX="1"/>
    <E N="from" T="Entity" MIN="1" MAX="1"/>
    <E N="vote" T="Vote" MIN="0" MAX="unbounded"/>
    <E N="message" T="Message" MIN="1" MAX="1"/>
    <CHOICE MIN="1" MAX="1">
     <E N="productGroup" T="Reference" MIN="0" MAX="1"/>
     <E N="serviceType" T="Reference" MIN="0" MAX="1"/>
     <E N="lodgingCategory" T="Reference" MIN="0" MAX="1"/>
    </CHOICE>
    <E N="currency" T="Currency" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="evaluationScheme" T="xsd:anyURI"/>
   <A N="subject" T="xsd:string"/>
   <A N="type" T="AdvertisementType"/>
   <A N="offer" T="OfferType"/>
   <A N="created" T="xsd:date" use="required"/>
   <A N="lastChanged" T="xsd:date" use="required"/>
   <A N="expire" T="xsd:date" use="required"/>
   <A N="url" T="xsd:anyURI"/>
  </CT>


























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 62]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.9 Annotation

   The "url" attribute is the URL of the annotation.  An annotation
   that has already been posted to another annotation space should
   be posted with the URL of its initial posting, an annotation that
   has not yet been posted MUST be posted without a "url" attribute.
   The "uri" element is a list of URIs of what is annotated, which
   may be annotations again.  The format of the message is outside the
   scope of this document but XSD schemata for product reviews or other
   specific annotations are likely to be or become available.
   The "uri" element(s) contain(s) a group of URLs and/or URNs.  An
   annotation or ticket may contain both URLs and URNs if, for example,
   a product or product group has one or more product description pages
   of the vendor and/or one or more
   URN references (e.g. "URN:EAN:(ean number)").
   If the annotation type is "vote" an annotation MUST contain votes
   according to the voting scheme given by the "scheme" attribute,
   otherwise it MAY have an EvaluationScheme.  A product review, for
   instance, may evaluate a product according to an evaluation scheme.
   Product reviews MUST have a "productGroup" element and it MUST be a
   reference into a category namespace of type "offering/product",
   according to category namespace
   "http://esp.nongnu.org/ns/category/2005.1".
   The "type" element is a reference into a category namespace of
   type "annotation", according to the same category namespace.
   The mime type for ESP annotations is application/x-esp-annotation.

  <CT N="Annotation">
   <SEQ>
    <E N="header" T="Header" MIN="0" MAX="1"/>
    <E N="type" T="Reference" MIN="1" MAX="1"/>
    <E N="uri" T="xsd:anyURI" MIN="0" MAX="unbounded"/>
    <E N="from" T="Entity" MIN="1" MAX="1"/>
    <E N="about" T="Entity" MIN="0" MAX="1"/>
    <E N="vote" T="Vote" MIN="0" MAX="unbounded"/>
    <E N="message" T="Message" MIN="1" MAX="1"/>
    <CHOICE MIN="0" MAX="1">
     <E N="productGroup" T="Reference" MIN="0" MAX="1"/>
     <E N="serviceType" T="Reference" MIN="0" MAX="1"/>
     <E N="lodgingCategory" T="Reference" MIN="0" MAX="1"/>
    </CHOICE>
   </SEQ>
   <A N="ourSign" T="Identifier" use="required"/>
   <A N="url" T="xsd:anyURI"/>
   <A N="votingScheme" T="xsd:anyURI"/>
   <A N="evaluationScheme" T="xsd:anyURI"/>
   <A N="subject" T="xsd:string"/>
   <A N="severity" T="Severity"/>
   <A N="created" T="xsd:date" use="required"/>
   <A N="lastChanged" T="xsd:date" use="required"/>
   <A N="expire" T="xsd:date" use="required"/>
  </CT>



Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 63]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.10 TicketList

   A list of tickets.  The tickets in a list SHOULD NOT contain message
   bodies but all other attributes and elements may be supplied.
   Tickets in a TicketList MUST contain the attributes "ourSign", "url"
   "sent", "type", "status", "severity", and "subject".
   When an error attribute is present an error occured and the error
   attribute specifies the error in detail.

  <CT N="TicketList">
   <SEQ>
    <E N="ticket" T="Ticket" MIN="0" MAX="unbounded"/>
   </SEQ>
   <A N="errorNumber" T="xsd:int"/>
   <A N="error" T="xsd:string"/>
  </CT>







































Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 64]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.11 Ticket

   A standard ticket format that can be submitted to all ticket queues
   specified in ESP based imprints.  The advantage of posting a ticket
   over sending an email is that the ticket is digitally signed, a
   receipt is returned for the ticket and the ticket format allows to
   add ESP related information in their corresponding xml representation
   in a way that will be human readable for the recipient of the ticket
   and can be used for further automatic processing at the same time.
   The format of the message is outside the scope of this document but
   the specification of XSD schemata for specific messages seems
   reasonable.  The attribute "annotation" is to be used if the ticket
   refers to an annotation. 
   The "url" attribute is the URL of the ticket, this is decided by the
   receiving ticket system and MUST NOT be specified when submitting a
   ticket.  The sent and status attributes SHOULD be decided by the
   receiving ticket system.
   A history may be specified when submitting tickets to indicate that a
   ticket has already passed another ticket system.
   A ticket that has been externally forwarded and has the status
   "ext. forwarded" or "reply pending" MUST contain a "forwarded" URL,
   pointing to the instance of the ticket in the destination
   ticket system.
   A ticket that is being forwarded to another ticket system and changed
   to state "reply pending" MUST contain a "reply" element with the
   "pleaseReply" attribute set to "true" and the "url" attribute set to
   a URL of the transfering ticket system where the ticket can be posted
   to with a HTTP POST request and will be recognized as the returning
   ticket.
   The "avoidReply", if set to true, is the request to avoid a reply,
   if possible.
   The "uri" element(s) contain(s) a group of URLs and/or URNs.  An
   annotation or ticket may contain both URLs and URNs if, for example,
   a product or product group has one or more product description pages
   of the vendor and one or more
   URN references (e.g. "URN:EAN:(ean number)").
   The "ourSign" and "yourSign" attributes of a ticket MUST always be
   relative to the sender and receiver of a ticket.  A ticket that has
   been externally forwarded will consequently need more than one
   "yourSign" attribute in the internal data structure of a
   ticket system.
   The "status" attribute MUST be a reference into a category namespace
   of type "ticket/status" and the "type" attribute MUST be a reference
   into a category namespace of type "ticket/type", according to the
   category namespace "http://esp.nongnu.org/ns/category/2005.1".
   The mime type for ESP tickets is application/x-esp-ticket.









Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 65]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

  <CT N="Ticket">
   <SEQ>
    <E N="header" T="Header" MIN="0" MAX="1"/>
    <E N="uri" T="xsd:anyURI" MIN="0" MAX="unbounded"/>
    <E N="from" T="Entity" MIN="1" MAX="1"/>
    <E N="about" T="Entity" MIN="1" MAX="1"/>
    <E N="status" T="Reference" MIN="1" MAX="1"/>
    <E N="type" T="Reference" MIN="1" MAX="1"/>
    <E N="reply" MIN="1" MAX="1">
     <CT>
      <A N="statusChangeNotification" T="xsd:boolean"/>
      <A N="pleaseReply" T="xsd:boolean"/>
      <A N="avoidReply" T="xsd:boolean"/>
      <A N="to" T="EmailAddress"/>
      <A N="url" T="xsd:anyURI"/>
     </CT>
    </E>
    <E N="history" MIN="0" MAX="1">
     <CT>
      <SEQ>
       <E N="change" MIN="1" MAX="unbounded">
        <CT>
         <SEQ>
          <E N="sender" T="Entity" MIN="1" MAX="1"/>
          <E N="comment" T="xsd:string" MIN="0" MAX="1"/>
          <E N="status" T="Reference" MIN="1" MAX="1"/>
         </SEQ>
         <A N="date" T="xsd:date"/>
         <A N="from" T="EmailAddress"/>
         <A N="severity" T="Severity"/>
        </CT>
       </E>
      </SEQ>
     </CT>
    </E>
    <E N="message" T="Message" MIN="0" MAX="1"/>
   </SEQ>
   <A N="ourSign" T="Identifier" use="required"/>
   <A N="yourSign" T="Identifier"/>
   <A N="url" T="xsd:anyURI"/>
   <A N="annotation" T="xsd:anyURI"/>
   <A N="forwarded" T="xsd:anyURI"/>
   <A N="subject" T="xsd:string"/>
   <A N="severity" T="Severity"/>
   <A N="sent" T="xsd:date"/>
  </CT>









Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 66]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.12 Receipt

   A receipt is a standard reply for a submitted ticket.  A receipt is
   usually returned as a reply to the HTTP request that created a
   ticket.  If a ticket is submitted by email an automatic reply to that
   ticket may also contain a receipt.  The URL is the URL of the open
   ticket in the ticket system the ticket was submitted to.
   When an error attribute is present the ticket was not created and the
   error attribute specifies the error in detail.
   The mime type for ESP receipts is application/x-esp-receipt.

  <CT N="Receipt">
   <SEQ>
    <E N="recipient" T="Entity" MIN="0" MAX="1"/>
   </SEQ>
   <A N="ourSign" T="Identifier" use="required"/>
   <A N="yourSign" T="Identifier" use="required"/>
   <A N="url" T="xsd:anyURI" use="required"/>
   <A N="errorNumber" T="xsd:int"/>
   <A N="error" T="xsd:string"/>
  </CT>


































Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 67]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.13 RegionCodes

   A database of country and region codes including names and codes.

  <CT N="RegionCodes">
   <SEQ>
    <E N="version" T="xsd:string" MIN="1" MAX="1"/>
    <E N="license" MIN="1" MAX="1">
     <CT mixed="true">
      <A N="url" T="xsd:anyURI"/>
     </CT>
    </E>
    <E N="country" MIN="1" MAX="unbounded">
     <CT>
      <SEQ>
       <E N="name" T="MultilingualText" MIN="1" MAX="1"/>
       <E N="region" MIN="0" MAX="unbounded">
        <CT>
         <SEQ>
          <E N="name" T="MultilingualText" MIN="1" MAX="1"/>
         </SEQ>
         <A N="code" T="Acronym"/>
        </CT>
       </E>
      </SEQ>
      <A N="code" T="Acronym"/>
     </CT>
    </E>
   </SEQ>
   <A N="lastChanged" T="xsd:date" use="required"/>
   <A N="revision" T="Revision" use="required"/>
  </CT>























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 68]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.14 Imprint

   An imprint is a description of a legal person that operates a web
   site or offers any other kind of service and has a trade or
   association register number or a similar unique reference number
   from a well known registry.  A PGP fingerprint to uniquely identify an
   entity is also required.  The standard file name of an imprint SHOULD
   be "imprint.xml" and it SHOULD be placed in the top level directory
   of a web site, e.g. http://website.example/imprint.xml.
   The "previous" attribute SHOULD be used to refer to the previous
   version of the imprint, if one exists.  This will allow search engines
   to recognize changes in imprints that might otherwise be seen as a
   change of ownership of a web site.
   The "socialContract" attribute SHOULD be used to refer to the
   social contract of the organization the imprint refers to.

  <CT N="Imprint">
   <SEQ>
    <E N="header" T="Header" MIN="0" MAX="1"/>
    <E N="contacts" T="Contacts" MIN="0" MAX="unbounded"/>
    <CHOICE MIN="1" MAX="1">
     <E N="entity" T="AuthenticEntity" MIN="1" MAX="1"/>
     <E N="community" T="Community" MIN="0" MAX="unbounded"/>
    </CHOICE>
   </SEQ>
   <A N="lang" T="xsd:language" use="required"/>
   <A N="lastChanged" T="xsd:date" use="required"/>
   <A N="revision" T="Revision" use="required"/>
   <A N="socialContract" T="xsd:anyURI"/>
   <A N="previous" T="xsd:anyURI"/>
  </CT>
























Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 69]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.15 SocialContract

   A social contract is a document that specifies the services offered
   by an entity and the policies it claims to adhere to.  The social
   contract may also list membership organisations that the entity
   is a member of.
   The standard file name of a social contract SHOULD be it's revision
   number and it SHOULD be placed in a directory named "socialcontract".
   e.g. http://website.example/socialcontract/2005.1
   Once a social contract is published it SHOULD be considered
   immutable.  A significantly modified version MUST be published under a
   different revision number.
   Search engines SHOULD enforce this policy by not accepting changes
   to the policies a social contract implements once it has been
   published with the signature of the organisation it refers to and
   instead to annotate the contract with a warning and/or send a ticket
   to the publisher.
   This is recommended as a possible compliance test for search engines.
   The "policyNamespace" element, if present, specifies one or more
   namespaces that are used for policy categorization inside
   PolicyStatements.  Policies are categorized by their authors, the
   category references in a social contract have to conform with that
   categorization.
   The default namespace with the empty prefix (":")
   refers to "http://esp.nongnu.org/ns/policy_category/2005.1".
   The "previous" attribute SHOULD be used to refer to the previous
   version of a social contract.

  <CT N="SocialContract">
   <SEQ>
    <E N="header" T="Header" MIN="0" MAX="1"/>
    <E N="text" T="Text" MIN="1" MAX="1"/>
    <E N="policyNamespace" T="NamespaceDocumentReference" MIN="0" MAX="u
nbounded"/>
    <E N="service" T="ServiceInformation" MIN="1" MAX="1"/>
    <E N="policies" T="PolicyGroup" MIN="1" MAX="unbounded"/>
    <E N="membership" T="MembershipOrganization" MIN="0" MAX="unbounded"
/>
   </SEQ>
   <A N="lang" T="xsd:language" use="required"/>
   <A N="lastChanged" T="xsd:date" use="required"/>
   <A N="revision" T="Revision" use="required"/>
   <A N="previous" T="xsd:anyURI"/>
  </CT>











Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 70]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.16 PolicyDocument

   The implementation elements contain a collection of possible levels
   of implementations.  The "chapter" elements contain the actual policy
   in human readable text.  The "type" element is a reference into a
   CategoryNamespace of type "policy/type", according to the
   category namespace "http://esp.nongnu.org/ns/category/2005.1".
   The "issues" element contains a reference to a ticket system,
   which may require a prior login.
   The name of a policy document should be its revision number,
   e.g. "2005.1".  Once a policy document is published it SHOULD be
   considered immutable.  A policy document SHALL NOT be accepted
   without a valid signature from an entity that has published an
   imprint.  Translations of policy documents SHOULD carry the language
   code as a suffix, e.g. "2005.1-fr".

  <CT N="PolicyDocument">
   <SEQ>
    <E N="header" T="Header" MIN="0" MAX="1"/>
    <E N="text" T="Text" MIN="1" MAX="1"/>
    <E N="policyContentNamespace" T="NamespaceDocumentReference" MIN="0"
 MAX="unbounded"/>
    <E N="implementation" MIN="0" MAX="unbounded">
     <CT mixed="true">
      <A N="level" T="Identifier" use="required"/>
      <A N="certification" T="CertificationRequirement"/>
     </CT>
    </E>
    <E N="type" T="ReferenceGroup" MIN="1" MAX="1"/>
    <E N="chapter" T="Chapter" MIN="1" MAX="unbounded"/>
    <E N="issues" T="TicketSystem" MIN="1" MAX="unbounded"/>
   </SEQ>
   <A N="class" T="PolicyClass" use="required"/>
   <A N="extension" T="ExtImpCategory" use="required"/>
   <A N="implementation" T="ExtImpCategory" use="required"/>
   <A N="lang" T="xsd:language" use="required"/>
   <A N="lastChanged" T="xsd:date" use="required"/>
   <A N="revision" T="Revision" use="required"/>
   <A N="extends" T="xsd:anyURI"/>
  </CT>















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 71]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

5.17 Esp

   Imprints, PolicyDocuments, SocialContracts, Tickets, and Namespaces
   MUST be signed.  If a document is unsigned or the key of the signature
   for a document is not the key of or signed by the entity given as the
   originator of a document the authenticity of the document MUST be
   considered unknown and it should be treated as if it was unsigned.
   Consequently keys that are used to represent organizations should
   only be used to sign keys of members of these organisations that may
   act as representatives.
   Enclosing an ESP element inside an ESP element allows to add further
   signatures and timestamps that confirm the validity of earlier
   signatures and timestamps, which may have become invalid or insecure.

  <CT N="Esp">
   <SEQ>
    <CHOICE MIN="1" MAX="1">
     <E N="socialContract" T="SocialContract"/>
     <E N="policyDocument" T="PolicyDocument"/>
     <E N="imprint" T="Imprint"/>
     <E N="search" T="SearchParameters"/>
     <E N="searchProfile" T="SearchProfile"/>
     <E N="searchResult" T="SearchResult"/>
     <E N="ticket" T="Ticket"/>
     <E N="receipt" T="Receipt"/>
     <E N="categoryNamespace" T="CategoryNamespace"/>
     <E N="regionCodes" T="RegionCodes"/>
     <E N="ticketSearchRequest" T="TicketSearchRequest"/>
     <E N="ticketList" T="TicketList"/>
     <E N="annotation" T="Annotation"/>
     <E N="advertisement" T="Advertisement"/>
     <E N="votingScheme" T="VotingScheme"/>
     <E N="evaluationScheme" T="EvaluationScheme"/>
     <E N="esp" T="Esp"/>
    </CHOICE>
    <E N="signature" T="Signature" MIN="0" MAX="unbounded"/>
    <E N="timestamp" T="Signature" MIN="0" MAX="unbounded"/>
   </SEQ>
  </CT>
















Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 72]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

6. Security considerations

   The specification relies on the security of OpenPGP [RFC4880]
   but has no security issues on its own.

7. IANA Considerations

   This document has no actions for IANA.

8. References

8.1 Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Level", BCP 14, RFC 2119, March 1997.

   [RFC4880]  J. Callas, L. Donnerhacke, H. Finney, D. Shaw, R. Thayer,
              "OpenPGP Message Format", RFC 4880, November 2007

   [RFC3406]  L. Daigle, D. van Gulik, R. Iannella, P. Faltstrom
              "URN Namespace Definition Mechanisms", BCP 66,
              October 2002

   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
              Masinter, L., Leach, P. and T. Berners-Lee,
              "Hypertext Transfer Protocol -- HTTP/1.1",
              RFC 2616, June 1999.

   [W3C.REC-xml-20081126]
              Yergeau, F., Paoli, J., Sperberg-McQueen, C., Bray, T. and
              E. Maler, "Extensible Markup Language (XML) 1.0 (Fifth 
              Edition)", November 2008,
              http://www.w3.org/TR/2008/REC-xml-20081126/

   [W3C.REC-xmlschema-0-20041028]
              David C. Fallside, Priscilla Walmsley,
              "XML Schema Part 0: Primer Second Edition", October 2004,
              http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/

   [UN/LOCODE-2010-1]
              UN Economic Commission for Europe, Information Service 
              "United Nations Code for Trade and Transport Locations"
              http://www.unece.org/cefact/locode/












Fastenrath      draft-fastenrath-ethics-search-protocol-00     [Page 73]

INTERNET-DRAFT         Ethics Search Protocol (ESP)        December 2010

8.2 Informative References

   [ISIC]     UN International Standard Industrial Classification Rev. 4
              http://unstats.un.org/unsd/cr/registry/isic-4.asp

   [NACE]     Statistical Classification of Economic Activities in the
              European Community, Rev. 2
              http://ec.europa.eu/eurostat/ramon/

   [NAICS]    North American Industry Classification System, Rev. 2007
              http://www.census.gov/epcd/naics07/

   [NAPCS]    North American Product Classification System, Rev. 2009
              http://www.census.gov/eos/www/napcs/napcs.htm

   [UKSIC]    UK Standard Industrial Classification of Economic
              Activities 2007 (version: January 2010)
      http://www.statistics.gov.uk/statbase/Product.asp?vlnk=14012

   [WZ2003]   Klassifikation der Wirtschaftszweige, Ausgabe 2008
      http://www.statistik-portal.de/Statistik-Portal/de_klassiWZ08.asp


Author's Address

   Bernhard Fastenrath
   Laurenz-Kiesgen-Str.35
   51105 Koeln
   Germany

   Email: Bernhard.Fastenrath@gmail.com
   Web: http://savannah.gnu.org/users/fasten




Fastenrath               Expires: June 12, 2011                [Page 74]
