<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>螃哈哈一只</title>
	<atom:link href="http://www.crabone.com/index.php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.crabone.com</link>
	<description>本体 语义网 自然语言处理</description>
	<pubDate>Tue, 16 Mar 2010 15:07:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ubuntu下用apache限速</title>
		<link>http://www.crabone.com/index.php/2010/03/15/508.html</link>
		<comments>http://www.crabone.com/index.php/2010/03/15/508.html#comments</comments>
		<pubDate>Mon, 15 Mar 2010 06:14:08 +0000</pubDate>
		<dc:creator>crab</dc:creator>
		
		<category><![CDATA[服务器]]></category>

		<guid isPermaLink="false">http://www.crabone.com/?p=508</guid>
		<description><![CDATA[需要测试低网速下的有些异常，因此我需要对服务器进行限速。有个现成的mod_bw可以使用，但是它的说明不是针对debian的，因此有些地方需要改下。
首先，需要apxs2模块，sudo apt-get install apache2-threaded-dev
接着下载：
wget http://ivn.cl/files/source/mod_bw-0.8.tgz
tar xzvf mod_bw-0.8.tgz
编译并安装：
sudo apxs2 -a -c -i mod_bw.c
大概会出点错误，主要是因为debian里面的apache2配置不太一样的缘故，也没关系，可以继续
创建bw.load：
sudo vi /etc/apache2/mods-available/bw.load
并写入:
LoadModule bw_module /usr/lib/apache2/modules/mod_bw.so
创建bw.conf:
sudo vi /etc/apache2/mods-available/bw.conf
并写入：
&#60;IfModule mod_bw.c&#62;
BandWidthModule On
ForceBandWidthModule On
BandWidth all 51200
MinBandWidth all -1
&#60;/IfModule&#62;
最后一步：激活
sudo a2enmod bw（会将bw.load和bw.conf链接到mods-enable文件夹下）
重新启动下 sudo /etc/init.d/apache2 restart
运行期间，需要修改速度，直接修改/etc/apache2/mods-available/bw.conf
然后
sudo /etc/init.d/apache2 reload
即可
enjoy!
]]></description>
			<content:encoded><![CDATA[<p>需要测试低网速下的有些异常，因此我需要对服务器进行限速。有个现成的mod_bw可以使用，但是它的说明不是针对debian的，因此有些地方需要改下。</p>
<p>首先，需要apxs2模块，sudo apt-get install apache2-threaded-dev</p>
<p>接着下载：<br />
wget http://ivn.cl/files/source/mod_bw-0.8.tgz<br />
tar xzvf mod_bw-0.8.tgz</p>
<p>编译并安装：<br />
sudo apxs2 -a -c -i mod_bw.c<br />
大概会出点错误，主要是因为debian里面的apache2配置不太一样的缘故，也没关系，可以继续</p>
<p>创建bw.load：<br />
sudo vi /etc/apache2/mods-available/bw.load<br />
并写入:<br />
LoadModule bw_module /usr/lib/apache2/modules/mod_bw.so</p>
<p>创建bw.conf:<br />
sudo vi /etc/apache2/mods-available/bw.conf<br />
并写入：<br />
&lt;IfModule mod_bw.c&gt;<br />
BandWidthModule On<br />
ForceBandWidthModule On<br />
BandWidth all 51200<br />
MinBandWidth all -1<br />
&lt;/IfModule&gt;</p>
<p>最后一步：激活<br />
sudo a2enmod bw（会将bw.load和bw.conf链接到mods-enable文件夹下）</p>
<p>重新启动下 sudo /etc/init.d/apache2 restart</p>
<p>运行期间，需要修改速度，直接修改/etc/apache2/mods-available/bw.conf<br />
然后<br />
sudo /etc/init.d/apache2 reload<br />
即可</p>
<p>enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crabone.com/index.php/2010/03/15/508.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>怀揣激动的心情！启程！</title>
		<link>http://www.crabone.com/index.php/2010/03/09/493.html</link>
		<comments>http://www.crabone.com/index.php/2010/03/09/493.html#comments</comments>
		<pubDate>Tue, 09 Mar 2010 08:03:29 +0000</pubDate>
		<dc:creator>crab</dc:creator>
		
		<category><![CDATA[大杂烩]]></category>

		<guid isPermaLink="false">http://www.crabone.com/?p=493</guid>
		<description><![CDATA[终于离开值得我一辈子尊敬的公司了！一切自由了！可以自己为自己干活！可以去实现自己的梦想！感谢我的父母！感谢我的女友！感谢我身边的兄弟！感谢我周围的朋友！感谢我之前的同事！2010.3月！人生路程急转弯！记住！
]]></description>
			<content:encoded><![CDATA[<p>终于离开值得我一辈子尊敬的公司了！一切自由了！可以自己为自己干活！可以去实现自己的梦想！感谢我的父母！感谢我的女友！感谢我身边的兄弟！感谢我周围的朋友！感谢我之前的同事！2010.3月！人生路程急转弯！记住！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crabone.com/index.php/2010/03/09/493.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>虎年好兆头</title>
		<link>http://www.crabone.com/index.php/2010/02/14/491.html</link>
		<comments>http://www.crabone.com/index.php/2010/02/14/491.html#comments</comments>
		<pubDate>Sun, 14 Feb 2010 03:27:50 +0000</pubDate>
		<dc:creator>crab</dc:creator>
		
		<category><![CDATA[大杂烩]]></category>

		<guid isPermaLink="false">http://www.crabone.com/?p=491</guid>
		<description><![CDATA[当吃完年夜饭出来的一霎那，我迎接了第一粒雪花，短短1分钟内，顿时鹅毛大雪。一切都来的如此奇妙，带有悬念，赋予色彩。2010云体科技到底能否诞生，是否可以生存，一切都是那么迷茫，但是个人的信心又是如此充实，这半年内与日俱增，丝毫没有退烧。2002年到现在刚好8年，这8年，我的成长是曲折的、充实的，充满各种冒险色彩、奋斗精神，之前的失败和磨难将成为璀璨明天的积累。2010是我的人生转折点，厚积薄发一触即发，非常感谢自己这8年来仍旧保持一颗激情的心，乐观面对所有的困难，一直矢志不渝在走自己的路。新的人生正式启程，华为杭研，谢谢再见，云体科技，诞生腾飞。
]]></description>
			<content:encoded><![CDATA[<p style="text-indent:28px;">当吃完年夜饭出来的一霎那，我迎接了第一粒雪花，短短1分钟内，顿时鹅毛大雪。一切都来的如此奇妙，带有悬念，赋予色彩。2010云体科技到底能否诞生，是否可以生存，一切都是那么迷茫，但是个人的信心又是如此充实，这半年内与日俱增，丝毫没有退烧。2002年到现在刚好8年，这8年，我的成长是曲折的、充实的，充满各种冒险色彩、奋斗精神，之前的失败和磨难将成为璀璨明天的积累。2010是我的人生转折点，厚积薄发一触即发，非常感谢自己这8年来仍旧保持一颗激情的心，乐观面对所有的困难，一直矢志不渝在走自己的路。新的人生正式启程，华为杭研，谢谢再见，云体科技，诞生腾飞。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crabone.com/index.php/2010/02/14/491.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>ESWC 2010 Workshop on Ontology Repositories and Editors for the Semantic Web</title>
		<link>http://www.crabone.com/index.php/2010/01/21/486.html</link>
		<comments>http://www.crabone.com/index.php/2010/01/21/486.html#comments</comments>
		<pubDate>Thu, 21 Jan 2010 14:22:10 +0000</pubDate>
		<dc:creator>crab</dc:creator>
		
		<category><![CDATA[学术会议]]></category>

		<guid isPermaLink="false">http://www.crabone.com/?p=486</guid>
		<description><![CDATA[ORES 2010 - Call for papers and system descriptions -
http://www.ontologydynamics.org/od/index.php/ores2010/
Heraklion, Greece - Deadline: March 1, 2010
The growing number of online ontologies makes the availability of ontology repositories, in which ontology practitioners can easily find, select and retrieve reusable components, a crucial issue. The recent emergence of several ontology repository systems is a further sign of [...]]]></description>
			<content:encoded><![CDATA[<p>ORES 2010 - Call for papers and system descriptions -<br />
<a href="http://www.ontologydynamics.org/od/index.php/ores2010/" target="_blank">http://www.ontologydynamics.org/od/index.php/ores2010/</a><br />
Heraklion, Greece - Deadline: March 1, 2010</p>
<p>The growing number of online ontologies makes the availability of ontology repositories, in which ontology practitioners can easily find, select and retrieve reusable components, a crucial issue. The recent emergence of several ontology repository systems is a further sign of this. However, in order for these systems to be successful, it is necessary to provide a forum for researchers and developers to discuss features and exchange ideas on the realization of ontology repositories in general and to consider explicitly their role in the ontology lifecycle. In addition, it is now critical to achieve interoperability between ontology repositories, through common interfaces, standard metadata formats, etc. ORES10 intends to provide such a forum.</p>
<p>Illustrating the importance of the problem, significant initiatives are now emerging. One example is the Open Ontology Repositories (OOR) working group set up by the Ontolog community. Within this effort regular virtual meetings are organized and actively attended by ontology experts from around the world; The Ontolog OOR 2008 meeting was held at the National Institute for Standards in Technology (NIST), generating a joint communiqué outlining requirements and paving the way for collaborations. Another example is the Ontology Metadata Vocabulary (OMV) Consortium, addressing metadata for describing ontologies. Despite these initial efforts, ontology repositories are hardly interoperable amongst themselves. Although sharing similar aims (providing easy access to Semantic Web resources), they diverge in the methods and techniques employed for gathering these documents and making them available; each interprets and uses metadata in a different manner. Furthermore, many features are still poorly supported, such as modularization and versioning, as well as the relationship between ontology repositories and ontology engineering environments (editors) to support the entire ontology ifecycle.</p>
<p>Submitting papers and system descriptions</p>
<p>We want to bring together researchers and practitioners active in the design, development and application of ontology repositories, repository-aware editors, modularization techniques, versioning systems and issues around federated ontology systems. We therefore encourage the submission of research papers, position papers and system descriptions discussing some of the following questions:</p>
<p>* How can ontology repositories &#8220;talk&#8221; to each other?<br />
* How can the abundant and complex knowledge contained in an ontology repository be made comprehensible for users?<br />
* What is the role of ontology repositories in the ontology lifecycle?<br />
* How can branching and versioning be managed in and across ontology repositories?<br />
* How can ontology repositories interoperate with ontology editors, and other applications and legacy systems?<br />
* How can connections across ontologies be managed within and across ontology repositories?<br />
* How can modularity be better supported in ontology repositories and editors?<br />
* How can ontology repositories and editors use distributed reasoning?<br />
* How can ontology repositories support corporate, national and domain specific semantic infrastructures?<br />
* How do ontology repositories support novel semantic applications?<br />
* What measurements for describing and comparing ontologies can we use? How could ontology repositories use these?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crabone.com/index.php/2010/01/21/486.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>用jena api来理解RDFS——subClassOf subPropertyOf range domain</title>
		<link>http://www.crabone.com/index.php/2010/01/09/478.html</link>
		<comments>http://www.crabone.com/index.php/2010/01/09/478.html#comments</comments>
		<pubDate>Sat, 09 Jan 2010 08:33:50 +0000</pubDate>
		<dc:creator>crab</dc:creator>
		
		<category><![CDATA[JENA]]></category>

		<category><![CDATA[语义网基础]]></category>

		<guid isPermaLink="false">http://www.crabone.com/?p=478</guid>
		<description><![CDATA[这四个词汇与推理密切相关，查看JENA的RDFSRuleReasonerFactory可以看到里面有这么一段代码：


Resource base = capabilities.createResource(getURI());
base.addProperty(ReasonerVocabulary.nameP, &#34;RDFS FB-TGC Rule Reasoner&#34;)
 .addProperty(ReasonerVocabulary.descriptionP, &#34;Complete RDFS implementation supporting metalevel statements.\nCan separate tbox and abox data if desired to reuse tbox caching or mix them.&#34;)
.addProperty(ReasonerVocabulary.supportsP, RDFS.subClassOf)
.addProperty(ReasonerVocabulary.supportsP, RDFS.subPropertyOf)
.addProperty(ReasonerVocabulary.supportsP, RDFS.member)
.addProperty(ReasonerVocabulary.supportsP, RDFS.range)
.addProperty(ReasonerVocabulary.supportsP, RDFS.domain)
.addProperty(ReasonerVocabulary.versionP, &#34;0.1&#34;);


说明jena对其提供了支持。
subPropertyOf
如果张三养了一只狗，那么一定可以推理出张三养了一只宠物，因此养狗和有宠物是subPropertyOf关系。


String ns = &#34;htpp://www.crabone.com#&#34;;
&#160;
Model&#160;model = ModelFactory.createDefaultModel();
&#160;
// 养狗subPropertyOf有宠物
Property&#160;hasPet = model.createProperty(ns, &#34;有宠物&#34;);
Property&#160;hasDog = model.createProperty(ns, &#34;养狗&#34;);
model.add(hasDog, RDFS.subPropertyOf, hasPet);
&#160;
// 张三养了一只狗叫汪汪
model.createResource(ns+&#34;张三&#34;).addProperty(hasDog, &#34;汪汪&#34;);
&#160;
// 得到JENA内置的RDFS推理机
Reasoner&#160;reasoner = ReasonerRegistry.getRDFSReasoner();
&#160;
// 用原来的图和推理机构造出新的推理图
InfModel&#160;infModel [...]]]></description>
			<content:encoded><![CDATA[<p>这四个词汇与推理密切相关，查看JENA的RDFSRuleReasonerFactory可以看到里面有这么一段代码：</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)">
<li class="hl-firstline"><span style="color: Blue;">Resource</span><span style="color: Gray;"> </span><span style="color: Blue;">base</span><span style="color: Gray;"> = </span><span style="color: Blue;">capabilities</span><span style="color: Gray;">.</span><span style="color: Blue;">createResource</span><span style="color: Olive;">(</span><span style="color: Blue;">getURI</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">base</span><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ReasonerVocabulary</span><span style="color: Gray;">.</span><span style="color: Blue;">nameP</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">RDFS FB-TGC Rule Reasoner</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;"> .</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ReasonerVocabulary</span><span style="color: Gray;">.</span><span style="color: Blue;">descriptionP</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Complete RDFS implementation supporting metalevel statements.</span><span style="color: Navy;">\n</span><span style="color: Red;">Can separate tbox and abox data if desired to reuse tbox caching or mix them.</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ReasonerVocabulary</span><span style="color: Gray;">.</span><span style="color: Blue;">supportsP</span><span style="color: Gray;">, </span><span style="color: Blue;">RDFS</span><span style="color: Gray;">.</span><span style="color: Blue;">subClassOf</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ReasonerVocabulary</span><span style="color: Gray;">.</span><span style="color: Blue;">supportsP</span><span style="color: Gray;">, </span><span style="color: Blue;">RDFS</span><span style="color: Gray;">.</span><span style="color: Blue;">subPropertyOf</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ReasonerVocabulary</span><span style="color: Gray;">.</span><span style="color: Blue;">supportsP</span><span style="color: Gray;">, </span><span style="color: Blue;">RDFS</span><span style="color: Gray;">.</span><span style="color: Blue;">member</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ReasonerVocabulary</span><span style="color: Gray;">.</span><span style="color: Blue;">supportsP</span><span style="color: Gray;">, </span><span style="color: Blue;">RDFS</span><span style="color: Gray;">.</span><span style="color: Blue;">range</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ReasonerVocabulary</span><span style="color: Gray;">.</span><span style="color: Blue;">supportsP</span><span style="color: Gray;">, </span><span style="color: Blue;">RDFS</span><span style="color: Gray;">.</span><span style="color: Blue;">domain</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ReasonerVocabulary</span><span style="color: Gray;">.</span><span style="color: Blue;">versionP</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0.1</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol>
</div>
<p>说明jena对其提供了支持。</p>
<p><strong>subPropertyOf</strong><br />
如果张三养了一只狗，那么一定可以推理出张三养了一只宠物，因此养狗和有宠物是subPropertyOf关系。</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)">
<li class="hl-firstline"><span style="color: Blue;">String</span><span style="color: Gray;"> </span><span style="color: Blue;">ns</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">htpp://www.crabone.com#</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">Model</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">model</span><span style="color: Gray;"> = </span><span style="color: Blue;">ModelFactory</span><span style="color: Gray;">.</span><span style="color: Blue;">createDefaultModel</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 养狗subPropertyOf有宠物</span></li>
<li><span style="color: Blue;">Property</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">hasPet</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">有宠物</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">Property</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">hasDog</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">养狗</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Blue;">hasDog</span><span style="color: Gray;">, </span><span style="color: Blue;">RDFS</span><span style="color: Gray;">.</span><span style="color: Blue;">subPropertyOf</span><span style="color: Gray;">, </span><span style="color: Blue;">hasPet</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 张三养了一只狗叫汪汪</span></li>
<li><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createResource</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">张三</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">hasDog</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">汪汪</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 得到JENA内置的RDFS推理机</span></li>
<li><span style="color: Blue;">Reasoner</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">reasoner</span><span style="color: Gray;"> = </span><span style="color: Blue;">ReasonerRegistry</span><span style="color: Gray;">.</span><span style="color: Blue;">getRDFSReasoner</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 用原来的图和推理机构造出新的推理图</span></li>
<li><span style="color: Blue;">InfModel</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">infModel</span><span style="color: Gray;"> = </span><span style="color: Blue;">ModelFactory</span><span style="color: Gray;">.</span><span style="color: Blue;">createInfModel</span><span style="color: Olive;">(</span><span style="color: Blue;">reasoner</span><span style="color: Gray;">, </span><span style="color: Blue;">model</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Blue;">infModel</span><span style="color: Gray;">.</span><span style="color: Blue;">getResource</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">张三</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">getProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">hasPet</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
</ol>
</div>
<p>输出：[htpp://www.crabone.com#张三, htpp://www.crabone.com#有宠物, "汪汪"]<br />
从代码来看，jena的推理是基于图的相关算法来实现的。subClassOf和其道理一样，这里就不啰嗦了。</p>
<p><strong>domain、range</strong></p>
<p style="text-indent:28px;">个人感觉这是推理性非常强的一种机制！在<a href="http://www.crabone.com/index.php/protege-introduction">protege入门</a>里面就有相关的解释。domain和range是用来描述一个property的，比如：拿<strong>养狗</strong>这个property来说，一般，只有人才会养狗，水瓶是不会养狗的，电插座也是不会养狗的，所以<strong>养狗</strong>这个property的domain是<strong>人</strong>（一种class），同样<strong>养狗</strong>这个property的range是<strong>狗</strong>（一种class）。当推理机知道这些道理后，告诉它，张三养了一只汪汪，那么，这个推理机能推理出，张三是人，汪汪是狗。</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)">
<li class="hl-firstline"><span style="color: Blue;">String</span><span style="color: Gray;"> </span><span style="color: Blue;">ns</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">htpp://www.crabone.com#</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">Model</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">model</span><span style="color: Gray;"> = </span><span style="color: Blue;">ModelFactory</span><span style="color: Gray;">.</span><span style="color: Blue;">createDefaultModel</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 构造人这个类</span></li>
<li><span style="color: Blue;">Resource</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">personClass</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createResource</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">人</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Blue;">personClass</span><span style="color: Gray;">, </span><span style="color: Blue;">RDF</span><span style="color: Gray;">.</span><span style="color: Blue;">type</span><span style="color: Gray;">, </span><span style="color: Blue;">RDFS</span><span style="color: Gray;">.</span><span style="color: Blue;">Class</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 构造狗这个类</span></li>
<li><span style="color: Blue;">Resource</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">dogClass</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createResource</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">狗</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Blue;">dogClass</span><span style="color: Gray;">, </span><span style="color: Blue;">RDF</span><span style="color: Gray;">.</span><span style="color: Blue;">type</span><span style="color: Gray;">, </span><span style="color: Blue;">RDFS</span><span style="color: Gray;">.</span><span style="color: Blue;">Class</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 构造养狗这个属性，并设置domain是人，range是狗</span></li>
<li><span style="color: Blue;">Property</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">hasDog</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">养狗</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Blue;">hasDog</span><span style="color: Gray;">, </span><span style="color: Blue;">RDFS</span><span style="color: Gray;">.</span><span style="color: Blue;">domain</span><span style="color: Gray;">, </span><span style="color: Blue;">personClass</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Blue;">hasDog</span><span style="color: Gray;">, </span><span style="color: Blue;">RDFS</span><span style="color: Gray;">.</span><span style="color: Blue;">range</span><span style="color: Gray;">, </span><span style="color: Blue;">dogClass</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 添加张三养了一条狗汪汪这个事实</span></li>
<li><span style="color: Blue;">Resource</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">zhangsan</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createResource</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">张三</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">Resource</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">wangwang</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createResource</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">汪汪</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">zhangsan</span><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">hasDog</span><span style="color: Gray;">, </span><span style="color: Blue;">wangwang</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 构造RDFS推理机</span></li>
<li><span style="color: Blue;">Reasoner</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">reasoner</span><span style="color: Gray;"> = </span><span style="color: Blue;">ReasonerRegistry</span><span style="color: Gray;">.</span><span style="color: Blue;">getRDFSReasoner</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 生成推理图</span></li>
<li><span style="color: Blue;">InfModel</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">infModel</span><span style="color: Gray;"> = </span><span style="color: Blue;">ModelFactory</span><span style="color: Gray;">.</span><span style="color: Blue;">createInfModel</span><span style="color: Olive;">(</span><span style="color: Blue;">reasoner</span><span style="color: Gray;">, </span><span style="color: Blue;">model</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Blue;">infModel</span><span style="color: Gray;">.</span><span style="color: Blue;">getResource</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">张三</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">getProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">RDF</span><span style="color: Gray;">.</span><span style="color: Blue;">type</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Blue;">infModel</span><span style="color: Gray;">.</span><span style="color: Blue;">getResource</span><span style="color: Olive;">(</span><span style="color: Blue;">ns</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">汪汪</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">getProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">RDF</span><span style="color: Gray;">.</span><span style="color: Blue;">type</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
</ol>
</div>
<p>输出：<br />
[htpp://www.crabone.com#张三, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, htpp://www.crabone.com#人]<br />
[htpp://www.crabone.com#汪汪, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, htpp://www.crabone.com#狗]<br />
总结：domain和rang其实也是一种property；domain这个property用来连接property和class，range这个property用来连接property和class，这是w3的标准，其实在JENA里面比较宽松，domain这个property用来连接property和<strong>节点</strong>即可，range也是如此。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crabone.com/index.php/2010/01/09/478.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>记录一些杂事</title>
		<link>http://www.crabone.com/index.php/2010/01/08/465.html</link>
		<comments>http://www.crabone.com/index.php/2010/01/08/465.html#comments</comments>
		<pubDate>Fri, 08 Jan 2010 14:39:34 +0000</pubDate>
		<dc:creator>crab</dc:creator>
		
		<category><![CDATA[大杂烩]]></category>

		<guid isPermaLink="false">http://www.crabone.com/?p=465</guid>
		<description><![CDATA[惠普实验室停止支持JENA开发
HPLabs management have decided not to continue with an active programme of Semantic Web research at HPL. Members of the Semantic Web research group are moving to other roles, both inside and outside HP: please consult personal blogs and similar sources for revised contact details.
The Jena platform and associated development projects remain open source under [...]]]></description>
			<content:encoded><![CDATA[<p><strong>惠普实验室停止支持JENA开发</strong><br />
HPLabs management have decided not to continue with an active programme of Semantic Web research at HPL. Members of the Semantic Web research group are moving to other roles, both inside and outside HP: please consult personal blogs and similar sources for revised contact details.</p>
<p>The Jena platform and associated development projects remain open source under the liberal BSD-style license. With HP&#8217;s support, we are in the process of transferring ownership of the copyright of the code from HP to a commercially neutral body. There is no change for individuals or companies using Jena, and the move will make it easier to continue and expand the core developer community. Indeed it will enable us to accept contributions more easily. Many current members of the Jena team will remain involved in further enhancements to the Jena codebase, and supporting the user community via the jena-dev email list. The Jena source code remains at SourceForge, and the new web address for Jena is www.openjena.org. </p>
<p>We would like to thank all of the various research groups, customers, Jena users and individual contributors we have worked with over the years as we have built the Jena platform to its current state. We look forwards to future enhancements to Jena&#8217;s capability, and to helping to create other exciting developments in Semantic Web technologies and products. </p>
<p>The HP Semantic Web Team – October 2009</p>
<p><strong>同样，2009年8月，http://www.co-ode.org/blog/ 上面宣布CO-ODE工程宣告结束：</strong></p>
<p>After several extensions and ripping through many different project members the CO-ODE project has finally reached the end (sob).</p>
<p>We think it has been very successful:</p>
<p>1、Protege 4 is now in very good shape and is fully released<br />
2、Loads of plugins are available and we’ve got some brilliant contributions from the community<br />
3、Tutorials shall continue to come out of Manchester on a regular basis<br />
4、Protege 4.1 is in its early stages, but already available as a preview to be taken on by Stanford<br />
5、Lots of people can now say they are ontology engineers  </p>
<p>Thankyou to all the people involved. And thankyou to JISC for funding the project.</p>
<p>Now, I’m off for a break from ontologies for a few months(!)</p>
<p>Nick (and the rest of the former CO-ODE team)</p>
<p>斯坦福的WEB版本体编辑器WebProtege越做越强，未来将会向面向服务架构靠拢</p>
<p>NTK 2.3 Pre-Release全面支持OWL 2，基于OWL-API开发</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crabone.com/index.php/2010/01/08/465.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>OWL 2 词汇全貌</title>
		<link>http://www.crabone.com/index.php/2010/01/06/443.html</link>
		<comments>http://www.crabone.com/index.php/2010/01/06/443.html#comments</comments>
		<pubDate>Wed, 06 Jan 2010 15:56:25 +0000</pubDate>
		<dc:creator>crab</dc:creator>
		
		<category><![CDATA[语义网基础]]></category>

		<category><![CDATA[OWL2]]></category>

		<guid isPermaLink="false">http://www.crabone.com/?p=443</guid>
		<description><![CDATA[首先介绍4个OWL 2词汇需要用到的预定义命名空间

rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs: http://www.w3.org/2000/01/rdf-schema#
owl: http://www.w3.org/2002/07/owl#
xsd: http://www.w3.org/2001/XMLSchema#

定义类，有以下几种方式：
1.直接取名字，这是用的最多的方法
用RDF/XML-ABBREV语法表达如下：
&#60;owl:Class rdf:about=&#8221;#crab&#8221;/&#62;
2.集合类，通过几种类组合创造出一个新的类
比如：有一个类，它是“女人”和“有孩子的”这2个类取交集，所得到的类（这个类可以等价于“母亲”）
用RDF/XML-ABBREV语法表达如下：
&#60;owl:Class rdf:about=&#8221;#母亲&#8221;&#62;
 &#60;owl:equivalentClass&#62;
  &#60;owl:Class&#62;
  &#60;owl:intersectionOf rdf:parseType=&#8221;Collection&#8221;&#62;
   &#60;rdf:Description rdf:about=&#8221;#女人&#8221; /&#62;
   &#60;owl:Restriction&#62;
   &#60;owl:onProperty rdf:resource=&#8221;#有孩子&#8221; /&#62;
   &#60;owl:someValuesFrom rdf:resource=&#8221;#人&#8221; /&#62;
   &#60;/owl:Restriction&#62;
  &#60;/owl:intersectionOf&#62;
  &#60;/owl:Class&#62;
 &#60;/owl:equivalentClass&#62;
&#60;/owl:Class&#62;
上面介绍的是owl:intersectionOf，它代表交集，所有的集合表达方式如下：
_:x owl:intersectionOf ( C1 … Cn ). 交集 protege中使用“and”
_:x owl:unionOf ( C1 … Cn ). 并集 protege中使用“or”
_:x owl:complementOf C. 补集 并集 protege中使用“not”
3.枚举类，通过一系列的个体（individual）所描绘的一种类
比如：“文一美食店”这个类，是由很多在文一路的美食店所组成的一个类
  &#60;owl:Class rdf:about=&#8221;#饭店&#8221;/&#62;
  &#60;owl:Class rdf:about=&#8221;#文一美食店&#8221;&#62;
    &#60;owl:oneOf rdf:parseType=&#8221;Collection&#8221;&#62;
      &#60;j.0:饭店 rdf:about=&#8221;#半亩地&#8221;/&#62;
      &#60;j.0:饭店 rdf:about=&#8221;#一席地&#8221;/&#62;
      &#60;j.0:饭店 rdf:about=&#8221;#老山东牛杂&#8221;/&#62;
    &#60;/owl:oneOf&#62;
  &#60;/owl:Class&#62;
需要注意的是，该类并非由其他类所构成，而是由一系列的个体（individual）构成，语法如下：
_:x owl:oneOf ( a1 … an [...]]]></description>
			<content:encoded><![CDATA[<p><strong>首先介绍4个OWL 2词汇需要用到的预定义命名空间</strong></p>
<ul>
<li>rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#</li>
<li>rdfs: http://www.w3.org/2000/01/rdf-schema#</li>
<li>owl: http://www.w3.org/2002/07/owl#</li>
<li>xsd: http://www.w3.org/2001/XMLSchema#</li>
</ul>
<p><strong>定义类，有以下几种方式：</strong><br />
<span style="color: #ff6600;">1.直接取名字</span>，这是用的最多的方法<br />
用RDF/XML-ABBREV语法表达如下：<br />
&lt;owl:Class rdf:about=&#8221;#crab&#8221;/&gt;</p>
<p><span style="color: #ff6600;">2.集合类</span>，通过几种类组合创造出一个新的类<br />
比如：有一个类，它是“女人”和“有孩子的”这2个类取交集，所得到的类（这个类可以等价于“母亲”）<br />
用RDF/XML-ABBREV语法表达如下：<br />
&lt;owl:Class rdf:about=&#8221;#母亲&#8221;&gt;<br />
 &lt;owl:equivalentClass&gt;<br />
  &lt;owl:Class&gt;<br />
  &lt;owl:<strong>intersectionOf</strong> rdf:parseType=&#8221;Collection&#8221;&gt;<br />
   &lt;rdf:Description rdf:about=&#8221;#女人&#8221; /&gt;<br />
   &lt;owl:Restriction&gt;<br />
   &lt;owl:onProperty rdf:resource=&#8221;#有孩子&#8221; /&gt;<br />
   &lt;owl:someValuesFrom rdf:resource=&#8221;#人&#8221; /&gt;<br />
   &lt;/owl:Restriction&gt;<br />
  &lt;/owl:intersectionOf&gt;<br />
  &lt;/owl:Class&gt;<br />
 &lt;/owl:equivalentClass&gt;<br />
&lt;/owl:Class&gt;</p>
<p>上面介绍的是<strong>owl:intersectionOf</strong>，它代表交集，所有的集合表达方式如下：<br />
_:x owl:intersectionOf ( C1 … Cn ). 交集 protege中使用“and”<br />
_:x owl:unionOf ( C1 … Cn ). 并集 protege中使用“or”<br />
_:x owl:complementOf C. 补集 并集 protege中使用“not”</p>
<p><span style="color: #ff6600;">3.枚举类</span>，通过一系列的个体（individual）所描绘的一种类<br />
比如：“文一美食店”这个类，是由很多在文一路的美食店所组成的一个类<br />
  &lt;owl:Class rdf:about=&#8221;#饭店&#8221;/&gt;<br />
  &lt;owl:Class rdf:about=&#8221;#文一美食店&#8221;&gt;<br />
    &lt;owl:oneOf rdf:parseType=&#8221;Collection&#8221;&gt;<br />
      &lt;j.0:饭店 rdf:about=&#8221;#半亩地&#8221;/&gt;<br />
      &lt;j.0:饭店 rdf:about=&#8221;#一席地&#8221;/&gt;<br />
      &lt;j.0:饭店 rdf:about=&#8221;#老山东牛杂&#8221;/&gt;<br />
    &lt;/owl:oneOf&gt;<br />
  &lt;/owl:Class&gt;<br />
需要注意的是，该类并非由其他类所构成，而是由一系列的个体（individual）构成，语法如下：<br />
_:x owl:oneOf ( a1 … an ). protege中使用 {}</p>
<p><span style="color: #ff6600;">4.限制类</span>，这个翻译来源于Object（Datatype） Property Restrictions，这种定义类的方式听起来很别扭，但在现实生活中确实需要如此去表达，比如：很富有的人、有2个孩子的父亲，这些都是可以表达成类的。看一个用RDF/XML-ABBREV语法表达的例子：<br />
  &lt;owl:Class rdf:about=&#8221;#奶茶店&#8221;&gt;<br />
    &lt;owl:equivalentClass&gt;<br />
      &lt;owl:Restriction&gt;<br />
        &lt;owl:someValuesFrom&gt;<br />
          &lt;owl:Class rdf:about=&#8221;#奶茶&#8221;/&gt;<br />
        &lt;/owl:someValuesFrom&gt;<br />
        &lt;owl:onProperty rdf:resource=&#8221;#出售&#8221;/&gt;<br />
      &lt;/owl:Restriction&gt;<br />
    &lt;/owl:equivalentClass&gt;<br />
  &lt;/owl:Class&gt;</p>
<p style="text-indent:28px;">上面需要表达的意思：奶茶店等价于这样的一个类，这个类叫“出售一些奶茶的”。对于现实中的例子就是，奶茶店是卖奶茶的。在这里，我们发现，“出售一些奶茶的”这本身就是一种类，这种类就是所谓的限制类。限制类的定义方法有很多，在JENA中，我们会发现OntClass有一个子接口Restriction，而Restriction接口下面又衍生出</p>
<ol>
<li>SomeValuesFromRestriction</li>
<li>AllValuesFromRestriction</li>
<li>HasValueRestriction</li>
<li>MaxCardinalityQRestriction</li>
<li>MinCardinalityQRestriction</li>
<li>CardinalityQRestriction</li>
<li>MaxCardinalityRestriction</li>
<li>MinCardinalityRestriction</li>
<li>CardinalityRestriction</li>
</ol>
<p>我们逐一解释：<br />
1、已经介绍了<br />
2、这家奶茶店只卖奶茶，<strong>出售</strong>这个属性所跟的所有个体全部属于奶茶（AllValuesFrom）<br />
关于SomeValuesFrom和AllValuesFrom有很多话题可以聊，具体看其他文章<br />
3、这个和前面2者不同，前面2者属性后面需要跟<strong>类</strong>，而这个属性后面必须跟<strong>个体</strong>，出售拿破仑戒指的古董店，拿破仑戒指是戒指一个个体，不是一个类，这里把有出售拿破仑戒指的这些古董店合起来称为一个类<br />
4、最多出售一种品牌的店叫专卖店<br />
5、最少有两家分店的店可以叫做连锁店<br />
6、精确的定义到数字<br />
7、8、9和4、5、6非常类似，区别在于，属性后面可以不跟<strong>类</strong>，4、5、6是OWL 2新增的内容</p>
<p style="text-indent:28px;">另外，OWL 2又多了一种限制类，叫做ObjectHasSelf，具有自反性质，比如：爱自己的人可以称为自恋的人，这个在protege和jena里面都还没有实现。上面9个方式可以基于Object Property来描述的，同样也可以基于Data Property来描述。不过OWL-API分的跟细致，将Object Property Restrictions和Data Property Restrictions分开实现了，有新兴趣的朋友可以去比较比较。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crabone.com/index.php/2010/01/06/443.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>年初杂谈</title>
		<link>http://www.crabone.com/index.php/2010/01/05/438.html</link>
		<comments>http://www.crabone.com/index.php/2010/01/05/438.html#comments</comments>
		<pubDate>Tue, 05 Jan 2010 14:49:32 +0000</pubDate>
		<dc:creator>crab</dc:creator>
		
		<category><![CDATA[大杂烩]]></category>

		<guid isPermaLink="false">http://www.crabone.com/?p=438</guid>
		<description><![CDATA[人，活着，为了什么？
每天都在摆摊卖水果的女人可能为了养活孩子
单位打工的白领可能为了买房、结婚、生子
富裕的人可能为了更多的消遣
立志的人可能为了理想
如果我们用5WHY法则画出鱼骨头，估计归根到底就是人的欲望，说破烂点，就是贪欲，说本质点，就是动物本能。
如果欲望达到了预期的目标，人会开心，会惬意，会去共享，会去文化传承，物质始终会枯竭，只有文化生生不息，文化激发更多的欲望，欲望灿烂出更多的文化。
人，活着，为什么要害怕？
可能因为自身的脆弱，所以会在别人还没有攻击之前，已有了防人意识
可能因为害怕失去，所以会在还没有失去之前拼命捍卫
可能因为达不到目标，所以会无意识将目标砍掉或者虚设
人，活着，为什么要攀比？
可能因为自身触手可及却偏偏没有得到的那份心有不甘
可能因为自身的口德行德激发了他人的欲望
可能因为要发泄压抑已久的欲望
如果将上面那些垃圾言论全部净化，独善其身，大彻大悟，玩转人生，可谓心胸海纳百川之人
=================无语的分割线=====================
什么是本体？
这是哲学的概念……GHJT@#T^#@&#038;*!@!UIGJHJ
某某老外发言……&#038;*@……#IUGH#HG!GIU#Y#*7
话说当年上帝害怕通天塔，于是让人们有了不同的语言，不同的思维，不同的个性，于是，通天塔倒了
人们只有使用统一的语言，才能相互交流，只有使用同一种概念，才能对一个事物达成共识
本体，就是这样的一种工具，让领域与领域之间的人们对一个事物达成共识
如果大家都运用本体对万事万物进行建模，通过相互沟通，达成一致，最终将这些数据朝贡给造物主，那么造物主将会通晓万事万物，如果他愿意为人们提供服务，那么他的脑子就是语义网
终有一天，通天塔再次完工，但这次，人们的本能可能会毁了这一切……
]]></description>
			<content:encoded><![CDATA[<p>人，活着，为了什么？<br />
每天都在摆摊卖水果的女人可能为了养活孩子<br />
单位打工的白领可能为了买房、结婚、生子<br />
富裕的人可能为了更多的消遣<br />
立志的人可能为了理想<br />
如果我们用5WHY法则画出鱼骨头，估计归根到底就是人的欲望，说破烂点，就是贪欲，说本质点，就是动物本能。<br />
如果欲望达到了预期的目标，人会开心，会惬意，会去共享，会去文化传承，物质始终会枯竭，只有文化生生不息，文化激发更多的欲望，欲望灿烂出更多的文化。</p>
<p>人，活着，为什么要害怕？<br />
可能因为自身的脆弱，所以会在别人还没有攻击之前，已有了防人意识<br />
可能因为害怕失去，所以会在还没有失去之前拼命捍卫<br />
可能因为达不到目标，所以会无意识将目标砍掉或者虚设</p>
<p>人，活着，为什么要攀比？<br />
可能因为自身触手可及却偏偏没有得到的那份心有不甘<br />
可能因为自身的口德行德激发了他人的欲望<br />
可能因为要发泄压抑已久的欲望</p>
<p>如果将上面那些垃圾言论全部净化，独善其身，大彻大悟，玩转人生，可谓心胸海纳百川之人</p>
<p>=================无语的分割线=====================</p>
<p>什么是本体？</p>
<p>这是哲学的概念……GHJT@#T^#@&#038;*!@!UIGJHJ<br />
某某老外发言……&#038;*@……#IUGH#HG!GIU#Y#*7</p>
<p>话说当年上帝害怕通天塔，于是让人们有了不同的语言，不同的思维，不同的个性，于是，通天塔倒了</p>
<p>人们只有使用统一的语言，才能相互交流，只有使用同一种概念，才能对一个事物达成共识</p>
<p>本体，就是这样的一种工具，让领域与领域之间的人们对一个事物达成共识</p>
<p>如果大家都运用本体对万事万物进行建模，通过相互沟通，达成一致，最终将这些数据朝贡给造物主，那么造物主将会通晓万事万物，如果他愿意为人们提供服务，那么他的脑子就是语义网</p>
<p>终有一天，通天塔再次完工，但这次，人们的本能可能会毁了这一切……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crabone.com/index.php/2010/01/05/438.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>用jena api来理解RDF——三元组</title>
		<link>http://www.crabone.com/index.php/2010/01/01/429.html</link>
		<comments>http://www.crabone.com/index.php/2010/01/01/429.html#comments</comments>
		<pubDate>Fri, 01 Jan 2010 12:45:04 +0000</pubDate>
		<dc:creator>crab</dc:creator>
		
		<category><![CDATA[JENA]]></category>

		<category><![CDATA[语义网基础]]></category>

		<category><![CDATA[三元组]]></category>

		<guid isPermaLink="false">http://www.crabone.com/?p=429</guid>
		<description><![CDATA[JENA中有一个最底层的接口：RDFNode，它代表RDF这张巨大图中的节点，这个节点可以是一个资源，可以是一个字符窜或者数字。因此它对应与2个子接口：
interface Literal extends RDFNode
interface Resource extends RDFNode
Literal接口代表了一些原始类型节点，比如：32位整型、布尔型等等。
Resource接口还可以继续衍生出2个重要的接口：
interface Container extends Resource
interface Property extends Resource
Container接口就对应了RDF的容器表达能力，里面有bag,seq,alt
Property接口就是所谓的资源属性了
在RDF的世界中，其实描述资源只有一种方式，那就是三元组，包括：主体（subject），谓词（predicate），客体（object）。主体和客体就是图中的2个节点，谓词就是一条边。这三元组在JENA中用Statement接口来描述，该接口中有下面3个方法：
public Resource getSubject();
public Property getPredicate();
public RDFNode getObject();
我们可以发现，主体一定是一种资源，不可能是一个Literal原始类型，因此主体必定属于Resource接口实现，但是客体可以是原始类型，比如：人有2条腿。人为主体；有为谓词；2为客体。
用一个例子来巩固下：


&#60;?xml version=&#34;1.0&#34;?&#62;
&#160;&#60;rdf:RDF xmlns:rdf=&#34;http://www.w3.org/1999/02/22-rdf-syntax-ns#&#34;
&#160; &#160; &#160; &#160; &#160; xmlns:s=&#34;http://example.org/students/vocab#&#34;&#62;
&#160;
&#160; &#160; &#60;rdf:Description&#160;rdf:about=&#34;http://example.org/courses/6.001&#34;&#62;
&#160; &#160; &#160;&#160; &#60;s:students&#62;
&#160; &#160; &#160; &#160; &#160; &#60;rdf:Bag&#62;
&#160; &#160; &#160; &#160; &#160; &#160;&#160; &#60;rdf:li&#160;rdf:resource=&#34;http://example.org/students/Amy&#34;/&#62;
&#160; &#160; &#160; &#160; &#160; &#160;&#160; &#60;rdf:li&#160;rdf:resource=&#34;http://example.org/students/Mohamed&#34;/&#62;
&#160; &#160; &#160; &#160; &#160; &#160;&#160; &#60;rdf:li&#160;rdf:resource=&#34;http://example.org/students/Johann&#34;/&#62;
&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p style="text-indent:28px;">JENA中有一个最底层的接口：RDFNode，它代表RDF这张巨大图中的节点，这个节点可以是一个资源，可以是一个字符窜或者数字。因此它对应与2个子接口：<br />
<strong>interface Literal extends RDFNode</strong><br />
<strong>interface Resource extends RDFNode</strong><br />
Literal接口代表了一些原始类型节点，比如：32位整型、布尔型等等。<br />
Resource接口还可以继续衍生出2个重要的接口：<br />
<strong>interface Container extends Resource</strong><br />
<strong>interface Property extends Resource</strong><br />
Container接口就对应了RDF的容器表达能力，里面有bag,seq,alt<br />
Property接口就是所谓的资源属性了</p>
<p style="text-indent:28px;">在RDF的世界中，其实描述资源只有一种方式，那就是三元组，包括：主体（subject），谓词（predicate），客体（object）。主体和客体就是图中的2个节点，谓词就是一条边。这三元组在JENA中用Statement接口来描述，该接口中有下面3个方法：<br />
<strong>public Resource getSubject();<br />
public Property getPredicate();<br />
public RDFNode getObject();</strong><br />
我们可以发现，主体一定是一种资源，不可能是一个Literal原始类型，因此主体必定属于Resource接口实现，但是客体可以是原始类型，比如：人有2条腿。<strong>人</strong>为主体；<strong>有</strong>为谓词；<strong>2</strong>为客体。</p>
<p>用一个例子来巩固下：</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)">
<li class="hl-firstline"><span style="color: Olive;">&lt;?</span><span style="color: Green;">xml</span><span style="color: Gray;"> </span><span style="color: #00008b;">version</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1.0</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">?&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:RDF</span><span style="color: Gray;"> </span><span style="color: #00008b;">xmlns:rdf</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.w3.org/1999/02/22-rdf-syntax-ns#</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">xmlns:s</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://example.org/students/vocab#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:Description</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rdf:about</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://example.org/courses/6.001</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">s:students</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:Bag</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:li</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rdf:resource</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://example.org/students/Amy</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:li</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rdf:resource</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://example.org/students/Mohamed</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:li</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rdf:resource</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://example.org/students/Johann</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:li</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rdf:resource</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://example.org/students/Maria</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:li</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rdf:resource</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://example.org/students/Phuong</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">rdf:Bag</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">s:students</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">rdf:Description</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">rdf:RDF</span><span style="color: Olive;">&gt;</span></li>
</ol>
</div>
<p>如果要一下子看出这个RDF中有几个三元组，一定不是很方便吧？如果用图来表示：<br />
<img src="http://www.crabone.com/wp-content/uploads/2010/01/201001011021.png" alt="201001011021" title="201001011021" width="580" height="390" class="alignnone size-full wp-image-431" /><br />
是不是非常清晰呢？图中有一个主体http://example.org/courses/6.001，它有一条边http://example.org/students/vocab#students，对应的客体就是那个空节点。同理还有这个空节点所对应的那些三元组。用JENA来解析这个例子：</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)">
<li class="hl-firstline"><span style="color: Blue;">Model</span><span style="color: Gray;"> </span><span style="color: Blue;">model</span><span style="color: Gray;"> = </span><span style="color: Blue;">ModelFactory</span><span style="color: Gray;">.</span><span style="color: Blue;">createDefaultModel</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">FileInputStream</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">student.rdf</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: Green;">null</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">StmtIterator</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">it</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">listStatements</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">while</span><span style="color: Olive;">(</span><span style="color: Blue;">it</span><span style="color: Gray;">.</span><span style="color: Blue;">hasNext</span><span style="color: Olive;">())</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Blue;">it</span><span style="color: Gray;">.</span><span style="color: Blue;">next</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
</ol>
</div>
<p>打印的结果如下：<br />
[http://example.org/courses/6.001, http://example.org/students/vocab#students, -23ba78ea:125e9da42c8:-8000]<br />
[-23ba78ea:125e9da42c8:-8000, http://www.w3.org/1999/02/22-rdf-syntax-ns#_5, http://example.org/students/Phuong]<br />
[-23ba78ea:125e9da42c8:-8000, http://www.w3.org/1999/02/22-rdf-syntax-ns#_4, http://example.org/students/Maria]<br />
[-23ba78ea:125e9da42c8:-8000, http://www.w3.org/1999/02/22-rdf-syntax-ns#_3, http://example.org/students/Johann]<br />
[-23ba78ea:125e9da42c8:-8000, http://www.w3.org/1999/02/22-rdf-syntax-ns#_2, http://example.org/students/Mohamed]<br />
[-23ba78ea:125e9da42c8:-8000, http://www.w3.org/1999/02/22-rdf-syntax-ns#_1, http://example.org/students/Amy]<br />
[-23ba78ea:125e9da42c8:-8000, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crabone.com/index.php/2010/01/01/429.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>用jena api来理解RDF——空节点</title>
		<link>http://www.crabone.com/index.php/2009/12/26/421.html</link>
		<comments>http://www.crabone.com/index.php/2009/12/26/421.html#comments</comments>
		<pubDate>Sat, 26 Dec 2009 14:43:08 +0000</pubDate>
		<dc:creator>crab</dc:creator>
		
		<category><![CDATA[JENA]]></category>

		<category><![CDATA[语义网基础]]></category>

		<category><![CDATA[AnonId]]></category>

		<category><![CDATA[RDF]]></category>

		<category><![CDATA[空节点]]></category>

		<guid isPermaLink="false">http://www.crabone.com/?p=421</guid>
		<description><![CDATA[在RDF入门的例子中，有这样一幅图：

最中间的那个节点起一个过渡作用，这时，虽然它也是一个资源，但这个资源没有必要标上资源描述符，因为它可能只在应用程序局部使用，作为推理机的一个桥梁等等作用，换句说，这个资源别人没有必要去引用。这样的节点，我们称之为空节点：


Model model = ModelFactory.createDefaultModel();
&#160;
&#160; Resource&#160;blankNode = model.createResource(new AnonId(&#34;tempNode&#34;));
&#160; Property&#160;city = model.createProperty(&#34;http://www.crabobe.com/city&#34;);
&#160; Property&#160;street = model.createProperty(&#34;http://www.crabobe.com/street&#34;);
&#160; blankNode.addProperty(city, &#34;深圳&#34;);
&#160; blankNode.addProperty(street, &#34;龙岗&#34;);
&#160; 
&#160; Resource&#160;crab = model.createResource(&#34;http://www.crabobe.com/crab&#34;);
&#160; Property&#160;address = model.createProperty(&#34;http://www.crabobe.com/address&#34;);
&#160; crab.addProperty(address, blankNode);
&#160;
&#160; model.write(System.out);


注意，包含中文的源码文件必须是UTF-8的，运行结果如下：


&#60;rdf:RDF
&#160; &#160; xmlns:rdf=&#34;http://www.w3.org/1999/02/22-rdf-syntax-ns#&#34;
&#160; &#160; xmlns:j.0=&#34;http://www.crabobe.com/&#34;&#160;&#62;&#160;
&#160; &#60;rdf:Description&#160;rdf:about=&#34;http://www.crabobe.com/crab&#34;&#62;
&#160; &#160; &#60;j.0:address&#160;rdf:nodeID=&#34;A0&#34;/&#62;
&#160; &#60;/rdf:Description&#62;
&#160; &#60;rdf:Description&#160;rdf:nodeID=&#34;A0&#34;&#62;
&#160; &#160; &#60;j.0:street&#62;龙岗&#60;/j.0:street&#62;
&#160; &#160; &#60;j.0:city&#62;深圳&#60;/j.0:city&#62;
&#160; &#60;/rdf:Description&#62;
&#60;/rdf:RDF&#62;


]]></description>
			<content:encoded><![CDATA[<p>在RDF入门的例子中，有这样一幅图：<br />
<img src="http://www.crabone.com/wp-content/uploads/2009/12/200912262132.png" alt="200912262132" title="200912262132" width="600" height="300" class="alignnone size-full wp-image-423" /><br />
最中间的那个节点起一个过渡作用，这时，虽然它也是一个资源，但这个资源没有必要标上资源描述符，因为它可能只在应用程序局部使用，作为推理机的一个桥梁等等作用，换句说，这个资源别人没有必要去引用。这样的节点，我们称之为空节点：</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)">
<li class="hl-firstline"><span style="color: Blue;">Model</span><span style="color: Gray;"> </span><span style="color: Blue;">model</span><span style="color: Gray;"> = </span><span style="color: Blue;">ModelFactory</span><span style="color: Gray;">.</span><span style="color: Blue;">createDefaultModel</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">Resource</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">blankNode</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createResource</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">AnonId</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">tempNode</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">Property</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">city</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createProperty</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.crabobe.com/city</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">Property</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">street</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createProperty</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.crabobe.com/street</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">blankNode</span><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">city</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">深圳</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">blankNode</span><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">street</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">龙岗</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">Resource</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">crab</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createResource</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.crabobe.com/crab</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">Property</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">address</span><span style="color: Gray;"> = </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">createProperty</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.crabobe.com/address</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">crab</span><span style="color: Gray;">.</span><span style="color: Blue;">addProperty</span><span style="color: Olive;">(</span><span style="color: Blue;">address</span><span style="color: Gray;">, </span><span style="color: Blue;">blankNode</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">model</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol>
</div>
<p>注意，包含中文的源码文件必须是UTF-8的，运行结果如下：</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)">
<li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:RDF</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">xmlns:rdf</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.w3.org/1999/02/22-rdf-syntax-ns#</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">xmlns:j</span><span style="color: Gray;">.</span><span style="color: #00008b;">0</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.crabobe.com/</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:Description</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rdf:about</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.crabobe.com/crab</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">j</span><span style="color: Gray;">.</span><span style="color: #00008b;">0:address</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rdf:nodeID</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">A0</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">rdf:Description</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">rdf:Description</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rdf:nodeID</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">A0</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">j</span><span style="color: Gray;">.</span><span style="color: #00008b;">0:street</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">龙岗</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">j</span><span style="color: Gray;">.</span><span style="color: #00008b;">0:street</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">j</span><span style="color: Gray;">.</span><span style="color: #00008b;">0:city</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">深圳</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">j</span><span style="color: Gray;">.</span><span style="color: #00008b;">0:city</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">rdf:Description</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">rdf:RDF</span><span style="color: Olive;">&gt;</span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.crabone.com/index.php/2009/12/26/421.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
