是否有可能在rdf4j过滤模型的rdf:id
?我已经尝试以下方法:rdf4j过滤器模型的rdf:id
model.filter(res, null, null)
但有了这个,我也得到rdf:resource
和rdf:about
所有出现。此刻,我首先筛选整个模型,查找所有需要的类型(返回一个模型)。然后我过滤这款型号为资源,与该资源,我筛选了整个模型所需要的模型的一部分:
Model typeModel = model.filter(null, RDF.TYPE, iri);
// the following obj contains only the id (found in an rdf:about or rdf:resource)
// normally I also do some checks before .iterator().next()
Resource res = typeModel.filter((Resource) obj, null, null).subjects().iterator().next();
Model resModel = model.filter(res, null, null);
我觉得我的解决方案创造了太多的开销,因为我还需要为每一个typeModel
类型。是否有另一种方法来过滤rdf:id
的模型?
UPDATE:
下面是一个简单的例子:我需要与Terminal.ConductingEquipment
的rdf:resource
的帮助下找到了ACLineSegment
。
<cim:Terminal rdf:ID="_8fd6a918-5a8d-42f2-ae19-3ee77bc76911">
<cim:ACDCTerminal.sequenceNumber>2</cim:ACDCTerminal.sequenceNumber>
<cim:IdentifiedObject.name>XXXX</cim:IdentifiedObject.name>
<cim:Terminal.ConductingEquipment rdf:resource="#_50c99578-6e17-45e1-a113-a4a28d643b40" />
<cim:Terminal.ConnectivityNode rdf:resource="#_eefd8021-6f56-4154-9b2b-9e275c0f43d0" />
<cim:Terminal.phases rdf:resource="http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode.ABC" />
</cim:Terminal>
<cim:ACLineSegment rdf:ID="_50c99578-6e17-45e1-a113-a4a28d643b40">
<cim:ACLineSegment.b0ch>5.44828e-5</cim:ACLineSegment.b0ch>
<cim:ACLineSegment.bch>5.44828e-5</cim:ACLineSegment.bch>
....
</cim:ACLineSegment>
'rdf:id'不是RDF数据模型的一部分,而是RDF/XML序列化的一部分。你想过滤RDF三元组的主题,对吗?或者总体目标是什么? – AKSW
也许提供一些样本数据,你期望得到什么,以及你目前得到什么也是很好的。 – AKSW
我更新了这个问题,我希望现在更清楚。 –