2013-10-10 64 views
2

我正在使用Java芝麻。我从一个教程后面的例子开始。我正在尝试构建一个简单的语句,如代码所示。我的问题是我不知道如何打印出来,例如,该陈述的主题或对象。任何人都可以帮助我吗?这里是我的代码:在Java芝麻中打印声明

public static void main(String[] args) 
{ 
    ValueFactory factory = ValueFactoryImpl.getInstance(); 
    URI bob = factory.createURI("http://example.org/bob"); 
    URI name = factory.createURI("http://example.org/name"); 
    Literal bobsName = factory.createLiteral("Bob"); 
    Statement nameStatement = factory.createStatement(bob, name, bobsName); 
    Statement typeStatement = factory.createStatement(bob, RDF.TYPE,FOAF.PERSON); 
} 

我应该使用以下行:

model.filter(null, RDF.TYPE, FOAF.PERSON).subjects(); 

我应该使用一个代码像上面的一个,但不知道如何定义模型,以及如何打印出的声明或至少是主题。非常感激你的帮助。

+1

给编辑试图把它变成'公共实例(){公共静态无效main(...)...}}',public Example(){...}'是一个默认的构造函数。虽然整个类将被命名为'Example',但声明'main'方法在构造函数中没有任何意义。 –

回答

4

根据javadoc for org.openrdf.Statement,您将使用getSubject(),getPredicate()getObject()。作为pointed out in the comments,声明,StatementImpl的共同实施,提供了toString()方法的实现,让你甚至可以只打印声明:

Statement s = /* ... */; 
System.out.println(s); 
+1

它有这样的方法:http://openrdf.callimachus.net/sesame/2.7/apidocs/org/openrdf/model/impl/StatementImpl.html#toString() – Rhand

+0

的主语,谓语和对象(其是所有亚型'Value')也都有一个可打印的'toString()'。 –

+0

Thanks @Rhand,我已经更新了答案。 –