سؤال

لدي جينا الأنطولوجيا نموذج (OntModel) وأنا تعديل برمجيا.هذا نموذج تم إنشاؤها في البداية باستخدام الافتراضي ModelFactory طريقة لإنشاء الأنطولوجيا نموذج (بدون معلم).المشكلة هو برنامج ركض نموذج تم تغيير الافتراضي جينا المفكر أن run (تشغيل وتشغيل وتشغيل).العملية تماما بطيئة جدا على ما أريد و لن ينفد من الذاكرة على مجموعات البيانات الكبيرة.

لقد غيرت البرنامج إلى استخدام مختلفة الأنطولوجيا نموذج طريقة مصنع لخلق نموذج مع المفكر.هذا ركض سريع للغاية و عرضت أيا من مشاكل في الذاكرة رأيت في وقت سابق (حتى على مجموعات البيانات الكبيرة جدا).المشكلة مع هذا النهج هو أن أنا يمكن فقط الوصول إلى البيانات مباشرة باستخدام الأمر المباشر نوع فئة (وأنا لا يمكن الوصول إلى الكائنات باستخدام انها الفئة الأصل).

على سبيل المثال, تخيل كنت قد اثنين من الدرجة الموارد "زهرة" و "البذور".هذه ترث من الأصل مشتركة, "المواد النباتية".البرنامج يأخذ كل شيء "بذور" ، يدير طريقة تسمى "النمو" التي تحول "البذور" الكائن في "زهرة" الكائن."تنمو" طريقة تشغيل بطيئة جدا و نفاد الذاكرة عند استخدام المفكر (حتى الدقيقة المفكر).إذا كنت إيقاف المفكر ، ثم لا أستطيع الوصول إلى جميع "الزهور" و "بذور" باستخدام "المواد النباتية" الطبقة.

هل هناك طريقة مفضلة (متوسطة سعيد) أن تفعل هذا...مما يتيح القدرة على الوصول إلى الكائنات باستخدام الفائقة في حين يجري أيضا سريع و لا ذاكرة الخنزير ؟

لقد كنت تبحث عن وسيلة ل "إيقاف المفكر" بينما أنا أدير "تنمو" الطريقة ثم تشغيله مرة أخرى مرة واحدة طريقة يكمل.هل هذا ممكن بطريقة أو بأخرى ؟

هل كانت مفيدة؟

المحلول

حصلت على بعض المساعدة والاقتراحات, ثم هذا هو كيف يمكنني حل هذه المشكلة.

أساسا أنا تمكنت من الوصول إلى نموذج آخر من دون المفكر ، الدفعي كل التغييرات إلى النموذج الأساسي ، ثم يرتد نموذج كامل مع المفكر للحصول على التحديثات.

هنا بعض الزائف رمز.أنها لا تتطابق تماما مع بلدي "الحقيقي" السيناريو, ولكن تحصل على هذه الفكرة.

// Create a model with a reasoner and load the full model from owl files or
// whatever
OntModel fullModel = ModelFactory.createOntologyModel();
fullModel.read(...);

// create a model without a reasoner and load it from the full model with
// reified statements
OntModel basicModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
basicModel.add(fullModel);

// batch modifications to the basic model programatically
//(**** RUNS REALLY QUICK *****)

// rebind the full model
fullModel.rebind();

// continue on....
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top