추상 위키백과/초기 모형

This page is a translated version of the page Abstract Wikipedia/Early mockups and the translation is 100% complete.
Tracked in Phabricator:
task T258902

다음은 위키함수 위키에 대한 몇 가지 초기 모형입니다.

함수

곱셈 함수

함수 정의

 

헤더는 레이블과 객체 유형 (여기서는 함수)을 보여줍니다. 함수는 유형으로 서명을 포함합니다. 아래에 문서가 있습니다

다음은 곱하기 함수의 인수와 반환 유형 및 사용 가능한 구현 목록입니다. 그 아래에는 구현 매트릭스가 있는 테스트 목록이 있으며 마지막에는 독자가 해당 함수를 제자리에서 평가할 수있는 양식이 있습니다.

자바 스크립트에서 구현

 

이것은 여기 자바 스크립트에서, 위에서 정의한 곱하기 함수의 구현 중 하나입니다.

구성

 

이것은 곱하기 함수의 또 다른 구현으로, 이번에는 위키의 다른 함수로 구성됩니다.

테스트

 

다음은 곱셈 함수 테스트의 예입니다.

계승

모든 NLG 객체는 특정 접근 방식을 인코딩합니다. 이것은 특정 NLG 접근 방식에 대한 결정을 미리 내리기위한 것이 아니라 단순히 아이디어를 설명하고 시각화하기위한 것입니다. 우리가 취할 구체적인 NLG 접근 방식은 아직 결정되지 않았습니다.

생성자

 

이것은 후속 생성자입니다. 절로 이어지는 매우 복잡한 생성자를 보여줍니다.

영어 렌더러

 

계승 생성자를 위한 영어 렌더러입니다. 그것은 지나치게 단순화되었고 단지 아이디어를 대략적으로 보여주기위한 것입니다.

접속사

모든 NLG 객체는 특정 접근 방식을 인코딩합니다. 이것은 특정 NLG 접근 방식에 대한 결정을 미리 내리기위한 것이 아니라 단순히 아이디어를 설명하고 시각화하기위한 것입니다. 우리가 취할 구체적인 NLG 접근 방식은 아직 결정되지 않았습니다.

 

접속 생성자를 위한 영어 렌더러입니다. 그것은 지나치게 단순화되었고 단지 아이디어를 대략적으로 보여주기위한 것입니다.

 

이것은 기본적으로 동일하지만 옥스포드 쉼표에 관한 옵션이 있습니다.

대문

 

객체 생성

새 객체가 생성되고 있습니다. 먼저 유형을 선택해야합니다.

 

우리는 "테스트" 유형을 선택했습니다. 자동으로 관련 키가 표시됩니다.

 

첫 번째 키인 "함수 호출"에서 입력을 시작하고 "곱하기" 함수를 선택합니다. 자동으로 곱하기 관련 인수가 표시됩니다.

 

첫 번째 값을 입력하기 시작합니다. 이것은 양의 정수 유형의 리터럴로 구문 분석됩니다.

 

이제 두 번째 인수에서 "add"를 입력합니다. 이것은 함수로 인식됩니다. 적절한 인수에 대한 필드가 추가되고 있습니다. 우리는 리터럴을 추가합니다.

 

결과 조건은 테스트 객체의 두 번째 키입니다. 함수 이름을 입력하고 선택합니다. 결과 조건은 객체를 가져와 오류 목록을 반환하는 함수 유형입니다. "equal int"를 입력하고 함수를 선택하면 해당 함수의 하나의 인수가 표시됩니다.

 

이제 리터럴을 입력했으므로 객체가 완료되고 유효성이 검사됩니다. 게시 버튼이 표시됩니다.

 

객체 보기

다음은 새로 생성된 테스트 객체에 대한 보기입니다. 이름이 테스트의 렌더링이라고 가정합니다. 정말 예쁘게 보이지는 않지만 자동으로 수행할 수 있습니다. 객체 보기는 테스트에 대한 특정 보기입니다.

 

이것은 테스트 객체에 대한 특정 보기가 없다고 가정하고 Z객체에 대한 일반 보기를 사용하고 있습니다.

 

이것은 누군가가 더 좋은 레이블을 만들고, 약간의 문서를 작성하고 (이 테스트가 관련이 있는 이유), 곱하기 함수에 테스트를 추가하려는 노력을 거친 후의 보기입니다.

 

객체 편집

