我正在寻找一个通用的API/web服务/工具/等...允许尽可能具体地将给定的HTML页面转换为RDF图形(最有可能使用后骨本体和/或映射器).
我有一个用OWL编写的本体。有人知道我可以将其加载到python吗?任何包装,甚至手动?在其他问题中提到的rdflib不适合我,因为它主要与RDF有关,而“ Seth”是一个非常好的库,它不起作用,因为它需要“ Pellet”库,该库的网站似乎已关闭并且它(seth)也仅适用于JVM 1.4!
我已经被困了两天,现在试图理解为什么下面的场景不起作用:
截图:http://dl.dropbox.com/u/4677548/screenshots.html
我有一个VegetarianFood类(Food的子类)相当于"Food and(Eggs or MilkAndDerivates或VeganFood)",你可以在屏幕截图中看到1
反过来,VeganFood课程相当于其他课程(NutsAndSeeds,谷物,水果等...)截图2
你可以看到有两个人(切达奶酪和腰果)创建为MilkAndDerivates和NutsAndSeeds截图3,他们被正确推断为VegetarianFood和VeganFood成员
然后我创建了两个人作为食谱,一个只有腰果(PastaVega)和一个同时有切达干酪和腰果(PastaVege),使用对象属性hasIngredient截图4和5
他们已经推断为配方......但没有落入VegatarianRecipe和VeganRecipe的类别,定义如下截图6和7
我没有线索,为什么他们不被推断为VegetarianRecipe(或素食主义者)?我错过了什么?
编辑:
如果我改变VegetarianRecipe(或素食主义者)从"食谱和(只有素食者食物)"
"食谱和(有一些素食食品)"
截图8
接受个人展示,但当然这不是我想要做的,因为这将包括混合肉和素食食谱的食谱.那么如何定义一个素食和纯素食品类,以便推理员在食谱素食或素食时正确推断????
我正在使用具有相关类,对象属性等的OWL本体来建模大学数据.我将大学数据放在一个简单的文本文件中(比如CSV).我想使用我的模型为这些数据创建本体.我的问题是:
我需要为调度创建一个本体.我使用FOAF和Time OWL来存储参与者和时间,但我还需要存储预约发生地点:地址.像GeoNames和WGS84 Geo Positioning这样的本体不符合我的目的 - 我不能在那里存储街道.
我可以通过自己创建,但如果有一个已建立的地址本体,那么我会使用它.我考虑过使用vCard Ontology,但它是为不同目的而设计的.你觉得,这是个好主意吗?你知道其他一些本体吗?
我正在尝试使用SPARQL和Sesame 2.7查询存储库,但是当我运行我的代码时,我收到以下错误
org.openrdf.http.client.SesameHTTPClient - Server reports problem: org.openrdf.query.parser.sparql.ast.VisitorException: QName 'viagem:nome' uses an undefined prefix
Run Code Online (Sandbox Code Playgroud)
问题是,我在openrdf-workbench上的存储库的Namespaces选项卡下有前缀"viagem",当我使用方法getNamespaces()时,它显示了...
我运行查询的唯一方法是在每个查询上手动添加PREFIX,但这听起来不对...
关于如何正确使用这个,我有什么遗漏吗?
---编辑了更多信息
代码无效:
String queryString = "SELECT ?name \n" +
"WHERE {?Aeroporto viagem:nome ?name.\n" +
"?Aeroporto rdf:type viagem:Aeroporto}";
TupleQuery tupleQuery = con.prepareTupleQuery(QueryLanguage.SPARQL, queryString);
TupleQueryResult result = tupleQuery.evaluate();
try {
List<String> bindingNames = result.getBindingNames();
while (result.hasNext()) {
BindingSet bindingSet = result.next();
Value firstValue = bindingSet.getValue(bindingNames.get(0));
System.out.println(firstValue);
}
} finally {
result.close();
}
...
Run Code Online (Sandbox Code Playgroud)
如果我将queryString更改为,此代码有效
String queryString = "PREFIX viagem:<http://teste.com.br/tut/Viagem.owl#> SELECT ?name \n" + …Run Code Online (Sandbox Code Playgroud) 我尝试使用以下java代码来清空本体并返回类Lion的实例但是当我尝试运行该文件时,我在第16行收到错误.所以我在等你的帮助请!
import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.util.FileManager;
import com.hp.hpl.jena.vocabulary.RDF;
import com.hp.hpl.jena.sparql.util.IndentedWriter;
import com.hp.hpl.jena.query.*;
public class Jungle1
{
public static final String jungle_file = "jungle.n3";
public static final String NL = System.getProperty("line.separator") ;
public static void main( String[] args ) {
// create the simplest model there is
//
Model m = ModelFactory.createDefaultModel();
// use the file manager to read an RDF document into the model
FileManager.get().readModel( m, jungle_file );
log.debug( "We have loaded a model with no. statements = " + m.size() …Run Code Online (Sandbox Code Playgroud) 我想用Protege创建一个本体,它包含两个类,Animal和FatherAnimal,以及对象属性hasFather,域名为Animal,范围为FatherAnimal.
另外,我创建了另外两个类:Son和Father,它们与相同的对象属性hasFather链接.这里的问题是我不允许为同一个对象属性创建多个域和范围.我真的想避免创建一个新的对象属性.还有其他解决方案吗?
我有本体论,其中有另一个本体论.我想知道如何OWLOntologyManager的loadOntologyFromOntologyDocument(OWLOntologyDocumentSource documentSource, OWLOntologyLoaderConfiguration config)内部工作原理.我已经使用OWLOntologyLoaderConfiguration类来处理Missing Imports(想知道在MissingImportListener类的帮助下哪个导入失败).
我能听到丢失的进口.但是,如果我的任何本体文件导入了WEB资源,则上面的方法从其位置获取它.有什么方法可以限制对WEB资源的调用,并要求加载我在系统中的副本吗?
例如,如果BBC的运动本体加载方法在内部加载本体:
就像在Protege中打开BBC的运动本体一样.
我正在建模一个本体,该本体应该用于表示有关餐厅、其提供的菜肴、价格和美食类型的知识。
该系统的功能之一是允许用户浏览吃某种特定菜肴的地方或搜索专门提供某些菜肴的餐馆。
考虑到这一点,我已经对本体的第一个版本进行了建模,但我的问题出现了。
为了表示餐厅的特色:(a)我应该将其作为对象属性,具有类Cuisine,还是(b)仅作为数据属性,即作为餐厅类的简单属性?
选择a或b有何含义?