Rowlex에는 직렬화 된 객체에서 "RDF : DataType"을 제거하는 방법이 있습니까?

StackOverflow https://stackoverflow.com/questions/1127370

  •  13-09-2019
  •  | 
  •  

문제

Rowlex에서 각 속성의 "RDF : DataType"속성을 제거하거나 대신 공통 RDF 스키마를 사용할 수 있습니까?

예시:

<MyOntology:Channel>
   <MyOntology:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">My news</MyOntology:title>
   <MyOntology:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">My desc</MyOntology:description>
</MyOntology:Channel>
도움이 되었습니까?

해결책

질문은 매우 불분명하므로 일반적인 답변을 얻을 수 있습니다. :) 모든 올빼미 속성은 데이터 유형 또는 객체 유형이어야합니다.

  • 객체 유형 속성은 그래프의 두 노드, 즉 피사체뿐만 아니라 트리플의 객체도 URI (또는 빈 노드)를 연결합니다.
  • 데이터 유형 속성 : 트리플의 객체는 문자열, 정수, 날짜 시간 등이 될 수있는 구체적인 값입니다.이 콘크리트 값을 "리터럴"-S라고합니다. 기본 유형의 리터럴은 "문자 그럴"이며, 이들은 구체적인 유형 (문자열, 정수, datetime ...)입니다.

온톨로지를 정의 할 때, 데이터 유형 속성을 특정 문자 유형으로 제한하도록 요구되지 않습니다. 모든 종류의 리터럴을 수용하면서 일반적인 상태로 유지할 수 있습니다. Rowlex는 이것을 지원합니다. 일반적인 rdfliteral 클래스와 rdfliteralstring, rdfliteraldateTime 등과 같은 특정 문자 클래스의 호스트가 있습니다. 모든 특정 문자 클래스에는 .NET 유형을 문학적 및 뒤로 변환하기 위해 명시적이고 암시적인 캐스트 구현이 포함되어 있습니다. 따라서 Rowlex에서는 다음을 쓸 수 있습니다.

    RdfDocument rdfDoc = new RdfDocument();
    // Assuming that Person class and DateOfBirth data type property 
    // are autogenerated from your person-ontology, AND
    // your DateOfBirth data type property is restricted to DateTime
    Person p = new Person("joe", rdfDoc); 
    // Implicit casting from DateTime to RdfLiteralDateTime
    p.DateOfBirth = new Sytem.DateTime(1946, 12, 31); // Compiles OK
    p.DateOfBirth = 26; // Compiler error
    p.DateOfBirth = "Hello World"; // Compiler error

온톨로지의 날짜 데이터 유형 속성이 DateTime으로 제한되지 않으면 위의 모든 줄은 오류없이 컴파일합니다. 그러나 내 개인적인 견해는 더 구체적 일 수 있다면 오류와 잘못된 의사 소통을 방지 할 수 있기 때문에 더 구체적으로 수행 할 수 있다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top