Получение всех предков rdf:Class

Если Вы будете на самом деле хороши в написании неуправляемого кода, то Вы, вероятно, сможете записать более быстрый графический механизм сверху DirectX. Однако для человека, увлеченного своим хобби, XNA имеет много из производительности, и для 2D и 3D разработки игр.

Вот хорошее видео Канала 9 , куда они выполняют XNA-созданную мчащуюся игру на Xbox 360. Это работает хорошо даже в full HD. Несколько из игр Xbox Live Arcade были разработаны сообществом XNA.

До C# DirectX, как, который я вспоминаю, Управляемый DirectX, как это назвали, официально больше не поддерживается, так как XNA в основном заменяет его. Я мог быть неправым, его очень долгое время, так как я посмотрел на него.

различия в производительности незначительны между XNA и Управляемым DirectX с тех пор, в сущности они - то же самое; XNA просто имеет несколько битов удобства для сокращения объема шаблона, кода Вас, должен записать.

5
задан Pierre 22 September 2009 в 07:47
поделиться

3 ответа

Если вы уже используете Jena, вы можете использовать механизм запросов Pellet SPARQL-DL , который должен позволить вам опрашивать людей с учетом онтологии.

В качестве альтернативы, вы можете использовать Jena's InfModel вместо интерфейса Model , прикрепив к нему аргумент (и онтологию), а затем запустите запрос, упомянутый RobV. Вы можете использовать для этого рассуждения Пеллета , если хотите. Вам не нужно использовать OntModel , если вы просто хотите рассуждать.

4
ответ дан 13 December 2019 в 22:11
поделиться

1) Haven't used Jena much, but its OntTools class seems to contain functions for lowest common ancestor. If the least common ancestor of HomoSapiens and Mammal is Mammal, then HomoSapiens is a Mammal. Under the hood it uses recursive subClassOf retrieval though.

2) In the generic case, no, SPARQL does not support arbitrary depth tree traversal. But if you know the maximum depth of the subClassOf tree, then you can construct a query like

ASK {
  OPTIONAL {
    :HomoSapiens rdfs:subClassOf :Mammal
  }
  OPTIONAL {
    :HomoSapiens rdfs:subClassOf ?c .
    ?c rdfs:subClassOf :Mammal
  }
  OPTIONAL {
    :HomoSapiens rdfs:subClassOf ?c1 .
    ?c1 rdfs:subClassOf ?c2 .
    ?c2 rdfs:subClassOf :Mammal
  }

  # ... add
}
3
ответ дан 13 December 2019 в 22:11
поделиться

Лаалто прав, практически любая библиотека семантической паутины будет делать это через рекурсивное извлечение subClassOf. Единственный способ обойти это - иметь какой-то механизм вывода / рассуждения, который добавлял бы дополнительные тройки к графику по мере анализа исходного графика

Так, например, он автоматически добавлял бы следующее:

<my:Eukaryota> <rdf:type> <my:Organism>.
<my:Mammal> <rdf:type> <my:Organism>.
<my:Mammal> <rdf:type> <my:Eukaryota>.
<my:Primate> <rdfs:type> <my:Organism>.
<my:Primate> <rdfs:type> <my:Eukaryota>.
<my:Primate> <rdfs:type> <my:Mammal>.
# etc...

Как вы это делаете в Йене я не уверен, кто-то другой, кто знает Йену, должен будет ответить на этот вопрос.

Что касается SPARQL, laalto снова полностью верен, хотя в некоторых случаях вы могли бы выполнить простой запрос, подобный следующему, если тройной Хранилище и связанная с ним конечная точка SPARQL, которую вы запрашиваете, имеют некоторые возможности вывода

PREFIX my: <http://yournamespace.com>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
ASK { my:HomoSapiens rdf:type my:Mammal }
2
ответ дан 13 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: