Skip to content
created by Aha00aAha00a at 2026-05-21
last modified by Aha00aAha00a at 2026-09-15
revision: 6

#!Schema는 schema.org 구조화 데이터를 문서에 표시하고 JSON-LD로도 제공하는 Interpreter입니다.

이전의 AhaWikiSchema 구상은 이 문서로 통합했습니다.

1. 기본 문법

Schema 뒤의 인자는 schema.org class 이름입니다. 공백으로 나누어 여러 개를 쓸 수 있습니다.

본문은 탭으로 구분한 TSV 형식이며, 첫 column은 property, 나머지 column은 value입니다.

빈 줄과 #으로 시작하는 줄은 무시합니다.

한 대상이 둘 다인 경우가 있습니다 — 라이브러리는 코드이면서 쓰는 물건이고, Git 은

[[[#!Schema SoftwareApplication SoftwareSourceCode 로 적습니다. 그러면 codeRepository 와

operatingSystem 이 한 블록에서 각자 제 클래스를 갖습니다. 적은 순서가 유지되므로 주 타입을

앞에 둡니다.

2026-09-04 이전에는 첫 인자만 읽었습니다. 나머지는 조용히 버려져서, 두 클래스를 적어 둔

문서들이 마치 엉뚱한 클래스에 속성을 달고 있는 것처럼 보였습니다.

Raw Preview
[[[#!Schema Person
name	Ada Lovelace
birthDate	1815-12-10
url	https://en.wikipedia.org/wiki/Ada_Lovelace
]]]
Person

2. 여러 값

하나의 property에 여러 값을 넣을 수 있습니다.

같은 property를 여러 줄에 나누어 써도 됩니다.

Raw Preview
[[[#!Schema WebApplication
name	AhaWiki
applicationCategory	Wiki
sameAs	https://github.com/Aha00a/AhaWiki	https://ahawiki.net
]]]
Web Application

3. 표시와 링크

일반 값은 위키 링크로 렌더링합니다.

url, codeRepository, sameAs는 URL로 렌더링하고, scheme이 없으면 https://를 붙입니다.

image, logo는 이미지로 렌더링합니다.

image, logo 값에 [[Attachment(...)]]를 사용할 수 있습니다. 단, 그 페이지에 실제로 올린 첨부여야 합니다 — 없는 파일이면 볼 때마다 대체 이미지가 뜨고 브라우저의 S3 요청이 실패합니다. 아래 예시에 logo 가 없는 이유입니다(이 페이지에는 첨부가 없습니다).

Raw Preview
[[[#!Schema SoftwareSourceCode
name	AhaWiki
codeRepository	github.com/Aha00a/AhaWiki
]]]
Software Source Code

4. 날짜

date로 시작하거나 Date로 끝나는 property는 날짜 링크와 함께 기간 정보를 표시합니다.

검색/계산용 schema 정보에는 YYYY-MM-DD 값에서 YYYY-MM도 함께 추출합니다.

Raw Preview
[[[#!Schema Event
name	Release
startDate	2026-05-25
endDate	2026-05-26
]]]
Event

5. 장소

address, geo, location, foundingLocation, birthPlace, 그리고 Location으로 끝나는 property는 장소로 취급합니다.

한국어 주소는 단계별 주소 후보도 함께 추출합니다.

렌더링 시 지도 iframe을 표시하고, 값에 한글이 있으면 Google/Naver/Kakao Map 링크도 표시합니다.

Raw Preview
[[[#!Schema LocalBusiness
name	Example Cafe
address	서울특별시 마포구 망원동
geo	37.556,126.905
]]]
Local Business

6. 쌍으로 표시하는 property

아래 property가 바로 다음 줄에 같은 개수의 값으로 이어지면 한 줄에 쌍으로 표시합니다.

  • birthDate / deathDate
  • startDate / endDate
  • actor / character
Raw Preview
[[[#!Schema Movie
name	Example Movie
actor	Actor A	Actor B
character	Character A	Character B
]]]
Movie

7. JSON-LD

일반 렌더링에서는 HTML 표시와 함께 application/ld+json script를 출력합니다. JSON 은 logics.HtmlJson 으로 써서 <·>·& 가 유니코드 이스케이프가 됩니다. 2026-09-15 전에는 값에 </script 가 있으면 script 요소가 거기서 끝나고 나머지가 마크업으로 돌았습니다.

JSON-LD에는 다음 기본 값이 자동으로 들어갑니다.

  • @context: https://schema.org
  • @type: shebang의 schema class. 하나면 문자열, 여럿이면 배열입니다. RDFa 쪽 typeof 는 공백으로 이어 붙입니다 — 원래 그 표기가 여러 타입을 뜻합니다
  • url: 현재 문서 URL. 단, url property를 직접 쓴 경우에는 직접 쓴 값을 사용합니다.
  • mainEntityOfPage: 현재 문서 URL
  • @id: 현재 문서 URL
  • name: 현재 문서 이름. 단, name property를 직접 쓴 경우에는 직접 쓴 값을 사용합니다.
  • inLanguage: 현재 요청 locale

address는 PostalAddress, location과 foundingLocation은 Place, geo의 lat,lng 값은 GeoCoordinates로 변환합니다.

8. Preview

preview 렌더링에서는 추천 property, schema 계층, 사용 가능한 property 목록을 함께 보여줍니다. 클래스를 여럿 적었으면 전부에 대해 보여주고, 추천 property 는 합쳐서 한 번씩만 셉니다.

9. TODO

있으면 좋을 것 같은 Schema 구상입니다.

현재 구현된 schema.org 해석과는 별개로, AhaWiki에서 추가로 다루고 싶은 custom class/property 후보입니다.

10. 참고

schema class와 property는 schema: 링크로 연결됩니다.

예: Person, name, WebApplication

11. See Also

11.2. Similar Pages

Similar pages by cosine similarity. Words after page name are term frequency.

  • Same Wiki
    • 37.82% Dev SchemaOrgVocabulary schema(21:45), org(6:40), class(3:25), property(7:9), wiki(13:2), 같은(3:10), aha(10:2), json(7:5), map(4:8), 없는(2:8)
    • 37.69% MacroInclude wiki(13:13), aha(10:14), name(15:1), date(10:3), preview(9:4), raw(6:4), url(8:1), application(7:2), code(7:2), 현재(6:2)
    • 37.61% Dev Editor schema(21:21), aha(10:19), wiki(13:14), code(7:18), name(15:8), preview(9:9), interpreter(2:15), date(10:4), org(6:8), page(1:13)
    • 33.78% AhaWiki wiki(13:9), aha(10:10), name(15:1), date(10:3), url(8:1), application(7:2), code(7:2), aha00a(4:4), 있습니다(4:3), 함께(5:1)
  • Sister Wikis
    • 46.83% Aha00a:schema.org schema(21:18), org(6:15), name(15:5), wiki(13:3), aha(10:3), url(8:4), json(7:3), property(7:3), application(7:1), person(3:5)
    • 31.89% Aha00a:.footer schema(21:2), wiki(13:3), aha(10:2), aha00a(4:3), map(4:1), page(1:2)

11.3. Adjacent Pages

Control
≤ 32
all
1.0x
1.0x
80
-120
ON
Metrics
Nodes(visible/total)0/0
Links(visible/total)0/0
Avg degree0.00
Depth coverage0
Queue(fetch/graph)0 / 0
Zoom(scale)1.00x
Ctrl/⌘ + Scroll: Zoom
Root 1-hop 2-hop+