Jenaを使用してfloat
,int
またはdate
などの数値をResource
に追加するにはどうすればよいですか?Jena:プロパティに数値を追加する方法は?
私はresource.addProperty(Property, String, RDFDataType)
を使用しなければならないと仮定しますが、上記のデータ型に対して正しいRDFDataTypeをインスタンス化するにはどうすればよいですか?
Jenaを使用してfloat
,int
またはdate
などの数値をResource
に追加するにはどうすればよいですか?Jena:プロパティに数値を追加する方法は?
私はresource.addProperty(Property, String, RDFDataType)
を使用しなければならないと仮定しますが、上記のデータ型に対して正しいRDFDataTypeをインスタンス化するにはどうすればよいですか?
型付きリテラルの '公式' のドキュメントはこちらです: http://incubator.apache.org/jena/documentation/notes/typed-literals.html
あなたはaddLiteralを使用することができますし、例えば、イエナモデルのメソッドを追加:
Model model = ...
model.addLiteral (subject, predicate, 10);
model.addLiteral (subject, predicate, 0.5);
model.addLiteral (subject, predicate, (float)0.5);
model.addLiteral (subject, predicate, ResourceFactory.createTypedLiteral(20));
model.addLiteral (subject, predicate, ResourceFactory.createTypedLiteral(0.99));
model.addLiteral (subject, predicate, true);
model.add (subject, predicate, ResourceFactory.createTypedLiteral("2012-03-11", XSDDatatype.XSDdate));
model.add (subject, predicate, ResourceFactory.createTypedLiteral("P2Y", XSDDatatype.XSDduration));
RDFDatatypeはインターフェイスなので、直接インスタンス化することはできません。しかし、そのインタフェースを実装しているクラスを見てください。 XSDDatatypeはそのクラスの1つです。他にもあります。
完全な例をご覧になりたい場合は、ここをクリックしてください: https://github.com/castagna/jena-examples/blob/master/src/main/java/org/apache/jena/examples/ExampleDataTypes_01.java ExampleDataTypes_01.javaの出力は、次のRDF(Turtleフォーマットを使用してシリアライズされたもの)です。
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix example: <http://example.org/> .
example:s
example:p1 "10"^^xsd:int ;
example:p2 "0.5"^^xsd:double ;
example:p3 "0.5"^^xsd:float ;
example:p4 "20"^^xsd:int ;
example:p5 "0.99"^^xsd:double ;
example:p6 "true"^^xsd:boolean ;
example:p7 "2012-03-11"^^xsd:date ;
example:p8 "P2Y"^^xsd:duration .