Pergunta

No Rowlex, é possível remover o atributo "rdf: datatype" de cada propriedade e/ou usar o esquema RDF comum?

Exemplo:

<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>
Foi útil?

Solução

A pergunta não é clara, então você obtém uma resposta genérica :) Cada propriedade OWL deve ser o tipo de dados ou um tipo de objeto.

  • As propriedades do tipo de objeto conectam dois nós do gráfico, como não apenas o assunto, mas o objeto do triplo é um URI (ou nó em branco) também.
  • Propriedade do tipo de dados: o objeto do triplo é um valor concreto que pode ser corda, número inteiro, hora de data etc. Esses valores concretos são chamados de "literal". O tipo de base de literais é "literal", a partir desses tipos de concreto (string, número inteiro, tempo de dados ...) subclassem.

Quando você define sua ontologia, ela não é exigida de você para restringir suas propriedades de tipo de dados a um tipo literal específico. Você pode mantê -lo genérico, aceitando qualquer tipo de literais. Rowlex suporta isso. Existe uma classe RDfliteral genérica e um hosts de classes literais específicas como rdfliteralstring, rdfliteraldateTime etc. Toda classe literal específica contém implementações de elenco explícitas e implícitas para converter tipos .NET em literais e voltar. Portanto, no Rowlex, você pode escrever:

    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

Se a sua propriedade DateOfBirth Data Type em sua ontologia não estiver restrita ao tempo de dados, todas as linhas acima compilam sem erros. No entanto, minha opinião pessoal é que, se você pode ser mais específico, seja mais específico, porque pode evitar erros e falhas de comunicação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top