문자 정보 기반 API를 사용하여 JIS 수준 n

15761 단어 SPARQL
입력 검사에서'JIS 제n 수준의 글자 이외 NG'라는 필수 조건은 드물다.이럴 때는 이전 사람들의 정규 표현과 문자 목록을 사용하기 쉬우나 신뢰성이 과제다.IPA문자 정보 기반를 사용하여 JIS 제n 수준의 문자집을 얻는 방법을 소개한다.

1. API


텍스트 정보를 기반으로 SPARQL Endpoint를 제공하며, 다음 웹 형식에서 SPARQL을 입력하여 정보를 얻을 수 있습니다.
  • https://mojikiban.ipa.go.jp/1bf7a30fda/sparqlsearch

  • SPARQL Endpoint는 다음 자바스크립트 코드를 사용하여 웹 브라우저에서 사용할 수 있는 CORS를 지원합니다.query 섹션을 적절한 SPARQL 질의로 바꿉니다.
    query.js
    $(function() {
      var query = "select * where {?s ?p ?o.} limit 10";
      $.getJSON("https://mojikiban.ipa.go.jp/1bf7a30fda/sparql", {
         format: "application/sparql-results+json",
         m: "sparql",
         query: query
      }).then(function(json) {
         console.log(json);
      }).catch(function() {
         console.log(arguments);
      });
    });
    

    2. JIS의 레벨별 수록수


    이런 검색
    count.rq
    PREFIX mjp: <http://mojikiban.ipa.go.jp/terms/prop/> 
    select ?o (count(?s) as ?count) where {
      ?s mjp:JIS水準 ?o .
    } group by ?o
    
    이런 결과를 되돌려주다
    result.json
    {
      "head": {
        "vars": [
          "o",
          "count"
        ]
      },
      "results": {
        "bindings": [
          {
            "o": {
              "type": "uri",
              "value": "http://mojikiban.ipa.go.jp/data/JIS水準/4"
            },
            "count": {
              "datatype": "http://www.w3.org/2001/XMLSchema#integer",
              "type": "typed-literal",
              "value": "2436"
            }
          },
          {
            "o": {
              "type": "uri",
              "value": "http://mojikiban.ipa.go.jp/data/JIS水準/1"
            },
            "count": {
              "datatype": "http://www.w3.org/2001/XMLSchema#integer",
              "type": "typed-literal",
              "value": "2969"
            }
          },
          {
            "o": {
              "type": "uri",
              "value": "http://mojikiban.ipa.go.jp/data/JIS水準/2"
            },
            "count": {
              "datatype": "http://www.w3.org/2001/XMLSchema#integer",
              "type": "typed-literal",
              "value": "3390"
            }
          },
          {
            "o": {
              "type": "uri",
              "value": "http://mojikiban.ipa.go.jp/data/JIS水準/3"
            },
            "count": {
              "datatype": "http://www.w3.org/2001/XMLSchema#integer",
              "type": "typed-literal",
              "value": "1259"
            }
          }
        ]
      }
    }
    
    표로 바뀌면 이런 결과야.
    o
    count
    http://mojikiban.ipa.go.jp/data/JIS수평
    2,969
    http://mojikiban.ipa.go.jp/data/JIS수평/2
    3,390
    http://mojikiban.ipa.go.jp/data/JIS수평/3
    1,259
    http://mojikiban.ipa.go.jp/data/JIS수평
    2,436
    문자 정보 기반 SPARQL Endpoint는 기본적으로 2000개, 최대 5000개의 쿼리를 지원합니다.수치를 수준별로 취득했다면 LIMIT5000을 부여하면 한 번에 취득할 수 있다.
    위키백과 일본판: JIS 한자 인코딩의 계수와 비교하면 첫 번째 수준의 문자 수는 일치하지 않지만 뒤에 설명할 것이다.

    3. JIS의 수준별 소속 문자에 맞는 UCS


    JIS 최고 수준


    1.rq
    PREFIX mjp: <http://mojikiban.ipa.go.jp/terms/prop/>
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    select ?label where {
      ?s mjp:JISX0213/mjp:JIS水準 <http://mojikiban.ipa.go.jp/data/JIS水準/1> ;
         mjp:実装UCS/rdfs:label ?label .
    } limit 5000
    

    JIS 제 2 수준


    2.rq
    PREFIX mjp: <http://mojikiban.ipa.go.jp/terms/prop/>
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    select ?label where {
      ?s mjp:JISX0213/mjp:JIS水準 <http://mojikiban.ipa.go.jp/data/JIS水準/2> ;
         mjp:実装UCS/rdfs:label ?label .
    } limit 5000
    

    JIS 제3수준


    3.rq
    PREFIX mjp: <http://mojikiban.ipa.go.jp/terms/prop/>
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    select ?label where {
      ?s mjp:JISX0213/mjp:JIS水準 <http://mojikiban.ipa.go.jp/data/JIS水準/3> ;
         mjp:実装UCS/rdfs:label ?label .
    } limit 5000
    

    JIS 네 번째 수준


    4.rq
    PREFIX mjp: <http://mojikiban.ipa.go.jp/terms/prop/>
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    select ?label where {
      ?s mjp:JISX0213/mjp:JIS水準 <http://mojikiban.ipa.go.jp/data/JIS水準/4> ;
         mjp:実装UCS/rdfs:label ?label .
    } limit 5000
    

    상용 한자


    j.rq
    PREFIX mjp: <http://mojikiban.ipa.go.jp/terms/prop/>
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    select ?label {
      ?s mjp:常用漢字であるか "yes" ; 
         mjp:実装UCS/rdfs:label ?label .
    } limit 5000
    

    샘플 내보내기 및 활용


    질의를 실제로 실행하면 다음 JSON이 출력됩니다."value": "3A02"처럼 16진수 UCS를 가져옵니다.
    2.json
    {
      "head": {
        "vars": [
          "label"
        ]
      },
      "results": {
        "bindings": [
          {
            "label": {
              "type": "literal",
              "value": "3A02"
            }
          },
          {
            "label": {
              "type": "literal",
              "value": "63C0"
            }
          },
      ...
    
  • ''에서 사용한다면 &#x3A02;처럼 각value의 앞뒤를 보충하여 수치 문자 참조로 문자를 지정할 수 있다.
  • 4.예외


    JIS의 첫 번째 수준은 위에서 말한 바와 같이 일반적으로 말하는 문자 수와 문자 정보에 기초한 문자 수가 일치하지 않는다.
    다음 쿼리는 DB 내 JIS 1위를 기록한 데이터 중 1-0으로 시작된 지역점 번호로 총 4개의 쿼리가 성공했다.
    inspect.rq
    PREFIX mjp: <http://mojikiban.ipa.go.jp/terms/prop/>
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    select * where {
      ?a mjp:JIS水準 <http://mojikiban.ipa.go.jp/data/JIS水準/1> ;
         rdfs:label ?jis .
      FILTER REGEX(?jis, "^1-0.*$")
    } limit 5000
    
  • 1-01-24
  • 1-01-25
  • 1-01-26
  • 1-02-22
  • JIS 제1수준의 지역번호는 1-16-xx에서 1-47-xx 사이이기 때문에 이 부분에 문제가 있습니다.문의 후 정보를 업데이트하고 싶습니다.

    5. 요약


    문자 정보 기반 SPARQL Endpoint를 사용하여 JIS 수준 문자 세트를 검색하는 방법에 대해 설명합니다.공용으로 API를 제공하기 때문에 프로그래머로서 안심하고 사용할 수 있지 않습니까?문자 정보에 더해 JIS 수준은 물론 문자와 관련한 다양한 정보들이 보존돼 있어 관심 있는 사람이 더 깊이 파고들면 흥미로울 수 있다.

    좋은 웹페이지 즐겨찾기