OWL 또는 Topic Maps로 정의 할 수있는 것과 같이 List [T]와 같은 다형성 유형에 대한 지원을 포함하는 온톨로지를 설계하려고합니다. 여기서 T는 Interval Kind In (Nothing, Any)의 type 매개 변수이며 Function Kind * -> *입니다. 궁극적으로 필자는 동일한 의미 언어로 작성된 유형 안전 소프트웨어 코드의 기초가 될 수있는 충분한 세부 묘사와 엄격한 의미 론적 언어로 유형 시스템 온톨로지를 설명하려고합니다.종류 이론의 모든 인스턴스의 공통 상위 유형은 무엇입니까
이 목표를 염두에두고 유형, 간격 유형 및 기능 유형이 모두 Kind의 인스턴스 인 계층 구조를 파악하려고합니다. 모든 종류의 공통 '초 (superkind)'에 대한 공식적인 이름이 있습니까? 내가 생각할 수있는 가장 좋은 용어는 'Kind Instance'입니다. 이것은 심지어 타입 이론에서 의미있는 개념입니까? 그렇지 않은 경우에도 (토픽 맵 용어에서와 같은) 말하기에는 개념이 필요합니다. "function-argument-type-constraint 연관에는 역할 'allowed-type'이 있습니다.이 플레이어의 유형은 'Kind Instance ''.
이 외에도 저는이 프로젝트의 형식 이론을 가르치기 시작했으며 완료하기 전에 더 많은 것을 배워야합니다. 필자는 Higher Kind의 Generics (http://adriaanm.github.com/files/higher.pdf)를 포함하여 유형 이론에 대한 몇 가지 스칼라 관련 문서를 읽었으며 스칼라에서 Safe Type-Level Abstraction을 통해 작업을 시작했습니다. http://adriaanm.github.com/files/scalina-final.pdf) 및 Type Constructor Polymorphism for Scala[pdf]. 스칼라보다 하스켈에 대해 잘 알지 못하지만 System F with Type Equality Coercions[pdf]과 같은 관련성이 높은 몇 가지 논문이 나왔습니다. 이해하기 위해서는 하스켈에 대해 훨씬 더 깊이 이해해야합니다. 초보자 수준에서 시작하여 일반화 된 대수 데이터 형식과 같은 고급 원칙에 이르기까지 하스켈 형식 시스템을 학습하기위한 자료를 읽는 사람이 있다면 그 정보를 얻을 수 있습니다. 당신은 OWL 또는 토픽 맵과 같은 의미 온톨로지 언어의 유형 시스템을 설명하는 기존의 시도를 알고있는 경우이 작업을 수행하는 방법에 대한 어떤 제안이있는 경우
마지막으로, 또는 너무 듣고 싶어요.
의존형과 '유형 : 유형'규칙이있는 IIUC에는 유형 검사기가 무한 루프를 유발할 수있는 프로그램이 있지만 그 프로그램은 상당히 열심히 시도해야합니다. 일상적인 사건 - 그래서 당신이 증명보다는 프로그램을 가지고 있다면, 그것의 일관된 대안들과 비교 된'Type : Type'의 단순성은 희생 가치가있을 것입니다. – luqui
"Type : Type"규칙에 대해 설명하는 링크를 제공하고 실제로 사용되는 위치의 예를 들어 줄 수 있습니까? 또한, 무한 루프를 유발할 프로그램을 방지하거나 식별 할 수있는 방법이 있습니까? 이것은 제 3 자에 의해 작성된 코드의 실행을 포함하기 때문에 염두에 둔 어플리케이션의 보안 문제가 될 수 있습니다. –
@ChrisBarnett CoqArt의 'Type : Type'에 대한 논의가 있습니다. Google은 http://webcache.googleusercontent.com/search?q=cache:http://adam.chlipala.net/cpdt/html/Universes.html을 제안합니다. 무한 루프에 관해서는, 글쎄, 나는 당신이 정지 문제에 대해 알고 있다고 확신한다. 근본적으로 당신이 해고를 확인해야 할 필요가 있다면 보수적 인 것을 쓰는 것입니다. 그런 다음 필연적으로 재미있는 프로그램을 배제해야합니다. Coq와 Agda는 정교한 터미네이션 체커를 가지고 있지만, 심지어 모든 개발의 일부분은 유형 검사기가 만족스럽게 일을 끝내야한다는 것을 증명합니다. –