In ROWLEX c'è un modo per rimuovere “rdf: tipo di dati” da oggetto serializzato?

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

  •  13-09-2019
  •  | 
  •  

Domanda

In ROWLEX è possibile rimuovere "rdf: tipo di dati"? Attributo di ogni proprietà e / o utilizzare comune RDF Schema invece

Esempio:

<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>
È stato utile?

Soluzione

La domanda è abbastanza chiaro, in modo da ottenere una risposta generica :) Ogni proprietà OWL deve essere o tipo di dati o un tipo di oggetto.

  • proprietà del tipo di oggetto collegano due nodi del grafo, cioè non solo il soggetto ma l'oggetto della tripla è un URI (o nodo vuoto), anche.
  • Tipo di dati di proprietà: l'oggetto della tripla è un valore concreto che può essere stringa, intero, data e ora, ecc Questi valori concreti sono chiamati -s "letterale". Il tipo di base di letterali è "letterale", da questi sono i tipi di cemento (stringa, intero datetime ...) sottoclasse.

Quando si definisce la vostra ontologia, non è richiesto da voi per limitare le proprietà del tipo di dati a un particolare tipo letterale. Si può tenerlo generica, accettando qualsiasi tipo di letterali. ROWLEX supporta questo. C'è una classe RdfLiteral generica e un host di classi letterali specifici come RdfLiteralString, RdfLiteralDateTime ecc Ogni classe letterale specifica contiene implementazioni del cast espliciti ed impliciti per convertire tipi .NET per letterali e ritorno. Pertanto in ROWLEX, è possibile scrivere:

    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 la vostra proprietà tipo di dati DateOfBirth in un'ontologia non è limitato a DateTime poi tutte le linee sopra compilare senza errori. Tuttavia, la mia opinione personale è che se si può essere più specifico, essere più specifico, perché è possibile evitare errori e problemi di comunicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top