Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson...

14
Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music] 1.2 Lesson Introduction In a previous lesson, Alfresco Content Services Architectural Overview, we discussed the Content Organization and Flow layer of the ACS architecture. In this layer we introduced Content Models. Content Modeling is a fundamental building block of the Alfresco Content Services or (ACS) content repository. Content Modeling provides a foundation for structuring and working with content. Remove content modeling from ACS and you have a simple file-system that stores content. Here’s how content modeling works at a high-level. Content modeling specifies how content is classified and accepted by the content repository which it then is consider a Node. The classification for example, may be something like Content, Person, or Folder content types. So let’s quickly go through the content inception process. First data or content is uploaded. Next, the repository content model then reads and classifies the data as a content type and then the content may

Transcript of Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson...

Page 1: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

Content Modeling Fundamentals Storyboard

1.0 Lesson Introduction 1.1 Scene Intro (Splash screen)

Lesson Title Slide Needed [Corporte Music]

1.2 Lesson Introduction

In a previous lesson, Alfresco Content Services Architectural Overview, we discussed the Content Organization and Flow layer of the ACS architecture. In this layer we introduced Content Models. Content Modeling is a fundamental building block of the Alfresco Content Services or (ACS) content repository. Content Modeling provides a foundation for structuring and working with content. Remove content modeling from ACS and you have a simple file-system that stores content. Here’s how content modeling works at a high-level.

Content modeling specifies how content is classified and accepted by the content repository which it then is consider a Node. The classification for example, may be something like Content, Person, or Folder content types. So let’s quickly go through the content inception process. First data or content is uploaded. Next, the repository content model then reads and classifies the data as a content type and then the content may

Page 2: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

become a node if it meets the content model criteria, if not, it is rejected by the repository as an unauthorized content type. Now speaking of nodes; nodes are content that have met the content model criteria and are accepted and part the content repository. Nodes are a bit more detailed then what we just explained but we will leave that topic for another lesson. In this content modeling fundamentals lesson we will guide you through the conceptual structure of content modeling, discuss the roots of content modeling, and the actions that content modeling takes when content is uploaded or ingested into the content repository. First we need to take care of some Housekeeping.

1.3 Welcome to Class

Welcome to class! Content Modeling Fundamentals! Let’s go over the prerequisites for this lesson, completion criteria, the audience, and continuing education. [Prerequisites] It is suggested but not required that you enroll-in and complete any curricula that provides you with the basic overview of Alfresco Content Services. As suggested and mentioned in the lesson introduction, Alfresco University has a lesson explaining the ACS Architectural Overview which mentions content modeling in the Content Organization and Flow layer of the ACS Architecture. [Completion Criteria] Students must successfully complete all knowledge checks and/or quiz questions 100% to gain credit. [Audience] The audience for this lesson are Administrators, Developers, or Business Analysts that need a fundamental understanding of Content Modeling in preparation for designing and building Content Models in the ACS repository. [Continuing Education] Search for and enroll in ACS lessons or exercise contained in the Alfresco University that target the Administrator role.

Page 3: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

2.0 Content Modeling Fundamentals 2.1 The Content Metamodel

Content Modeling happens at a particular layer of the Metamodel. Metamodling is the analysis, construction, and development of rules, constraints, and content models that define content within a content repository. It’s important now that we emphasize that content modeling is about metadata; “data that describes data”. Now keeping that in mind, let’s start at the bottom of the Metmodel with Layer M3 where content upload or ingestion takes place: M3 = Meta-metamodel Layer: Content is analyzed by the Meta Object Facility (MOF). This is not a layer that is visible in ACS however, this is where such things as the content classifier, class, operation, parameter, property, and association elements are read. In other words, content must meet MOF standards to begin upload or ingestion into the ACS content repository. M2 = Metamodel Layer: This layer is where Content Modeling or content classification actually happens. Content types are assigned, metadata is read and aspects are applied, properties are assigned, and associations are given to the content. M1 = Model Layer: Now that content is classified properly by the content model, the Model layer applies Inheritance and Aggregation to the content. Attributes, constraints, and operations are added. Inheritance provides an extension and reuse mechanism for content. Aggregation is a culmination of sub-models meaning that if the content meets the same criteria as other content models, those metadata fields and attributes are aggregated into one attribute. M0 = Objects Layer: This is the layer where content becomes a Node in the Alfresco content repository. It’s ready for Prime-time!

