以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  怎么将owl文挡里的包映射到本地文件  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=29644)


--  作者:Acoolice
--  发布时间:3/31/2006 11:10:00 AM

--  怎么将owl文挡里的包映射到本地文件
小弟有一个owl文档在读取时已经将uri映射到了本地,但文档中包含了两个import包,不知道怎么就能把那两个包也映射到本地文件上?
--  作者:iamwym
--  发布时间:3/31/2006 4:23:00 PM

--  
不同的本体管理系统有不同的机制
不过你可以使用本地文件uri代替http的uri地址
--  作者:Acoolice
--  发布时间:4/1/2006 9:31:00 AM

--  
不是可以用getDocumentManager().addAltEntry()把http的地址映射到本地的吗?
我想把本体文档里import包的那个http地址也映射到本地该怎么做?
我是用jena来读取的owl文档!
--  作者:jpz6311whu
--  发布时间:4/1/2006 10:07:00 AM

--  
一样的,还是用那个getDocumentManager().addAltEntry()
--  作者:Acoolice
--  发布时间:4/1/2006 10:34:00 AM

--  
我的代码是这样的怎么报错?但是能读出结果!
楼上的能不能再说的细点,小弟初学,谢谢
String source="http://bearzzm.126.com/Myself#";
OntModel m=ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM,null);
m.getDocumentManager().addAltEntry ("http://bearzzm.126.com/Myself#","file:family.owl");
m.getDocumentManager().addAltEntry("http://www.daml.org/rules/proposal/swrlb.owl","file:swrlb.owl");
m.getDocumentManager().addAltEntry("http://www.daml.org/rules/proposal/swrl.owl","file:swrl.owl");
  
m.read(source);
  
--  作者:jpz6311whu
--  发布时间:4/1/2006 12:08:00 PM

--  
你把完整的程序,和完整的报错信息,以及完整的运行结果,都贴出来
--  作者:Acoolice
--  发布时间:4/1/2006 4:09:00 PM

--  
程序:
import java.util.Iterator;
import com.hp.hpl.jena.ontology.*;
import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.rdf.model.ModelFactory;

public class jena{
 public static void main(String args[]){
  jena j=new jena();
  j.run();
 }
 public void run(){
  String source="http://bearzzm.126.com/Myself#";
  
  OntModel m=ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM,null);
  m.getDocumentManager().addAltEntry("http://www.daml.org/rules/proposal/swrlb.owl","file:swrlb.owl");
  m.getDocumentManager().addAltEntry("http://www.daml.org/rules/proposal/swrl.owl","file:swrl.owl");
  m.getDocumentManager().addAltEntry("http://bearzzm.126.com/Myself#","file:family.owl");
  
  m.read(source);
  

  int i=0,j=0;
  for(Iterator ite=m.listClasses();ite.hasNext();i++){
   ite.next(); 
  }
  int result[]=new int[i];
  OntClass cla[]=new OntClass[i];
  for(Iterator ite=m.listClasses();ite.hasNext();j++){
   cla[j]=(OntClass)ite.next();
   String s=new String();
   s=cla[j].getLocalName();
   if (s!=null)
   System.out.println(s+"");
   if(cla[j].hasSubClass()&&(s!=null)){
    System.out.println(cla[j].getLocalName()+"'s subclass is"+cla[j].getSubClass().getLocalName()+"");
    //System.out.println("ok!");
    }
   else if(s!=null){
    System.out.println(cla[j].getLocalName()+" do not hava subclass");}
   else {
   }
  }
 }
}
他能运行,但是前面报错,要是接通网络就不报错了,我是想把那两个import的文件也映射到本地文件的,报错信息:
ERROR [main] (RDFDefaultErrorHandler.java:44) - http://www.daml.org/rules/propos
al/swrl.owl(line 1 column 8): The processing instruction target matching "[xX][m
M][lL]" is not allowed.
WARN [main] (OntDocumentManager.java:1104) - An error occurred while attempting
to read from http://www.daml.org/rules/proposal/swrl.owl. Msg was 'rethrew: org
.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM]
[lL]" is not allowed.'.
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][
mM][lL]" is not allowed.
        at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Un
known Source)
        at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)

        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.scanPIData(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unkn
own Source)
        at org.apache.xerces.impl.XMLScanner.scanPI(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispat
ch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106
)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:197)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:184)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:254)
        at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:221)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:324)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:288)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:275)
        at com.hp.hpl.jena.ontology.OntDocumentManager.read(OntDocumentManager.j
ava:1100)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImport(OntDocumentMan
ager.java:1068)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImports(OntDocumentMa
nager.java:833)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImports(OntDocumentMa
nager.java:771)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:211
6)
        at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:206)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:207
8)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:205
9)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:202
0)
        at jena.run(jena.java:19)
        at jena.main(jena.java:9)
com.hp.hpl.jena.shared.JenaException: rethrew: org.xml.sax.SAXParseException: Th
e processing instruction target matching "[xX][mM][lL]" is not allowed.
        at com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler.fatalError(RDFD
efaultErrorHandler.java:45)
        at com.hp.hpl.jena.rdf.arp.impl.ARPSaxErrorHandler.fatalError(ARPSaxErro
rHandler.java:35)
        at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:212)
        at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.fatalError(XMLHandler.java:23
9)
        at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)

        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.scanPIData(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unkn
own Source)
        at org.apache.xerces.impl.XMLScanner.scanPI(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispat
ch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106
)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:197)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:184)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:254)
        at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:221)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:324)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:288)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:275)
        at com.hp.hpl.jena.ontology.OntDocumentManager.read(OntDocumentManager.j
ava:1100)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImport(OntDocumentMan
ager.java:1068)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImports(OntDocumentMa
nager.java:833)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImports(OntDocumentMa
nager.java:771)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:211
6)
        at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:206)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:207
