추상 위키백과/정규형 및 표준형

This page is a translated version of the page Abstract Wikipedia/Canonical and normal and the translation is 100% complete.

최근에 Z객체의 JSON 표현에 대한 정규형 및 표준형에 대해 몇 가지 논의했습니다.

대부분의 기여자와 위키함수 사용자에게는 중요하지 않습니다. UX는 JSON 표현으로부터 효과적으로 보호해야합니다. 그러나 중요한 경우에 대해 약간의 배경 지식이 있습니다.

많은 다른 JSON 객체가 동일한 Z객체를 효과적으로 설명 할 수 있습니다. 잘 정의 된 두 가지 형식이 있습니다. 정규형과 표준형입니다. 이들은 시스템에서 사용되는 것들입니다. 때로는 기여자가 중간에 무언가를 쓸 수 있으며 시스템의 모든 부분에서 이를 수락해야합니다.

표준화는 올바른 형식의 입력에 대해 동일한 표준 형식을 반환해야합니다. 정규화는 올바른 형식의 입력에 대해 동일한 정규 형식을 반환해야합니다. 따라서 대부분의 장소는 잘 구성된 한 그들이 받는 것에 신경을 쓰지 않아야합니다. 그들은 단순히 그것을 정규화하거나 표준화한 다음 작업하려는 형식으로 입력을 얻을 수 있습니다.

내부적으로는 우리는 데이터베이스에 정규 형식을 저장하고 사용자에게 표시 할 때 표준 형식을 사용하는 것이 좋습니다. 표준 형식은 특히 오케스트레이터 또는 프런트 엔드에서 데이터를 처리 할 때 거의 모든 다른 경우에 사용됩니다.

마지막으로 소위 레이블화가 있습니다. 이것은 단순히 모든 ZID 또는 키 참조를 주어진 언어의 레이블로 대체하는 것입니다. 이는 일반적으로 손실이 많은 단계입니다. 레이블 해제가 반드시 작동하는 것은 아닙니다. 이것은 순전히 출력 목적입니다. 다음에서 왼쪽에는 레이블이 지정된 버전이, 오른쪽에는 원시 버전이 표시됩니다.

다음은 일반 형식의 함수 호출입니다:

사람이 읽을 수 있는 형식 정규 형식
{
  "type": {
    "type": "Reference",
    "reference ID": "Function call"
  },
  "function": {
    "type": "Reference",
    "reference ID": "Head"
  },
  "list": {
    "type": "List",
    "head": {
      "type": "String",
      "value": "a"
    },
    "tail": {
        "type": "List"
    }
  }
}
{
  "Z1K1": {
    "Z1K1": "Z9",
    "Z9K1": "Z7"
  },
  "Z7K1": {
    "Z1K1": "Z9",
    "Z9K1": "Z811"
  },
  "Z811K1": {
    "Z1K1": "Z10",
    "Z10K1": {
      "Z1K1": "Z6",
      "Z6K1": "a"
    },
    "Z10K2": {
        "Z1K1": "Z10"
    }
  }
}

표준 형식의 동일한 함수 호출:

사람이 읽을 수 있는 형식 표준 형식
{
  "type": "Function call",
  "function": "Head",
  "list": [ "a" ]
}
{
  "Z1K1": "Z7",
  "Z7K1": "Z811",
  "Z811K1": [ "a" ]
}

대부분의 소프트웨어 개발자가 합리적으로 읽을 수있는 형식으로 간주하는 것과 동일한 함수 호출:

Head(["a"])

이것은 하나의 요소가 있는 목록인 하나의 인수에 대한 함수 Head </ code>에 대한 호출이며 해당 요소는 문자열 "a"입니다. Head </ code>는 목록의 첫 번째 요소를 반환하므로 해당 함수 호출의 결과는 다음과 같습니다:

{
  "type": "String",
  "value": "a"
}
{
  "Z1K1": "Z6",
  "Z6K1": "a"
}

또는 표준 형식으로 간단히:

"a"

때때로 용어로 인해 혼동되기 때문에 정규 형식을 "긴" 또는 "명시적" 형식이라고도 합니다. "정규형(normal)"이라는 용어는 데이터베이스 정규화 개념에서 영감을 받았습니다. 표준 형식은 일반적으로 훨씬 더 짧기 때문에 "짧은" 또는 "압축된" 형식이라고도 합니다. 표준화는 컴퓨터 과학에서 이 단계의 일반적인 용어입니다. 컴퓨터 과학에서 표준화와 정규화는 종종 서로 동의어이므로 "짧은" 및 "긴" 형식이 혼동을 덜어주는 것처럼 보입니다.