In Rowlex gibt es eine Möglichkeit, "RDF: Datentyp" aus serialisiertem Objekt zu entfernen?

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

  •  13-09-2019
  •  | 
  •  

Frage

Ist es in Rowlex möglich, "RDF: Datentyp" -attribut jeder Eigenschaft zu entfernen und/oder stattdessen ein gemeinsames RDF -Schema zu verwenden?

Beispiel:

<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>
War es hilfreich?

Lösung

Die Frage ist ziemlich unklar, sodass Sie eine generische Antwort erhalten :) Jede Euleneigenschaft muss entweder Datentyp oder einen Objekttyp sein.

  • Objekttypeigenschaften verbinden zwei Knoten des Diagramms, nämlich nicht nur das Subjekt, sondern auch das Objekt des Triple ist ein URI (oder leerer Knoten).
  • Datentyp-Eigenschaft: Das Objekt des Dreifachs ist ein konkreter Wert, der Zeichenfolge, Ganzzahl, Datumszeit usw. sein kann. Diese konkreten Werte werden als "wörtliches" -S-S bezeichnet. Die Basistyp von Literalen ist "wörtlich", von diesen sind die Betontypen (String, Ganzzahl, DateTime ...) unterklassifiziert.

Wenn Sie Ihre Ontologie definieren, wird von Ihnen nicht gefordert, Ihre Datentypeigenschaften auf einen bestimmten wörtlichen Typ zu beschränken. Sie können es generisch halten und alle Arten von Literalen akzeptieren. Rowlex unterstützt dies. Es gibt eine generische RDFlitereralklasse und eine Gastgeberin bestimmter buchstäblicher Klassen wie RDFliteralString, RDFlitereraldatetime usw. Jede spezifische buchstäbliche Klasse enthält explizite und implizite Cast -Implementierungen, um .NET -Typen in Literale und Rücken umzuwandeln. Daher können Sie in Rowlex schreiben:

    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

Wenn Ihr Datum der Datentyp -Eigenschaft in Ihrer Ontologie nicht auf DateTime beschränkt ist, kompilieren alle oben genannten Zeilen ohne Fehler. Meine persönliche Meinung ist jedoch, dass, wenn Sie genauer sein können, genauer sein können, da Sie Fehler und Missverständnisse verhindern können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top