Question

Dans ROWLEX est-il possible de supprimer « rdf: datatype »? Attribut de chaque propriété et / ou utiliser le schéma RDF commun à la place

Exemple:

<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>
Était-ce utile?

La solution

La question est assez claire, de sorte que vous obtenez une réponse générique :) Chaque propriété OWL doit être de type de données ou un type d'objet.

  • propriétés de type objet relient deux noeuds du graphe, à savoir non seulement le sujet mais l'objet du triple est un URI (ou nœud blanc), aussi.
  • propriété type de données: l'objet du triple est une valeur concrète qui peut être string, integer, date et heure, etc. Ces valeurs concrètes sont appelées -s « littéral ». Le type de base de littéraux est "Literal", à partir de ceux-ci sont les types de béton (string, integer, ... datetime) sous-classées.

Lorsque vous définissez votre ontologie, il n'est pas demandé de vous restreindre vos propriétés de type de données à un type particulier littéral. Vous pouvez le garder générique, accepter toutes sortes de littéraux. ROWLEX prend en charge cela. Il y a une classe RdfLiteral générique et un hôte de classes littérales spécifiques comme RdfLiteralString, RdfLiteralDateTime etc. Chaque classe spécifique littérale contient des implémentations de la distribution explicites et implicites pour convertir les types .NET littéraux et le dos. Par conséquent, dans ROWLEX, vous pouvez écrire:

    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 votre propriété de type de données DateOfBirth dans votre ontologie ne se limite pas à DateTime alors toutes les lignes ci-dessus compilez sans erreurs. Cependant, mon opinion personnelle est que si vous pouvez être plus précis, être plus précis, parce que vous pouvez éviter les erreurs et la mauvaise communication.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top