在ROWLEX中,是否可以删除每个属性的“rdf:datatype”属性和/或使用通用的RDF Schema?
示例:
<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>
答案 0 :(得分:2)
这个问题很不清楚,所以你得到一个通用答案:)每个OWL属性必须是数据类型或对象类型。
定义本体时,不要求您将数据类型属性限制为特定的文字类型。你可以保持通用,接受任何类型的文字。 ROWLEX确实支持这一点。有一个通用的RdfLiteral类和一个特定的文字类的主机,如RdfLiteralString,RdfLiteralDateTime等。每个特定的文字类都包含显式和隐式转换实现,以将.NET类型转换为文字并返回。因此,在ROWLEX中,您可以写:
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
如果本体中的DateOfBirth数据类型属性不限于DateTime,则上述所有行都会编译而不会出错。但是,我个人的意见是,如果你可以更具体,更具体,因为你可以防止错误和误传。