首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ROWLEX中,有没有从序列化对象中删除"rdf:datatype“的方法?

在ROWLEX中,有没有从序列化对象中删除"rdf:datatype“的方法?
EN

Stack Overflow用户
提问于 2009-07-14 19:06:37
回答 1查看 105关注 0票数 0

在ROWLEX中,是否可以删除每个属性的" RDF :datatype“属性和/或使用公共RDF模式?

示例:

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-14 21:02:55

这个问题非常不清楚,所以您得到了一个通用的答案:)每个OWL属性必须是数据类型或对象类型。

  • 对象类型属性连接图形的两个节点,即不仅主体,而且三元组的对象也是URI (或空白节点)。
  • 数据类型属性:三元组的对象是一个具体的值,可以是字符串、整数、日期和时间等。这些具体的值被称为“文字”-s。字面量的基本类型是“字面量”,它们是具体的类型(字符串、整数、日期时间...)子类化。

在定义本体时,并不要求您将数据类型属性限制为特定的文字类型。你可以保持它的泛型,接受任何类型的文字。ROWLEX确实支持这一点。有一个通用的RdfLiteral类和一系列特定的文字类,如RdfLiteralString,RdfLiteralDateTime等。每个特定的文字类都包含显式和隐式的强制转换实现,以便将.NET类型转换为文字,然后再转换回来。因此,在ROWLEX中,您可以这样写:

代码语言:javascript
复制
    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,那么上面的所有行都不会出现错误。然而,我个人的观点是,如果你能更具体,就更具体,因为你可以防止错误和误解。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1127370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档