{"action":"created","issue":{"url":"https://api.github.com/repos/Nashev/TextBrain/issues/24","repository_url":"https://api.github.com/repos/Nashev/TextBrain","labels_url":"https://api.github.com/repos/Nashev/TextBrain/issues/24/labels{/name}","comments_url":"https://api.github.com/repos/Nashev/TextBrain/issues/24/comments","events_url":"https://api.github.com/repos/Nashev/TextBrain/issues/24/events","html_url":"https://github.com/Nashev/TextBrain/issues/24","id":26447461,"number":24,"title":"Выгрузка элементов знания из памяти и их адресация в таких условиях","user":{"login":"Nashev","id":190140,"avatar_url":"https://avatars.githubusercontent.com/u/190140?v=3","gravatar_id":"","url":"https://api.github.com/users/Nashev","html_url":"https://github.com/Nashev","followers_url":"https://api.github.com/users/Nashev/followers","following_url":"https://api.github.com/users/Nashev/following{/other_user}","gists_url":"https://api.github.com/users/Nashev/gists{/gist_id}","starred_url":"https://api.github.com/users/Nashev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nashev/subscriptions","organizations_url":"https://api.github.com/users/Nashev/orgs","repos_url":"https://api.github.com/users/Nashev/repos","events_url":"https://api.github.com/users/Nashev/events{/privacy}","received_events_url":"https://api.github.com/users/Nashev/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Nashev/TextBrain/labels/Internal%20code%20architecture","name":"Internal code architecture","color":"009800"},{"url":"https://api.github.com/repos/Nashev/TextBrain/labels/Knowledge%20types","name":"Knowledge types","color":"eb6420"}],"state":"open","locked":false,"assignee":{"login":"Nashev","id":190140,"avatar_url":"https://avatars.githubusercontent.com/u/190140?v=3","gravatar_id":"","url":"https://api.github.com/users/Nashev","html_url":"https://github.com/Nashev","followers_url":"https://api.github.com/users/Nashev/followers","following_url":"https://api.github.com/users/Nashev/following{/other_user}","gists_url":"https://api.github.com/users/Nashev/gists{/gist_id}","starred_url":"https://api.github.com/users/Nashev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nashev/subscriptions","organizations_url":"https://api.github.com/users/Nashev/orgs","repos_url":"https://api.github.com/users/Nashev/repos","events_url":"https://api.github.com/users/Nashev/events{/privacy}","received_events_url":"https://api.github.com/users/Nashev/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2014-01-28T15:10:07Z","updated_at":"2016-05-13T17:06:43Z","closed_at":null,"body":"Наверно стоит, делая #6, в памяти не хранить имена вместо указателей на выгруженные элементы, а подменять указатели указателями на знания-заглушки, которые будут помнить, где искать на диске сам элемент знания.\r\n\r\nСоответственно, при обращении к элементу - иметь ввиду, что он может быть выгружен, и если правильно обратиться к его содержимому, оно будет подгружено.\r\n\r\nТо есть, при варианте с заглушками, адрес элемента может поменяться с адреса заглушки на адрес самого элемента. То есть, при обращении по указателю link надо делать что-то типа link := link.actualize;, а при выгрузке элемента из памяти - перебирать все линки по списку ссылающихся, и подменять их на оставляемую вместо элемента заглушку.\r\n\r\nС другой стороны, наверно проще иметь у элемента знания отделяемое содержимое, а при выгрузке - в качестве заглушки оставлять его самого же, но без содержимого. То есть выгружать лишь внутренности. Или иметь их отделяемыми, а сам элемент знания - лишь пустой обёрткой вокруг них, с механизмом загрузки-выгрузки.\r\n\r\nК внутренностям относятся связи элемента и всё что ещё ему там надо, к обёртке - идентификатор и имя класса внутренностей.\r\n\r\nТо есть, выгруженный элемент знаний не знает, кто на него ссылается?... хм. Наверно, нужно чтобы выгруженный - он помнил список лишь тех ссылающихся, которые есть в памяти, и нужны кому-то ещё, а загруженный - будет помнить полный список, находя или создавая незагруженными для его работы адресуемые элементы, нужные ему самому."},"comment":{"url":"https://api.github.com/repos/Nashev/TextBrain/issues/comments/219102210","html_url":"https://github.com/Nashev/TextBrain/issues/24#issuecomment-219102210","issue_url":"https://api.github.com/repos/Nashev/TextBrain/issues/24","id":219102210,"user":{"login":"Nashev","id":190140,"avatar_url":"https://avatars.githubusercontent.com/u/190140?v=3","gravatar_id":"","url":"https://api.github.com/users/Nashev","html_url":"https://github.com/Nashev","followers_url":"https://api.github.com/users/Nashev/followers","following_url":"https://api.github.com/users/Nashev/following{/other_user}","gists_url":"https://api.github.com/users/Nashev/gists{/gist_id}","starred_url":"https://api.github.com/users/Nashev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nashev/subscriptions","organizations_url":"https://api.github.com/users/Nashev/orgs","repos_url":"https://api.github.com/users/Nashev/repos","events_url":"https://api.github.com/users/Nashev/events{/privacy}","received_events_url":"https://api.github.com/users/Nashev/received_events","type":"User","site_admin":false},"created_at":"2016-05-13T17:06:43Z","updated_at":"2016-05-13T17:06:43Z","body":"--------------------------------------------------------------------------------\r\nк #53: В контексте RDF, элемент знания - это URI\r\nЕго свойства и связи - это триплеты, у которых субъектом этот URI, а объектами и предикатами всё остальное.\r\nНабор триплетов элемента можно хранить в файле элемента.\r\n\r\nПредикаты для триплетов-связей элементов как правило имеют встречные предикаты. Таким образом, если создаётся триплет \"элемент1 - ссылается на - элемент2\", можно дублировать эту связь для элемента2, записав ему триплет вида \"на элемент2 - ссылается - элемент1\". "}}