En ROWLEX hay una manera de eliminar “RDF: tipo de datos” de objeto serializado?

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

  •  13-09-2019
  •  | 
  •  

Pregunta

En ROWLEX es posible eliminar "RDF: tipo de datos"? Atributo de cada propiedad y / o el uso común Esquema RDF lugar

Ejemplo:

<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>
¿Fue útil?

Solución

La pregunta es muy clara, para que pueda obtener una respuesta genérica :) Cada propiedad OWL debe ser de tipo de datos o un tipo de objeto.

  • propiedades de tipo Object conectan dos nodos de la gráfica, a saber, no sólo el tema, pero el objeto de la triple es un URI (o nodo en blanco), también.
  • Tipo de datos propiedad: el objeto de la triple es un valor concreto que puede ser cadena, entero, fecha y hora, etc. Estos valores concretos se llaman -s "literal". El tipo base de literales es "literal", a partir de estos son los tipos de hormigón (cadena, entero, fecha y hora ...) subclases.

Al definir su ontología, no se exigió a restringir las propiedades de tipo de datos de un tipo particular, literal. Es posible mantenerlo genérico, de aceptar cualquier tipo de literales. ROWLEX es compatible con esta. Hay una clase RdfLiteral genérico y una anfitriones de clases específicas como literales RdfLiteralString, RdfLiteralDateTime etc. Cada clase específica literal contiene implementaciones elenco explícitos e implícitos para convertir tipos de .NET a los literales y la espalda. Por lo tanto, en ROWLEX, puede escribir:

    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

Si su propiedad tipo de datos DateOfBirth en su ontología no se limita a DateTime entonces todas las líneas anteriores compilar sin errores. Sin embargo, mi opinión personal es que si puede ser más específico, ser más específico, porque se puede evitar errores y falta de comunicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top