8)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:205
9)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:202
0)
        at jena.run(jena.java:19)
        at jena.main(jena.java:9)
Caused by: org.xml.sax.SAXParseException: The processing instruction target matc
hing "[xX][mM][lL]" is not allowed.
        at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Un
known Source)
        ... 32 more
ERROR [main] (RDFDefaultErrorHandler.java:44) - http://www.daml.org/rules/propos
al/swrlb.owl(line 1 column 8): The processing instruction target matching "[xX][
mM][lL]" is not allowed.
WARN [main] (OntDocumentManager.java:1104) - An error occurred while attempting
to read from http://www.daml.org/rules/proposal/swrlb.owl. Msg was 'rethrew: or
g.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM
][lL]" is not allowed.'.
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][
mM][lL]" is not allowed.
        at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Un
known Source)
        at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)

        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.scanPIData(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unkn
own Source)
        at org.apache.xerces.impl.XMLScanner.scanPI(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispat
ch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106
)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:197)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:184)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:254)
        at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:221)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:324)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:288)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:275)
        at com.hp.hpl.jena.ontology.OntDocumentManager.read(OntDocumentManager.j
ava:1100)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImport(OntDocumentMan
ager.java:1068)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImports(OntDocumentMa
nager.java:833)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImports(OntDocumentMa
nager.java:771)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:211
6)
        at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:206)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:207
8)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:205
9)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:202
0)
        at jena.run(jena.java:19)
        at jena.main(jena.java:9)
com.hp.hpl.jena.shared.JenaException: rethrew: org.xml.sax.SAXParseException: Th
e processing instruction target matching "[xX][mM][lL]" is not allowed.
        at com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler.fatalError(RDFD
efaultErrorHandler.java:45)
        at com.hp.hpl.jena.rdf.arp.impl.ARPSaxErrorHandler.fatalError(ARPSaxErro
rHandler.java:35)
        at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:212)
        at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.fatalError(XMLHandler.java:23
9)
        at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)

        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.scanPIData(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unkn
own Source)
        at org.apache.xerces.impl.XMLScanner.scanPI(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispat
ch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106
)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:197)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:184)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:254)
        at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:221)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:324)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:288)
        at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:275)
        at com.hp.hpl.jena.ontology.OntDocumentManager.read(OntDocumentManager.j
ava:1100)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImport(OntDocumentMan
ager.java:1068)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImports(OntDocumentMa
nager.java:833)
        at com.hp.hpl.jena.ontology.OntDocumentManager.loadImports(OntDocumentMa
nager.java:771)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:211
6)
        at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:206)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:207
8)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:205
9)
        at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:202
0)
        at jena.run(jena.java:19)
        at jena.main(jena.java:9)
Caused by: org.xml.sax.SAXParseException: The processing instruction target matc
hing "[xX][mM][lL]" is not allowed.
        at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Un
known Source)
        ... 32 more
Relative
Relative's subclass isAunt
Father
Father do not hava subclass
Parent
Parent do not hava subclass
Sister
Sister do not hava subclass
Sibling
Sibling do not hava subclass
Niece
Niece do not hava subclass
Mother
Mother do not hava subclass
Person
Person's subclass isRelative
Daugther
Daugther do not hava subclass
Nephew
Nephew do not hava subclass
Brother
Brother do not hava subclass
Aunt
Aunt do not hava subclass
Uncle
Uncle do not hava subclass
Son
Son do not hava subclass
Child
Child do not hava subclass
Man
Man do not hava subclass
Gender
Gender do not hava subclass
Woman
Woman do not hava subclass
Press any key to continue...


--  作者:Acoolice
--  发布时间:4/1/2006 4:12:00 PM

--  
虽然报错但是后面却读出了信息,不知怎么回事!
打虾帮忙啊
--  作者:jpz6311whu
--  发布时间:4/1/2006 7:40:00 PM

--  
swrlb.owl和swrl.owl的本地路径对不对?
建议改成绝对地址
--  作者:Acoolice
--  发布时间:4/2/2006 1:39:00 PM

--  
路径肯定是对的,因为family.owl的路径都是对的没有报错,三个owl文档family.owl,swrlb.owl和swrl.owl都是跟程序的代码放在同一个文件夹里的,路径肯定是没错的!

--  作者:jpz6311whu
--  发布时间:4/2/2006 8:08:00 PM

--  
ERROR Digester:1459 - Parse Fatal Error at line 2 column 6: The processing instruction target matching "[xX][mM][lL]" is not allowed.

一旦发生这个错误请检查你输入的XML信息,在<xml....>这个标签前是否有其他字符或者是空格或者是空行之类的,把这些信息去掉此错误就消失了!


--  作者:iamwym
--  发布时间:4/3/2006 12:24:00 AM

--  
ft,你改这里不改owl文件有啥用,owl文件里面还是import远程数据的,你要在owl文件里面Import本地数据。
--  作者:iamwym
--  发布时间:4/3/2006 12:29:00 AM

--  
btw,你要保证本地的本体是unicode存储的...
--  作者:jpz6311whu
--  发布时间:4/3/2006 11:36:00 AM

--  
以下是引用iamwym在2006-4-3 0:24:00的发言:
ft,你改这里不改owl文件有啥用,owl文件里面还是import远程数据的,你要在owl文件里面Import本地数据。


如果使用了getDocumentManager().addAltEntry(),owl文件里面是不需要改成import本地数据,程序自动会完成这个过程。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
281.250ms