Эти материалы помечены как "окончательные". Показать Ответов: 3
Scaling should not be an issue. Defining an instance for every class would at worst double the number of triples (if every triple contained a class for which you will be defining an instance). Entailing and querying will of course be a little slower with double the data, but since the Oracle RDF store scales well, the slow down in performance will not be directly proportional to the fact that the number of triples doubled. Depending on the absolute number of triples, queries will be slightly slower but barely so. With the type of queries you have outlined above there is likely to be no noticeable difference because of the internal indexes that are built on the data.
I would also be curious to know whether other alternatives have been tried by other users.
I wonder whether the usage of user-defined rules available in Oracle RDF would help. For instance, defining a rule that:
(osgb1 hasForm Heath) and (Heath subClassOf Vegetation)
=> (osgb1 hasForm Vegetation)
and a transitive property rule:
(Heath subClassOf Vegetation) and (Vegetation subClassOf Land)
=> (Heath subClassOf Land)
I wonder whether this makes sense with the semantics you have in mind for your data?
This is exactly what OWL is for and exactly the problem I have. How long until Oracle rolls out OWL support in queries?
Support for a subset of OWL are planned in the next release, which will be later this year. Please see the post at Oracle 11g and changes in RDF support? for some details on what is planned.