以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  jena支持中文的推理和查询吗?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=68966)


--  作者:mataoshen
--  发布时间:11/1/2008 7:42:00 PM

--  jena支持中文的推理和查询吗?
小弟是新手,对这个问题不是很明白!
今天好不容易实现了本体的持久化,但是在用jena查询的时候出现了问题。
本体中的类和实例都是中文,但是属性是用的英语,下面是我做的本体的一点片段:
<rdf:Description rdf:nodeID="A0">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
    <owl:hasValue rdf:resource="#核能"/>
    <owl:onProperty rdf:resource="#related_flow"/>
  </rdf:Description>
  <rdf:Description rdf:about="#水能">
    <rdf:type rdf:resource="#能量"/>
  </rdf:Description>
  <rdf:Description rdf:about="#丁达尔散射与瑞利效应">
    <rdf:type rdf:resource="#光学效应"/>
  </rdf:Description>
小弟用的java平台是eclipse
查询程序是:
  String queryString = "PREFIX SEK:<http://www.owl-ontologies.com/SEKOntology.owl#>"+"SELECT ?x ?y"+"WHERE {?x SEK:related_funtion 功能}";  com.hp.hpl.jena.query.Query query = QueryFactory.create(queryString);
  QueryExecution qe = QueryExecutionFactory.create(queryString,model);
  ResultSet results = qe.execSelect();
  ResultSetFormatter.out(System.out, results, query);
  qe.close();
提示错误信息是:Exception in thread "main" com.hp.hpl.jena.query.QueryParseException: Lexical error at line 1, column 105.  Encountered: <EOF> after : "\u529f\u80fd}"
 at com.hp.hpl.jena.query.lang.ParserSPARQL.parse(ParserSPARQL.java:51)
 at com.hp.hpl.jena.query.QueryFactory.parse(QueryFactory.java:115)
 at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:67)
 at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:38)
 at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:26)
 at com.designer.Chaxun.main(Chaxun.java:52)


若是把WHERE {?x SEK:related_funtion 功能}中的功能换成一个变量?y,那么查询是可以进行的,但是查询出的结果是乱码,如下所示:
| x                    | yWHERE |
=================================
| SEK:鐗╀綋               |        |
| SEK:鐢ㄩ潤鐢靛満娌夋穩寰矑         |        |
| SEK:鍥轰綋_姘斾綋            |        |
| SEK:璁惧皠娴佸垏鍓插姞宸ヤ笉閿堥挗       |        |
| SEK:寰矑               |        |
| SEK:鐢电伀鑺辩(鍓�           |        |
| SEK:婵�厜鍒囧壊宸ヤ欢           |        |
| SEK:绛夌瀛愪綋             |        |
| SEK:鐢ㄩ潤鐢电┖姘旀竻鐞�         |        |
| SEK:鐢电伀鑺卞叡杞洖杞姞宸�       |        |
|---------------------------------

小弟很不明白这是为什么?
恳求高手解惑!!
小弟先谢谢了!!


--  作者:bhwangszu
--  发布时间:11/3/2008 11:55:00 AM

--  
jena是基于java的,当然支持中文的,你可以搜索一下以前的贴子
"这里关于中文编码的问题有几点需要提醒大家注意:
1、关于对字符本身的编码的支持,一般大多数的工具都支持字符级的中文编码;
2、关于对文件级的中文字符编码支持,在很多情况下我们的文本文件中间虽然显示的是中文但是文件的存储编码格式却并不一定是支持中文的编码格式,所以一般问题就出在这里。有中文字符的文件并不一定采用UTF8的编码进行文件存储,这个时候就需要将该文件的编码格式改成UTF8。这方面很多文本编辑器都支持保存为UTF-8编码格式的文件。个人推荐PSPad可以直接查看当前文件的编码格式,并且能够进行编码转换。"
--  作者:mataoshen
--  发布时间:11/3/2008 2:59:00 PM

--  
谢谢楼上的回复!
可是我还是有点不明白:我的本体是存在MySQL数据库中的,编码形式是UTF—8,这样子搜索结果显示乱码是怎么回事?如按照你的说法,那就应该是我用的某个软件不支持UTF的编码形式。可是我用的开发平台是eclipse,eclipse的编码默认的是GBK,可是就是我改成UTF的也是乱码。。。。
依旧很迷茫啊,楼上的高手再指点一下吧~~~~
谢谢

--  作者:iamwym
--  发布时间:11/5/2008 11:37:00 AM

--  
中文问题差不多就是月经贴

首先,楼主java代码中这段中文就不是能够被编译器识别的,这个怎么搞定建议去看看关于java讨论区。

其次,mysql存ontology是怎么存的,用mysql存ontology本来就是个非主流的实现方法,看楼主程序就是做做实验,ontology就用rdf或者owl存就行了吧


--  作者:loveunk
--  发布时间:11/14/2008 6:45:00 PM

--  
可否说明一下,“用mysql存ontology本来就是个非主流的实现方法”?

以下是引用iamwym在2008-11-5 11:37:00的发言:
中文问题差不多就是月经贴

首先,楼主java代码中这段中文就不是能够被编译器识别的,这个怎么搞定建议去看看关于java讨论区。

其次,mysql存ontology是怎么存的,用mysql存ontology本来就是个非主流的实现方法,看楼主程序就是做做实验,ontology就用rdf或者owl存就行了吧



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
58.594ms