Page 4: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

So to recap, the content modeling occurs in the M2 or Metamodel Layer but it is important to understand the processes or layers prior to Content Modeling and after content has been modeled or classified and is an official Node in the ACS content repository. Speaking of the ACS repository, lets talk a bit about how the repository stores content relating to Content Models.

2.2 ACS Repository Storage Concepts

The ACS Repository has standard Content Models that normally meet the needs of businesses in support of document and records management. Let’s go over how the content repository stores content as it relates directly to Content Modeling. Think of a file, of any type, as having two parts. The first part is the metadata. What is Metadata? Well previously we explained that metadata is basically the information about the file such as the owner, category of information, update or revision time, etc. Metadata holds the properties of the file for analysis by the content model. In other words, the first thing that happens when content upload starts to the content repository is that it goes through the content model, and the Metadata is read. The Content Model is not necessarily concerned with the content of the file at this point such as text or binary content. All of this we just covered in the Metamodel Layers. Now once the metadata is read, and the Content Model applied, the content repository stores the metadata in a logical or relational database away from the actual content of the file. Secondly, the content of the file is then stored in the repository or the file system. The diagram goes further in that it explains the relation to indexing which is sorting and organizing for search capabilities. Why did we go through the content repository Storage Concepts before addressing the content metamodel in detail? Good Question! The answer is; understanding the Nodes, understanding how the ACS content repository stores content, are essential to understanding the parts and structure of a Content Model. It would be like breaking down the parts of a process without explaining to you what occurs before and after the process. Now we just spoke of the parts and structure of a content model, so let’s dig deeper into this topic.

Page 5: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

2.3 The Content Model Structure

In follow-on lessons of Content Modeling within the Alfresco University, you will have the opportunity to open a content model XML file and observe each part or the structure from an XML point-of-view. In this diagram we will relate the Content Modeling parts to that M2 Layer of the Content Metamodel through a graphical representation. As we learned previously, Nodes are constrained at their inception to the content repository. Remember, constrained is just a word, to describe what a content model does with the data, when the content is uploaded. The content repository analyzes the content and applies certain logic through the Content Model so that when converted to a Node, it has certain behaviors, relations, and is identified as a type of content. At a high-level This is done through parts of the Content Model such as; Types, Properties, and Constraints and Associations or Relationships. Now let’s break-down these content model parts in more detail starting with Properties.

Page 6: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

2.4 Properties

Properties are attached to the metadata of content and translated by the content repository and content model for storage. That’s a broad view of Properties. [1] Properties are primarily used in databases. [2] Properties define a metadata field and determine the characteristics and behaviors of that field. The most important part of a property is the [3] data type. As an example, a field whose data type is [4] Text, can store data that consists of either text or numerical characters, however a field whose data type is a [5] number can only store numerical data. You can see how properties are that important. [6] Properties have one of six data types: [7] Integer (Number), [8] Real, [9] Double precision, [10] Complex, [11] Logical, and [12] Character (Text). We won’t go into the definitions of each but if you’d like you can research these data types on your own. [13] Not all properties are needed or mandatory in metadata. [14] Properties are indexed or sorted and to make them searchable in a database. Remember [15] constraints can be placed on some data types as they are converted to a Node but these constraints can also be referenced in property definition within the content model. [16] Property constraints let you specify criteria that must be met before the property value is considered valid and saved for persistence in the content repository. [17] A security feature of properties are that they can be protected preventing users from changing them. For example: as content goes through this entire process and becomes a node in the content repository, we don’t want people arbitrarily changing properties. This speaks to the classification and integrity of the content or Node in the content repository. [18] Properties can be multi-valued and the reason behind this is that content may have several subjects, types of content, etc. You can see the flexibility that properties have and how their values, constraints, and protection, lend well to organizing content in an content repository. Let’s talk about the next content model part and it is Types!