이것은 테스트 객체를 편집 할 때 사용하는 인터페이스입니다. 이것은 객체 또는 문서의 레이블을 편집 할 수 없습니다. 이것은 Z객체에 대한 일반적인 편집 인터페이스입니다. 기본적으로 생성 인터페이스와 동일합니다.

 

Z객체는 상당히 확장 될 수 있습니다. Z객체의 분기를 축소 할 수 있습니다. 여기서 우리는 곱셈의 두 번째 항에서 덧셈을하는 부분을 접었습니다.

 

매직 입력 상자

위 UX의 핵심 부분은 매직 입력 상자입니다. 이 입력 상자가 마법 같은 이유는 무엇입니까? 그들이 무엇을 할 수 있는지 자세히 살펴 보겠습니다. 그들은 네 가지 유형의 입력을 받을 수 있습니다. 모든 입력 상자에는 예상 유형이 있습니다 (최악의 경우 예상 유형은 "모두"입니다).

  • 예상된 유형, 즉 레이블 또는 별칭(또는 ID)으로 선택한 ZID 및 드롭 다운 선택을 사용하는 Z객체에 대한 참조(위키데이터에서 항목을 선택할 때와 같이).
  • 예상된 유형의 Z객체를 생성하는 함수 호출입니다. 이는 반환 유형에 예상 유형이 있는 함수의 Z객체에 대한 참조를 선택하는 것으로 시작되며, 이것이 선택되자마자 UI가 인수를 지정할 수 있도록 업데이트됩니다.
  • 리터럴. 예상 유형이 리터럴(예를 들어, 문자열 또는 정수)로 표시 될 수 있는 경우 해당 리터럴은 입력 상자에 입력 할 수 있습니다. 리터럴이 올바른 유형의 참조일 가능성이 있는 경우 드롭 다운 메뉴에 리터럴이 첫 번째 옵션으로 나열됩니다.(예상 유형을 리터럴로 표현할 수 있는지 여부는 문자열을 가져와 예상 유형의 인스턴스를 반환하는 값을 구문 분석하기 위해 함수가 지정되었는지 여부에 따라 다릅니다.)
  • 고급 사용자는 이러한 임베디드 매직 입력 상자를 더 큰 텍스트 필드로 전환하고 원시 편집을 수행 할 수 있습니다. 이것에 대한 모형을 참조하세요.

마법이 때때로 잘못 될 수 있기 때문에 (예를 들어 예상되는 함수(임의, 임의) 유형, 즉 임의의 함수가 있다고 상상해보세요. 실제로 함수를 참조하는지 또는 함수를 만들고 있는지 여부는 항상 불분명합니다. 함수를 생성하기 위해 호출하면 잘못된 모드가 될 수 있습니다. 마법 입력 상자에는 4가지 모드 중 하나를 명시적으로 잠글 수있는 토글 𝌹이 있습니다(모드 수는 예상되는 유형에 따라 약간 다를 수 있습니다. 즉, 예상 유형이 함수이거나 임의이면 리터럴 모드 등이 없습니다)뿐만 아니라 예상 유형을 변경합니다.

 

이것은 원시 편집을 위한 함수 구문을 보여줍니다. 이것은 단지 UX일 뿐입니다. 입력은 저장하기 전에 파싱되고 정규화됩니다. 그러나 특히 코딩의 경우 많은 사람들이 복사 및 붙여 넣기 없이는 할 수 없으며, 그렇지 않으면 UI가 이 권한을 얻지 못하므로 이 옵션을 제공합니다.

 

이것은 이전의 모형과 동일하지만 함수 구문과 레이블이 지정된 콘텐츠를 사용하는 대신 원시 상태이며 JSON 및 ZID를 사용합니다. 글쎄, 그것은 결국 가능성이 될 것입니다.

 

디자인 대안

다음 두 개의 모형은 함께 속한 양식 주위에 점선 상자를 넣어 양식 그룹을보다 명확하게 만들기 위한 몇 가지 대체 디자인 아이디어를 보여줍니다. 또한 붕괴가 무너지는 것을 명확하게 보여줍니다.

 

여기에서 아이콘을 이동하여 상자를 왼쪽으로 축소합니다.

 

모바일 모형

이것은 모바일 UX에 대한 모형입니다. 수평 공간이 훨씬 적기 때문에 들여 쓰기로 트리를 그룹화하는 것은 문제가 될 수 있습니다.