{"id":36548,"date":"2023-10-07T00:45:44","date_gmt":"2023-02-07T20:30:24","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/"},"modified":"2024-05-04T03:10:37","modified_gmt":"2024-05-03T19:10:37","slug":"%e5%85%b3%e4%ba%8eapache-jena-ontology-api","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/","title":{"rendered":"\u5173\u4e8eApache Jena Ontology API"},"content":{"rendered":"<h1>\u5229\u7528Apache Jena\u8fdb\u884c\u672c\u4f53\u8bba\u7684\u4f7f\u7528<\/h1>\n<p>\u636e\u8bf4\uff0cApache Jena\u662f\u4e00\u4e2a\u4e0eRDF4J\u5e76\u5217\u5e7f\u6cdb\u4f7f\u7528\u7684RDF\u5e93\u3002\u867d\u7136Jena\u7684\u529f\u80fd\u66f4\u591a\uff0c\u4f46\u5b66\u4e60\u8d77\u6765\u76f8\u5bf9\u56f0\u96be\u3002<\/p>\n<p>\u5b9e\u9645\u4e0a\uff0c\u82e5\u53ea\u662f\u521b\u5efa\u666e\u901a\u7684RDF\uff0c\u76f8\u5f53\u5bb9\u6613\u3002\u4f46\u662f\uff0c\u4e00\u65e6\u6d89\u53ca\u5230\u5904\u7406OWL\u7b49\u672c\u4f53\u8bba\uff0c\u7a81\u7136\u611f\u89c9\u96be\u5ea6\u589e\u52a0\u4e86\u5f88\u591a\u3002<\/p>\n<p>\u5728Apache Jena\u4e2d\uff0c\u63d0\u4f9b\u4e86\u5904\u7406RDFS\u3001OWL\u7b49\u7684\u4e00\u81f4API\u3002\u8003\u8651\u5230\u65e5\u8bed\u8d44\u6e90\u76f8\u5bf9\u8f83\u5c11\uff0c\u56e0\u6b64\u5728\u6b64\u7559\u4e0b\u5907\u5fd8\u5f55\u3002<\/p>\n<h1>Ontology API\u7684\u57fa\u672c\u77e5\u8bc6<\/h1>\n<p>OWL\u53ef\u4ee5\u88ab\u89c6\u4e3aRDFS\uff08RDF Schema\uff09\u7684\u8d85\u96c6\uff0c\u53ef\u4ee5\u8868\u793a\u5927\u90e8\u5206\u53ef\u4ee5\u4f7f\u7528RDFS\u8868\u793a\u7684\u5185\u5bb9\u3002\u4f8b\u5982\uff0cRDF\u5c5e\u6027\u53ef\u4ee5\u88ab\u5c42\u6b21\u5316\u8868\u793a\uff0c\u4f46\u662f\u5728OWL\u5c5e\u6027\u4e2d\u53ef\u4ee5\u6269\u5c55\u4e3a\u53ef\u4f20\u9012\u3001\u8bed\u4e49\u3001\u529f\u80fd\u7b49\u3002\u6b64\u5916\uff0c\u8fd8\u53ef\u4ee5\u63cf\u8ff0\u76f8\u4e92\uff08\u9006\uff09\u5173\u7cfb\u3002<\/p>\n<p>\u987a\u4fbf\u63d0\u4e00\u4e0b\uff0cOWL\u6709\u4e24\u4e2a\u7248\u672c\uff1a\u57fa\u4e8e\u63cf\u8ff0\u903b\u8f91\u8fdb\u884c\u4e25\u683c\u7c7b\u578b\u533a\u5206\u7684OWL DL\uff0c\u4ee5\u53ca\u4e13\u6ce8\u4e8e\u5b9e\u7528\u672c\u4f53\u6784\u5efa\u7684OWL Full\u3002\u6b64\u5916\uff0c\u8fd8\u63d0\u4f9b\u4e86\u66f4\u6613\u4e8e\u5b9e\u73b0\u7684OWL DL\u5b50\u96c6\uff0c\u5373OWL Lite\u3002<\/p>\n<p>\u4f7f\u7528\u672c\u4f53\u8bba\u7684\u597d\u5904\u662f\u53ef\u4ee5\u4f7f\u7528\u63a8\u7406\u5668\u5bf9\u6570\u636e\u8fdb\u884c\u63a8\u65ad\u3002Jena\u63d0\u4f9b\u4e86\u63a8\u7406API\uff0c\u53ef\u4ee5\u4f7f\u7528\u5404\u79cd\u63a8\u7406\u5f15\u64ce\u3002<\/p>\n<p>\u57fa\u672c\u7c7b\u662fOntClass\uff0c\u5728\u8fd9\u4e2a\u7c7b\u4e2d\u53ef\u4ee5\u8868\u793a\u5404\u79cd\u6a21\u5f0f\uff08\u914d\u7f6e\u6587\u4ef6\uff09\u3002\u8fd9\u4e2a\u7c7b\u6269\u5c55\u4e86Jena\u7684Model\u7c7b\uff0c\u5e76\u5b9a\u4e49\u4e86\u5728\u672c\u4f53\u4e2d\u89c4\u5b9a\u7684\u7ea6\u675f\uff08\u6784\u5efa\uff09\u3002\u5177\u4f53\u6765\u8bf4\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u4f7f\u7528\u5de5\u5382\u65b9\u6cd5\u751f\u6210\u3002<\/p>\n<pre class=\"post-pre\"><code>OntModel m = ModelFactory.createOntologyModel();\r\n<\/code><\/pre>\n<p>\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u5c06\u4f7f\u7528\u9ed8\u8ba4\u8bbe\u7f6e\uff08OWL-Full\u3001In-Memory\u3001RDFS\u63a8\u7406\uff09\u8fdb\u884c\u751f\u6210\u3002\u7531\u4e8e\u901a\u5e38\u4f1a\u6709\u5f88\u5927\u8d1f\u8f7d\uff0c\u6240\u4ee5\u5e94\u4f7f\u7528\u5408\u9002\u7684\u8bbe\u7f6e\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u8bf7\u8f93\u5165OntModelSpec\u4f5c\u4e3a\u53c2\u6570\u3002\u5982\u4e0b\u6240\u793a\u3002\u5173\u4e8e\u8981\u4f7f\u7528\u7684\u8bed\u8a00\u914d\u7f6e\u6587\u4ef6\uff08OWL Full\u3001OWL DL\u3001OWL Lite\u3001RDFS\uff09\uff0c\u4e5f\u53ef\u4ee5\u5728\u6b64\u53c2\u6570\u4e2d\u8fdb\u884c\u8bbe\u7f6e\u3002\u670916\u4e2a\u914d\u7f6e\u6587\u4ef6\u53ef\u4f9b\u9009\u62e9\u3002\u8bf7\u5177\u4f53\u53c2\u8003API\u6587\u6863\u3002<\/p>\n<pre class=\"post-pre\"><code>OntModel m = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM);\r\n<\/code><\/pre>\n<p>\u5728Jena\u7684\u672c\u4f53\u6a21\u578b\u4e2d\uff0c\u5982\u679c\u8981\u5904\u7406\u591a\u4e2a\u672c\u4f53\uff0c\u5219\u9700\u8981\u5177\u6709\u5bfc\u5165\u6a21\u578b\u96c6\u5408\u7684\u529f\u80fd\u3002\u4e0e\u4e00\u822c\u7684Jena\u4f7f\u7528\u65b9\u5f0f\u76f8\u540c\uff0c\u5bfc\u5165\u672c\u4f53\u65f6\u4e5f\u4f7f\u7528read\u65b9\u6cd5\u3002<\/p>\n<pre class=\"post-pre\"><code>read( String url )\r\nread( Reader reader, String base )\r\nread( InputStream reader, String base )\r\nread( String url, String lang )\r\nread( Reader reader, String base, String Lang )\r\nread( InputStream reader, String base, String Lang )\r\n<\/code><\/pre>\n<p>\u5f53\u52a0\u8f7d\u672c\u4f53\u65f6\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4f1a\u5305\u542b\u5176\u81ea\u8eab\u7684\u5f15\u7528URI\u3002 \u5177\u4f53\u800c\u8a00\uff0c\u7528rdf:about\u6307\u5b9a\u7684URI\u3002 \u5728\u5b98\u65b9\u7f51\u7ad9\u7684\u793a\u4f8b\u4e2d\u4ecb\u7ecd\u5982\u4e0b\u3002 \u4f7f\u7528owl:import\u5f15\u7528\u548c\u52a0\u8f7d\u7684\u672c\u4f53\u88ab\u6307\u793a\u51fa\u6765\u3002 &#8220;dc&#8221;\u662f\u6307Dublin Core\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>&lt;owl:Ontology rdf:about=\"\"&gt;\r\n  &lt;dc:creator rdf:value=\"Ian Dickinson\" \/&gt;\r\n  &lt;owl:imports rdf:resource=\"http:\/\/jena.apache.org\/examples\/example-ont\" \/&gt;\r\n&lt;\/owl:Ontology&gt;\r\n<\/code><\/pre>\n<p>\u88ab\u5982\u6b64\u52a0\u8f7d\u7684\u672c\u4f53\u88ab\u4fdd\u7559\u4e3a\u4e0d\u540c\u7684\u56fe\u7ed3\u6784\u3002\u5982\u679c\u6709\u591a\u4e2a\u88ab\u52a0\u8f7d\uff0c\u5b83\u4eec\u5c06\u4f5c\u4e3a\u8054\u5408\u56fe\u88ab\u6574\u5408\u5e76\u7531\u63a8\u7406\u5668\u5f15\u7528\u3002<\/p>\n<p>\u6709\u8bb8\u591a\u9009\u9879\u53ef\u4ee5\u7528\u4e8e\u4f7f\u7528\u8fd9\u4e9b\u672c\u4f53\u8bba\u8fdb\u884cRDF\u6301\u4e45\u5316\u7b49\u65b9\u9762\u3002\u5b98\u65b9\u7f51\u7ad9\u63d0\u4f9b\u4e86\u4ee5\u4e0b\u793a\u4f8b\u3002OntDocumentManager\u662f\u4e00\u4e2a\u8f85\u52a9\u5904\u7406\u672c\u4f53\u8bba\u7684\u6a21\u5757\uff0c\u5728\u5176\u4e2d\u8c03\u7528addAltEntry\u65b9\u6cd5\u3002\u5b83\u63cf\u8ff0\u4e86\u5c06\u4ece\u4e92\u8054\u7f51\u4e0a\u83b7\u53d6\u7684ESWC\u672c\u4f53\u8bba\u590d\u5236\u5230\u672c\u5730RDF\u5e76\u8fdb\u884c\u5904\u7406\u7684\u8fc7\u7a0b\u3002\u8981\u8bb0\u4f4f\u6240\u6709\u8fd9\u4e9b\u5185\u5bb9\u786e\u5b9e\u5f88\u56f0\u96be\u554a\u3002\u3002\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nc\">OntModel<\/span> <span class=\"n\">m<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">ModelFactory<\/span><span class=\"o\">.<\/span><span class=\"na\">createOntologyModel<\/span><span class=\"o\">();<\/span>\r\n<span class=\"nc\">OntDocumentManager<\/span> <span class=\"n\">dm<\/span> <span class=\"o\">=<\/span> <span class=\"n\">m<\/span><span class=\"o\">.<\/span><span class=\"na\">getDocumentManager<\/span><span class=\"o\">();<\/span>\r\n<span class=\"n\">dm<\/span><span class=\"o\">.<\/span><span class=\"na\">addAltEntry<\/span><span class=\"o\">(<\/span> <span class=\"s\">\"http:\/\/www.eswc2006.org\/technologies\/ontology\"<\/span><span class=\"o\">,<\/span>\r\n                <span class=\"s\">\"file:\"<\/span> <span class=\"o\">+<\/span> <span class=\"no\">JENA<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"src\/examples\/resources\/eswc-2006-09-21.rdf\"<\/span> <span class=\"o\">);<\/span>\r\n<span class=\"n\">m<\/span><span class=\"o\">.<\/span><span class=\"na\">read<\/span><span class=\"o\">(<\/span> <span class=\"s\">\"http:\/\/www.eswc2006.org\/technologies\/ontology\"<\/span> <span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h1>\u5728Scala\u4e0a\u7684\u7ec3\u4e60<\/h1>\n<p>\u4f3c\u4e4e\u5728\u4e16\u754c\u4e0a\u6709\u4e00\u79cd\u540d\u4e3a banana-rdf \u7684 Scala \u539f\u751f\u5b9e\u73b0\uff0c\u4f46\u7531\u4e8e\u7f3a\u4e4f\u8be6\u7ec6\u6587\u6863\uff0c\u6211\u60f3\u5c1d\u8bd5\u4f7f\u7528 Scala \u5c01\u88c5 Jena\u3002<\/p>\n<p>\u8fd9\u6b21\u6211\u5c06\u7528Ammonite\u5728REPL\u4e2d\u5199\u4e0b\u6b65\u9aa4\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\">\/\/ Jena\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nn\">$ivy.<\/span><span class=\"n\">`org.apache.jena:jena-core:3.8.0`<\/span>\r\n\r\n<span class=\"k\">import<\/span> <span class=\"nn\">scala.collection.JavaConverters._<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nn\">org.apache.jena.rdf.model._<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nn\">org.apache.jena.ontology.OntModelSpec._<\/span>\r\n\r\n<span class=\"c1\">\/\/ \u30d9\u30fc\u30b9\u30e2\u30c7\u30eb\u3092\u751f\u6210<\/span>\r\n<span class=\"k\">val<\/span> <span class=\"nv\">SOURCE<\/span> <span class=\"k\">=<\/span> <span class=\"s\">\" http:\/\/rdfs.org\/sioc\/ns\"<\/span>\r\n<span class=\"k\">val<\/span> <span class=\"nv\">NS<\/span> <span class=\"k\">=<\/span> <span class=\"nc\">SOURCE<\/span>  <span class=\"o\">+<\/span> <span class=\"s\">\"#\"<\/span>\r\n<span class=\"k\">val<\/span> <span class=\"nv\">base<\/span> <span class=\"k\">=<\/span> <span class=\"nv\">ModelFactory<\/span><span class=\"o\">.<\/span><span class=\"py\">createOntologyModel<\/span><span class=\"o\">(<\/span><span class=\"nc\">OWL_MEM<\/span><span class=\"o\">)<\/span>\r\n<span class=\"nv\">base<\/span><span class=\"o\">.<\/span><span class=\"py\">read<\/span><span class=\"o\">(<\/span><span class=\"nc\">SOURCE<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"RDF\/XML\"<\/span><span class=\"o\">)<\/span>\r\n\r\n<span class=\"c1\">\/\/ \u30d9\u30fc\u30b9\u30e2\u30c7\u30eb\u306b\u3088\u308b\u63a8\u8ad6\u30e2\u30c7\u30eb\u3092\u751f\u6210<\/span>\r\n<span class=\"k\">val<\/span> <span class=\"nv\">inf<\/span> <span class=\"k\">=<\/span> <span class=\"nv\">ModelFactory<\/span><span class=\"o\">.<\/span><span class=\"py\">createOntologyModel<\/span><span class=\"o\">(<\/span><span class=\"nc\">OWL_MEM_MICRO_RULE_INF<\/span><span class=\"o\">,<\/span> <span class=\"n\">base<\/span><span class=\"o\">)<\/span>\r\n\r\n<span class=\"k\">val<\/span> <span class=\"nv\">user<\/span> <span class=\"k\">=<\/span> <span class=\"nv\">base<\/span><span class=\"o\">.<\/span><span class=\"py\">getOntClass<\/span><span class=\"o\">(<\/span><span class=\"nc\">NS<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"UserAccont\"<\/span><span class=\"o\">)<\/span>\r\n<span class=\"k\">val<\/span> <span class=\"nv\">u1<\/span> <span class=\"k\">=<\/span> <span class=\"nv\">base<\/span><span class=\"o\">.<\/span><span class=\"py\">createIndividual<\/span><span class=\"o\">(<\/span><span class=\"nc\">NS<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"user1\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">user<\/span><span class=\"o\">)<\/span>\r\n<span class=\"nv\">u1<\/span><span class=\"o\">.<\/span><span class=\"py\">listRDFTypes<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">).<\/span><span class=\"py\">toList<\/span><span class=\"o\">.<\/span><span class=\"py\">asScala<\/span><span class=\"o\">.<\/span><span class=\"py\">foreach<\/span><span class=\"o\">{<\/span><span class=\"n\">`type`<\/span> <span class=\"k\">=&gt;<\/span> <span class=\"nf\">println<\/span><span class=\"o\">(<\/span> <span class=\"nv\">c1<\/span><span class=\"o\">.<\/span><span class=\"py\">getURI<\/span><span class=\"o\">()<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" is asserted in class \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">`type`<\/span><span class=\"o\">}<\/span>\r\n<span class=\"c1\">\/\/ http:\/\/rdfs.org\/sioc\/ns#account1 is asserted in class http:\/\/rdfs.org\/sioc\/ns#UserAccount<\/span>\r\n\r\n<span class=\"k\">val<\/span> <span class=\"nv\">inf_user<\/span> <span class=\"k\">=<\/span> <span class=\"nv\">inf<\/span><span class=\"o\">.<\/span><span class=\"py\">getIndividual<\/span><span class=\"o\">(<\/span><span class=\"nc\">NS<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"user1\"<\/span><span class=\"o\">)<\/span>\r\n<span class=\"nv\">inf_user<\/span><span class=\"o\">.<\/span><span class=\"py\">listRDFTypes<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">).<\/span><span class=\"py\">toList<\/span><span class=\"o\">.<\/span><span class=\"py\">asScala<\/span><span class=\"o\">.<\/span><span class=\"py\">foreach<\/span><span class=\"o\">{<\/span><span class=\"n\">`type`<\/span> <span class=\"k\">=&gt;<\/span> <span class=\"nf\">println<\/span><span class=\"o\">(<\/span> <span class=\"nv\">inf_user<\/span><span class=\"o\">.<\/span><span class=\"py\">getURI<\/span><span class=\"o\">()<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" is asserted in class \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">`type`<\/span><span class=\"o\">}<\/span>\r\n<span class=\"c1\">\/\/ http:\/\/rdfs.org\/sioc\/ns#account1 is asserted in class http:\/\/rdfs.org\/sioc\/ns#UserAccount <\/span>\r\n<span class=\"c1\">\/\/ http:\/\/rdfs.org\/sioc\/ns#account1 is asserted in class http:\/\/rdfs.org\/sioc\/ns#User<\/span>\r\n<\/code><\/pre>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u4f1a\u4ece\u7f51\u7edc\u4e0a\u83b7\u53d6\u672c\u4f53\uff0c\u5e76\u8fdb\u884c\u52a0\u8f7d\u3002<br \/>\n\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f1a\u53c2\u8003\u672c\u4f53\u7684\u7c7b\u6765\u521b\u5efaIndividual\uff08\u901a\u8fc7getOntClass\u7684\u90e8\u5206\uff09\uff0c\u7136\u540e\u901a\u8fc7createIndividual\u8fdb\u884c\u521b\u5efa\u3002<br \/>\n\u6700\u540e\u4e00\u90e8\u5206\u662f\u901a\u8fc7\u4f7f\u7528\u751f\u6210\u7684Individual\u7684URI\u8fdb\u884c\u63a8\u7406\u3002listRDFTypes\u7684\u5e03\u5c14\u53c2\u6570\u7528\u4e8e\u8868\u793a\u5b83\u662f\u5426\u76f4\u63a5\uff08Direct\uff09\u5f15\u7528\u4e86\u7c7b\u3002\u5728\u4e0a\u9762\u7684\u6ce8\u91ca\u4e2d\u7684\u8f93\u51fa\u4e2d\uff0c\u663e\u793a\u4e86\u4e24\u4e2a\u7c7b\uff0c\u4f46\u5982\u679c\u53c2\u6570\u4e3afalse\uff0c\u5219\u53ef\u4ee5\u83b7\u5f97\u4ee5\u4e0b\u8f93\u51fa\u3002\u4f60\u5e94\u8be5\u5927\u81f4\u7406\u89e3\u4e86\u610f\u601d\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>http:\/\/rdfs.org\/sioc\/ns#account1 is asserted in class http:\/\/rdfs.org\/sioc\/ns#UserAccount\r\nhttp:\/\/rdfs.org\/sioc\/ns#account1 is asserted in class http:\/\/rdfs.org\/sioc\/ns#User\r\nhttp:\/\/rdfs.org\/sioc\/ns#account1 is asserted in class http:\/\/www.w3.org\/2002\/07\/owl#Thing\r\nhttp:\/\/rdfs.org\/sioc\/ns#account1 is asserted in class http:\/\/www.w3.org\/2000\/01\/rdf-schema#Resource\r\nhttp:\/\/rdfs.org\/sioc\/ns#account1 is asserted in class http:\/\/xmlns.com\/foaf\/0.1\/OnlineAccount\r\n<\/code><\/pre>\n<p>\u6b64\u5916\uff0c\u8fd8\u6709\u5f88\u591a\u5176\u4ed6\u9700\u8981\u8bb0\u4f4f\u7684\u4e1c\u897f\uff0c\u4f8b\u5982\u5c5e\u6027\u63cf\u8ff0\u548c\u7ea6\u675f\u6761\u4ef6\u7684\u63cf\u8ff0\u7b49\u7b49\u3002\u65e0\u8bba\u5982\u4f55\uff0c\u901a\u8fc7\u4f7f\u7528Ontorogy API\uff0c\u6211\u4eec\u53ef\u4ee5\u53d1\u73b0\u53ef\u4ee5\u5229\u7528\u65e2\u6709\u7684\u672c\u4f53\u8fdb\u884c\u5404\u79cd\u63a8\u7406\u3002<\/p>\n<p>\u4eca\u5929\u5230\u6b64\u4e3a\u6b62\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5229\u7528Apache Jena\u8fdb\u884c\u672c\u4f53\u8bba\u7684\u4f7f\u7528 \u636e\u8bf4\uff0cApache Jena\u662f\u4e00\u4e2a\u4e0eRDF4J\u5e76\u5217\u5e7f\u6cdb\u4f7f\u7528\u7684RDF [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-36548","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5173\u4e8eApache Jena Ontology API - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5173\u4e8eapache-jena-ontology-api\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5173\u4e8eApache Jena Ontology API\" \/>\n<meta property=\"og:description\" content=\"\u5229\u7528Apache Jena\u8fdb\u884c\u672c\u4f53\u8bba\u7684\u4f7f\u7528 \u636e\u8bf4\uff0cApache Jena\u662f\u4e00\u4e2a\u4e0eRDF4J\u5e76\u5217\u5e7f\u6cdb\u4f7f\u7528\u7684RDF [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5173\u4e8eapache-jena-ontology-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-07T20:30:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-03T19:10:37+00:00\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/\",\"name\":\"\u5173\u4e8eApache Jena Ontology API - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-02-07T20:30:24+00:00\",\"dateModified\":\"2024-05-03T19:10:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5173\u4e8eApache Jena Ontology API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5173\u4e8eApache Jena Ontology API - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5173\u4e8eapache-jena-ontology-api\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5173\u4e8eApache Jena Ontology API","og_description":"\u5229\u7528Apache Jena\u8fdb\u884c\u672c\u4f53\u8bba\u7684\u4f7f\u7528 \u636e\u8bf4\uff0cApache Jena\u662f\u4e00\u4e2a\u4e0eRDF4J\u5e76\u5217\u5e7f\u6cdb\u4f7f\u7528\u7684RDF [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5173\u4e8eapache-jena-ontology-api\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-02-07T20:30:24+00:00","article_modified_time":"2024-05-03T19:10:37+00:00","author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/","name":"\u5173\u4e8eApache Jena Ontology API - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-02-07T20:30:24+00:00","dateModified":"2024-05-03T19:10:37+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5173\u4e8eApache Jena Ontology API"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%85%b3%e4%ba%8eapache-jena-ontology-api\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=36548"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36548\/revisions"}],"predecessor-version":[{"id":95759,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36548\/revisions\/95759"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=36548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=36548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=36548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}