2.5 Types

Page 7: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

Every object in an content repository repository [1] has a “type” or content type associated with it. OK, so before we go into more detail of the what a content type is, you see in the diagram [2] there is two TYPES. First is the Data type which is used at to identify the OBJECT being uploaded to the repository. [3] Remember we spoke previously that this can be an Integer (Number), Real, Double precision, Complex, Logical, or Character (Text). [4] A Content Type is different. Types in Content Modeling refer to the reusability of the content. [5] So for example, you have a chapter of a book as a content type, hypothetically, and you can reuse that type when [6] compiling content into a book. So going forward when we refer to Types we are referring to Content Types within the content model. [7] Each type has a set of properties or attributes associated with it. We just went over properties they should be fresh in your mind. [8] Types can be extended via inheritance to create new types. Remember inheritance happens at the M1 or Model layer of the Content Metamodel. [9] A type may inherit its definition from another type. If a type is determined to be a new type, it is still associated with a parent type in some way through the content repository. [10] All features of the parent type are inherited, including properties, associations, constraints, and definitions [11] with the exception of the parent type name, title, and description. Pro Now let’s talk next about Constraints or constraining content through the use of Content Models!

2.6 Contraints

Page 8: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

Constraints are simple, [1] they “direct traffic” in an content repository. Constraints are flexible in that they can be applied to various parts of a Content Model. Remember, objects or content are required to have certain constraints in order to be considered a node and be accepted into the content repository. The main focus of contraints within the content model are properties and types. Next we will discuss Aspects, which have constraints that can be applied to multiple content types.

2.7 Aspects

Page 9: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

*** CHANGE OBJECTS TO NODES IN THE DIAGRAM *** An aspect supports the same capabilities as a type, meaning it supports properties and might be related to, and inherits the definition of a parent aspect. [1] Aspects can be shared across types, allowing crosscutting of the content model, [2] which is the sharing of property [3] and association definitions, by attaching them to multiple types. This is the content metamodel equivalent of multiple inheritance. [4] Aspects can be added to any Node within the content repository. [5] They can be defined with or without custom properties. [6] If they do not have properties they are typically used as a temporary marker for documents and usually are queued up for additional classification once they become a node in the content repository. [7] Next Aspects with properties can be present during a specific part of a nodes lifecycle. [8] In other words, they can be added to an object after it’s inception to the content repository, such as a document that is in a legal hold status that needs legal review immediately after it’s upload to the repository as shown in the example. [9] Mandatory aspects can be used to share properties across types that are not normally inherited from each other. [10] In addition to properties, nodes can have relationships with other nodes in the repository. These relationships can only be [11] peer-to-peer or [12] parent child. [13] Another type of Aspect is a Smart Folder aspect that can be programmed into the Content Model. Let’s explain the use of Smart Folders. A Smart Folder displays the results of a query [14] in a folder format. It is "smart", because the results are created dynamically. So, for example, a Smart Folder called My video files might be created to [15] contain all files that you created in a video file format, contained in the content repository. Smart folders will be discussed in later Administrator foundational lessons in the Alfresco University. [16] The point about Aspects is that they are tremendously flexible and lend well to the entire Alfresco Content Services experience. Let’s go deeper into relationships or associations.

2.8 Relationships and Associations

Page 10: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

As defined by Alfresco, [1] Relationships are referred to as Associations. The most common association is the parent child. [2] Parent child relations can also specify whether duplicate files are allowed. This is typically defined between a folder and files or sub-folders that it contains. [3] Associations are directional in that they have a [4] source and a [5] target. [6] The target can be restricted to [7] a specific type or types. [8] Each end of the association has defined Cardinality that is defined by multiple and mandatory properties. Cardinality is addressed in more detail in follow-on lesson of Content Modeling in the Alfresco University however, the basic definition of Cardinality is how multiple tables or databases, relate to one another.

