新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论Semantic Web(语义Web,语义网或语义万维网, Web 3.0)及相关理论,如:Ontology(本体,本体论), OWL(Web Ontology Langauge,Web本体语言), Description Logic(DL, 描述逻辑),RDFa,Ontology Engineering等。
    [返回] 计算机科学论坛W3CHINA.ORG讨论区 - Web新技术讨论『 Semantic Web(语义Web)/描述逻辑/本体 』 → 使用Jena RDF API 开发脚本语言管理资源描述框架模型[转帖] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6295 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 使用Jena RDF API 开发脚本语言管理资源描述框架模型[转帖] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     timothy 帅哥哟,离线,有人找我吗?巨蟹座1982-7-21
      
      
      威望:1
      等级:大四下学期(考上研究生啦!)
      文章:237
      积分:1701
      门派:XML.ORG.CN
      注册:2006/4/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给timothy发送一个短消息 把timothy加入好友 查看timothy的个人资料 搜索timothy在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 点击这里发送电邮给timothy 引用回复这个贴子 回复这个贴子 查看timothy的博客楼主
    发贴心情 使用Jena RDF API 开发脚本语言管理资源描述框架模型[转帖]


    http://www.blogjava.net/hopeshared/archive/2006/04/17/41444.html

    转:使用Jena RDF API 开发脚本语言管理资源描述框架模型

    译者:gracepig


    E-mail & MSN : zhangchi_nwpu@hotmail.com


    版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

    英文原文地址:
    [URL=http://www.javaworld.com/javaworld/jw-07-2005/jw-0704-jena.html]http://www.javaworld.com/javaworld/jw-07-2005/jw-0704-jena.html[/URL]

    中文地址
    [URL=http://www.matrix.org.cn/resource/article/43/43598_RDF_JAVA.html]http://www.matrix.org.cn/resource/article/43/43598_RDF_JAVA.html[/URL]

    关键词:Resource Description Framework models RDF XML Jena Protégé

    摘要
    资源描述框架(Resource Description Framework RDF)是一种以XML格式描述元数据的标准格式。Jena是一种用于将关系数据库或是文本文件中所表示的数据建立为元数据模型的框架方法。Protégé 用用来创建RDF元数据文档的编辑工具。 建立这种数据库和文件的元数据模型需要由用户自己定义脚本。本文介绍介绍了SemantiRDFUtils这种脚本,它拥有多个功能块可以用于维护Jena RDF 元数据模型.(2200词,2005-7-4) By Venkata N.VAsam

    与XML成为不同软件厂商之间数据交互的标准过程相似,资源描述框架(RDF)也沿着这条道路前进,希望能够成为描述与交互元数据的标准。XML 使用文件类型定义(DTD)和XML格式定义(XSD)来描述数据。RDF使用XML语法和RDF Schema(RFDS)来将元数据描述成为数据模型。

    本文介绍了一种使用Jena RDF API 编写的用户自定义工具,使用这种工具来管理存储在关系数据库或是文本文件的数据模型。这种工具是由HP实验室开发的,Jena框架是一个RDF,RDFS以及OWL(Web Ontology Language)的开源实现, 它包含着一个基于规则的推论引擎。它提供了建立和操纵RDF模型的Java API。本文介绍的SemanticRDFUtils.bat是一种使用Jena开发的脚本。使用这种脚本,我们可以维护存储在关系数据库和文本文件中的元数据模型。本文还介绍了怎样使用Protégé来将建RDF的语意描述文件(.rdfs)和数据文件(.rdf)。

    软件安装
    在使用SemanticRDFUtils.bat之前必须先安装以下的软件。关于以下工具的链接请参看文中所附的资源。
            J2SE 1.3 或更高的版本
            Jena 2.0
            Oracle 9.2.0.1.0
            Apache Ant 1.5.4 或更新的版本
            Protégé 2.1


    RDF和RDFS 文件简要介绍
    下面的XML格式的RDF和RDFS文件用于显示一个字母顺序的交叉引用模型。它们是使用Protégé 2.1 的图形界面工具创建的。当执行脚本和RDF查询工具的时候我们可以动态的引入RDF文件。RDFS文件则在我们使用Protégé 给RDF文件中加入更多数据时使用。


    列表1. RDFTest1.rdf


    <?xml version='1.0' encoding='UTF-8'?><!DOCTYPE rdf:RDF [   <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>   <!ENTITY rdfs 'http://www.w3.org/TR/1999/PR-rdf-schema-19990303#'>   <!ENTITY Maana 'http://www.vvasam.com/Maana#'>]><rdf:RDF xmlns:rdf="&rdf;"   xmlns:Maana="&Maana;"   xmlns:rdfs="&rdfs;"><Maana:ASCII rdf:about="&Maana;RDFTest_Instance_0"   Maana:Name="A"   Maana:value="65"   rdfs:label="A:65">   <Maana:system rdf:resource="&Maana;RDFTest_Instance_2"/></Maana:ASCII><Maana:System rdf:about="&Maana;RDFTest_Instance_1"   Maana:Name="lowercase"   rdfs:label="lowercase"/><Maana:ASCII rdf:about="&Maana;RDFTest_Instance_10000"   Maana:Name="b"   Maana:value="98"   rdfs:label="b:98">   <Maana:system rdf:resource="&Maana;RDFTest_Instance_1"/></Maana:ASCII><Maana:ASCII rdf:about="&Maana;RDFTest_Instance_10001"   Maana:Name="B"   Maana:value="66"   rdfs:label="B:66">   <Maana:system rdf:resource="&Maana;RDFTest_Instance_2"/></Maana:ASCII><Maana:AscXRef rdf:about="&Maana;RDFTest_Instance_10002"   rdfs:label="b:98:B:66">   <Maana:keyName rdf:resource="&Maana;RDFTest_Instance_10000"/>   <Maana:keyValue rdf:resource="&Maana;RDFTest_Instance_10001"/></Maana:AscXRef><Maana:AscXRef rdf:about="&Maana;RDFTest_Instance_10005"   rdfs:label="a:97:A:65">   <Maana:keyValue rdf:resource="&Maana;RDFTest_Instance_0"/>   <Maana:keyName rdf:resource="&Maana;RDFTest_Instance_8"/></Maana:AscXRef><Maana:System rdf:about="&Maana;RDFTest_Instance_2"   Maana:Name="uppercase"   rdfs:label="uppercase"/><Maana:ASCII rdf:about="&Maana;RDFTest_Instance_8"   Maana:Name="a"   Maana:value="97"   rdfs:label="a:97">   <Maana:system rdf:resource="&Maana;RDFTest_Instance_1"/></Maana:ASCII></rdf:RDF>


    列表 2. RDFTest1.rdfs


    <?xml version='1.0' encoding='UTF-8'?><!DOCTYPE rdf:RDF [   <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>   <!ENTITY system 'http://protege.stanford.edu/system#'>   <!ENTITY Maana 'http://www.vvasam.com/Maana#'>   <!ENTITY rdfs 'http://www.w3.org/TR/1999/PR-rdf-schema-19990303#'>]><rdf:RDF xmlns:rdf="&rdf;"   xmlns:system="&system;"   xmlns:rdfs="&rdfs;"   xmlns:Maana="&Maana;"><rdf:Property rdf:about="&system;maxCardinality"   rdfs:label="system:maxCardinality"/><rdf:Property rdf:about="&system;minCardinality"   rdfs:label="system:minCardinality"/><rdf:Property rdf:about="&system;range"   rdfs:label="system:range"/><rdfs:Class rdf:about="&Maana;ASCII"   rdfs:label="ASCII">   <rdfs:subClassOf rdf:resource="&rdfs;Resource"/></rdfs:Class><rdfs:Class rdf:about="&Maana;AscXRef"   rdfs:label="AscXRef">   <rdfs:subClassOf rdf:resource="&rdfs;Resource"/></rdfs:Class><rdf:Property rdf:about="&Maana;Name"   rdfs:label="Name">   <rdfs:domain rdf:resource="&Maana;ASCII"/>   <rdfs:domain rdf:resource="&Maana;System"/>   <rdfs:range rdf:resource="&rdfs;Literal"/></rdf:Property><rdf:Property rdf:about="&Maana;RDFTest_Slot_10003"   rdfs:label="RDFTest_Slot_10003">   <rdfs:range rdf:resource="&rdfs;Literal"/></rdf:Property><rdfs:Class rdf:about="&Maana;System"   rdfs:label="System">   <rdfs:subClassOf rdf:resource="&rdfs;Resource"/></rdfs:Class><rdf:Property rdf:about="&Maana;keyName"   rdfs:label="keyName">   <rdfs:range rdf:resource="&Maana;ASCII"/>   <rdfs:domain rdf:resource="&Maana;AscXRef"/></rdf:Property><rdf:Property rdf:about="&Maana;keyValue"   rdfs:label="keyValue">   <rdfs:range rdf:resource="&Maana;ASCII"/>   <rdfs:domain rdf:resource="&Maana;AscXRef"/></rdf:Property><rdf:Property rdf:about="&Maana;system"   rdfs:label="system">   <rdfs:domain rdf:resource="&Maana;ASCII"/>   <rdfs:range rdf:resource="&Maana;System"/></rdf:Property><rdf:Property rdf:about="&Maana;value"   rdfs:label="value">   <rdfs:domain rdf:resource="&Maana;ASCII"/>   <rdfs:range rdf:resource="&rdfs;Literal"/></rdf:Property></rdf:RDF>


    Jena和Protégé概述
    本节在宏观层面上介绍Jena和Protégé。用户可以在附加资源中得到关于这两个产品更多的信息。本文的目的是使您对Jena和Protégé有一个比较清晰的理解。

    Jena RDF 和RDQL

    RDF数据模型是一个声明(statement)的集合,每一个声明都包括三个部分:资源,属性和值。 资源(resource)可以是任何使用URI标示的内容,它可以包含其它属性。每一个属性有一个值。
    Jena可以将RDF模型保存在关系数据库或是文件当中。RDQL是用来查询RDF模型的语言。RDF提供一种节点可以为资源或是文本的有向图(有向图的概念请参看《离散数学》)。RDQL则提供一种方式,由用户定义一种图模式,使用这种模式对目标图集合进行匹配,获得所有符合定义模式的结果。图1 使用RDF图来表示列表1和列表2中文件


    按此在新窗口浏览图片


    图1:范例RDF文件的RDF 图表示


    上图中,椭圆代表资源,长方形代表描述。资源通过箭头连接到其它的资源或是描述值(一个对象或是一个值)上,这样一组关系形成一个三元组,成为一个声明(statement)。
    下面给我一个RDQL查询的例子。三元组(?x <http://www.vvasam.com/Maana#value> "97")是一个声明。X是一个绑定的变量用来代表一个资源;http://www.vvasam.com/Maana#value是一个叫做“value”的属性;97是这个属性的值。

    SELECT ?x WHERE (?x <http://www.vvasam.com/Maana#value> "97")

    Jena的toolkit提供了一个在命令行方式执行的Java类(jjena.rdfquery)来进行RDQL查询。下面的例子演示了如果使用这个命令进行查询并将查询结果存入test1.rdql当中。
    java jena.rdfquery --data RDFTest1.rdf --query test1.rdql
    x
    ================================================
    http://www.vvasam.com/Maana#RDFTest_Instance_8

    注意:通过文后的资源链接来获得关于RDF和RDQL更多的信息。


    RDF 中使用Protégé

    Protégé 是一个用来建立和编辑ontologies和知识库的GUI工具。Protégé可以在RDF格式下创建和保存数据。在使用Protégé建立RDF模型时,需要在新建一个工程的时候选取RDF Schema,如图2所示。


    按此在新窗口浏览图片


    图2. RDF Schema工程


    在Protégé's工程菜单选择新建工程时,选择格式(Select Format)对话框会弹出。点击OK按钮,图3的窗口会出现。


    按此在新窗口浏览图片


    图3. 缺省Protégé工程视图


    正如您在图3中所看到的那样,Protégé有一些标签。本文主要介绍其中的Classes,Instances和Algernon标签。
    图4显示了Protégé的保存对话框。在其中用户可以填入工程,类文件,实例文件,和命名空间的名字。如图4所示,类文件名中包括RDF Schema的信息,实例文件名中包括RDF的数据。命名空间中以唯一URI的方式标示出RDF模型。


    按此在新窗口浏览图片


    图4: Protégé's保存对话框


    图5和图6显示的是Protégé's类标签和实例标签,分别表示了列表1和列表2中的.rdf和.rdfs文件。这些文件使用Protégé's schema 格式创建。


    按此在新窗口浏览图片


    图5: Protégé的类标签

    按此在新窗口浏览图片


    图6: Protégé的实例标签


    Protégé中的Algeronon 查询
    Protégé's的Algernon query标签为进行Algernon查讯提供了一个图形界面,用户可以在这个UI当中进行查询,并查看结果。Algernon是一种基于三元组的查询语言,如图7所示Algernon将资源以遍历(traversal)路径的方式返回给用户。缺省的Algernon并不会如下图那样显示。要看到这个标签,用户必须从工程菜单的设置子菜单中选择。

    按此在新窗口浏览图片


    图7. Algernon 标签


    Jena和Protégé之间的命名(terminology)映射
    由于Jena和Protégé是两个不同的开源技术,所以他们的RDF 命名(terminology)存在差别。下表中列出了这些命名规则,用户可以更具这些命名规则来创建和处理RDF文件。

    表1. Jena 和 Protégé 命名比较


    按此在新窗口浏览图片


    Jena 的语义RDF工具

    一节讲解了一些用于维护Jena数据库和文件模型的有用的工具/脚本。这些脚本文件包含在SemanticRDFUtils-scripts-files.zip文件当中,您可以在资源当中找到。下面的列表中描述了这些脚本文件可以执行的任务。当用户以没有任务ID号作为参数的命令行方式执行SemanticRDFUtils批处理文件时,下面的内容将会出现在你的控制台当中


    C:\RDF\SemanticRDFUtilsUsage: SemanticRDFUtils taskid   Where taskid should be any one of the following:    1 --> To create and initialize the Jena system tables with a system model name as JenaRDFSystem    2 --> To create a database model    3 --> To remove a database model.    4 --> To list the contents of a given model.    5 --> To import RDF/XML file to a database.    6 --> To list existing database model names    7 --> To export a database model to a RDF/XML file    8 --> To delete all the contents of a database model    9 --> To create a union(RDF/XML file) of RDF/XML file models    10 --> To create an intersection(RDF/XML file) of RDF/XML file models    11 --> To create a difference(RDF/XML file) of RDF/XML file models    12 --> To get the size of the given model    13 --> Export the RDF query results as RDF/XML file.    14 --> Delete the resource(s) from a model based on RDF query

    以上各任务ID的意思分别为:
    1:建立并初始化一个Jena系统表,系统模型名为JenaRDFSystem
    2:建立数据库模型
    3:删除一个数据库模型
    4:列出所给出模型当中的内容
    5:将RDF/XML文件导入数据库
    6:列出存在数据库模型的名字
    7:将数据库模型导出到RDF/XML文件中
    8:删除一个数据库模型当中的所有内容
    9: 为不同RDF/XML文件模型建立一个合并的RDF/XML文件
    10:建立不同RDF/XML文件直接的交集文件。
    11: 建立不同RDF/XML文件直接的差集文件。
    12:得到给定模型的大小
    13:将RDF查询结果保存在RDF/XML文件当中
    14:从RDF查询结果模型当中删除资源

    SemanticRDFUtils脚本使用SemanticRDFUtils.properties文件储存配置信息。下表给出了配置信息中的所有属性:


    表 2. 属性设置

    按此在新窗口浏览图片


    任务
    第一个任务是在数据库中建立一个Jena 系统表并要求下列属性的正确值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url

    第二个任务是在数据库建立一个新的RDF模型并要求下列属性的正确值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url
            modelName (如果这个属性为空,那么脚本会提示用户从键盘输入值)

    第三个任务是从数据库中删除RDF模型并要求以下属性的正确值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url
            modelName (如果这个属性为空,那么脚本会提示用户从键盘输入值)

    第四个任务是列出RDF数据库中的内容并要求以下属性的正确值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url
            modelName (如果这个属性为空,那么脚本会提示用户从键盘输入值)

    第五个任务是将RDF导入到数据库模型当中,并要求以下属性的正确值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url
            modelName (如果这个属性为空,那么脚本会提示用户从键盘输入值)
            import_rdffile_abs_name
    属性import_rdffile_abs_name值将被置为.rdf文件的绝对路径(如下的例子所示)。如果这个值为空那么脚本会提示用户从键盘输入值。
    import_rdffile_abs_name=C:\temp\RDFTest1.rdf

    第六个任务是列出一个数据库模型中所有的模型,需要以下的属性的正确值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url

    第七个任务是将指定数据库模型的内容导出到一个RDF文件当中,需要以下的属性的正确值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url
            modelName (如果这个属性值为空,脚本将提示用户从键盘输入)
            import_rdffile_abs_name
    属性export_rdffile_abs_name值将被置为.rdf文件的绝对路径(如下的例子所示)。如果这个值为空那么脚本会提示用户从键盘输入值。
    export_rdffile_abs_name=C:/temp/export.rdf

    第八个任务是从数据模型中删除内容,需要以下正确的属性值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url
    The ninth task performs a union operation on two file models and requires appropriate values for the following properties:

    第九个任务是对两个文档模型进行并集操作,需要以下正确的属性值:
            isRDFInDB
            url
                   file_rdfmodel1_abs_name
            file_rdfmodel2_abs_name
            result_rdfmodel_abs_name
    下面是一个范例的属性值:

    file_rdfmodel1_abs_name=C:/temp/RDFTest1.rdffile_rdfmodel2_abs_name=C:/temp/RDFTest2.rdfresult_rdfmodel_abs_name=C:/temp/RDFTestUnion.rdf

    当使用SemanticRDFUtils执行任务9的时候,两个.rdf文件会被合并。如果要在一个合并的.rdf文件上建立一个Protégé工程,.rdfs文件必须被手工生成。

    第10个任务是执行两个文件模型的交集操作,需要以下属性的正确值:
            isRDFInDB
            url
            file_rdfmodel1_abs_name
            file_rdfmodel2_abs_name
            result_rdfmodel_abs_name
    下面是一个范例的属性值:

    file_rdfmodel1_abs_name=C:/temp/RDFTest1.rdffile_rdfmodel2_abs_name=C:/temp/RDFTest2.rdfresult_rdfmodel_abs_name=C:/temp/RDFTestInterSection.rdf


    第11个任务是执行两个文件模型的差集操作,需要以下属性的正确值:
            isRDFInDB
            url
            file_rdfmodel1_abs_name
            file_rdfmodel2_abs_name
            result_rdfmodel_abs_name
    下面是一个范例的属性值:

    file_rdfmodel1_abs_name=C:/temp/RDFTest1.rdffile_rdfmodel2_abs_name=C:/temp/RDFTest2.rdfresult_rdfmodel_abs_name=C:/temp/ RDFTestDifference.rdf


    第12个任务是列出指定数据库模型的大小,需要以下属性的正确值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url
            modelName (如果这个值为空那么脚本会提示用户从键盘输入值)

    第13个任务将对数据库模型的一个RDF查询结果导出到一个RDF文件中,需要以下属性的正确值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url
            modelName (如果这个属性值为空,脚本会要求用户从键盘输入值)
            rdf_query
            bind_var_name
            export_rdffile_abs_name
    下面是一个范例的属性值:

    rdf_query=SELECT ?x WHERE (?x    "65")bind_var_name=xexport_rdffile_abs_name=C:/temp/exportquery.rdf


    第14个任务是将一个将数据库模型的RDF查询结果删除,需要以下属性的正确值:
            rdf_sytem_model_name
            db_user
            db_password
            isRDFInDB
            url
            modelName (如果这个属性值为空,脚本会要求用户从键盘输入值)
            rdf_query
            bind_var_name
    下面是一个范例的属性值:

    rdf_query=SELECT ?x WHERE (?x    "65")bind_var_name=x


    结论
    这篇文章介绍了怎么样使用Jena和Protégé来创建RDF源数据模型。并描述了怎样使用SemanticRDFUtils在命令行脚本方式下维护RDF模型。在这篇文章的资源中的SemanticRDFUtils-source-files.zip文件包含了能够用来创建基于Web接口或是Protégé的插件的源文件,使用它们可以管理RDF模型。针对每一个RDF模型所加载的脚文会有所不同,所以需要区别对待,每一种情况都要独立处理。

    关于作者:
    Venkata N. Vasam 主要工作领域是J2EE/Web services/EAI 架构。目前他使用SeeBeyond集成工具包(eGate和ICAN)为A2A和B2B集成需求提供Web服务/J2EE/EAI 架构。他获得了J.N.T University,Hyderabad, India的计算机科学与工程学位。业余时间Vasam喜欢打网球看喜剧和运动电影。

    gracepig是([URL=http://www.matrix.org.cn/]Matrix.org.cn[/URL])的会员,可以通过zhangchi_nwpu@hotmail.com和他联系。


    资源
    文中的源码下载地址
    http://www.javaworld.com/javaworld/jw-07-2005/jena/jw-0704-jena.zip
    "What is RDF?" 作者 Tim Bray (XML.com, 一月 2001): http://www.xml.com/pub/a/2001/01/24/rdf.html
            RDF 规范
    http://www.w3.org/RDF/
            Jena下载地址
    http://jena.sourceforge.net/downloads.html
            RDF和Jena RDF API简介
    http://jena.sourceforge.net/tutorial/RDF_API/index.html
            Jena2: 一种语意Web框架
    http://www.hpl.hp.com/semweb/jena2.htm
            RDQL:
    http://jena.sourceforge.net/tutorial/RDQL/index.html
            RDF 入门
    http://www710.univ-lyon1.fr/~champin/rdf-tutorial/
            Protégé 入门
    http://protege.stanford.edu/doc/tutorial/get_started/index.html
            Protégé 下载
    http://protege.stanford.edu/download/download.html
            Algernon标签
    http://algernon-j.sourceforge.net/doc/algernon-protege.html
            ava 下载地址
    http://java.sun.com/
            Oracle下载地址
    http://www.oracle.com/technology/software/index.html
                    Matrix java门户
    [URL=http://www.matrix.org.cn/]http://www.matrix.org.cn[/URL]

    [此贴子已经被admin于2007-5-12 0:08:28编辑过]

       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    时间永远是向前的!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/11 14:47:00
     
     timothy 帅哥哟,离线,有人找我吗?巨蟹座1982-7-21
      
      
      威望:1
      等级:大四下学期(考上研究生啦!)
      文章:237
      积分:1701
      门派:XML.ORG.CN
      注册:2006/4/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给timothy发送一个短消息 把timothy加入好友 查看timothy的个人资料 搜索timothy在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 点击这里发送电邮给timothy 引用回复这个贴子 回复这个贴子 查看timothy的博客2
    发贴心情 
    admin帮忙把图搞一下,我按照你的步骤先转成了UBB,怎么还是不见图啊!!!???

    ----------------------------------------------
    时间永远是向前的!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/11 14:49:00
     
     sydna 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:8
      积分:84
      门派:XML.ORG.CN
      注册:2007/5/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给sydna发送一个短消息 把sydna加入好友 查看sydna的个人资料 搜索sydna在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看sydna的博客3
    发贴心情 
    晕,这么长

    ----------------------------------------------
    www.100wa.cn,www.game855.com

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/11 15:13:00
     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18407
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客4
    发贴心情 
    以下是引用timothy在2007-5-11 14:49:00的发言:
    admin帮忙把图搞一下,我按照你的步骤先转成了UBB,怎么还是不见图啊!!!???


    重新转了一下

    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/12 0:15:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/10/8 15:11:14

    本主题贴数4,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    1,738.281ms