Page 11: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

3.0 Lesson Summary and Quiz 3.1 Lesson Summary

Page 12: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

Although Alfresco has some comprehensive Content Models that are present in ACS Repository, out-of-the-box, there will likely be a need for you to create your own content models to suit your business needs. In this lesson, you learned that the core of the content model is really the Content Metamodel. This model contains the structure of a content model such as [4] Data Types, [5] Constraints, [6] Properties, [7] Associations, [8] Types or Content Types, and something that Alfresco invented, [9] Aspects. These components allow you to classify content that is uploaded to the content repository before it is accepted as a Node in the repository, or you can modify the model to classify content further through an Aspect, after it has been accepted as a Node by the content repository. Let’s quickly summarize the components of the content model:

• The Data Type is the first point of entry into the Repository. If the content does not meet minimal data type standards such as text or binary as defined in the content model, then the content will be rejected at the point of ingestion.

• Constraints are next in that they further contstrain content to ensure uniformity in the content repository. Remember, a constraint is the “traffic cop” of the repository through the content model.

• Properties define how the metadata or metdata fields are characterized or how they behave in the content repository. Properties can be inherited from a Root Node or Parent Content Type.

• Associations are more hierarchal in nature and are either Peer-to-peer or Parent-to-child. Again this is determined by the Parent Content Type and is also connected to inheritance.

• Types are really Content Types. These content types are standard in the out-of-the-box Content Model, but can be customized for your needs by creating your own custom content model. Content Types should be well thought-out before deploying any content repository or content model because the define the core of Content Modeling.

• Last are Aspects which are uniquely Alfresco as we invented the concept. Aspects can be applied to specific content to give it defined metadata and thus make it behave in a specific fashion. Aspects are a very powerful and flexible tool within the repository and content modeling.

This is content modeling! This completes the presentation of this lesson. There are additional Content Modeling lessons and exercises that expound on the Content Modeling fundamental concepts in more detail located in the Alfresco University. Please proceed to a short quiz to test your knowledge and gain credit for this lesson. Thank you for your participation!

3.2 Quiz Question #1 (Branch Slide 2.1) Which layer of the Content Metamodel, does content modeling occur? A. M0 – Objects Layer B. M1 – Model Layer C. M2 – Metamodel Layer D. M3 – Meta-metamodel Layer

Page 13: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

3.3 Quiz Question #2 (Branch Slide 2.4)

What is the most important part of a Property within the Content Metamodel? A. the Content Type B. the Data Type C. the Aspects D. the Associations or Relationships

3.4 Quiz Question #3 (Branch Slide 2.5) Which layer of the Content Metamodel does inheritance occur? A. M0 – Objects Layer B. M1 – Model Layer C. M2 – Metamodel Layer D. M3 – Meta-metamodel Layer

3.5 Quiz Question #4 (Branch Slide 2.7)

Complete the sentence from the drop-down menu. Aspects can be shared across types, allowing __________ of the content model, which is sharing of property and association definitions, by attaching them to multiple types. A. crosscutting B. inheritance C. classification D. association

3.6 Quiz Question #5 (Branch Slide 2.8)

Complete the sentence from the drop-down menus. Associations are directional in that they have a A_source and a B_target. A B

input direction

source target

destination output

start stop

4.0 Miscellaneous 4.1 LtBx Objectives At the end of this lesson, you will be able to:

• Discuss the concepts of content modeling

• Identify the elements of a content model

Page 14: Content Modeling Fundamentals Storyboard · Content Modeling Fundamentals Storyboard 1.0 Lesson Introduction 1.1 Scene Intro (Splash screen) Lesson Title Slide Needed [Corporte Music]

• Describe how content modeling works in conjunction with a content repository

4.2 Results

4.3 Exit or Restart Lesson